@budibase/backend-core 3.8.1 → 3.8.3

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,27 +1,27 @@
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((Gl,$l)=>{"use strict";(function(t,e){typeof Gl=="object"&&typeof $l<"u"?$l.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Gl,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",I=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(I($))return $.clone();var C=typeof F=="object"?F:{};return C.date=$,C.args=arguments,new le(C)},B=S;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 Sr=B.w(L.$u?Date.UTC(L.$y,We,ln):new Date(L.$y,We,ln),L);return K?Sr:Sr.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,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,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[_],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(Ql=>{"use strict";Object.defineProperty(Ql,"__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)};Ql.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 Ix=(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=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 jl;try{jl=Map}catch{}var Hl;try{Hl=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(jl&&t instanceof jl)return new Map(Array.from(t.entries()));if(Hl&&t instanceof Hl)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(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});Yl.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 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:_g,number:Sg,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 Kl=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=Kl;cu.default=Jx});var zl=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.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(zl());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,Xl=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=Xl});var du=H(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.default=nR;var ed=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 ed.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(!ed.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 ed.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*$/,id=512,Cg=new Cn(id),vg=new Cn(id),Ng=new Cn(id);Ug.exports={Cache:Cn,split:nd,normalizePath:rd,setter:function(t){var e=rd(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=rd(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+(sd(r)||Pg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){uR(Array.isArray(t)?t:nd(t),e,r)}};function rd(t){return Cg.get(t)||Cg.set(t,nd(t).map(function(e){return e.replace(aR,"$2")}))}function nd(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=sd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function sd(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!sd(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(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=yR;var mR=od(require("lodash/mapValues")),fu=od(Dn()),hR=od(vn());function od(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 S(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 _=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(I=>{fu.default.isError(I)?n(I):I?n(null,I):n(S())})}catch(I){n(I)}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(I){n(I);return}fu.default.isError(M)?n(M):M?n(null,M):n(S())}return e.OPTIONS=t,e}});var ud=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 cd=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=cd});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=ud(),RR=er(zl()),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 bI=Object.create;var $a=Object.defineProperty;var DI=Object.getOwnPropertyDescriptor;var CI=Object.getOwnPropertyNames;var vI=Object.getPrototypeOf,NI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)$a(t,r,{get:e[r],enumerable:!0})},vh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of CI(e))!NI.call(t,i)&&i!==r&&$a(t,i,{get:()=>e[i],enumerable:!(n=DI(e,i))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?bI(vI(t)):{},vh(e||!t||!t.__esModule?$a(r,"default",{value:t,enumerable:!0}):r,t)),PI=t=>vh($a({},"__esModule",{value:!0}),t);var rg=H(($l,Vl)=>{"use strict";(function(t,e){typeof $l=="object"&&typeof Vl<"u"?Vl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})($l,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,Qe){var Ir=B.w(L.$u?Date.UTC(L.$y,Qe,ln):new Date(L.$y,Qe,ln),L);return K?Ir:Ir.endOf(a)},Oe=function(ln,Qe){return B.w(L.toDate()[ln].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Qe)),L)},ve=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=(ve<cn?ve+7:ve)-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 ve=this.clone().set(m,1);ve.$d[se](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else se&&this.$d[se](Oe);return this.init(),this},F.set=function(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,ve=this.$d.getTime()+C*Oe;return B.w(ve,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,ve=this.$M,W=L.weekdays,dt=L.months,Ei=L.meridiem,cn=function(Qe,Ir,Rs,Ga){return Qe&&(Qe[Ir]||Qe(q,K))||Rs[Ir].slice(0,Ga)},xs=function(Qe){return B.s(se%12||12,Qe,"0")},ln=Ei||function(Qe,Ir,Rs){var Ga=Qe<12?"AM":"PM";return Rs?Ga.toLowerCase():Ga};return K.replace(g,function(Qe,Ir){return Ir||function(Rs){switch(Rs){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return ve+1;case"MM":return B.s(ve+1,2,"0");case"MMM":return cn(L.monthsShort,ve,dt,3);case"MMMM":return cn(dt,ve);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return 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}(Qe)||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),ve=(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-ve)/6048e5;break;case a:K=(W-ve)/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(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var sx=t=>new au(t);He.valid=sx;var ox=t=>new uu(t);He.err=ox;var au=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=au;var uu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=uu});var Rt=H(og=>{"use strict";Object.defineProperty(og,"__esModule",{value:!0})});var vr=H(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});Vt();var re=xt();Rt();var ax=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],ux=["sun","mon","tue","wed","thu","fri","sat"],cx=(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&&ax.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&ux.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)},lx=(t,e,r)=>{if(t==="*")return cx(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)},ag=(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),dx=(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 lx(n[0],e,r);if(n.length===2){let i=ag(n[0],e,r,0),s=ag(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)")},px=(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=dx(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)},fx=(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(px(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)};jl.default=fx});var ug=H(Ms=>{"use strict";var mx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Vt();var hx=xt(),gx=mx(vr());Rt();var yx=(t,e)=>{if(!t.seconds)return(0,hx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,gx.default)(r,"seconds",e)};Ms.default=yx});var cg=H(ks=>{"use strict";var Ex=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var Tx=xt(),Ax=Ex(vr());Rt();var Sx=(t,e)=>{if(!t.minutes)return(0,Tx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Ax.default)(r,"minutes",e)};ks.default=Sx});var lg=H(Fs=>{"use strict";var _x=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Ix=xt(),Ox=_x(vr());Rt();var xx=(t,e)=>{if(!t.hours)return(0,Ix.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Ox.default)(r,"hours",e)};Fs.default=xx});var dg=H(Gs=>{"use strict";var Rx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=xt(),wx=Rx(vr());Rt();var bx=(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,wx.default)(r,"daysOfMonth",e)};Gs.default=bx});var pg=H($s=>{"use strict";var Dx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var Cx=xt(),vx=Dx(vr());Rt();var Nx=(t,e)=>{if(!t.months)return(0,Cx.err)(["months field is undefined."]);let{months:r}=t;return(0,vx.default)(r,"months",e)};$s.default=Nx});var fg=H(qs=>{"use strict";var Px=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});Vt();var Vs=xt(),Ux=Px(vr());Rt();var Lx=(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,Ux.default)(r,"daysOfWeek",e)};qs.default=Lx});var mg=H(Ws=>{"use strict";var Mx=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});Vt();var kx=xt(),Fx=Mx(vr());Rt();var Bx=(t,e)=>{if(!t.years)return(0,kx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Fx.default)(r,"years",e)};Ws.default=Bx});var Eg=H((bW,yg)=>{"use strict";var Hl;try{Hl=Map}catch{}var Yl;try{Yl=Set}catch{}function hg(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(gg);if(Hl&&t instanceof Hl)return new Map(Array.from(t.entries()));if(Yl&&t instanceof Yl)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:hg(t[i],e,r)}return n}return t}function gg(t){return hg(t,[],[])}yg.exports=gg});var Qs=H(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=jx;var Gx=Object.prototype.toString,$x=Error.prototype.toString,Vx=RegExp.prototype.toString,qx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Wx=/^Symbol\((.*)\)(.*)$/;function Qx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Tg(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 qx.call(t).replace(Wx,"Symbol($1)");let n=Gx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+$x.call(t)+"]":n==="RegExp"?Vx.call(t):null}function jx(t,e){let r=Tg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Tg(this[n],e);return s!==null?s:i},2)}});var Xt=H(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=Ne.array=Ne.object=Ne.boolean=Ne.date=Ne.number=Ne.string=Ne.mixed=void 0;var Ag=Hx(Qs());function Hx(t){return t&&t.__esModule?t:{default:t}}var Sg={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,Ag.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Ag.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ne.mixed=Sg;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"};Ne.string=_g;var Ig={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Ne.number=Ig;var Og={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Og;var xg={isValue:"${path} field must be ${value}"};Ne.boolean=xg;var Rg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=Rg;var wg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Ne.array=wg;var Yx=Object.assign(Object.create(null),{mixed:Sg,string:_g,number:Ig,date:Og,object:Rg,array:wg,boolean:xg});Ne.default=Yx});var vi=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.default=void 0;var Kx=t=>t&&t.__isYupSchema__;cu.default=Kx});var Dg=H(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var Jx=bg(require("lodash/has")),zx=bg(vi());function bg(t){return t&&t.__esModule?t:{default:t}}var Jl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Jx.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,zx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Zx=Jl;lu.default=Zx});var Zl=H(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=Xx;function Xx(t){return t==null?[]:[].concat(t)}});var Dn=H(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var eR=Cg(Qs()),tR=Cg(Zl());function Cg(t){return t&&t.__esModule?t:{default:t}}function Xl(){return Xl=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},Xl.apply(this,arguments)}var rR=/\$\{\s*(\w+)\s*\}/g,ed=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Xl({},r,{path:n})),typeof e=="string"?e.replace(rR,(i,s)=>(0,eR.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,tR.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)}};du.default=ed});var pu=H(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.default=sR;var td=nR(Dn());function nR(t){return t&&t.__esModule?t:{default:t}}var iR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function sR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=iR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new td.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(!td.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 td.default(o,s,u),s);return}c(null,s)}})}}});var js=H((MW,Lg)=>{"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 oR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Ug=/^\d+$/,aR=/^\d/,uR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,cR=/^\s*(['"]?)(.*?)(\1)\s*$/,sd=512,vg=new Cn(sd),Ng=new Cn(sd),Pg=new Cn(sd);Lg.exports={Cache:Cn,split:id,normalizePath:nd,setter:function(t){var e=nd(t);return Ng.get(t)||Ng.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=nd(t);return Pg.get(t)||Pg.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+(od(r)||Ug.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){lR(Array.isArray(t)?t:id(t),e,r)}};function nd(t){return vg.get(t)||vg.set(t,id(t).map(function(e){return e.replace(cR,"$2")}))}function id(t){return t.match(oR)||[""]}function lR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(fR(i)&&(i='"'+i+'"'),a=od(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function od(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function dR(t){return t.match(aR)&&!t.match(Ug)}function pR(t){return uR.test(t)}function fR(t){return!od(t)&&(dR(t)||pR(t))}});var vn=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=hR;Ys.default=void 0;var mR=js(),fu={context:"$",value:"."};function hR(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]===fu.context,this.isValue=this.key[0]===fu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?fu.context:this.isValue?fu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,mR.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 Mg=H(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=TR;var gR=ad(require("lodash/mapValues")),mu=ad(Dn()),yR=ad(vn());function ad(t){return t&&t.__esModule?t:{default:t}}function hu(){return hu=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},hu.apply(this,arguments)}function ER(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 TR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=ER(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 yR.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let x=(0,gR.default)(hu({value:i,originalValue:u,label:o,path:I.path||s},p,I.params),y),w=new mu.default(mu.default.formatError(I.message||f,x),i,x.path,I.type||d);return w.params=x,w}let S=hu({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=>{mu.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}mu.default.isError(M)?n(M):M?n(null,M):n(_())}return e.OPTIONS=t,e}});var cd=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=kg;Ks.default=void 0;var AR=js(),SR=t=>t.substr(0,t.length-1).substr(1);function kg(t,e,r,n=r){let i,s,o;return e?((0,AR.forEach)(e,(a,u,c)=>{let l=u?SR(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 _R=(t,e,r,n)=>kg(t,e,r,n).schema,IR=_R;Ks.default=IR});var Bg=H(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var Fg=OR(vn());function OR(t){return t&&t.__esModule?t:{default:t}}var ld=class t{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){Fg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Fg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};gu.default=ld});var tr=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var Gg=er(Eg()),Ni=Xt(),xR=er(Dg()),$g=er(pu()),yu=er(Mg()),Vg=er(Qs()),RR=er(vn()),wR=cd(),bR=er(Zl()),qg=er(Dn()),Wg=er(Bg());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 Wg.default,this._blacklist=new Wg.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,Gg.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,Vg.default)(e),o=(0,Vg.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 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 ld=wR.default,DR=ld;Js.default=DR;function Wg(){return new ld}Wg.prototype=ld.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(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.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=fd;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 pd=new Date(""),QR=t=>Object.prototype.toString.call(t)==="[object Date]";function fd(){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)?pd: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=pd;fd.prototype=Ui.prototype;fd.INVALID_DATE=pd});var uy=H(($W,md)=>{"use strict";md.exports=function(t){return ay(jR(t),t)};md.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(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.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(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.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()),yd=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 yd.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 yd.default&&s instanceof yd.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 Ed=Mi(Pi()),dw=Mi(vi()),pw=Mi(Qs()),Td=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=Td.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Ed.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Td.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ed.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Td.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ed.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(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});Ad.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 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 _d.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return _d.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return _d.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()),_d=Un(Jg()),Oy=Un(Xg()),xy=Un(ry()),Ry=Un(oy()),wy=Un(Ey()),by=Un(Ay()),Iw=vn(),Ow=_y(),xw=co(Dn()),Rw=co(ud()),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 Id=xd();Od.default=()=>{(0,Id.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,Id.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,Id.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 xd=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:(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(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,wd)=>{"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=xd();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)},Rd=(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=Rd;wd.exports=Rd;wd.exports.default=Rd});var rT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var ir=class extends Error{},Md=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},kd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Fd=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}},bd=null,To=class t extends Ur{static get instance(){return bd===null&&(bd=new t),bd}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=Jd({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 Bd={};function Gd(t,e={}){let r=JSON.stringify([t,e]),n=Bd[r];return n||(n=new Intl.DateTimeFormat(t,e),Bd[r]=n),n}var $d={};function tb(t,e={}){let r=JSON.stringify([t,e]),n=$d[r];return n||(n=new Intl.NumberFormat(t,e),$d[r]=n),n}var Vd={};function rb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Vd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Vd[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=Gd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Gd(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 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 qd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=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):Kd(e,3);return Re(r,this.padTo)}}},Wd=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=Gd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Qd=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,Bd={},$d={},Vd={}}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=[_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 Ou(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 qd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Wd(e,this.intl,r)}relFormatter(e={}){return new Qd(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}},Dd=null,it=class t extends Ur{static get utcInstance(){return Dd===null&&(Dd=new t(0)),Dd}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 Yd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Kd(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 Jd(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 jd(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 _b(t,e){return CE(e)[t.weekday-1]}function Sb(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:_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?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})\\])?)?`,zd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,ME=RegExp(`${zd.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(`${zd.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:Yd(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?${zd.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(Yd(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 Xd(t,e,r,n,i,s,o){let a={year:e.length===2?jd(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=Xd(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[Xd(e,i,n,r,s,o,a),it.utcInstance]}function Qb(t){let[,e,r,n,i,s,o,a]=t;return[Xd(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 Fd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new 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+=Kd(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 kd(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: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 ep={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=ep.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(ep.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(`${ep[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 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 Cd(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,jd);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 Cd(l);case"uu":return Cd(a);case"uuu":return ce(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(d,jd);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 Cd(/[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=Yd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var vd=null;function vD(){return vd||(vd=_e.fromMillis(1555555555555)),vd}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 Hd(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 Nd(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 Pd="Invalid DateTime",Jy=864e13;function xu(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Ud(t){return t.weekData===null&&(t.weekData=Hd(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(Jd(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=Jd(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 Ld(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function Xy(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var eT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},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=Kd(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=Hd(E)):a?(f=BD,g=kD,E=Nd(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,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 Md(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?Ud(this).weekYear:NaN}get weekNumber(){return this.isValid?Ud(this).weekNumber:NaN}get weekday(){return this.isValid?Ud(this).weekday:NaN}get ordinal(){return this.isValid?Nd(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({...Hd(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({...Nd(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):Pd}toLocaleString(e=Cu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Pd}toLocaleParts(e={}){return this.isValid?tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Ld(this,o);return a+="T",a+=Xy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Ld(this,e==="extended"):null}toISOWeekDate(){return 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?Ld(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ru(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Pd}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((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 tp(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"?(tp(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)):(tp(e,r),r=Qn(i)):r=Qn(i)}return tp(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 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((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:()=>Ip,BadRequestError:()=>bc,BudibaseError:()=>hs,Config:()=>Dp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>wp,DEFAULT_EXPENSES_TABLE_ID:()=>Rp,DEFAULT_INVENTORY_TABLE_ID:()=>xp,DEFAULT_JOBS_TABLE_ID:()=>Op,DEFAULT_TENANT_ID:()=>Ee,DeprecatedViews:()=>Hi,DocumentType:()=>he,Duration:()=>we,DurationType:()=>Xf,EmailUnavailableError:()=>mr,ErrorCode:()=>vc,FeatureDisabledError:()=>Cc,GlobalRole:()=>bp,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:()=>Se,UNICODE_MAX:()=>Fe,UsageLimitError:()=>Dc,UserStatus:()=>Hu,ViewName:()=>Fr,accounts:()=>li,auth:()=>mh,blacklist:()=>Eh,cache:()=>Ca,configs:()=>nn,constants:()=>Cp,context:()=>Te,db:()=>qr,docIds:()=>pf,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:()=>bf,permissions:()=>Xm,platform:()=>la,plugins:()=>gh,queue:()=>_m,redis:()=>yh,roles:()=>gm,security:()=>Fm,sessions:()=>zc,setEnv:()=>bo,sql:()=>Dh,tenancy:()=>EF,timers:()=>Ho,userUtils:()=>ym,users:()=>_s,utils:()=>ls,withEnv:()=>UT});module.exports=NI(AF);var nn={};v(nn,{analyticsEnabled:()=>$c,generateConfigID:()=>rl,getAIConfig:()=>WM,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Ym,getGoogleConfig:()=>nl,getGoogleDatasourceConfig:()=>zm,getOIDCConfig:()=>$M,getOIDCConfigById:()=>Zm,getOIDCLogosDoc:()=>BM,getPlatformUrl:()=>La,getSCIMConfig:()=>qM,getSMTPConfig:()=>VM,getSMTPConfigDoc:()=>US,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 Rl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Rl||{}),wl=(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))(wl||{}),$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 bl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(bl||{});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 Dl(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 _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",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||{}),Cl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Cl||{}),cG=Object.values(Cl).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||{}),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 vl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(vl||{});var Nl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Nl||{});var Fh=["attachment_single","attachment","signature_single","bb_reference","json","array"];var Pl="bb_internal";function ja(t){return!!t.providerType}var Ul=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ul||{});var S$=Object.values(Ul);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 Ml;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Ml||(Ml={}));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"}),Si=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),kl=t=>t.status==="aborted",Fl=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 _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}},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})+$",Ll,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")Ll||(Ll=new RegExp(HI,"u")),Ll.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 _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: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 _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: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 Sn?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 Bl(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=Bl(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=Bl(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(kl(s)||kl(o))return J;let a=Bl(s.value,o.value);return a.valid?((Fl(s)||Fl(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}))}};_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: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)})}},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 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"?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: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(),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 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=_n.create,AO=Gt.create,_O=Za.create,SO=Ri.create,IO=wi.create,OO=Xa.create,xO=Sn.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:Si,OK:Be,isAborted:kl,isDirty:Fl,isValid:vs,isAsync:Ns,get util(){return te},get objectUtil(){return Ml},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:_n,ZodTuple:Gt,ZodRecord:Za,ZodMap:Ri,ZodSet:wi,ZodFunction:Xa,ZodLazy:Sn,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:SO,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:_O,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 Cp={};v(Cp,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,Config:()=>Dp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>wp,DEFAULT_EXPENSES_TABLE_ID:()=>Rp,DEFAULT_INVENTORY_TABLE_ID:()=>xp,DEFAULT_JOBS_TABLE_ID:()=>Op,DEFAULT_TENANT_ID:()=>Ee,DeprecatedViews:()=>Hi,DocumentType:()=>he,GlobalRole:()=>bp,Header:()=>Xe,InternalTable:()=>xr,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>bT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Sp,StaticDatabases:()=>Se,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=(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 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:()=>up,NoEmptyFilterStrings:()=>_T,buildQuery:()=>ST,cleanupQuery:()=>dp,fixupFilterArrays:()=>fp,getKeyNumbering:()=>pp,getValidOperatorsForType:()=>lC,hasFilters:()=>cp,limit:()=>OT,recurseLogicalOperators:()=>lp,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:()=>Vl,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 Vl(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:()=>rp,deepGet:()=>ql,getUserColor:()=>zO,getUserInitials:()=>JO,getUserLabel:()=>ZO,isGoogleSheets:()=>ex,isSQL:()=>tx,lists:()=>ap,retry:()=>rx,roles:()=>op,schema:()=>Io,views:()=>sp,wait:()=>Wl,withTimeout:()=>XO});var ql=(t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},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 Wl(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 Wl(s);try{return await t()}catch(o){n=o}}throw n}var rp={};v(rp,{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:()=>np,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 np(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 sp={};v(sp,{basicFields:()=>nC,calculationFields:()=>rC,hasCalculationFields:()=>tC,isBasicViewField:()=>XD,isCalculationField:()=>Oo,isCalculationView:()=>eC,isV2:()=>iC,isVisible:()=>ET});var ip=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,ip.pickBy)(t.schema||{},Oo)}function ET(t){return t.visible!==!1}function nC(t,e){let{visible:r=!0}=e||{};return(0,ip.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||ET(n)))}function iC(t){return t.version===2}var op={};v(op,{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 ap={};v(ap,{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},_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 lp(t,e){for(let r of AT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var dp=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=lp(t,dp),t};function dC(t){return Array.isArray(t)&&t.length===0}var iu=t=>pp(t).key,pp=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}},up=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}=pp(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=np(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(Dl(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)||Dl(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=Vl(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 fp(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 lp(t,fp),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=dp(e),e=fp(e),!cp(e)&&e.onEmptyFilter==="none")return[];let r=(T,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Va(T)?x:ql(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")),S=r("$and",(T,I)=>{if(!I.length)return!1;for(let x of I)if(!Bu([T],x).length)return!1;return!0}),_=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:S,$or:_},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>I[w]?.(T)??!1);return cp(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 cp=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:()=>hp,automations:()=>gp,screens:()=>_p,users:()=>Ap});var hp={};v(hp,{getDevAppID:()=>mC,getProdAppID:()=>Gu});var mp=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(mp);e.shift();let r=e.join(mp);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`${mp}${r}`}var gp={};v(gp,{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 Ap={};v(Ap,{canCreateApps:()=>EC,containsUserID:()=>OC,getGlobalUserID:()=>IC,getUserAppGroups:()=>xC,getUserGroups:()=>Tp,hasAdminPermissions:()=>Ep,hasAppBuilderPermissions:()=>qu,hasAppCreatorPermissions:()=>xT,hasBuilderPermissions:()=>_C,hasCreatorPermissions:()=>Wu,isAdmin:()=>Vu,isAdminOrBuilder:()=>TC,isAdminOrGlobalBuilder:()=>AC,isBuilder:()=>yp,isCreator:()=>SC,isGlobalBuilder:()=>$u,userAppAccessList:()=>RC});var kr=Q(require("lodash/fp"));function yp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Gu(e))):!1}function $u(t){return yp(t)&&!qu(t)||Vu(t)}function EC(t){return $u(t)||Wu(t)}function Vu(t){return t?Ep(t):!1}function TC(t,e){return yp(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 Ep(t){return t?!!t.admin?.global:!1}function Wu(t){return t?!!t.builder?.creator:!1}function SC(t){return t?$u(t)||Ep(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 Tp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function xC(t,e,r){let n=Gu(t);return Tp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function RC(t,e){let n=Tp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var _p={};v(_p,{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(vl),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(Nl)},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"]},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=Or("app"),ju=Or("app_dev"),Et=ju,Sp="internal",Ip="budibase",or="_design/sqlite",Op="ta_bb_jobs",xp="ta_bb_inventory",Rp="ta_bb_expenses",wp="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||{}),bp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(bp||{}),Dp=(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))(Dp||{}),bT=new Date(-2147483647e3),Yu=new Date(2147483647e3),Ee="default";var Ca={};v(Ca,{CacheKey:()=>De,TTL:()=>si,app:()=>af,bustCache:()=>us,destroy:()=>sa,docWritethrough:()=>Hm,generic:()=>oa,get:()=>oi,invite:()=>om,keys:()=>_c,passwordReset:()=>Qm,store:()=>fr,user:()=>sn,withCache:()=>Jr,withCacheWithDynamicTTL:()=>f_,writethrough:()=>Wm});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:()=>Kp,doInEnvironmentContext:()=>zv,doInIPContext:()=>Zp,doInIdentityContext:()=>wo,doInScimContext:()=>Zv,doInTenant:()=>$e,ensureSnippetContext:()=>zT,getAppDB:()=>es,getAppId:()=>Ue,getAuditLogDBName:()=>KT,getAuditLogsDB:()=>eN,getAutomationId:()=>Jp,getCurrentContext:()=>ts,getDevAppDB:()=>rN,getEnvironmentVariables:()=>Xv,getFeatureFlags:()=>Xp,getGlobalDB:()=>ie,getGlobalDBName:()=>ur,getIP:()=>zp,getIdentity:()=>ar,getPlatformURL:()=>Yp,getProdAppDB:()=>tN,getProdAppId:()=>Jv,getScimDBName:()=>Vv,getTableForView:()=>nN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>$r,isScim:()=>Pt,isTenancyEnabled:()=>Wv,isTenantIdSet:()=>qv,setFeatureFlags:()=>ef,setTableForView:()=>iN});var Ro={};v(Ro,{doInAccountContext:()=>gv,doInIdentityContext:()=>Np,doInUserContext:()=>Pp,getAccountUserId:()=>DT,getIdentity:()=>vp});function vp(){return ar()}function Np(t,e){return wo(t,e)}function Pp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Np(n,r)}function gv(t,e){let r=DT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Np(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"),Up=require("crypto");function Lp(){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()&&!Lp()&&(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()&&!Lp())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}function _v(){return vt.SERVICE_TYPE==="worker"}function Sv(){return vt.SERVICE_TYPE==="apps"}function Iv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Lp,isJest:PT,isDev:Ju,isWorker:_v,isApps:Sv,isQA:Iv,isProd:()=>!Ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Up.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Up.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 Mp="No app provided";function Br(t){if(!t)throw Mp;return t.startsWith(Et)}function Ov(t){if(!t)throw Mp;return t.startsWith(yt)&&!Br(t)}function Do(t){if(!t)throw Mp;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=kp(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:kp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},kp=(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,Fp=(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=Fp(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 Qp={};v(Qp,{breakExternalTableId:()=>$p,breakRowIdField:()=>Bv,buildExternalTableId:()=>Pv,convertRowId:()=>Fv,encodeTableId:()=>Uv,encodeViewId:()=>Lv,generateRowIdField:()=>Mv,getNativeSql:()=>zi,isExternalTable:()=>Gp,isExternalTableID:()=>rc,isInternalTableID:()=>Nv,isInvalidISODateString:()=>Vp,isRowId:()=>kv,isValidFilter:()=>ic,isValidISODateString:()=>nc,isValidTime:()=>qp,sqlLog:()=>No,validateManyToMany:()=>Wp});var Bp=`${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 Gp(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}${Bp}${encodeURIComponent(e)}`}function Uv(t){return rc(t)?encodeURIComponent(t):t}function Lv(t){return encodeURIComponent(t)}function $p(t){let e=t.split(Bp),r=e.shift(),n=e.join(Bp);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 Vp(t){return!nc(t)}function ic(t){return t!=null&&t!==""}function qp(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 Wp(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 jp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await ec(e)}async function Hp(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 Yp(){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 Kp(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 Jp(){return Pe.get()?.automationId}function Ue(){let e=Pe.get()?.appId;return!e&&h.isTest()&&YT?YT:e}function zp(){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 Xp(t){let e=ts();if(e)return e.featureFlagCache?.[t]}function ef(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:()=>$f,getDocWritethroughClient:()=>aP,getInviteClient:()=>ri,getLockClient:()=>qf,getPasswordResetClient:()=>ia,getSessionClient:()=>Yr,getSocketClient:()=>oP,getUserClient:()=>na,getWritethroughClient:()=>Vf,init:()=>Lt,shutdown:()=>p_});var l_=Q(require("ioredis"));var ac={};v(ac,{Databases:()=>tf,SEPARATOR:()=>rs,SelectableDatabase:()=>sc,addDbPrefix:()=>Ke,getRedisConnectionDetails:()=>oc,getRedisOptions:()=>ns,removeDbPrefix:()=>rf});var sN=2e3,ZT=1e4,rs="-",tf=(y=>(y.PW_RESETS="pwReset",y.VERIFICATIONS="verification",y.INVITATIONS="invitation",y.DEV_LOCKS="devLocks",y.DEBOUNCE="debounce",y.SESSIONS="session",y.USER_CACHE="users",y.FLAGS="flags",y.APP_METADATA="appMetadata",y.QUERY_VARS="queryVars",y.LICENSES="license",y.GENERIC_CACHE="data_cache",y.WRITE_THROUGH="writeThrough",y.LOCKS="locks",y.SOCKET_IO="socket_io",y.BPM_EVENTS="bpmEvents",y.DOC_WRITE_THROUGH="docWriteThrough",y))(tf||{}),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 rf(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:()=>vf});var Uo={};v(Uo,{getId:()=>nf,setHeader:()=>oN});var XT=require("correlation-id"),oN=t=>{let e=XT.getId();e&&(t["x-budibase-correlation-id"]=e)};function nf(){return XT.getId()}var Ec=Q(require("pino")),u_=Q(require("pino-pretty"));var Nf=Q(require("dd-trace")),c_=require("dd-trace/ext");var vf={};v(vf,{getLogReadStream:()=>YN,getSingleFileMaxSizeInfo:()=>a_,localFileDestination:()=>Cf});var qo=Q(require("fs")),Df=Q(require("path")),n_=Q(require("rotating-file-stream"));var bf={};v(bf,{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:()=>sf,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:()=>xf});var gc=require("@aws-sdk/client-s3"),Tf=require("@aws-sdk/lib-storage"),BA=require("@aws-sdk/s3-request-presigner"),$o=Q(require("stream")),Af=Q(require("node-fetch")),_f=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=sf(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 If=require("uuid");var qr={};v(qr,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>wp,DEFAULT_EXPENSES_TABLE_ID:()=>Rp,DEFAULT_INVENTORY_TABLE_ID:()=>xp,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:()=>Sp,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:()=>jp,directCouchCall:()=>FT,directCouchFind:()=>Hp,directCouchQuery:()=>ec,directCouchUrlCall:()=>Co,doWithDB:()=>ut,extractAppUUID:()=>Rv,fullSearch:()=>xN,generateAppID:()=>oA,generateAppUserID:()=>fc,generateDevInfoID:()=>fA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>hA,generatePluginID:()=>mA,generateRoleID:()=>cf,generateRowID:()=>uf,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:()=>Fp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>EN,getQueryIndex:()=>gA,getRoleParams:()=>hc,getRowParams:()=>lf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>IA,getUrlInfo:()=>kp,getUserMetadataParams:()=>SA,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>_A,init:()=>tc,isDatasourceId:()=>TA,isDevApp:()=>Do,isDevAppID:()=>Br,isDocumentConflictError:()=>wN,isExternalTableId:()=>df,isGlobalUserID:()=>cA,isProdAppID:()=>Ov,isQueryId:()=>AA,isSameAppID:()=>AN,isTableId:()=>yA,isViewId:()=>EA,paginatedSearch:()=>ON,pagination:()=>ff,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>gf,queryPlatformView:()=>Bo,queryView:()=>hf,queryViewRaw:()=>Fo,removeKeyNumbering:()=>Go,searchIndexes:()=>Ef});var af={};v(af,{AppState:()=>of,getAppMetadata:()=>dc,invalidateAppMetadata:()=>mN});var of=(e=>(e.INVALID="invalid",e))(of||{}),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 pf={};v(pf,{generateAppID:()=>oA,generateAppUserID:()=>fc,generateDevInfoID:()=>fA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>hA,generatePluginID:()=>mA,generateRoleID:()=>cf,generateRowID:()=>uf,generateTableID:()=>aA,generateTemplateID:()=>pA,generateUserMetadataID:()=>lA,generateWorkspaceID:()=>uA,getDocParams:()=>Jn,getGlobalIDFromUserMetadataID:()=>dA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>xA,getPluginParams:()=>OA,getQueryIndex:()=>gA,getRoleParams:()=>hc,getRowParams:()=>lf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>IA,getUserMetadataParams:()=>SA,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>_A,isDatasourceId:()=>TA,isExternalTableId:()=>df,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 uf(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 uf("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 cf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return cf(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 lf(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 df=t=>{let e=t.match(gN);return!!t&&e!==null},yA=t=>!!t&&(t.startsWith(`ta${N}`)||df(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 lf("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 jp(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 ff(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 mf="_design/database";function SN(){return{_id:mf,views:{}}}async function IN(t,e){if(Hi[e])try{let r=await t.get(mf);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(mf)}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,$g.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,$g.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(qg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(qg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Gg.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,yu.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,bR.default)(e).map(s=>new RR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new xR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,yu.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,yu.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,yu.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)}}};Eu.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,wR.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 jg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Qg;Js.default=void 0;var DR=CR(tr());function CR(t){return t&&t.__esModule?t:{default:t}}var dd=DR.default,vR=dd;Js.default=vR;function Qg(){return new dd}Qg.prototype=dd.prototype});var Pi=H(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.default=void 0;var NR=t=>t==null;Tu.default=NR});var zg=H(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=Jg;Zs.default=void 0;var PR=Kg(tr()),Hg=Xt(),Yg=Kg(Pi());function Kg(t){return t&&t.__esModule?t:{default:t}}function Jg(){return new zs}var zs=class extends PR.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=Hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Yg.default)(r)||r===!0}})}isFalse(e=Hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Yg.default)(r)||r===!1}})}};Zs.default=zs;Jg.prototype=zs.prototype});var ey=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=Xg;eo.default=void 0;var qt=Xt(),rr=Zg(Pi()),UR=Zg(tr());function Zg(t){return t&&t.__esModule?t:{default:t}}var LR=/^((([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,MR=/^((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,kR=/^(?:[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,FR=t=>(0,rr.default)(t)||t===t.trim(),BR={}.toString();function Xg(){return new Xs}var Xs=class extends UR.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===BR?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(LR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(MR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(kR,{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:FR})}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;Xg.prototype=Xs.prototype});var ny=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ry;ro.default=void 0;var Nn=Xt(),Pn=ty(Pi()),GR=ty(tr());function ty(t){return t&&t.__esModule?t:{default:t}}var $R=t=>t!=+t;function ry(){return new to}var to=class extends GR.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"&&!$R(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;ry.prototype=to.prototype});var iy=H(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=qR;var VR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function qR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=VR.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 ay=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=md;no.default=void 0;var WR=Au(iy()),sy=Xt(),oy=Au(Pi()),QR=Au(vn()),jR=Au(tr());function Au(t){return t&&t.__esModule?t:{default:t}}var fd=new Date(""),HR=t=>Object.prototype.toString.call(t)==="[object Date]";function md(){return new Ui}var Ui=class extends jR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,WR.default)(e),isNaN(e)?fd:new Date(e))})})}_typeCheck(e){return HR(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=sy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,oy.default)(i)||i>=this.resolve(n)}})}max(e,r=sy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,oy.default)(i)||i<=this.resolve(n)}})}};no.default=Ui;Ui.INVALID_DATE=fd;md.prototype=Ui.prototype;md.INVALID_DATE=fd});var cy=H((KW,hd)=>{"use strict";hd.exports=function(t){return uy(YR(t),t)};hd.exports.array=uy;function uy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=KR(e),a=JR(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 YR(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 KR(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 JR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ly=H(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.default=rw;var zR=Su(require("lodash/has")),ZR=Su(cy()),XR=js(),ew=Su(vn()),tw=Su(vi());function Su(t){return t&&t.__esModule?t:{default:t}}function rw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,XR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,zR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),ew.default.isRef(o)&&o.isSibling?i(o.path,s):(0,tw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return ZR.default.array(n,r).reverse()}});var py=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=nw;function dy(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 nw(t){return(e,r)=>dy(t,e)-dy(t,r)}});var Ty=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Ey;so.default=void 0;var fy=Wt(require("lodash/has")),my=Wt(require("lodash/snakeCase")),iw=Wt(require("lodash/camelCase")),sw=Wt(require("lodash/mapKeys")),ow=Wt(require("lodash/mapValues")),aw=js(),hy=Xt(),uw=Wt(ly()),yy=Wt(py()),cw=Wt(pu()),lw=Wt(Dn()),Ed=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 gy=t=>Object.prototype.toString.call(t)==="[object Object]";function dw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var pw=(0,yy.default)([]),io=class extends Ed.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=pw,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 gy(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,fy.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(!lw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!gy(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,cw.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 Ed.default&&s instanceof Ed.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,yy.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,uw.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,aw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,fy.default)(s,e)&&(o=Li({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=hy.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=dw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=hy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,sw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(iw.default)}snakeCase(){return this.transformKeys(my.default)}constantCase(){return this.transformKeys(e=>(0,my.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,ow.default)(this.fields,r=>r.describe()),e}};so.default=io;function Ey(t){return new io(t)}Ey.prototype=io.prototype});var Sy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Ay;ao.default=void 0;var Td=Mi(Pi()),fw=Mi(vi()),mw=Mi(Qs()),Ad=Xt(),hw=Mi(pu()),gw=Mi(Dn()),yw=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 Ay(t){return new oo(t)}var oo=class extends yw.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(!gw.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=_u({},r,{path:_,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,S,T)}(0,hw.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,fw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,mw.default)(e));return r.innerType=e,r}length(e,r=Ad.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Td.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Ad.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Td.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Ad.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Td.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;Ay.prototype=oo.prototype});var _y=H(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=Aw;uo.default=void 0;var Ew=Tw(vi());function Tw(t){return t&&t.__esModule?t:{default:t}}function Aw(t){return new Iu(t)}var Iu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Ew.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},Sw=Iu;uo.default=Sw});var Iy=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=Ow;var _w=Iw(Xt());function Iw(t){return t&&t.__esModule?t:{default:t}}function Ow(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{_w.default[e][r]=t[e][r]})})}});var Id=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=vw;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 _d.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return _d.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return _d.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return xw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return Rw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return ww.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return bw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return Dw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return Cw.default}});var Oy=Un(jg()),_d=Un(zg()),xy=Un(ey()),Ry=Un(ny()),wy=Un(ay()),by=Un(Ty()),Dy=Un(Sy()),xw=vn(),Rw=_y(),ww=co(Dn()),bw=co(cd()),Cy=co(vi()),Dw=co(Iy()),Cw=co(tr());function co(t){return t&&t.__esModule?t:{default:t}}function vy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return vy=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=vy();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 vw(t,e,r){if(!t||!(0,Cy.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 Ny=H(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});var Od=Rd();xd.default=()=>{(0,Od.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,Od.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,Od.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 Rd=H(Pe=>{"use strict";var Nw=Pe&&Pe.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Pw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Uw=Pe&&Pe.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Nw(e,t,r);return Pw(e,t),e},Lw=Pe&&Pe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateOptions=Pe.registerOptionPreset=Pe.getOptionPresets=Pe.getOptionPreset=void 0;var R=Uw(Id());Id();var lo=xt(),Mw=Lw(Ny());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}}},Py=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(),kw=t=>Ln[t]?(0,lo.valid)(Ln[t]):(0,lo.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=kw;var Fw=()=>Ln;Pe.getOptionPresets=Fw;var Bw=(t,e)=>{Ln[t]=Py.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Bw;var Gw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,_,S,M;try{(0,Mw.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:Py.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)}};Pe.validateOptions=Gw});var Vt=H((po,bd)=>{"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(),$w=kn(ug()),Vw=kn(cg()),qw=kn(lg()),Ww=kn(dg()),Qw=kn(pg()),jw=kn(fg()),Hw=kn(mg()),Yw=Rd();Rt();var Kw=(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)},wd=(t,e={})=>{let r=(0,Yw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Kw(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,$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)),o.push((0,Qw.default)(s,n)),o.push((0,jw.default)(s,n)),n.useYears&&o.push((0,Hw.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=wd;bd.exports=wd;bd.exports.default=wd});var nT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var ir=class extends Error{},kd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Fd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Bd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends ir{},Cu=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends ir{},Qt=class extends ir{constructor(){super("Zone is an abstract class")}},b="numeric",Ct="short",nt="long",vu={year:b,month:b,day:b},sE={year:b,month:Ct,day:b},Jw={year:b,month:Ct,day:b,weekday:Ct},oE={year:b,month:nt,day:b},aE={year:b,month:nt,day:b,weekday:nt},uE={hour:b,minute:b},cE={hour:b,minute:b,second:b},lE={hour:b,minute:b,second:b,timeZoneName:Ct},dE={hour:b,minute:b,second:b,timeZoneName:nt},pE={hour:b,minute:b,hourCycle:"h23"},fE={hour:b,minute:b,second:b,hourCycle:"h23"},mE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ct},hE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:nt},gE={year:b,month:b,day:b,hour:b,minute:b},yE={year:b,month:b,day:b,hour:b,minute:b,second:b},EE={year:b,month:Ct,day:b,hour:b,minute:b},TE={year:b,month:Ct,day:b,hour:b,minute:b,second:b},zw={year:b,month:Ct,day:b,weekday:Ct,hour:b,minute:b},AE={year:b,month:nt,day:b,hour:b,minute:b,timeZoneName:Ct},SE={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},IE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,second:b,timeZoneName:nt},Lr=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}},Dd=null,To=class t extends Lr{static get instance(){return Dd===null&&(Dd=new t),Dd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return xE(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}},bu={};function Zw(t){return bu[t]||(bu[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"})),bu[t]}var Xw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function eb(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 tb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Xw[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Ou={},sr=class t extends Lr{static create(e){return Ou[e]||(Ou[e]=new t(e)),Ou[e]}static resetCache(){Ou={},bu={}}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 xE(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=Zw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?tb(n,r):eb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=zd({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}},Uy={};function rb(t,e={}){let r=JSON.stringify([t,e]),n=Uy[r];return n||(n=new Intl.ListFormat(t,e),Uy[r]=n),n}var Gd={};function $d(t,e={}){let r=JSON.stringify([t,e]),n=Gd[r];return n||(n=new Intl.DateTimeFormat(t,e),Gd[r]=n),n}var Vd={};function nb(t,e={}){let r=JSON.stringify([t,e]),n=Vd[r];return n||(n=new Intl.NumberFormat(t,e),Vd[r]=n),n}var qd={};function ib(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=qd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),qd[i]=s),s}var go=null;function sb(){return go||(go=new Intl.DateTimeFormat().resolvedOptions().locale,go)}function ob(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=$d(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=$d(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function ab(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function ub(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function cb(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 xu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function lb(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 Wd=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=nb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):Jd(e,3);return Re(r,this.padTo)}}},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=$d(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},jd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&OE()&&(this.rtf=ib(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Rb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Se=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":sb()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){go=null,Gd={},Vd={},qd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=ob(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=ab(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=lb(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 xu(this,e,n,bE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=ub(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return xu(this,e,n,vE,()=>{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]=cb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return xu(this,void 0,e,()=>NE,()=>{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 xu(this,e,r,PE,()=>{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 Wd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Qd(e,this.intl,r)}relFormatter(e={}){return new jd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return rb(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}},Cd=null,it=class t extends Lr{static get utcInstance(){return Cd===null&&(Cd=new t(0)),Cd}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(ku(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}},Nu=class extends Lr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Ur(t,e){if(ne(t)||t===null)return e;if(t instanceof Lr)return t;if(db(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 Nu(t)}var Ly=()=>Date.now(),My="system",ky=null,Fy=null,By=null,Gy=60,$y,ye=class{static get now(){return Ly}static set now(e){Ly=e}static set defaultZone(e){My=e}static get defaultZone(){return Ur(My,To.instance)}static get defaultLocale(){return ky}static set defaultLocale(e){ky=e}static get defaultNumberingSystem(){return Fy}static set defaultNumberingSystem(e){Fy=e}static get defaultOutputCalendar(){return By}static set defaultOutputCalendar(e){By=e}static get twoDigitCutoffYear(){return Gy}static set twoDigitCutoffYear(e){Gy=e%100}static get throwOnInvalid(){return $y}static set throwOnInvalid(e){$y=e}static resetCaches(){Se.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Mu(t){return typeof t=="number"&&t%1===0}function db(t){return typeof t=="string"}function pb(t){return Object.prototype.toString.call(t)==="[object Date]"}function OE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function fb(t){return Array.isArray(t)?t:[t]}function Vy(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 mb(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 Mu(t)&&t>=e&&t<=r}function hb(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 Pr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Fn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Kd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Jd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function Ao(t){return t%4===0&&(t%100!==0||t%400===0)}function yo(t){return Ao(t)?366:365}function Pu(t,e){let r=hb(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 zd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function Uu(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 Hd(t){return t>99?t:t>ye.twoDigitCutoffYear?1900+t:2e3+t}function xE(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 ku(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 RE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function Lu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=RE(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 Fu(t){return mb(t,["hour","minute","second","millisecond"])}var gb=["January","February","March","April","May","June","July","August","September","October","November","December"],wE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],yb=["J","F","M","A","M","J","J","A","S","O","N","D"];function bE(t){switch(t){case"narrow":return[...yb];case"short":return[...wE];case"long":return[...gb];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 DE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],CE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Eb=["M","T","W","T","F","S","S"];function vE(t){switch(t){case"narrow":return[...Eb];case"short":return[...CE];case"long":return[...DE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var NE=["AM","PM"],Tb=["Before Christ","Anno Domini"],Ab=["BC","AD"],Sb=["B","A"];function PE(t){switch(t){case"narrow":return[...Sb];case"short":return[...Ab];case"long":return[...Tb];default:return null}}function _b(t){return NE[t.hour<12?0:1]}function Ib(t,e){return vE(e)[t.weekday-1]}function Ob(t,e){return bE(e)[t.month-1]}function xb(t,e){return PE(e)[t.year<0?0:1]}function Rb(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 qy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var wb={D:vu,DD:sE,DDD:oE,DDDD:aE,t:uE,tt:cE,ttt:lE,tttt:dE,T:pE,TT:fE,TTT:mE,TTTT:hE,f:gE,ff:EE,fff:AE,ffff:_E,F:yE,FF:TE,FFF:SE,FFFF:IE},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 wb[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?_b(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?Ob(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?Ib(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?xb(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 qy(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 qy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},UE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Vi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function qi(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}function LE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Pr(e[r+i]);return[n,null,r+i]}}var ME=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,bb=`(?:${ME.source}?(?:\\[(${UE.source})\\])?)?`,Zd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,kE=RegExp(`${Zd.source}${bb}`),Xd=RegExp(`(?:T${kE.source})?`),Db=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Cb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,vb=/(\d{4})-?(\d{3})/,Nb=LE("weekYear","weekNumber","weekDay"),Pb=LE("year","ordinal"),Ub=/(\d{4})-(\d\d)-(\d\d)/,FE=RegExp(`${Zd.source} ?(?:${ME.source}|(${UE.source}))?`),Lb=RegExp(`(?: ${FE.source})?`);function Bi(t,e,r){let n=t[e];return ne(n)?r:Pr(n)}function Mb(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:Kd(t[e+3])},null,e+4]}function So(t,e){let r=!t[e]&&!t[e+1],n=ku(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 kb=RegExp(`^T?${Zd.source}$`),Fb=/^-?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 Bb(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(Kd(c),d)}]}var Gb={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 ep(t,e,r,n,i,s,o){let a={year:e.length===2?Hd(Pr(e)):Pr(e),month:wE.indexOf(r)+1,day:Pr(n),hour:Pr(i),minute:Pr(s)};return o&&(a.second=Pr(o)),t&&(a.weekday=t.length>3?DE.indexOf(t)+1:CE.indexOf(t)+1),a}var $b=/^(?:(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 Vb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=ep(e,i,n,r,s,o,a),p;return u?p=Gb[u]:c?p=0:p=ku(l,d),[m,new it(p)]}function qb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Wb=/^(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$/,jb=/^(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 Wy(t){let[,e,r,n,i,s,o,a]=t;return[ep(e,i,n,r,s,o,a),it.utcInstance]}function Hb(t){let[,e,r,n,i,s,o,a]=t;return[ep(e,a,r,n,i,s,o),it.utcInstance]}var Yb=$i(Db,Xd),Kb=$i(Cb,Xd),Jb=$i(vb,Xd),zb=$i(kE),BE=Vi(Mb,Wi,So,_o),Zb=Vi(Nb,Wi,So,_o),Xb=Vi(Pb,Wi,So,_o),eD=Vi(Wi,So,_o);function tD(t){return qi(t,[Yb,BE],[Kb,Zb],[Jb,Xb],[zb,eD])}function rD(t){return qi(qb(t),[$b,Vb])}function nD(t){return qi(t,[Wb,Wy],[Qb,Wy],[jb,Hb])}function iD(t){return qi(t,[Fb,Bb])}var sD=Vi(Wi);function oD(t){return qi(t,[kb,sD])}var aD=$i(Ub,Lb),uD=$i(FE),cD=Vi(Wi,So,_o);function lD(t){return qi(t,[aD,BE],[uD,cD])}var dD="Invalid Duration",GE={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}},pD={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},...GE},ht=146097/400,ki=146097/4800,fD={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},...GE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],mD=Bn.slice(0).reverse();function Nr(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 hD(t){return t<0?Math.floor(t):Math.ceil(t)}function $E(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?hD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function gD(t,e){mD.reduce((r,n)=>ne(e[n])?r:(r&&$E(t,e,r,e,n),n),null)}function yD(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?fD:pD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Lu(e,t.normalizeUnit),loc:Se.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=iD(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]=oD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Bd(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 Cu(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):dD}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+=Jd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Bn)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Nr(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]=RE(e(this.values[n],n));return Nr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Lu(e,t.normalizeUnit)};return Nr(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 Nr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return gD(this.matrix,e),Nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=yD(this.normalize().shiftToAll().toObject());return Nr(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)&&$E(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 Nr(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 Nr(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 ED(t,e){return!t||!t.isValid?qn.invalid("missing or invalid start"):!e||!e.isValid?qn.invalid("missing or invalid end"):e<t?qn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var qn=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Fd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ho(e),i=ho(r),s=ED(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=vu,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 Ur(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:OE()}}};function Qy(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 TD(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=Qy(u,c);return(l-l%7)/7}],["days",Qy]],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 AD(t,e,r,n){let[i,s,o,a]=TD(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 tp={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"},jy={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]},SD=tp.hanidec.replace(/[\[|\]]/g,"").split("");function _D(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(tp.hanidec)!==-1)e+=SD.indexOf(t[r]);else for(let i in jy){let[s,o]=jy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${tp[t||"latn"]}${e}`)}var ID="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(_D(r))}}var OD=String.fromCharCode(160),VE=`[ ${OD}]`,qE=new RegExp(VE,"g");function xD(t){return t.replace(/\./g,"\\.?").replace(qE,VE)}function Hy(t){return t.replace(/\./g,"").replace(qE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(xD).join("|")),deser:([r])=>t.findIndex(n=>Hy(r)===Hy(n))+e}}function Yy(t,e){return{regex:t,deser:([,r,n])=>ku(r,n),groups:e}}function vd(t){return{regex:t,deser:([e])=>e}}function RD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function wD(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(RD(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,Hd);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 vd(l);case"uu":return vd(a);case"uuu":return ce(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(d,Hd);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 Yy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Yy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return vd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:ID};return g.token=t,g}var bD={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 DD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=bD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function CD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function vD(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 ND(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=Kd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Nd=null;function PD(){return Nd||(Nd=_e.fromMillis(1555555555555)),Nd}function UD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=jE(r,e);return n==null||n.includes(void 0)?t:n}function WE(t,e){return Array.prototype.concat(...t.map(r=>UD(r,e)))}function QE(t,e,r){let n=WE(tt.parseFormat(r),t),i=n.map(o=>wD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=CD(i),u=RegExp(o,"i"),[c,l]=vD(e,u,a),[d,m,p]=l?ND(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 LD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=QE(t,e,r);return[n,i,s,o]}function jE(t,e){return t?tt.create(e,t).formatDateTimeParts(PD()).map(i=>DD(i,t)):null}var HE=[0,31,59,90,120,151,181,212,243,273,304,334],YE=[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 KE(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}function JE(t,e,r){return r+(Ao(t)?YE:HE)[e-1]}function zE(t,e){let r=Ao(t)?YE:HE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Yd(t){let{year:e,month:r,day:n}=t,i=JE(e,r,n),s=KE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Uu(a)):o>Uu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Fu(t)}}function Ky(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=KE(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}=zE(a,o);return{year:a,month:u,day:c,...Fu(t)}}function Pd(t){let{year:e,month:r,day:n}=t,i=JE(e,r,n);return{year:e,ordinal:i,...Fu(t)}}function Jy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=zE(e,r);return{year:e,month:n,day:i,...Fu(t)}}function MD(t){let e=Mu(t.weekYear),r=nr(t.weekNumber,1,Uu(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 kD(t){let e=Mu(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=Mu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,Pu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function XE(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 Ud="Invalid DateTime",zy=864e13;function Ru(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Ld(t){return t.weekData===null&&(t.weekData=Yd(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 eT(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 Du(t,e,r){return eT(zd(t),e,r)}function Xy(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,Pu(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=zd(s),[u,c]=eT(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 wu(t,e,r=!0){return t.isValid?tt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Md(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 eE(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 tT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},FD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},BD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},rT=["year","month","day","hour","minute","second","millisecond"],GD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],$D=["year","ordinal","hour","minute","second","millisecond"];function tE(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 Cu(t);return e}function rE(t,e){let r=Ur(e.zone,ye.defaultZone),n=Se.fromObject(e),i=ye.now(),s,o;if(ne(t.year))s=i;else{for(let c of rT)ne(t[c])&&(t[c]=tT[c]);let a=ZE(t)||XE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=Du(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function nE(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Jd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function iE(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:Ru(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||Se.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]=iE(arguments),[n,i,s,o,a,u,c]=r;return rE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=iE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,rE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=pb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Ur(r.zone,ye.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(Ru(i))}static fromMillis(e,r={}){if(Vn(e))return e<-zy||e>zy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Vn(e))return new t({ts:e*1e3,zone:Ur(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ur(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(Ru(n));let i=ye.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Lu(e,tE),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Se.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=GD,g=FD,E=Yd(E)):a?(f=$D,g=BD,E=Pd(E)):(f=rT,g=tT);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?MD(o):a?kD(o):ZE(o),S=_||XE(o);if(S)return t.invalid(S);let M=p?Ky(o):a?Jy(o):o,[T,I]=Du(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]=tD(e);return mo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=rD(e);return mo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=nD(e);return mo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=LD(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]=lD(e);return mo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=jE(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return WE(tt.parseFormat(e),Se.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?Ld(this).weekYear:NaN}get weekNumber(){return this.isValid?Ld(this).weekNumber:NaN}get weekday(){return this.isValid?Ld(this).weekday:NaN}get ordinal(){return this.isValid?Pd(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 Pu(this.year,this.month)}get daysInYear(){return this.isValid?yo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Uu(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=Ur(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]=Du(o,s,e)}return fo(this,{ts:i,zone:e})}else return t.invalid(Ru(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=Lu(e,tE),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=Ky({...Yd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Pu(c.year,c.month),c.day))):c=Jy({...Pd(this.c),...r});let[l,d]=Du(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,Xy(this,r))}minus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e).negate();return fo(this,Xy(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):Ud}toLocaleString(e=vu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Ud}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=Md(this,o);return a+="T",a+=eE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Md(this,e==="extended"):null}toISOWeekDate(){return wu(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":"")+eE(this,o==="extended",r,e,n,s):null}toRFC2822(){return wu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return wu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Md(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")),wu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ud}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=fb(r).map(be.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=AD(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),nE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?nE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Ye("min requires all arguments be DateTimes");return Vy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return Vy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return QE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return vu}static get DATE_MED(){return sE}static get DATE_MED_WITH_WEEKDAY(){return Jw}static get DATE_FULL(){return oE}static get DATE_HUGE(){return aE}static get TIME_SIMPLE(){return uE}static get TIME_WITH_SECONDS(){return cE}static get TIME_WITH_SHORT_OFFSET(){return lE}static get TIME_WITH_LONG_OFFSET(){return dE}static get TIME_24_SIMPLE(){return pE}static get TIME_24_WITH_SECONDS(){return fE}static get TIME_24_WITH_SHORT_OFFSET(){return mE}static get TIME_24_WITH_LONG_OFFSET(){return hE}static get DATETIME_SHORT(){return gE}static get DATETIME_SHORT_WITH_SECONDS(){return yE}static get DATETIME_MED(){return EE}static get DATETIME_MED_WITH_SECONDS(){return TE}static get DATETIME_MED_WITH_WEEKDAY(){return zw}static get DATETIME_FULL(){return AE}static get DATETIME_FULL_WITH_SECONDS(){return SE}static get DATETIME_HUGE(){return _E}static get DATETIME_HUGE_WITH_SECONDS(){return IE}};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 Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var VD="3.2.1";st.DateTime=_e;st.Duration=be;st.FixedOffsetZone=it;st.IANAZone=sr;st.Info=$n;st.Interval=qn;st.InvalidZone=Nu;st.Settings=ye;st.SystemZone=To;st.VERSION=VD;st.Zone=Lr});var sT=H((oQ,iT)=>{"use strict";var Wn=nT();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))}iT.exports=z});var uT=H((aQ,aT)=>{"use strict";function Qn(t){return{start:t,count:1}}function oT(t,e){t.end=e,t.step=e-t.start,t.count=2}function rp(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 qD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(rp(e,r,Qn(i)),r=void 0):r?r.count===1?oT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Qn(r.start)),r=Qn(r.end),oT(r,i)):(rp(e,r),r=Qn(i)):r=Qn(i)}return rp(e,r),e}aT.exports=qD});var lT=H((uQ,cT)=>{"use strict";var WD=uT();function QD(t,e,r){var n=WD(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(",")}cT.exports=QD});var fT=H((cQ,pT)=>{"use strict";var jn=sT(),jD=lT(),dT=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<dT;){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>=dT)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(jD(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||{})};pT.exports=U});var hT=H((lQ,mT)=>{"use strict";var Bu=fT();function Mr(){}Mr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Bu.parse(e)};if(r.length>6)return{interval:Bu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Mr.parseExpression=function(e,r){return Bu.parse(e,r)};Mr.fieldsToExpression=function(e,r){return Bu.fieldsToExpression(e,r)};Mr.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=Mr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Mr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Mr.parseString(i.toString()))})};mT.exports=Mr});var xF={};v(xF,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>Op,BadRequestError:()=>Dc,BudibaseError:()=>hs,Config:()=>Cp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>bp,DEFAULT_EXPENSES_TABLE_ID:()=>wp,DEFAULT_INVENTORY_TABLE_ID:()=>Rp,DEFAULT_JOBS_TABLE_ID:()=>xp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,Duration:()=>we,DurationType:()=>em,EmailUnavailableError:()=>hr,ErrorCode:()=>Nc,FeatureDisabledError:()=>vc,GlobalRole:()=>Dp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>Rr,InvalidAPIKeyError:()=>gs,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>DT,NotFoundError:()=>bc,RedisClient:()=>qe,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Ip,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UsageLimitError:()=>Cc,UserStatus:()=>Yu,ViewName:()=>Br,accounts:()=>li,auth:()=>hh,blacklist:()=>Th,cache:()=>Ca,configs:()=>nn,constants:()=>vp,context:()=>Ae,db:()=>qr,docIds:()=>ff,docUpdates:()=>Sh,encryption:()=>ph,env:()=>h,errors:()=>Uc,events:()=>As,features:()=>nh,getPublicError:()=>Pc,init:()=>OF,installation:()=>Qc,locks:()=>ci,logging:()=>Sc,middleware:()=>mh,objectStore:()=>Df,permissions:()=>eh,platform:()=>la,plugins:()=>yh,queue:()=>_m,redis:()=>Eh,roles:()=>ym,security:()=>Bm,sessions:()=>Zc,setEnv:()=>bo,sql:()=>Ch,tenancy:()=>IF,timers:()=>Ho,userUtils:()=>Em,users:()=>Ss,utils:()=>ls,withEnv:()=>LT});module.exports=PI(xF);var nn={};v(nn,{analyticsEnabled:()=>Vc,generateConfigID:()=>nl,getAIConfig:()=>KM,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Km,getGoogleConfig:()=>il,getGoogleDatasourceConfig:()=>Zm,getOIDCConfig:()=>jM,getOIDCConfigById:()=>Xm,getOIDCLogosDoc:()=>WM,getPlatformUrl:()=>Ma,getSCIMConfig:()=>YM,getSMTPConfig:()=>HM,getSMTPConfigDoc:()=>L_,getSettingsConfig:()=>zm,getSettingsConfigDoc:()=>Hc,save:()=>VM});var UI=["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"],Nh=[...UI],Ph={"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 wl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(wl||{}),bl=(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))(bl||{}),Va=(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))(Va||{});var Dl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Dl||{});var LI=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 qa(t){return Object.values(Ti).includes(t)}function Uh(t){return Object.values(Or).includes(t)}function Lh(t){return Object.values(Kt).includes(t)}function Cl(t){return Object.values(dn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Mh=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 kh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var RB={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 Wa=(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))(Wa||{});var Qa=t=>t.hosting==="cloud";var ja=t=>t.authType==="sso";var N="_",Fe="\uFFF0",xr=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||{}),fG=Object.values(he).sort((t,e)=>e.length-t.length);var Rr=(e=>(e.USER_METADATA="ta_users",e))(Rr||{}),vl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(vl||{}),mG=Object.values(vl).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||{}),Fh=[...Object.values(de),...Object.values(It)];var Nl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Nl||{});var Pl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Pl||{});var Ul="bb_internal";var Bh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ha(t){return!!t.providerType}var Ll=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ll||{});var C$=Object.values(Ll);var L$=["rows","queries","automations"],M$=["queries","automations"];var fn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(fn||{}),Ya=(r=>(r.STRING="string",r.NUMBER="number",r))(Ya||{});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 kl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(kl||(kl={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),wr=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"]),BI=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}},Vh=Ii;function GI(t){Vh=t}function Ka(){return Vh}var Ja=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},$I=[];function P(t,e){let r=Ka(),n=Ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),Fl=t=>t.status==="aborted",Bl=t=>t.status==="dirty",vs=t=>t.status==="valid",Ns=t=>typeof Promise<"u"&&t instanceof Promise;function za(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 qh(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}},Gh=(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 wr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:wr(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:wr(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:wr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Gh(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:wr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ns(i)?i:Promise.resolve(i));return Gh(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 Cr.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}},VI=/^c[^\s-]{8,}$/i,qI=/^[0-9a-z]+$/,WI=/^[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,jI=/^[a-z0-9_-]{21}$/i,HI=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,YI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,KI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ml,JI=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,zI=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ZI=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Wh="((\\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])))",XI=new RegExp(`^${Wh}$`);function Qh(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 eO(t){return new RegExp(`^${Qh(t)}$`)}function jh(t){let e=`${Wh}T${Qh(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 tO(t,e){return!!((e==="v4"||!e)&&JI.test(t)||(e==="v6"||!e)&&zI.test(t))}var br=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")YI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ml||(Ml=new RegExp(KI,"u")),Ml.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")jI.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")VI.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")qI.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")WI.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"?jh(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"?XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?eO(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"?HI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?tO(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"?ZI.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}};br.create=t=>{var e;return new br({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function rO(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"?rO(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 Dr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Be(e.data)}};Dr.create=t=>new Dr({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 je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(Si(n))}return new je({...t._def,shape:()=>e})}else return t instanceof 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 je=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==k.object){let c=this._getOrReturnCtx(e);return P(c,{code:O.invalid_type,expected:k.object,received:c.parsedType}),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 Hh(te.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var 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 Gl(t,e){let r=wr(t),n=wr(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=Gl(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=Gl(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(Fl(s)||Fl(o))return J;let a=Gl(s.value,o.value);return a.valid?((Bl(s)||Bl(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 Xa=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:br.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 eu=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 Ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ka(),Ii].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return Ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ka(),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 Cr){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 Hh(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(za(this,Ds,"f")||qh(this,Ds,new Set(this._def.values),"f"),!za(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=Hh;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(za(this,Cs,"f")||qh(this,Cs,new Set(te.getValidEnumValues(this._def.values)),"f"),!za(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 Cr=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})))}};Cr.create=(t,e)=>new Cr({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 nO=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 Yh(t,e={},r){return t?Dr.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})}}):Dr.create()}var iO={object:je.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var sO=(t,e={message:`Input not instance of ${t.name}`})=>Yh(r=>r instanceof t,e),Kh=br.create,Jh=mn.create,oO=bi.create,aO=hn.create,zh=gn.create,uO=yn.create,cO=Oi.create,lO=En.create,dO=Tn.create,pO=Dr.create,fO=zt.create,mO=Ot.create,hO=xi.create,gO=Zt.create,yO=je.create,EO=je.strictCreate,TO=An.create,AO=Za.create,SO=Sn.create,_O=Gt.create,IO=Xa.create,OO=Ri.create,xO=wi.create,RO=eu.create,wO=_n.create,bO=In.create,DO=On.create,CO=xn.create,vO=Cr.create,$h=Ze.create,NO=pt.create,PO=$t.create,UO=Ze.createWithPreprocess,LO=Us.create,MO=()=>Kh().optional(),kO=()=>Jh().optional(),FO=()=>zh().optional(),BO={string:t=>br.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})},GO=J,ee=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:GI,getErrorMap:Ka,makeIssue:Ja,EMPTY_PATH:$I,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:Be,isAborted:Fl,isDirty:Bl,isValid:vs,isAsync:Ns,get util(){return te},get objectUtil(){return kl},ZodParsedType:k,getParsedType:wr,ZodType:X,datetimeRegex:jh,ZodString:br,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Oi,ZodUndefined:En,ZodNull:Tn,ZodAny:Dr,ZodUnknown:zt,ZodNever:Ot,ZodVoid:xi,ZodArray:Zt,ZodObject:je,ZodUnion:An,ZodDiscriminatedUnion:Za,ZodIntersection:Sn,ZodTuple:Gt,ZodRecord:Xa,ZodMap:Ri,ZodSet:wi,ZodFunction:eu,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:Cr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:wn,ZodNaN:bi,BRAND:nO,ZodBranded:Ps,ZodPipeline:Us,ZodReadonly:bn,custom:Yh,Schema:X,ZodSchema:X,late:iO,get ZodFirstPartyTypeKind(){return Y},coerce:BO,any:pO,array:gO,bigint:aO,boolean:zh,date:uO,discriminatedUnion:AO,effect:$h,enum:DO,function:RO,instanceof:sO,intersection:SO,lazy:wO,literal:bO,map:OO,nan:oO,nativeEnum:CO,never:mO,null:dO,nullable:PO,number:Jh,object:yO,oboolean:FO,onumber:kO,optional:NO,ostring:MO,pipeline:LO,preprocess:UO,promise:vO,record:IO,set:xO,strictObject:EO,string:Kh,symbol:cO,transformer:$h,tuple:_O,undefined:lO,union:TO,unknown:fO,void:hO,NEVER:GO,ZodIssueCode:O,quotelessJson:BI,ZodError:ze});var iu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Zh=ee.record(iu,ee.string()),tu=ee.record(iu,ee.any()),ru=ee.record(iu,ee.union([ee.any().array(),ee.string()])),Xh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(eg))})),nu=ee.union([ee.string(),ee.number()]),eg={string:Zh.optional(),fuzzy:Zh.optional(),range:ee.record(iu,ee.union([ee.object({high:nu,low:nu}),ee.object({high:nu}),ee.object({low:nu})])).optional(),equal:tu.optional(),notEqual:tu.optional(),empty:tu.optional(),notEmpty:tu.optional(),oneOf:ru.optional(),contains:ru.optional(),notContains:ru.optional(),containsAny:ru.optional(),$and:Xh.optional(),$or:Xh.optional()},bV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ai).optional(),...eg}).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(Ya).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var vp={};v(vp,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>Op,Config:()=>Cp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>bp,DEFAULT_EXPENSES_TABLE_ID:()=>wp,DEFAULT_INVENTORY_TABLE_ID:()=>Rp,DEFAULT_JOBS_TABLE_ID:()=>xp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,GlobalRole:()=>Dp,Header:()=>Xe,InternalTable:()=>Rr,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>DT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Ip,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UserStatus:()=>Yu,ViewName:()=>Br});var Gq={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 Wq={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 Jq="darkest",zq="light",qO=[{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"}},tg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Di="datasource_internal_bb_default";var kr={};v(kr,{ColumnSplitter:()=>cp,NoEmptyFilterStrings:()=>_T,buildQuery:()=>IT,cleanupQuery:()=>pp,fixupFilterArrays:()=>mp,getKeyNumbering:()=>fp,getValidOperatorsForType:()=>pC,hasFilters:()=>lp,limit:()=>xT,recurseLogicalOperators:()=>dp,removeKeyNumbering:()=>su,runQuery:()=>Gu,search:()=>hC,sort:()=>OT,splitFiltersArray:()=>ou});var Qi=Q(rg());var Ci={};v(Ci,{filterValueToLabel:()=>KO,hasSchema:()=>JO,isSupportedUserSearch:()=>ig,parallelForeach:()=>YO,processSearchFilters:()=>ql,trimOtherProps:()=>zO,unreachable:()=>HO});var ng=Q(require("lodash")),jO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function HO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function YO(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function KO(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function JO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function zO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function ig(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(qa(s)){for(let c of t[s].conditions)if(!ig(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function ql(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ou(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=ng.default.pick(i,jO);return s.field=su(s.field),s})}]}}var jt={};v(jt,{cancelableTimeout:()=>sg,cron:()=>np,deepGet:()=>Wl,getUserColor:()=>XO,getUserInitials:()=>ZO,getUserLabel:()=>ex,isGoogleSheets:()=>rx,isSQL:()=>nx,lists:()=>up,retry:()=>ix,roles:()=>ap,schema:()=>Io,views:()=>op,wait:()=>Ql,withTimeout:()=>tx});var Wl=(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},ZO=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"},XO=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%)`},ex=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function sg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function tx(t,e){let[r,n]=sg(t),i=await Promise.race([e(),r]);return n(),i}function rx(t){return t==="GOOGLE_SHEETS"}function nx(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 ix(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 np={};v(np,{getNextExecutionDates:()=>KD,validate:()=>JD});var yT=Q(Vt()),ET=Q(hT()),gT="(Input cron: ",HD={"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 YD(t){let e=[];for(let r of t){r.includes(gT)&&(r=r.split(gT)[0].trim());for(let[n,i]of Object.entries(HD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function KD(t,e=4){let r=ET.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function JD(t){let e=(0,yT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:YD(e.getError())}}var Io={};v(Io,{decodeNonAscii:()=>ip,encodeNonAscii:()=>XD,isDeprecatedSingleUserColumn:()=>zD,isNumeric:()=>eC,isRequired:()=>ZD});function zD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function ZD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function XD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function ip(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function eC(t){return t.type==="number"||t.type==="bigint"}var op={};v(op,{basicFields:()=>sC,calculationFields:()=>iC,hasCalculationFields:()=>nC,isBasicViewField:()=>tC,isCalculationField:()=>Oo,isCalculationView:()=>rC,isV2:()=>oC,isVisible:()=>TT});var sp=require("lodash");function Oo(t){return"calculationType"in t}function tC(t){return!Oo(t)}function rC(t){return t.type==="calculation"}function nC(t){return Object.values(t.schema||{}).some(Oo)}function iC(t){return(0,sp.pickBy)(t.schema||{},Oo)}function TT(t){return t.visible!==!1}function sC(t,e){let{visible:r=!0}=e||{};return(0,sp.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||TT(n)))}function oC(t){return t.version===2}var ap={};v(ap,{checkForRoleInheritanceLoops:()=>uC});function aC(t){return`role${N}${t}`}function uC(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=aC(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 up={};v(up,{punctuateList:()=>cC});function cC(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 lC=/{{([^{].*?)}}/g,ST=Object.values(Ti),dC=[...Object.values(Or),...Object.values(Kt),...Object.values(dn)],pC=(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},_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 dp(t,e){for(let r of ST)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var pp=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===""||fC(s))&&delete t[e][i]}return t=dp(t,pp),t};function fC(t){return Array.isArray(t)&&t.length===0}var su=t=>fp(t).key,fp=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}},cp=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}=fp(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=ip(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function mC(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(lC)||[]).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(Cl(r)){let c=tg[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(Uh(r)||Lh(r)||Cl(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 ou(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 IT(t){if(!t)return{};if(Array.isArray(t)&&(t=ql(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=AT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=IT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=ou(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=AT(n.logicalOperator)),{[a]:{conditions:o.map(mC).filter(u=>u)}}})},e}function AT(t){return t==="all"?"$and":"$or"}function mp(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 dp(t,mp),t}function hC(t,e){let r=Gu(t,e.query);e.sort&&(r=OT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=xT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Gu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=pp(e),e=mp(e),!lp(e)&&e.onEmptyFilter==="none")return[];let r=(T,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=qa(T)?x:Wl(x,su(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(!Gu([T],x).length)return!1;return!0}),S=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if(Gu([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 lp(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 xT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var lp=t=>{if(!t)return!1;let e=r=>{for(let n of ST)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of dC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var ot={};v(ot,{applications:()=>gp,automations:()=>yp,screens:()=>_p,users:()=>Sp});var gp={};v(gp,{getDevAppID:()=>gC,getProdAppID:()=>$u});var hp=xr("app"),xo=xr("app_dev");function gC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(xo))return t;let e=t.split(hp);e.shift();let r=e.join(hp);return`${xo}${r}`}function $u(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`${hp}${r}`}var yp={};v(yp,{isAppAction:()=>TC,isRowAction:()=>yC,isWebhookAction:()=>EC});function yC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function EC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function TC(t){return t.definition.trigger?.stepId==="APP"}var Sp={};v(Sp,{canCreateApps:()=>AC,containsUserID:()=>RC,getGlobalUserID:()=>xC,getUserAppGroups:()=>wC,getUserGroups:()=>Ap,hasAdminPermissions:()=>Tp,hasAppBuilderPermissions:()=>Wu,hasAppCreatorPermissions:()=>RT,hasBuilderPermissions:()=>IC,hasCreatorPermissions:()=>Qu,isAdmin:()=>qu,isAdminOrBuilder:()=>SC,isAdminOrGlobalBuilder:()=>_C,isBuilder:()=>Ep,isCreator:()=>OC,isGlobalBuilder:()=>Vu,userAppAccessList:()=>bC});var Fr=Q(require("lodash/fp"));function Ep(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes($u(e))):!1}function Vu(t){return Ep(t)&&!Wu(t)||qu(t)}function AC(t){return Vu(t)||Qu(t)}function qu(t){return t?Tp(t):!1}function SC(t,e){return Ep(t,e)||qu(t)}function _C(t){return Vu(t)||qu(t)}function Wu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function RT(t){return t?Fr.flow(Fr.get("roles"),Fr.values,Fr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function IC(t){return t?t.builder?.global||Wu(t)||Qu(t):!1}function Tp(t){return t?!!t.admin?.global:!1}function Qu(t){return t?!!t.builder?.creator:!1}function OC(t){return t?Vu(t)||Tp(t)||Qu(t)||Wu(t)||RT(t):!1}function xC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function RC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function Ap(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function wC(t,e,r){let n=$u(t);return Ap(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function bC(t,e){let n=Ap(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var _p={};v(_p,{findInSettings:()=>DC});function DC(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 sj={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},oj={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!0,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},aj={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 hj={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 Ej={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 Sj={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 Oj={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 wj={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 Cj={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 Pj={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 Mj={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 Bj={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 Vj={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 GC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},Qj={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(Nl),pretty:Object.values(GC)},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 Yj={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 zj={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var eH={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Pl)},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 wT=(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))(wT||{}),nH={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(wT)}},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 bT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(bT||{}),oH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(bT),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 HC={ascending:"Ascending",descending:"Descending"},cH={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(HC)},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 pH={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 hH={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 EH={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 SH={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 OH={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 wH={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 rv={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 iv={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 ov={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 uv={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 lv={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 pv={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 mv={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 ju=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(ju||{}),Br=(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))(Br||{}),Hi={by_email2:["by_email"]},Ee={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},yt=xr("app"),Hu=xr("app_dev"),Et=Hu,Ip="internal",Op="budibase",or="_design/sqlite",xp="ta_bb_jobs",Rp="ta_bb_inventory",wp="ta_bb_expenses",bp="ta_bb_employee";var Yu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Yu||{}),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||{}),Dp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Dp||{}),Cp=(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))(Cp||{}),DT=new Date(-2147483647e3),Ku=new Date(2147483647e3),Te="default";var Ca={};v(Ca,{CacheKey:()=>Ce,TTL:()=>si,app:()=>uf,bustCache:()=>us,destroy:()=>sa,docWritethrough:()=>Ym,generic:()=>oa,get:()=>oi,invite:()=>am,keys:()=>_c,passwordReset:()=>jm,store:()=>mr,user:()=>sn,withCache:()=>Jr,withCacheWithDynamicTTL:()=>hS,writethrough:()=>Qm});var oa={};v(oa,{CacheKey:()=>Ce,TTL:()=>si,bustCache:()=>us,destroy:()=>sa,get:()=>oi,keys:()=>_c,store:()=>mr,withCache:()=>Jr,withCacheWithDynamicTTL:()=>hS});var Ae={};v(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Po,doInAppContext:()=>zv,doInAppMigrationContext:()=>Xv,doInAutomationContext:()=>Yv,doInContext:()=>Jp,doInEnvironmentContext:()=>tN,doInIPContext:()=>Xp,doInIdentityContext:()=>wo,doInScimContext:()=>rN,doInSelfHostTenantUsingCloud:()=>Kv,doInTenant:()=>Ve,ensureSnippetContext:()=>XT,getAppDB:()=>es,getAppId:()=>Ue,getAuditLogDBName:()=>JT,getAuditLogsDB:()=>iN,getAutomationId:()=>zp,getCurrentContext:()=>ts,getDevAppDB:()=>oN,getEnvironmentVariables:()=>nN,getFeatureFlags:()=>ef,getGlobalDB:()=>ie,getGlobalDBName:()=>ur,getIP:()=>Zp,getIdentity:()=>ar,getPlatformURL:()=>Kp,getProdAppDB:()=>sN,getProdAppId:()=>eN,getScimDBName:()=>Wv,getSelfHostCloudDB:()=>Jv,getTableForView:()=>aN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>Vr,isScim:()=>Pt,isSelfHostUsingCloud:()=>zT,isTenancyEnabled:()=>jv,isTenantIdSet:()=>Qv,setFeatureFlags:()=>tf,setTableForView:()=>uN});var Ro={};v(Ro,{doInAccountContext:()=>Ev,doInIdentityContext:()=>Pp,doInUserContext:()=>Up,getAccountUserId:()=>CT,getIdentity:()=>Np});function Np(){return ar()}function Pp(t,e){return wo(t,e)}function Up(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Pp(n,r)}function Ev(t,e){let r=CT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Pp(i,e)}function CT(t){let e;return Qa(t)?e=t.budibaseUserId:e=t.accountId,e}var Zu=require("fs");var PT=require("lodash"),Lp=require("crypto");function Mp(){return UT()}function UT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function zu(){return process.env.NODE_ENV!=="production"}function Tv(t){if(t)return parseInt(t)}var vT=!1;!vT&&zu()&&!Mp()&&(require("dotenv").config(),vT=!0);var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},NT=!!parseInt(process.env.SELF_HOSTED||"");function Av(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Sv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function _v(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Zu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Zu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(zu()&&!Mp())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 Iv(){return vt.SERVICE_TYPE==="worker"}function Ov(){return vt.SERVICE_TYPE==="apps"}function xv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Mp,isJest:UT,isDev:zu,isWorker:Iv,isApps:Ov,isQA:xv,isProd:()=>!zu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Lp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Lp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Av(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:NT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||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:Sv(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:NT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,..._v(),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:Tv(process.env.BSON_BUFFER_SIZE)};function bo(t){let e=(0,PT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function LT(t,e){let r=bo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var MT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var kT=require("async_hooks"),De=class t{static{this.storage=new kT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var kp="No app provided";function Gr(t){if(!t)throw kp;return t.startsWith(Et)}function Rv(t){if(!t)throw kp;return t.startsWith(yt)&&!Gr(t)}function Do(t){if(!t)throw kp;return Gr(t.appId)}function Xu(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var wv=Xu;function at(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function bv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=Fp(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:Fp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Fp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var YT=Q(require("@budibase/nano"));var FT=Q(require("node-fetch"));function ec(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function BT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await 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,FT.default)(ec(encodeURI(t)),i)}async function tc(t,e="GET",r){let n=await BT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=Q(require("pouchdb"));var GT,$T=!1,Bp=(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 rc(t){GT=Bp(t),$T=!0}var Cv=()=>{if(!$T)throw new Error("init has not been called")};function Tt(t,e){Cv();let r=new GT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function vo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var VT=require("uuid");function Ie(){return(0,VT.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 jp={};v(jp,{breakExternalTableId:()=>Vp,breakRowIdField:()=>$v,buildExternalTableId:()=>Lv,convertRowId:()=>Gv,encodeTableId:()=>Mv,encodeViewId:()=>kv,generateRowIdField:()=>Fv,getNativeSql:()=>zi,isExternalTable:()=>$p,isExternalTableID:()=>nc,isInternalTableID:()=>Uv,isInvalidISODateString:()=>qp,isRowId:()=>Bv,isValidFilter:()=>sc,isValidISODateString:()=>ic,isValidTime:()=>Wp,sqlLog:()=>No,validateManyToMany:()=>Qp});var Gp=`${N}${N}`,WT=/^\[.*]$/g,vv=encodeURIComponent(" "),Nv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Pv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function nc(t){return t.startsWith("datasource"+N)}function Uv(t){return!nc(t)}function zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function $p(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&nc(t._id))}function Lv(t,e){return`${t}${Gp}${encodeURIComponent(e)}`}function Mv(t){return nc(t)?encodeURIComponent(t):t}function kv(t){return encodeURIComponent(t)}function Vp(t){let e=t.split(Gp),r=e.shift(),n=e.join(Gp);if(n.includes(vv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Fv(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 Bv(t){return Array.isArray(t)||typeof t=="string"&&t.match(WT)!=null}function Gv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(WT)!=null?t.substring(1,t.length-1):t}function $v(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function ic(t){let e=t.trim();if(!Nv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function qp(t){return!ic(t)}function sc(t){return t!=null&&t!==""}function Wp(t){return Pv.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 Vv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Qp(t){if(Vv(t))return t}var QT="Database does not exist.";function jT(t){return(0,YT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var $r=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 qv(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=jT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=jT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await 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 $r(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===QT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new $r(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new $r(`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(Mh(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 $r(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===QT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=ec(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await 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 $r("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 $r(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 $e(t,e){return new Ji(new Zi(t,e))}async function ut(t,e,r){let n=$e(t,r);return await e(n)}async function Hp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await tc(e)}async function Yp(t,e){let r=await tc(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var KT=null;function ur(t){return t||(t=j()),Po(t)}function JT(t){return t||(t=j()),t===Te?Ee.AUDIT_LOGS.name:`${t}${N}${Ee.AUDIT_LOGS.name}`}function Wv(t){return t||(t=j()),t===Te?Ee.SCIM_LOGS.name:`${t}${N}${Ee.SCIM_LOGS.name}`}function Po(t){return!t||t===Te?Ee.GLOBAL.name:`${t}${N}${Ee.GLOBAL.name}`}function Kp(){return h.PLATFORM_URL}function Vr(){return!!h.MULTI_TENANCY}function Qv(){return!!De.get()?.tenantId}function jv(){return h.MULTI_TENANCY}function Xi(t){if(!t)return;if(!Vr())return Te;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 Hv(t){let e;try{e=De.get()}catch{e={}}return e={...e,...t},e}async function cr(t,e){Zv();let r=Hv(t);return De.run(r,e)}async function Yv(t){return await XT(),await cr({tenantId:Xi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Jp(t,e){let r=Xi(t);return cr({tenantId:r,appId:t},e)}async function Ve(t,e){return h.MULTI_TENANCY||(t=t||Te),cr(t?{tenantId:t}:{},e)}async function Kv(t,e){return cr({tenantId:t,isSelfHostUsingCloud:!0},e)}function zT(){return!!De.get()?.isSelfHostUsingCloud}function Jv(){let t=De.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return $e(Ee.SELF_HOST_CLOUD.name)}async function zv(t,e){return ZT(t,e)}async function ZT(t,e,r){if(!t)throw new Error("appId is required");let n=Xi(t),i={appId:t,...r};return n&&(i.tenantId=n),cr(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),cr(r,e)}function Zv(){if(De.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function Xv(t,e){return ZT(t,e,{isMigrating:!0})}function ar(){try{return De.get()?.identity}catch{}}function j(){if(!Vr())return Te;let e=De.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function zp(){return De.get()?.automationId}function Ue(){let e=De.get()?.appId;return!e&&h.isTest()&&KT?KT:e}function Zp(){return De.get()?.ip}var eN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function tN(t,e){if(!t)throw new Error("Must supply environment variables.");return cr({environmentVariables:t},e)}function rN(t){return cr({isScim:!0},t)}function Xp(t,e){return cr({ip:t},e)}async function XT(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 nN(){let t=De.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=De.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return $e(Po(t?.tenantId))}function iN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return $e(JT())}function es(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(zT())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return $e(e,t)}function sN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return $e(at(e),t)}function oN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return $e(Xu(e),t)}function Pt(){return!!De.get()?.isScim}function ts(){try{return De.get()}catch{return}}function ef(t){let e=ts();if(e)return e.featureFlagCache?.[t]}function tf(t,e){let r=ts();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function aN(t){let e=ts();if(e)return e.viewToTableCache?.[t]}function uN(t,e){let r=ts();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Kr={};v(Kr,{getAppClient:()=>fc,getCacheClient:()=>Vf,getDocWritethroughClient:()=>dP,getInviteClient:()=>ri,getLockClient:()=>Wf,getPasswordResetClient:()=>ia,getSessionClient:()=>Yr,getSocketClient:()=>lP,getUserClient:()=>na,getWritethroughClient:()=>qf,init:()=>Lt,shutdown:()=>mS});var pS=Q(require("ioredis"));var uc={};v(uc,{Databases:()=>rf,SEPARATOR:()=>rs,SelectableDatabase:()=>oc,addDbPrefix:()=>Ke,getRedisConnectionDetails:()=>ac,getRedisOptions:()=>ns,removeDbPrefix:()=>nf});var cN=2e3,eA=1e4,rs="-",rf=(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))(rf||{}),oc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(oc||{});function ac(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function ns(){let{host:t,password:e,port:r}=ac(),n={connectTimeout:eA,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:eA,redisOptions:{...n,tls:{}},slotsRefreshTimeout:cN,dnsLookup:(s,o)=>o(null,s)}),i}function Ke(t,e){return e.includes(t)?e:`${t}${rs}${e}`}function nf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var Sc={};v(Sc,{correlation:()=>Uo,logAlert:()=>Xn,logAlertWithInfo:()=>iP,logWarn:()=>as,logger:()=>Ac,system:()=>Nf});var Uo={};v(Uo,{getId:()=>sf,setHeader:()=>lN});var tA=require("correlation-id"),lN=t=>{let e=tA.getId();e&&(t["x-budibase-correlation-id"]=e)};function sf(){return tA.getId()}var Tc=Q(require("pino")),lS=Q(require("pino-pretty"));var Pf=Q(require("dd-trace")),dS=require("dd-trace/ext");var Nf={};v(Nf,{getLogReadStream:()=>ZN,getSingleFileMaxSizeInfo:()=>cS,localFileDestination:()=>vf});var qo=Q(require("fs")),Cf=Q(require("path")),sS=Q(require("rotating-file-stream"));var Df={};v(Df,{ObjectStore:()=>Ut,ObjectStoreBuckets:()=>pN,SIGNED_FILE_PREFIX:()=>xf,bucketTTLConfig:()=>cc,budibaseTempDir:()=>Kn,clientLibraryCDNUrl:()=>QN,clientLibraryPath:()=>zA,clientLibraryUrl:()=>jN,createBucketIfNotExists:()=>Vo,deleteFile:()=>FN,deleteFiles:()=>BN,deleteFolder:()=>YA,downloadTarball:()=>$N,downloadTarballDirect:()=>GN,enrichPluginURLs:()=>KN,extractBucketAndPath:()=>of,getAppFileUrl:()=>HN,getGlobalFileS3Key:()=>ZA,getGlobalFileUrl:()=>YN,getObjectMetadata:()=>VN,getPluginIconKey:()=>tS,getPluginJSKey:()=>eS,getPluginS3Dir:()=>nS,getPresignedUrl:()=>jr,getReadStream:()=>lc,listAllObjects:()=>HA,processAutomationAttachment:()=>mN,processObjectStoreAttachment:()=>oA,retrieve:()=>jA,retrieveDirectory:()=>kN,retrieveToTmp:()=>MN,sanitizeBucket:()=>Je,sanitizeKey:()=>Le,streamUpload:()=>QA,upload:()=>LN,uploadDirectory:()=>Rf});var yc=require("@aws-sdk/client-s3"),Af=require("@aws-sdk/lib-storage"),$A=require("@aws-sdk/s3-request-presigner"),$o=Q(require("stream")),Sf=Q(require("node-fetch")),_f=Q(require("tar-fs")),If=Q(require("zlib")),VA=require("util"),Qr=require("path"),fr=Q(require("fs"));var Lo=Q(require("path")),rA=require("os"),nA=Q(require("fs"));var iA=Q(require("stream")),pN={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},sA=(0,Lo.join)((0,rA.tmpdir)(),".budibase");try{nA.default.mkdirSync(sA)}catch(t){if(t.code!=="EEXIST")throw t}function Kn(){return sA}var cc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function fN(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:iA.default.Readable.fromWeb(e.body)}}async function oA(t){let e=of(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await lc(r,n),s=Lo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function mN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await fN(t):await oA(t)}var Of=require("uuid");var qr={};v(qr,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>Op,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>bp,DEFAULT_EXPENSES_TABLE_ID:()=>wp,DEFAULT_INVENTORY_TABLE_ID:()=>Rp,DEFAULT_JOBS_TABLE_ID:()=>xp,DatabaseImpl:()=>Zi,DatabaseWithConnection:()=>qv,DeprecatedViews:()=>Hi,DocumentType:()=>he,InternalTable:()=>Rr,QueryBuilder:()=>pr,Replication:()=>MA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Ip,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,ViewName:()=>Br,baseGlobalDBName:()=>Po,checkErrorCode:()=>GA,closePouchDB:()=>vo,createApiKeyView:()=>vA,createNewUserEmailView:()=>DA,createPlatformAccountEmailView:()=>PA,createPlatformUserView:()=>UA,createUserAppView:()=>CA,createView:()=>ss,dbExists:()=>xN,directCouchAllDbs:()=>Hp,directCouchCall:()=>BT,directCouchFind:()=>Yp,directCouchQuery:()=>tc,directCouchUrlCall:()=>Co,doWithDB:()=>ut,extractAppUUID:()=>bv,fullSearch:()=>DN,generateAppID:()=>uA,generateAppUserID:()=>mc,generateDevInfoID:()=>hA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>yA,generatePluginID:()=>gA,generateRoleID:()=>lf,generateRowID:()=>cf,generateTableID:()=>cA,generateTemplateID:()=>mA,generateUserMetadataID:()=>pA,generateWorkspaceID:()=>lA,getAllApps:()=>ko,getAllDbs:()=>bA,getAppsByIDs:()=>SN,getCouchInfo:()=>Nt,getDB:()=>$e,getDevAppID:()=>wv,getDevAppIDs:()=>IN,getDevelopmentAppID:()=>Xu,getDocParams:()=>Jn,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>fA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getPouch:()=>Bp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>_N,getQueryIndex:()=>EA,getRoleParams:()=>gc,getRowParams:()=>df,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>xA,getUrlInfo:()=>Fp,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>hc,getWorkspaceParams:()=>IA,init:()=>rc,isDatasourceId:()=>SA,isDevApp:()=>Do,isDevAppID:()=>Gr,isDocumentConflictError:()=>vN,isExternalTableId:()=>pf,isGlobalUserID:()=>dA,isProdAppID:()=>Rv,isQueryId:()=>_A,isSameAppID:()=>ON,isTableId:()=>TA,isViewId:()=>AA,paginatedSearch:()=>bN,pagination:()=>mf,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>yf,queryPlatformView:()=>Bo,queryView:()=>gf,queryViewRaw:()=>Fo,removeKeyNumbering:()=>Go,searchIndexes:()=>Tf});var uf={};v(uf,{AppState:()=>af,getAppMetadata:()=>pc,invalidateAppMetadata:()=>EN});var af=(e=>(e.INVALID="invalid",e))(af||{}),aA=3600,hN=60;async function gN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function yN(t){return!t||t.state==="invalid"}async function pc(t){let e=await fc(),r=await e.get(t);if(!r){let n=aA;try{r=await gN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=hN;else throw i}if(yN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function EN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await fc();await r.delete(t),e&&await r.store(t,e,aA)}var ff={};v(ff,{generateAppID:()=>uA,generateAppUserID:()=>mc,generateDevInfoID:()=>hA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>yA,generatePluginID:()=>gA,generateRoleID:()=>lf,generateRowID:()=>cf,generateTableID:()=>cA,generateTemplateID:()=>mA,generateUserMetadataID:()=>pA,generateWorkspaceID:()=>lA,getDocParams:()=>Jn,getGlobalIDFromUserMetadataID:()=>fA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getQueryIndex:()=>EA,getRoleParams:()=>gc,getRowParams:()=>df,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>xA,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>hc,getWorkspaceParams:()=>IA,isDatasourceId:()=>SA,isExternalTableId:()=>pf,isGlobalUserID:()=>dA,isQueryId:()=>_A,isTableId:()=>TA,isViewId:()=>AA,prefixRoleID:()=>lr});var uA=t=>{let e=yt;return t&&(e+=`${t}${N}`),`${e}${Ie()}`};function cA(){return`ta${N}${Ie()}`}function cf(t,e){return e=e||Ie(),`ro${N}${t}${N}${e}`}function lA(){return`workspace${N}${Ie()}`}function is(t){return`us${N}${t||Ie()}`}var TN=new RegExp(`^us${N}.+`);function dA(t){return TN.test(t)}function pA(t){return cf("ta_users",t)}function fA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function mA(t){return`template${N}${t}${N}${Ie()}`}function mc(t,e){return`${t}${N}${e}`}function lf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return lf(t)}var hA=t=>`devinfo${N}${t}`,gA=t=>`plg${N}${t}`,yA=t=>`oauth2log${N}${t}`;var AN=new RegExp("^datasource_plus_(.+)__(.+)$");function Jn(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${Fe}`}}function df(t,e,r={}){if(t==null)return Jn("ro",null,r);let n=e??`${t}${N}`;return Jn("ro",n,r)}function EA(t){return`database/${t}`}var pf=t=>{let e=t.match(AN);return!!t&&e!==null},TA=t=>!!t&&(t.startsWith(`ta${N}`)||pf(t));function AA(t){return!!t&&t.startsWith(`view${N}`)}function SA(t){return!!t&&t.startsWith(`datasource${N}`)}function _A(t){return!!t&&t.startsWith(`query${N}`)}function IA(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 OA(t,e={}){return df("ta_users",t,e)}function hc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Fe}`}}function xA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${Fe}`}}function gc(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 RA=(t,e={})=>Jn("plg",t,e),wA=(t,e={})=>Jn("oauth2",t,e);async function bA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Hp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Te?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=Te);let o=(await bA({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===Te&&d||l===i}return!1});if(r){let u=o.filter(l=>Gr(l)),c=o.filter(l=>!Gr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>pc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:Do(l)?"development":"published"})):c.filter(l=>t?Do(l):!Do(l))}}async function SN(t){return(await Promise.allSettled(t.map(r=>pc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function _N(){return(await ko({idsOnly:!0})).filter(e=>!Gr(e))}async function IN(){return(await ko({idsOnly:!0})).filter(e=>Gr(e))}function ON(t,e){return t==null||e==null?!1:at(t)===at(e)}async function xN(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function mf(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 hf="_design/database";function RN(){return{_id:hf,views:{}}}async function wN(t,e){if(Hi[e])try{let r=await t.get(hf);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(hf)}catch{n=RN()}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 DA=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
  }
9
- }`;await ss(t,e,"by_email2")},bA=async()=>{let t=ie(),e=`function(doc) {
9
+ }`;await ss(t,e,"by_email2")},CA=async()=>{let t=ie(),e=`function(doc) {
10
10
  if (doc._id.startsWith("us${N}") && doc.roles) {
11
11
  for (let prodAppId of Object.keys(doc.roles)) {
12
12
  let emitted = prodAppId + "${N}" + doc._id
13
13
  emit(emitted, null)
14
14
  }
15
15
  }
16
- }`;await ss(t,e,"by_app")},DA=async()=>{let t=ie(),e=`function(doc) {
16
+ }`;await ss(t,e,"by_app")},vA=async()=>{let t=ie(),e=`function(doc) {
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 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 hf=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 wN(r,t),await n(),Fo(t,e,r,n,i);if(s.status===409)return Fo(t,e,r,n,i);throw s}}var gf=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 NA(t,e){try{await ut(Ee.PLATFORM_INFO.name,async r=>{await ss(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var PA=async()=>{let t=`function(doc) {
21
21
  if (doc._id.startsWith("acc_metadata${N}")) {
22
22
  emit(doc.email.toLowerCase(), doc._id)
23
23
  }
24
- }`;await CA(t,"account_by_email")},NA=async()=>{await CA(`function(doc) {
24
+ }`;await NA(t,"account_by_email")},UA=async()=>{await NA(`function(doc) {
25
25
  if (doc.tenantId) {
26
26
  emit(doc._id.toLowerCase(), doc._id)
27
27
  }
@@ -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 hf(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 hf(t,e,r,i,n)};async function gf(t,e,r){let n=ie(),i=PA[t];return Fo(t,e,n,i,r)}var yf=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=yf;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 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 Ef={};v(Ef,{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 Tf.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 Tf.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,If.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,If.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 xf(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(xf(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,Af.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await VA(n.body,Sf.default.createUnzip(),_f.default.extract(e))}async function kN(t,e,r){e=Je(e),r=Le(r);let n=await(0,Af.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(),_f.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await xf(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 sf(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=Rf(t);return HA.getSignedUrl(e,GN())},Rf=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}`),Rf(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_=Df.default.join(Kn(),"systemlogs");function r_(t){return Df.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 Cf(){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:Cf(),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:nf()};let f=Nf.default.scope().active();f&&Nf.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=Jp()}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 Uf;if(h.MOCK_REDIS)try{Uf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var rP=2e3,nP=5e3,d_=h.REDIS_CLUSTERED,kf=0,Yo=!1,Lf={},ei=!1;h.MOCK_REDIS&&(ei=!0);function Ff(t){return Lf[t]}function Pf(t,e){Yo||(Yo=!0,clearTimeout(t),ei=!1,Xn("Redis connection failed",e),setTimeout(()=>{Bf()},rP))}function Bf(t=kf){let e=h.MOCK_REDIS&&Uf?Uf:l_.default,r;Yo=!1;let n=Ff(t);if(n&&ei)return;h.MOCK_REDIS&&(Lf[t]=new e(ns())),r=setTimeout(()=>{ei||Pf(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()||Pf(r,a)}),n.on("error",a=>{Pf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),ei=!0}),Lf[t]=n}function iP(t=kf){return new Promise(e=>{if(Ff(t)==null)Bf();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:rf(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var Mf=class{constructor(e,r=null){this._db=e,this._select=r||kf}getClient(){return Ff(this._select)}async init(){return Yo=!1,Bf(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:PA,platform_users_lowercase_2:UA};return ut(Ee.PLATFORM_INFO.name,async n=>{let i=r[t];return gf(t,e,n,i,{arrayResponse:!0})})},LA={by_email2:DA,by_api_key:vA,by_app:CA},dr=async(t,e,r,n)=>{r||(r=ie());let i=LA[t];return gf(t,e,r,i,n)};async function yf(t,e,r){let n=ie(),i=LA[t];return Fo(t,e,n,i,r)}var Ef=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()}},MA=Ef;var FA=Q(require("node-fetch"));var Go=kr.removeKeyNumbering;function Zn(t){return t==null||t===""}var pr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=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 kA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await kA(n,i,r);throw s}}};async function kA(t,e,r){let n=await(0,FA.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 BA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=pr.maxLimit;n.limit&&s.length>n.limit-pr.maxLimit&&(o=n.limit-s.length);let a=new pr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<pr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await BA(t,e,r,c)}async function bN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,pr.maxLimit);let s=new pr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function DN(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 BA(t,e,r,n)}}var Tf={};v(Tf,{createUserIndex:()=>CN});async function CN(){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 GA(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 vN(t){return GA(t,409)}var qA=Q(require("fs/promises")),NN=require("sanitize-s3-objectkey"),WA=(0,VA.promisify)($o.default.pipeline),PN={bucketCreationPromises:{}},xf="/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"},UN=[Wr.html,Wr.css,Wr.js,Wr.json];function Le(t){return NN(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 yc.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=PN.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 LN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await qA.default.open(r)).createReadStream():s,c=Ut(),l=await Vo(c,t);if(o&&l.created){let g=cc(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 Af.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=cc(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 Af.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function jA(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(UN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return $o.default.Readable.fromWeb(s)}}async function HA(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,$A.getSignedUrl)(n,new yc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${xf}${a}${u}`}else return s}async function MN(t,e){t=Je(t),e=Le(e);let r=await jA(t,e),n=(0,Qr.join)(Kn(),(0,Of.v4)());return r instanceof $o.default.Readable?r.pipe(fr.default.createWriteStream(n)):fr.default.writeFileSync(n,r),n}async function kN(t,e){let r=(0,Qr.join)(Kn(),(0,Of.v4)());fr.default.mkdirSync(r);let n=await HA(t,e),i=await Promise.all(n.map(a=>lc(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&&!fr.default.existsSync(m)&&fr.default.mkdirSync(m,{recursive:!0});let p=fr.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 FN(t,e){let r=Ut();await Vo(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function BN(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 YA(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 YA(t,e)}async function Rf(t,e,r){t=Je(t);let n=[],i=fr.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(Rf(t,a,o)):n.push(QA({bucket:t,filename:o,stream:fr.default.createReadStream(a)}))}return await Promise.all(n),i}async function GN(t,e,r={}){e=Le(e);let n=await(0,Sf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await WA(n.body,If.default.createUnzip(),_f.default.extract(e))}async function $N(t,e,r){e=Je(e),r=Le(r);let n=await(0,Sf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Qr.join)(Kn(),r);return await WA(n.body,If.default.createUnzip(),_f.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Rf(e,i,r),i}async function lc(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 VN(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 of(t){let e=t.split("?")[0],r=new RegExp(`^${xf}/(?<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 KA=Q(require("aws-cloudfront-sign")),Ec;function qN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ec||(Ec=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ec)}var WN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:qN(),expireTime:new Date().getTime()+1e3*60*60*24}),os=t=>{let e=wf(t);return KA.getSignedUrl(e,WN())},wf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var JA=Q(require("querystring"));function zA(t){return`${Le(t)}/budibase-client.js`}async function QN(t,e){let r=zA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),wf(r)):await jr(h.APPS_BUCKET_NAME,r)}function jN(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${JA.default.encode(n)}`}async function HN(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.APPS_BUCKET_NAME,t)}var YN=async(t,e,r)=>{let n=ZA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),os(n)):await jr(h.GLOBAL_BUCKET_NAME,n)},ZA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function KN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await JN(e),n=await zN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function JN(t){let e=eS(t);return XA(e)}async function zN(t){let e=tS(t);if(e)return XA(e)}async function XA(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.PLUGIN_BUCKET_NAME,t)}function eS(t){return rS(t,"plugin.min.js")}function tS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return rS(t,e)}function rS(t,e){return`${nS(t.name)}/${e}`}function nS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var oS="budibase.log",aS="budibase-logs-history.txt",uS=Cf.default.join(Kn(),"systemlogs");function iS(t){return Cf.default.join(uS,t)}function cS(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 vf(){let t=cS(h.ROLLING_LOG_MAX_SIZE);return sS.createStream(oS,{size:t?.size,path:uS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:aS,initialRotation:!1})}function ZN(){let t=[],e=iS(aS);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(iS(oS))),Buffer.concat(t)}function XN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function eP(t){return t instanceof Error}function tP(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,lS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:vf(),level:t}),Hr=r.length?(0,Tc.default)(e,Tc.default.multistream(r)):(0,Tc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{tP(E)&&(d=`${d} ${E}`.trimStart()),XN(E)&&l.push(E),eP(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:sf()};let f=Pf.default.scope().active();f&&Pf.default.inject(f.context(),dS.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let _=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=zp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var Ac=Hr;var rP=["AccountError"];function nP(t){return t&&t.suppressAlert}function Xn(t,e){e&&rP.includes(e.name)&&nP(e)||console.error(`bb-alert: ${t}`,e)}function iP(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:()=>sP,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 sP(){for(let t of Wo)clearInterval(t);Wo=[]}var Lf;if(h.MOCK_REDIS)try{Lf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var oP=2e3,aP=5e3,fS=h.REDIS_CLUSTERED,Ff=0,Yo=!1,Mf={},ei=!1;h.MOCK_REDIS&&(ei=!0);function Bf(t){return Mf[t]}function Uf(t,e){Yo||(Yo=!0,clearTimeout(t),ei=!1,Xn("Redis connection failed",e),setTimeout(()=>{Gf()},oP))}function Gf(t=Ff){let e=h.MOCK_REDIS&&Lf?Lf:pS.default,r;Yo=!1;let n=Bf(t);if(n&&ei)return;h.MOCK_REDIS&&(Mf[t]=new e(ns())),r=setTimeout(()=>{ei||Uf(r,"Did not successfully connect in timeout")},aP),n&&n.disconnect();let{host:i,port:s}=ac(),o=ns();fS?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Uf(r,a)}),n.on("error",a=>{Uf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),ei=!0}),Mf[t]=n}function uP(t=Ff){return new Promise(e=>{if(Bf(t)==null)Gf();else if(ei){e("");return}let r=Qo(()=>{ei&&(jo(r),e(""))},500)})}function cP(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:nf(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var kf=class{constructor(e,r=null){this._db=e,this._select=r||Ff}getClient(){return Bf(this._select)}async init(){return Yo=!1,Gf(this._select),await uP(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 fS?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),cP(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=Mf;var Ko,Jo,zo,Zo,ti,Xo,ea,ta,ra,Gf;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(),Gf=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(),Gf&&await Gf.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 $f(){return Zo||await Lt(),Zo}async function Vf(){return ti||await Lt(),ti}async function qf(){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 $f()}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:()=>Wf,getTenantIDFromCtx:()=>aa,isUserInAppTenant:()=>cP});function Wf(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(Yp()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var la={};v(la,{getPlatformDB:()=>ct,tenants:()=>rm,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 Qf(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 Qf(t,()=>hP(t,e,r,n))}async function gP(t,e,r,n){let i=[Qf(e,()=>fP(e,t)),Qf(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 rm={};v(rm,{addTenant:()=>kP,exists:()=>UP,getTenantIds:()=>PP,removeTenant:()=>FP,tenacyLockOptions:()=>tm});var ci={};v(ci,{AUTO_EXTEND_POLLING_MS:()=>O_,doWithLock:()=>ps,newRedlock:()=>ui});var I_=Q(require("redlock"));var ls={};v(ls,{Duration:()=>we,DurationType:()=>Xf,clearCookie:()=>zr,compare:()=>Yf,getAppIdFromCtx:()=>xP,getCookie:()=>ai,hasCircularStructure:()=>wP,hash:()=>Hf,isAudited:()=>zf,isClient:()=>RP,isPublicApiRequest:()=>OP,isServingApp:()=>_P,isServingBuilder:()=>SP,isServingBuilderPreview:()=>IP,isValidInternalAPIKey:()=>ca,newid:()=>Ie,openJwt:()=>Ic,resolveAppUrl:()=>A_,setCookie:()=>__,time:()=>DP,timeout:()=>Jf,urlHasProtocol:()=>bP,validEmail:()=>Zf});var jf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),EP=h.SALT_ROUNDS||10;async function Hf(t){let e=await jf.genSalt(EP);return jf.hash(t,e)}async function Yf(t,e){return jf.compare(t,e)}var Sc=Q(require("jsonwebtoken")),Kf="app"+N,y_="/app/",E_="/app/preview",TP="/builder",T_=`${TP}/app/`,AP="/api/public/v";function cs(t){return t&&t.startsWith(Kf)?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(`/${Kf}`)?!0:t.path.startsWith(y_)}function SP(t){return t.path.startsWith(T_)}function IP(t){return t.path.startsWith(E_)}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=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(Kf))}function Ic(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 Ic(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 Jf(t){return new Promise(e=>setTimeout(e,t))}function zf(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 Xf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Xf||{}),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 qf()).getClient();return new I_.default([n],e)}function vP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var O_=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"?O_: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 em=Se.PLATFORM_INFO.docs.tenants,tm={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(em)}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:em,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(em);throw r}return e}async function kP(t){let e=ct();await ps(tm,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(tm,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 nm=new da(h.ACCOUNT_PORTAL_URL),im=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(im)return;let e={email:t},r=await nm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},fs=async t=>{if(im)return;let e={tenantId:t},r=await nm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},BP=async()=>{if(im)return;let t=await nm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var _s={};v(_s,{UserDB:()=>Yt,addAppBuilder:()=>IM,bulkGetGlobalUsersById:()=>Zc,bulkUpdateGlobalUsers:()=>Da,cleanseUserObject:()=>Gm,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:()=>OM,removePortalUserPermissions:()=>SM,searchExistingEmails:()=>am,searchGlobalUsersByApp:()=>Xc,searchGlobalUsersByAppAccess:()=>Bm,searchGlobalUsersByEmail:()=>bS,validateUniqueUser:()=>kc});var ym={};v(ym,{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 om={};v(om,{createCode:()=>$P,deleteCode:()=>qP,getCode:()=>VP,getExistingInvites:()=>sm,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=Ie();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 sm(t){return(await w_()).filter(e=>t.includes(e.email))}async function am(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 sm(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 gm={};v(gm,{AccessController:()=>lm,BUILTIN_ROLE_IDS:()=>ha,Role:()=>Xr,RoleHierarchyTraversal:()=>Uc,RoleIDVersion:()=>dm,builtinRoleToNumber:()=>fa,checkForRoleResourceArray:()=>P_,externalRole:()=>KP,findRole:()=>ma,getAllRoleIds:()=>XP,getAllRoles:()=>hm,getBuiltinRole:()=>v_,getBuiltinRoles:()=>fm,getDBRoleID:()=>U_,getExternalRoleID:()=>en,getExternalRoleIDs:()=>L_,getRole:()=>JP,getUserRoleHierarchy:()=>mm,getUserRoleIdHierarchy:()=>N_,isBuiltin:()=>di,lowerBuiltinRoleID:()=>YP,prefixRoleIDNoBuiltin:()=>cm,roleIDsAreEqual:()=>At,roleToNumber:()=>HP,saveRoles:()=>zP,validInherits:()=>jP});var um=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"},dm={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=dm.NAME}addInheritance(e){return e&&typeof e=="string"?e=cm(e):e&&Array.isArray(e)&&(e=e.map(cm)),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)}},pm={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 fm(){return(0,Lc.default)(pm)}function di(t){return Object.values(ha).includes(t)}function cm(t){return di(t)?t:cr(t)}function v_(t){let e=Object.values(pm).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=fm(),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 mm(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)(pm.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 hm();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 mm(t)).map(r=>r._id)}async function mm(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 hm(t)).map(r=>r._id)}async function hm(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=fm(),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||!um.default.valid(r)?!0:!um.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var lm=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===dm.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:()=>Ia,layout:()=>uS,license:()=>aS,org:()=>cS,plugin:()=>ES,processors:()=>Sm,publishEvent:()=>A,query:()=>lS,role:()=>ba,rowAction:()=>SS,rows:()=>pS,screen:()=>dS,serve:()=>mS,shutdown:()=>rM,table:()=>fS,user:()=>qe,view:()=>hS});var Sm={};v(Sm,{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 Em=h.SELF_HOSTED&&!h.isDev(),Ta=class{async processEvent(e,r,n){Em||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Em||console.log("[audit] identified",e)}async identifyGroup(e){Em||console.log("[audit] group identified",e)}shutdown(){}};var _m={};v(_m,{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: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 Jf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},j_=Vc;var Tm=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 Kp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...St(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...St(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...St(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...St(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...St(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...St(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...St(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...St(r,"paused"))}).on("resumed",()=>{console.info(...St(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...St(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...St(r,"drained"))}).on("removed",i=>{console.info(...St(r,"removed",{job:i}))})}var hr=Q(require("dd-trace")),Aa=Q(require("object-sizeof")),fU=we.fromMinutes(5).toMs(),mU=we.fromSeconds(30).toMs(),Am=we.fromSeconds(60).toMs(),_a=[],qc;async function Y_(){for(let t of _a)await t.clean(Am,"completed"),await t.clean(Am,"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 Tm.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new j_(this.jobQueue,r):n=new Tm.default(this.jobQueue,r),H_(n,this.jobQueue,this.opts.removeStalledCb),_a.push(n),!qc&&!h.isTest()&&(qc=Qo(Y_,Am),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&&zf(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:()=>IU,getInstall:()=>Oa,getInstallFromDB:()=>Om});var Im=Q(require("semver"));var Oa=async()=>Jr(De.INSTALLATION,86400,Om,{useTenancy:!1});async function _U(t){let e={_id:Se.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 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 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=Im.default.gt(r,e),i=Im.default.lt(r,e);await SU(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=vp(),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 xm(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 xm(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)},xm=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?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=`${Ie()}_${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:OU,identifyInstallationGroup:xU,identifyTenantGroup:RU,identifyUser:wU,identifyAccount:bU,identify:Ra,identifyGroup:xm,getInstallationId:fi,getUniqueTenantId:Z_};var Hc={};v(Hc,{end:()=>vU,isAlreadySent:()=>bm,isBackfillingEvent:()=>wm,recordEvent:()=>Rm,start:()=>CU});var CU=async t=>PU({eventWhitelist:t}),Rm=async(t,e)=>{let r=Dm(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=Dm(),e=await _c(t);for(let r of e)await sa(r,{useTenancy:!1})},wm=async t=>{let r=(await NU())?.eventWhitelist;return!!(r&&r.includes(t))},bm=async(t,e)=>{let r=Dm(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}`},Dm=(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 wm(t))){await eS({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await bm(t,e)||(await yr.processEvent(t,i,e,r),await Rm(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 Cm(t){return!Object.values($a).includes(t.source)}async function dL(t,e){let r={datasourceId:t._id,source:t.source,custom:Cm(t)};await A("datasource:created",r,e)}async function pL(t){let e={datasourceId:t._id,source:t.source,custom:Cm(t)};await A("datasource:updated",e)}async function fL(t){let e={datasourceId:t._id,source:t.source,custom:Cm(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 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 aS={planChanged:EL,activated:TL,checkoutOpened:AL,checkoutSuccess:_L,portalOpened:SL,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 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 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 hS={created:g0,updated:y0,deleted:E0,exported:T0,filterCreated:A0,filterUpdated:_0,filterDeleted:S0,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 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 vm=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)},Nm=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)=>IS(t,e,_t),aM=(t,e)=>OS(t,e,_t),uM=(t,e)=>IS(t,e,rn),cM=(t,e)=>OS(t,e,rn),lM=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",IS=(t,e,r)=>!(!r(t)||e&&r(e)),OS=(t,e,r)=>!(r(t)||!e||!r(e));var zc={};v(zc,{createASession:()=>pM,endSession:()=>fM,getSession:()=>Um,getSessionsForUser:()=>Jc,invalidateSessions:()=>mi,updateSessionTTL:()=>Pm});var xS=require("uuid");var RS=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,xS.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,RS),o}async function Pm(t){let e=await Yr(),r=Is(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,RS)}async function fM(t,e){await(await Yr()).delete(Is(t,e))}async function Um(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 Fm={};v(Fm,{PASSWORD_MAX_LENGTH:()=>Mm,PASSWORD_MIN_LENGTH:()=>Lm,validatePassword:()=>km});var Lm=+(h.PASSWORD_MIN_LENGTH||12),Mm=+(h.PASSWORD_MAX_LENGTH||512);function km(t){return!t||t.length<Lm?{valid:!1,error:`Password invalid. Minimum ${Lm} characters.`}:t.length>Mm?{valid:!1,error:`Password invalid. Maximum ${Mm} characters.`}:{valid:!0}}var mM=async t=>{let e=t._id;await Mt.removeUser(t),await vm(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=km(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await Hf(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||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 Bm(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=Gm(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 Nm(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 am(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 Nm(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 vm(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 Bm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Hp(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),ff(u,s,{paginate:!0,property:c,getKey:l})}async function AM(){return(await gf("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 Gm(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 CS=3600;async function xM(t,e){let n=await Wf(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 Wm={};v(Wm,{Writethrough:()=>Vm});var vS=1e4,$m=null;async function qm(){if(!$m){let t=await Vf();$m=new ni(t)}return $m}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 qm(),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 qm(),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 qm();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 Vm=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 Qm={};v(Qm,{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 Hm={};v(Hm,{DocWritethrough:()=>jm,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)}},jm=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 rl(t){return`config${N}${t}`}async function Bt(t){let e=ie();try{return await e.get(rl(t))}catch(r){if(r.status===404)return;throw r}}async function kM(t){return t._id||(t._id=rl(t.type)),ie().put(t)}async function jc(){let t=await Bt("settings");return t||(t={_id:rl("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 nl(){return(await FM())?.config}async function zm(){if(!h.SELF_HOSTED)return Ym();let t=await nl();return(!t||!t.activated)&&(t=Ym()),t}function Ym(){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:()=>il,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 il={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)(il)}function jM(t){return Object.values(il).find(r=>r._id===t)}function HM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(il),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:()=>ol,all:()=>tk,flags:()=>eh,init:()=>ZM,isEnabled:()=>ek,parseEnvFlags:()=>ul,shutdown:()=>XM,testutils:()=>th});var al=Q(require("crypto"));var BS=require("posthog-node"),GS=Q(require("dd-trace"));var $S=require("lodash");var sl;function ZM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),sl=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(){sl?.shutdown()}function ul(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}var ol=class{constructor(e){this.flagSchema=e;this.setId=al.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=Xp(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 ul(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=zp();l&&(u=al.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,sl&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await sl.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)}}}ef(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},eh=new ol(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 ul(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:()=>Tl,auditLog:()=>hl,authError:()=>Me,buildAuthMiddleware:()=>Qk,buildCsrfMiddleware:()=>Hk,buildTenancyMiddleware:()=>jk,builderOnly:()=>_l,builderOrAdmin:()=>Al,google:()=>Tr,internalApi:()=>yl,joiValidator:()=>ka,oidc:()=>Ar,passport:()=>Yk,platformLogout:()=>Xk,refreshOAuthToken:()=>zk,ssoCallbackUrl:()=>on,updateUserOAuth:()=>Zk});var fh={};v(fh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,authenticated:()=>ml,builderOnly:()=>_l,builderOrAdmin:()=>Al,correlation:()=>rI,csp:()=>uI,csrf:()=>El,datasource:()=>qk,errorHandling:()=>iI,google:()=>Tr,internalApi:()=>yl,ip:()=>lI,joiValidator:()=>ka,local:()=>Os,oidc:()=>Ar,pino:()=>eI,querystringToBody:()=>sI,ssoCallbackUrl:()=>on,tenancy:()=>gl});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 Yf(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 cl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=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 cl(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 cl(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=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:()=>zS,decrypt:()=>lh,decryptFile:()=>xk,encrypt:()=>Sk,encryptFile:()=>Ik,getSecret:()=>ch});var _r=Q(require("crypto")),an=Q(require("fs")),ah=Q(require("zlib"));var oh=require("path"),ll="aes-256-ctr",JS="-",Ak=1e4,_k=32,dl=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 pl(t,e){return _r.default.pbkdf2Sync(t,e,Ak,_k,"sha512")}function Sk(t,e="api"){let r=_r.default.randomBytes(dl),n=pl(ch(e),r),i=_r.default.createCipheriv(ll,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=pl(ch(e),i),o=_r.default.createDecipheriv(ll,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=_r.default.randomBytes(dl),u=_r.default.randomBytes(uh),c=pl(r,a),l=_r.default.createCipheriv(ll,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 KS(e,dl),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 Ok(t),s=an.default.createReadStream(t,{start:dl+uh}),o=an.default.createWriteStream(e),a=pl(r,n),u=_r.default.createDecipheriv(ll,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 fl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ml(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=fl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=fl(n,"x-budibase-token"),c=ai(n,"budibase:auth")||Ic(u),l=fl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=fl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,_;try{_=await Um(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 Pm(_),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)?Pp(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(),hl=Dk;function gl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=aa(s,u);return s.set("x-budibase-tenant-id",l),$e(l,o)}}var yl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),ca(r)||t.throw(403,"Unauthorized"),e()};var Ck=["GET","HEAD","OPTIONS"],vk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function El(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||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 Tl=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin 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)&&!tn(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var _l=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(),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=ml,jk=gl,Hk=El,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 nl();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(wl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(Rl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(bl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...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")),Ol=Q(require("net"));var fI=require("util"),Il,sF=(0,fI.promisify)(pI.default.lookup);async function mI(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 hI(){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 mI(i);r=r.concat(s)}}Il=r}async function oF(t){if(Il||await hI(),Il?.length===0)return!1;let e;return Ol.default.isIP(t)?e=[t]:e=await mI(t),!!Il?.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 X_()}};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:()=>xl,designDoc:()=>bh,utils:()=>Qp});var _I=require("knex");var cF=require("knex");function _h(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}=$p(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=>{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 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)}},xl=Sh;var SI=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===Pl}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(!qp(e))return null}else{if(Vp(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,SI.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(),S=Wp(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(I=>{I.whereExists(i(_,y)),r&&I.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(I=>{I.whereExists(i(_,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 _.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let _ in f){let M=f[_],T=Go(_),I=T.includes("."),x=n?.relationship&&I,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(I)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(Oh(_,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Oh(_))]))):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(OI(Oh(_)))])):l(f,"contains",(y,S,_)=>(_.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let I of _){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(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,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]):S?f.where(T,">=",x):_?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 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&&!Gp(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 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,I=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(I).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(Ih()),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 ${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(_)]);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 xl{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,_I.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===Pl){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});
37
+ `;await n.eval(i,1,Ke(this._db,e),r)}},qe=kf;var Ko,Jo,zo,Zo,ti,Xo,ea,ta,ra,$f;async function Lt(){Ko=await new qe("users").init(),Jo=await new qe("session").init(),zo=await new qe("appMetadata").init(),Zo=await new qe("data_cache").init(),Xo=await new qe("locks").init(),ti=await new qe("writeThrough").init(),ta=await new qe("invitation").init(),ra=await new qe("pwReset").init(),ea=await new qe("socket_io",1).init(),$f=await new qe("docWriteThrough").init()}async function mS(){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(),$f&&await $f.finish()}process.on("exit",async()=>{await mS()});async function na(){return Ko||await Lt(),Ko}async function Yr(){return Jo||await Lt(),Jo}async function fc(){return zo||await Lt(),zo}async function Vf(){return Zo||await Lt(),Zo}async function qf(){return ti||await Lt(),ti}async function Wf(){return Xo||await Lt(),Xo}async function lP(){return ea||await Lt(),ea}async function ri(){return ta||await Lt(),ta}async function ia(){return ra||await Lt(),ra}async function dP(){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 Vf()}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,Ce={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:t=>`oauth2Token_${t}`},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),mr=(...t)=>ii.store(...t),sa=(...t)=>ii.delete(...t),Jr=(...t)=>ii.withCache(...t),hS=(...t)=>ii.withCacheWithDynamicTTL(...t),us=(...t)=>ii.bustCache(...t);var sn={};v(sn,{getUser:()=>Na,getUsers:()=>vM,invalidateUser:()=>Pa});var ua={};v(ua,{addTenantToUrl:()=>pP,getTenantDB:()=>Qf,getTenantIDFromCtx:()=>aa,isUserInAppTenant:()=>fP});function Qf(t){return $e(ur(t))}function pP(t){let e=j();if(Vr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var fP=(t,e)=>{let r;return e?r=e.tenantId||Te:r=j(),(Xi(t)||Te)===r},mP=Object.values(ws),aa=(t,e)=>{if(!Vr())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=mP),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(Kp()).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:()=>nm,users:()=>Mt});var Mt={};v(Mt,{addSsoUser:()=>yS,addUser:()=>AP,getUserDoc:()=>gS,lookupTenantId:()=>hP,removeUser:()=>SP,updateUserDoc:()=>gP});function ct(){return $e(Ee.PLATFORM_INFO.name)}async function hP(t){return h.MULTI_TENANCY?(await gS(t)).tenantId:Te}async function gS(t){return ct().get(t)}async function gP(t){await ct().put(t)}function yP(t,e){return{_id:t,tenantId:e}}function EP(t,e,r){return{_id:e,userId:t,tenantId:r}}function TP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function jf(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 yS(t,e,r,n){return jf(t,()=>TP(t,e,r,n))}async function AP(t,e,r,n){let i=[jf(e,()=>yP(e,t)),jf(r,()=>EP(e,r,t))];n&&i.push(yS(n,r,e,t)),await Promise.all(i)}async function SP(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 nm={};v(nm,{addTenant:()=>$P,exists:()=>FP,getTenantIds:()=>kP,removeTenant:()=>VP,tenacyLockOptions:()=>rm});var ci={};v(ci,{AUTO_EXTEND_POLLING_MS:()=>RS,doWithLock:()=>ps,newRedlock:()=>ui});var xS=Q(require("redlock"));var ls={};v(ls,{Duration:()=>we,DurationType:()=>em,clearCookie:()=>zr,compare:()=>Kf,getAppIdFromCtx:()=>DP,getCookie:()=>ai,hasCircularStructure:()=>vP,hash:()=>Yf,isAudited:()=>Zf,isClient:()=>CP,isPublicApiRequest:()=>bP,isServingApp:()=>xP,isServingBuilder:()=>RP,isServingBuilderPreview:()=>wP,isValidInternalAPIKey:()=>ca,newid:()=>Ie,openJwt:()=>Oc,resolveAppUrl:()=>_S,setCookie:()=>IS,time:()=>PP,timeout:()=>zf,urlHasProtocol:()=>NP,validEmail:()=>Xf});var Hf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),_P=h.SALT_ROUNDS||10;async function Yf(t){let e=await Hf.genSalt(_P);return Hf.hash(t,e)}async function Kf(t,e){return Hf.compare(t,e)}var Ic=Q(require("jsonwebtoken")),Jf="app"+N,TS="/app/",AS="/app/preview",IP="/builder",SS=`${IP}/app/`,OP="/api/public/v";function cs(t){return t&&t.startsWith(Jf)?t:void 0}async function _S(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=aa(t,{includeStrategies:["subdomain"]}));let s=(await Ve(n,()=>ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function xP(t){return t.path.startsWith(`/${Jf}`)?!0:t.path.startsWith(TS)}function RP(t){return t.path.startsWith(SS)}function wP(t){return t.path.startsWith(AS)}function bP(t){return t.path.startsWith(OP)}async function DP(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=ES(t.path);!r&&n&&(r=cs(n)),!r&&t.query?.appId&&(r=cs(t.query?.appId));let i=t.path.startsWith(AS),s=t.path.startsWith(TS)&&!i;!r&&s&&(r=cs(await _S(t)));let o=t.request.headers.referer;if(!r&&o?.includes(SS)){let a=ES(t.request.headers.referer);r=cs(a)}return r}function ES(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Jf))}function Oc(t){if(t)try{return Ic.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Ic.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 IS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Ic.default.sign(e,h.JWT_SECRET));let i={expires:Ku,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function zr(t,e){IS(t,null,e)}function CP(t){return t.headers["x-budibase-type"]==="client"}function zf(t){return new Promise(e=>setTimeout(e,t))}function Zf(t){return!!Ph[t]}function vP(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 NP(t){return!!t.match(/^.+:\/\/.+$/)}function Xf(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 em=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(em||{}),xc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},we=class t{constructor(e){this.ms=e}to(e){return this.ms/xc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*xc[e]/xc[r]}static from(e,r){return new t(r*xc[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 PP(t){let e=performance.now();return[await t(),we.fromMilliseconds(performance.now()-e)]}async function UP(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 Wf()).getClient();return new xS.default([n],e)}function LP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var RS=we.fromSeconds(10).toMs();async function ps(t,e){let r=await UP(t.type,t.customOptions),n,i;try{let s=LP(t),o=t.type==="auto_extend"?RS: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 tm=Ee.PLATFORM_INFO.docs.tenants,rm={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function kP(){return(await Rc()).tenantIds}async function Rc(){let t=ct(),e;try{e=await t.get(tm)}catch(r){if(r.status===404)e=await GP();else throw r}return e}async function FP(t){return(await Rc()).tenantIds.indexOf(t)!==-1}function BP(){return{_id:tm,tenantIds:[]}}async function GP(){let t=ct(),e=BP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(tm);throw r}return e}async function $P(t){let e=ct();await ps(rm,async()=>{let r=await Rc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function VP(t){try{await ps(rm,async()=>{let e=ct(),r=await Rc();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:()=>qP});var wS=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,wS.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 im=new da(h.ACCOUNT_PORTAL_URL),sm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(sm)return;let e={email:t},r=await im.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(sm)return;let e={tenantId:t},r=await im.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]},qP=async()=>{if(sm)return;let t=await im.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:()=>wM,bulkGetGlobalUsersById:()=>Xc,bulkUpdateGlobalUsers:()=>Da,cleanseUserObject:()=>$m,creatorsInList:()=>pi,doesUserExist:()=>_M,getAccountHolderFromUsers:()=>Bc,getAllUserIds:()=>AM,getAllUsers:()=>SM,getById:()=>hi,getCreatorCount:()=>xM,getExistingAccounts:()=>ms,getExistingPlatformUsers:()=>vS,getExistingTenantUsers:()=>CS,getFirstPlatformUser:()=>pa,getGlobalUserByAppPage:()=>D_,getGlobalUserByEmail:()=>Ft,getPlatformUsers:()=>wc,getUserCount:()=>OM,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>GS,hasBuilderPermissions:()=>St,isAdmin:()=>tn,isAdminOrBuilder:()=>BS,isBuilder:()=>ys,isCreatorAsync:()=>ga,isCreatorSync:()=>kc,isGlobalBuilder:()=>FS,paginatedUsers:()=>v_,removeAppBuilder:()=>bM,removePortalUserPermissions:()=>RM,searchExistingEmails:()=>um,searchGlobalUsersByApp:()=>el,searchGlobalUsersByAppAccess:()=>Gm,searchGlobalUsersByEmail:()=>C_,validateUniqueUser:()=>Fc});var Em={};v(Em,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Bc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>GS,hasBuilderPermissions:()=>St,isAdmin:()=>tn,isAdminOrBuilder:()=>BS,isBuilder:()=>ys,isCreatorAsync:()=>ga,isCreatorSync:()=>kc,isGlobalBuilder:()=>FS,validateUniqueUser:()=>Fc});var am={};v(am,{createCode:()=>QP,deleteCode:()=>HP,getCode:()=>jP,getExistingInvites:()=>om,getInviteCodes:()=>DS,updateCode:()=>WP});var bS=we.fromDays(7).toSeconds();async function WP(t,e){await(await ri()).store(t,e,bS)}async function QP(t,e){let r=Ie();return await(await ri()).store(r,{email:t,info:e},bS),r}async function jP(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 HP(t){await(await ri()).delete(t)}async function DS(){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 om(t){return(await DS()).filter(e=>t.includes(e.email))}async function um(t){let e=[],r=await CS(t);e.push(...r.map(o=>o.email));let n=await vS(t);e.push(...n.map(o=>o._id));let i=await ms(t);e.push(...i.map(o=>o.email));let s=await om(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function wc(t){return await Bo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function pa(t){return(await wc(t))[0]??null}async function CS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await dr("by_email2",r,void 0,n)}async function vS(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 Uc={};v(Uc,{BadRequestError:()=>Dc,BudibaseError:()=>hs,EmailUnavailableError:()=>hr,ErrorCode:()=>Nc,FeatureDisabledError:()=>vc,HTTPError:()=>lt,InvalidAPIKeyError:()=>gs,NotFoundError:()=>bc,UsageLimitError:()=>Cc,getPublicError:()=>Pc});var hs=class extends Error{constructor(r,n){super(r);this.code=n}},Nc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Nc||{}),Pc=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}},bc=class extends lt{constructor(e){super(e,404)}},Dc=class extends lt{constructor(e){super(e,400)}},Cc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},vc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},gs=class extends hs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ym={};v(ym,{AccessController:()=>dm,BUILTIN_ROLE_IDS:()=>ha,Role:()=>Xr,RoleHierarchyTraversal:()=>Lc,RoleIDVersion:()=>pm,builtinRoleToNumber:()=>fa,checkForRoleResourceArray:()=>LS,externalRole:()=>XP,findRole:()=>ma,getAllRoleIds:()=>nU,getAllRoles:()=>gm,getBuiltinRole:()=>PS,getBuiltinRoles:()=>mm,getDBRoleID:()=>MS,getExternalRoleID:()=>en,getExternalRoleIDs:()=>kS,getRole:()=>eU,getUserRoleHierarchy:()=>hm,getUserRoleIdHierarchy:()=>US,isBuiltin:()=>di,lowerBuiltinRoleID:()=>ZP,prefixRoleIDNoBuiltin:()=>lm,roleIDsAreEqual:()=>At,roleToNumber:()=>zP,saveRoles:()=>tU,validInherits:()=>JP});var cm=Q(require("semver"));var Mc=Q(require("lodash/fp/cloneDeep"));var NS=require("lodash");var ha={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ha,BUILDER:"BUILDER"},pm={UUID:void 0,NAME:"name"};function KP(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=pm.NAME}addInheritance(e){return e&&typeof e=="string"?e=lm(e):e&&Array.isArray(e)&&(e=e.map(lm)),this.inherits=e,this}},Lc=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&&!KP(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,NS.uniqBy)(i,s=>s._id)}},fm={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 mm(){return(0,Mc.default)(fm)}function di(t){return Object.values(ha).includes(t)}function lm(t){return di(t)?t:lr(t)}function PS(t){let e=Object.values(fm).find(r=>t.includes(r._id));if(e)return(0,Mc.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=mm(),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 zP(t){if(di(t))return fa(t);let e=await hm(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>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 ZP(t,e){return t?e&&fa(t)>fa(e)?e:t:e}function At(t,e){return lr(t)===lr(e)}function XP(t){let e;return t._id&&(e=en(t._id)),{...t,_id:e,inherits:kS(t.inherits,t.version)}}function ma(t,e,r){let n=PS(t);n||(t=lr(t));let i=e.find(s=>s._id&&At(s._id,t));return!i&&!di(t)&&r?.defaultPublic?(0,Mc.default)(fm.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 eU(t,e){let r=es(),n=[];if(!di(t)){let i=await r.tryGet(MS(t));i&&n.push(i)}return ma(t,n,e)}async function tU(t){await es().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function rU(t,e){let r=await gm();if(At(t,fe.ADMIN))return r;let n=ma(t,r,e),i=[];return n&&(i=new Lc(r,e).walk(n)),i}async function US(t){return(await hm(t)).map(r=>r._id)}async function hm(t,e){return rU(t,e)}function LS(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 nU(t){return(await gm(t)).map(r=>r._id)}async function gm(t){if(t)return ut(t,e);{let r;try{r=es()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(gc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=en(a._id,a.version)));let i=mm(),s=[];!r||await iU(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=LS(o.permissions,a);return n}}async function iU(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!cm.default.valid(r)?!0:!cm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var dm=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 US(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 MS(t){return t?.startsWith("role")?t:lr(t)}function en(t,e){if(t.startsWith(`role${N}`)&&(di(t)||e===pm.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function kS(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,FS=ot.users.isGlobalBuilder,BS=ot.users.isAdminOrBuilder,rn=ot.users.hasAdminPermissions,St=ot.users.hasBuilderPermissions,GS=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=>kc(i,e))}async function ga(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),kc(t,e)}function kc(t,e){let r=ot.users.isCreator(t);return!r&&t?sU(t,e):r}function sU(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes(ha.ADMIN)):!1}async function Fc(t,e){if(h.MULTI_TENANCY){let r=await pa(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Bc(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:()=>n_,ai:()=>u_,analytics:()=>$c,app:()=>i_,auditLog:()=>I_,auth:()=>Jc,automation:()=>s_,backfill:()=>E_,backfillCache:()=>Yc,backup:()=>S_,datasource:()=>o_,email:()=>a_,environmentVariable:()=>__,group:()=>T_,identification:()=>kt,initAsyncEvents:()=>sM,installation:()=>Ia,layout:()=>l_,license:()=>c_,org:()=>d_,plugin:()=>A_,processors:()=>Im,publishEvent:()=>A,query:()=>p_,role:()=>ba,rowAction:()=>O_,rows:()=>m_,screen:()=>f_,serve:()=>g_,shutdown:()=>oM,table:()=>h_,user:()=>We,view:()=>y_});var Im={};v(Im,{analyticsProcessor:()=>ZS,init:()=>OU,processors:()=>Er});var $c={};v($c,{enabled:()=>Gc});var Gc=async()=>Vc();var QS=require("posthog-node");var oU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",aU=t=>t==="served:app:preview"||t==="served:app";var VS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},qS=async t=>{if(!oU(t))return!1;let e=await uU(t);if(e){let r=new Date(e.timestamp);switch(VS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await $S(t,{timestamp:Date.now()}),!1):!0}}else return await $S(t,{timestamp:Date.now()}),!1},WS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return aU(t)&&(e=e+":"+Ue()),e},uU=async t=>{let e=WS(t);return await oi(e)},$S=async(t,e)=>{let r=WS(t),n=VS[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var lU=["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(lU.includes(e)||await qS(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 jS=ya;var dU=["installation:version:upgraded","installation:version:downgraded"],pU=["installation","tenant"],Ea=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new jS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!dU.includes(e)&&!await Gc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!pU.includes(e.type)&&!await Gc()||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 Tm=h.SELF_HOSTED&&!h.isDev(),Ta=class{async processEvent(e,r,n){Tm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Tm||console.log("[audit] identified",e)}async identifyGroup(e){Tm||console.log("[audit] group identified",e)}shutdown(){}};var _m={};v(_m,{BudibaseQueue:()=>yr,InMemoryQueue:()=>qc,JobQueue:()=>Es,shutdown:()=>SU});var HS=Q(require("events"));function fU(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 qc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new HS.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=>fU(e))}async whenCurrentJobsFinished(){do await zf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},YS=qc;var Am=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 KS(t,e,r){gU(t,e),r&&mU(t,r)}function mU(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 hU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function gU(t,e){let r=hU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Jp(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 gr=Q(require("dd-trace")),Aa=Q(require("object-sizeof")),yU=we.fromMinutes(5).toMs(),EU=we.fromSeconds(30).toMs(),Sm=we.fromSeconds(60).toMs(),Sa=[],Wc;async function JS(){for(let t of Sa)await t.clean(Sm,"completed"),await t.clean(Sm,"failed")}async function TU(t,e,r){let n=performance.now();try{let i=await e();return gr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw gr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;gr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),gr.default.dogstatsd.increment(t,1,r)}}function zS(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}function AU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Aa.default)(t.data),...zS(t.opts||{})}}var yr=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:yU,lockRenewTime:EU}};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 Am.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new YS(this.jobQueue,r):n=new Am.default(this.jobQueue,r),KS(n,this.jobQueue,this.opts.removeStalledCb),Sa.push(n),!Wc&&!h.isTest()&&(Wc=Qo(JS,Sm),JS().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 gr.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,...AU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),gr.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 gr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Aa.default)(e),...zS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},gr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Aa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return TU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function SU(){if(Wc&&jo(Wc),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 yr("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Ve(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&&Zf(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 ZS=new Ea,_U=new Ta,IU=new Ts;function OU(t){return Ts.init(t)}var Er=new _a([ZS,_U,IU]);var Qc={};v(Qc,{checkInstallVersion:()=>wU,getInstall:()=>Oa,getInstallFromDB:()=>xm});var Om=Q(require("semver"));var Oa=async()=>Jr(Ce.INSTALLATION,86400,xm,{useTenancy:!1});async function xU(t){let e={_id:Ee.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 xm();throw r}}var xm=async()=>ut(Ee.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Ee.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await xU(t);else throw r}return e}),RU=async t=>{try{await ut(Ee.PLATFORM_INFO.name,async e=>{let r=await Oa();r.version=t,await e.put(r),await us(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},wU=async()=>{let t=await Oa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Om.default.gt(r,e),i=Om.default.lt(r,e);await RU(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 bU=async()=>{let t=Np(),e=wa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=xa();return{id:XS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await jc(j()),s=xa();return{id:XS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await jc(j()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=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")},DU=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 Rm(a,e),await Ra({...a,id:`$${n}_${r}`},e)},CU=async(t,e,r)=>{let n=await jc(t),i="tenant",s=await fi(),o=wa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Rm(a,r),await Ra({...a,id:`$${i}_${n}`},r)},vU=async(t,e,r)=>{let n=t._id,i=await jc(t.tenantId),s="user",o=St(t),a=rn(t),u;Ha(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)},NU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=ja(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=wa();if(Qa(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 Er.identify(t,e)},Rm=async(t,e)=>{await Er.identifyGroup(t,e)},wa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,xa=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>PU()?"account-portal":(await Oa()).installId,jc=async t=>h.SELF_HOSTED?e_(t):t,e_=async t=>Ve(t,()=>Jr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Hc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Ie()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),PU=()=>h.SERVICE==="account-portal",XS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,kt={getCurrentIdentity:bU,identifyInstallationGroup:DU,identifyTenantGroup:CU,identifyUser:vU,identifyAccount:NU,identify:Ra,identifyGroup:Rm,getInstallationId:fi,getUniqueTenantId:e_};var Yc={};v(Yc,{end:()=>LU,isAlreadySent:()=>Dm,isBackfillingEvent:()=>bm,recordEvent:()=>wm,start:()=>UU});var UU=async t=>kU({eventWhitelist:t}),wm=async(t,e)=>{let r=Cm(t,e);await mr(r,e,void 0,{useTenancy:!1})},LU=async()=>{await FU(),await BU()},MU=async()=>oi(Ce.BACKFILL_METADATA),kU=async t=>mr(Ce.BACKFILL_METADATA,t),FU=async()=>{await sa(Ce.BACKFILL_METADATA)},BU=async()=>{let t=Cm(),e=await _c(t);for(let r of e)await sa(r,{useTenancy:!1})},bm=async t=>{let r=(await MU())?.eventWhitelist;return!!(r&&r.includes(t))},Dm=async(t,e)=>{let r=Cm(t,e);return!!await oi(r,{useTenancy:!1})},GU={"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}`},Cm=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=GU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Tr;function Kc(){Tr=new yr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function t_(){Tr&&await Tr.close()}async function r_(t){Tr||Kc();let{event:e,identity:r}=t;Nh.indexOf(e)!==-1&&r.tenantId&&await Tr.add(t)}var A=async(t,e,r,n)=>{let i=n||await kt.getCurrentIdentity();if(!(n?!1:await bm(t))){await r_({event:t,identity:i,properties:e,timestamp:r}),await Er.processEvent(t,i,e,r);return}await Dm(t,e)||(await Er.processEvent(t,i,e,r),await wm(t,e))};async function $U(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function VU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function qU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var n_={created:$U,deleted:VU,verified:qU};var WU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function QU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function jU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function HU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function YU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function KU(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 zU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function ZU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function XU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function eL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function tL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var i_={created:WU,updated:QU,deleted:jU,published:HU,unpublished:YU,fileImported:KU,duplicated:JU,templateImported:zU,versionUpdated:ZU,versionReverted:XU,reverted:eL,exported:tL};async function rL(t,e){let n={userId:(await kt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function nL(t){let r={userId:(await kt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function iL(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function sL(t){let e={type:t};await A("auth:sso:updated",e)}async function oL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function aL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Jc={login:rL,logout:nL,SSOCreated:iL,SSOUpdated:sL,SSOActivated:oL,SSODeactivated:aL};async function uL(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 cL(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 lL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function dL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var pL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function fL(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 mL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var s_={created:uL,triggerUpdated:cL,deleted:lL,tested:dL,run:pL,stepCreated:fL,stepDeleted:mL};function vm(t){return!Object.values(Va).includes(t.source)}async function hL(t,e){let r={datasourceId:t._id,source:t.source,custom:vm(t)};await A("datasource:created",r,e)}async function gL(t){let e={datasourceId:t._id,source:t.source,custom:vm(t)};await A("datasource:updated",e)}async function yL(t){let e={datasourceId:t._id,source:t.source,custom:vm(t)};await A("datasource:deleted",e)}var o_={created:hL,updated:gL,deleted:yL};async function EL(t){let e={};await A("email:smtp:created",e,t)}async function TL(){let t={};await A("email:smtp:updated",t)}var a_={SMTPCreated:EL,SMTPUpdated:TL};async function AL(t){let e={};await A("ai:config:created",e,t)}async function SL(){let t={};await A("ai:config:updated",t)}var u_={AIConfigCreated:AL,AIConfigUpdated:SL};async function _L(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function IL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function OL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function xL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function RL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function wL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function bL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var c_={planChanged:_L,activated:IL,checkoutOpened:OL,checkoutSuccess:xL,portalOpened:RL,paymentFailed:wL,paymentRecovered:bL};async function DL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function CL(t){let e={layoutId:t};await A("layout:deleted",e)}var l_={created:DL,deleted:CL};async function vL(t){let e={};await A("org:info:name:updated",e,t)}async function NL(t){let e={};await A("org:info:logo:updated",e,t)}async function PL(t){let e={};await A("org:platformurl:updated",e,t)}async function UL(){let t={};await A("analytics:opt:out",t)}async function LL(){let t={};await A("analytics:opt:out",t)}var d_={nameUpdated:vL,logoUpdated:NL,platformURLUpdated:PL,analyticsOptOut:UL,analyticsOptIn:LL};var ML=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},kL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},FL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},BL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},GL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},$L=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},p_={created:ML,updated:kL,deleted:FL,imported:BL,run:GL,previewed:$L};async function VL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function qL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function WL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function QL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function jL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var ba={created:VL,updated:qL,deleted:WL,assigned:QL,unassigned:jL};async function HL(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 YL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var f_={created:HL,deleted:YL};var KL=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)},m_={created:KL,imported:JL};async function zL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function ZL(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 XL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function e0(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function t0(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var h_={created:zL,updated:ZL,deleted:XL,exported:e0,imported:t0};async function r0(t){let e={timezone:t};await A("served:builder",e)}async function n0(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function i0(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var g_={servedBuilder:r0,servedApp:n0,servedAppPreview:i0};async function s0(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function o0(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function a0(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function u0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function c0(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function l0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function d0(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function p0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function f0(t){let e={audited:{email:t}};await A("user:invited",e)}async function m0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function h0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function g0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function y0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function E0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function T0(t){let e={users:t};await A("user:data:collaboration",e)}var We={created:s0,updated:o0,deleted:a0,permissionAdminAssigned:c0,permissionAdminRemoved:l0,permissionBuilderAssigned:d0,permissionBuilderRemoved:p0,onboardingComplete:u0,invited:f0,inviteAccepted:m0,passwordForceReset:h0,passwordUpdated:g0,passwordResetRequested:y0,passwordReset:E0,dataCollaboration:T0};async function A0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function S0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function _0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function I0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function O0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function x0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function R0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function w0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function b0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function D0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function C0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var y_={created:A0,updated:S0,deleted:_0,exported:I0,filterCreated:O0,filterUpdated:x0,filterDeleted:R0,calculationCreated:w0,calculationUpdated:b0,calculationDeleted:D0,viewJoinCreated:C0};async function v0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function N0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function P0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function U0(){let t={};await A("installation:firstStartup",t)}var Ia={versionChecked:v0,upgraded:N0,downgraded:P0,firstStartup:U0};var _s=!h.SELF_HOSTED&&!h.isDev();async function L0(t){_s||await A("app:backfill:succeeded",t)}async function M0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function k0(t){_s||await A("tenant:backfill:succeeded",t)}async function F0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function B0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function G0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var E_={appSucceeded:L0,appFailed:M0,tenantSucceeded:k0,tenantFailed:F0,installationSucceeded:B0,installationFailed:G0};async function $0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function V0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function q0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function W0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function Q0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function j0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function H0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var T_={created:$0,updated:V0,deleted:q0,usersAdded:W0,usersDeleted:Q0,createdOnboarding:j0,permissionsEdited:H0};async function Y0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function K0(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 A_={init:Y0,imported:K0,deleted:J0};async function z0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function Z0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var S_={appBackupRestored:z0,appBackupTriggered:Z0};async function X0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function eM(t){let e={name:t};await A("environment_variable:deleted",e)}async function tM(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var __={created:X0,deleted:eM,upgradePanelOpened:tM};async function rM(t){let e={filters:t};await A("audit_log:filtered",e)}async function nM(t){let e={filters:t};await A("audit_log:downloaded",e)}var I_={filtered:rM,downloaded:nM};async function iM(t,e){await A("row_action:created",t,e)}var O_={created:iM};function sM(){}var oM=()=>{Er.shutdown(),console.log("Events shutdown")};var Nm=async t=>{await We.deleted(t),St(t)&&await We.permissionBuilderRemoved(t),rn(t)&&await We.permissionAdminRemoved(t)},aM=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await ba.assigned(t,i)},uM=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await ba.unassigned(t,i)},cM=async(t,e)=>{let r=t.roles,n=e?.roles;await aM(t,r,n),await uM(t,r,n)},Pm=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 We.updated(t),dM(t,e)&&await We.permissionBuilderRemoved(t),fM(t,e)&&await We.permissionAdminRemoved(t),mM(t,e)&&await We.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await We.passwordForceReset(t),t.password!==e.password&&await We.passwordUpdated(t)):await We.created(t),lM(t,e)&&await We.permissionBuilderAssigned(t),pM(t,e)&&await We.permissionAdminAssigned(t),await cM(t,e)},lM=(t,e)=>x_(t,e,St),dM=(t,e)=>R_(t,e,St),pM=(t,e)=>x_(t,e,rn),fM=(t,e)=>R_(t,e,rn),mM=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",x_=(t,e,r)=>!(!r(t)||e&&r(e)),R_=(t,e,r)=>!(r(t)||!e||!r(e));var Zc={};v(Zc,{createASession:()=>gM,endSession:()=>yM,getSession:()=>Lm,getSessionsForUser:()=>zc,invalidateSessions:()=>mi,updateSessionTTL:()=>Um});var w_=require("uuid");var b_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):we.fromDays(7).toSeconds();function Is(t,e){return`${t}/${e}`}async function zc(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 zc(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 gM(t,e){await mi(t,{reason:"creation"});let r=await Yr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,w_.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,b_),o}async function Um(t){let e=await Yr(),r=Is(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,b_)}async function yM(t,e){await(await Yr()).delete(Is(t,e))}async function Lm(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 Bm={};v(Bm,{PASSWORD_MAX_LENGTH:()=>km,PASSWORD_MIN_LENGTH:()=>Mm,validatePassword:()=>Fm});var Mm=+(h.PASSWORD_MIN_LENGTH||12),km=+(h.PASSWORD_MAX_LENGTH||512);function Fm(t){return!t||t.length<Mm?{valid:!1,error:`Password invalid. Minimum ${Mm} characters.`}:t.length>km?{valid:!1,error:`Password invalid. Maximum ${km} characters.`}:{valid:!0}}var EM=async t=>{let e=t._id;await Mt.removeUser(t),await Nm(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()||Ha(e)?!0:(r||(r=await fs(j())),!!(r&&r.email===e.email&&ja(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=Fm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await Yf(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 el(e,{})).length}}static async getUsersByAppAccess(e){return await Gm(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 Xc(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 hr(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 Fc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=$m(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 Pm(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 um(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 Pm(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 Bc(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 wc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await EM(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 Nm(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(Ce.CHECKLIST),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function va(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Xc(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 AM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`})).rows.map(n=>n.id)}async function SM(){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 dr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=va(n)),n}async function _M(t){try{let e=await Ft(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function el(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=hc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await dr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=va(s)),s}async function Gm(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 Yp(ur(),i)).rows}function D_(t,e){if(e)return mc(at(t),e._id)}async function C_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await dr("by_email2",{...e,startkey:i,endkey:`${n}${Fe}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=va(o)),o}var IM=8;async function v_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??IM,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 el(r,a),l=d=>D_(r,d)):e?.string?.email?(u=await C_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Xc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(zn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=kr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(zn(null,a))).rows.map(m=>m.doc),mf(u,s,{paginate:!0,property:c,getKey:l})}async function OM(){return(await yf("by_email2",{limit:0,include_docs:!1})).total_rows}async function xM(){let t=0;async function e(r){let n=await v_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function RM(t){return delete t.admin,delete t.builder,t}function $m(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 wM(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 bM(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 N_=3600;async function DM(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 CM(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=DM),!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,N_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await Ve(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 vM(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 CM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,N_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Pa(t){await(await na()).delete(t)}var Qm={};v(Qm,{Writethrough:()=>qm});var P_=1e4,Vm=null;async function tl(){if(!Vm){let t=await qf();Vm=new ni(t)}return Vm}function Ua(t,e){return t.name+e}function Wm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function NM(t,e,r=P_){let n=await tl(),i=e._id,s;i&&(s=await n.get(Ua(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=Wm(a,o?null:s?.lastWrite),a._id&&await n.store(Ua(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function PM(t,e){let r=await tl(),n=Ua(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Wm(s),await r.store(n,i)}return i.doc}async function UM(t,e){let r=await tl(),n=Ua(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Wm(s),await r.store(n,i)}return i.doc}async function LM(t,e,r){let n=await tl();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(Ua(t,i))}finally{await t.remove(i,r)}}var qm=class{constructor(e,r=P_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return NM(this.db,e,r)}async get(e){return PM(this.db,e)}async tryGet(e){return UM(this.db,e)}async remove(e,r){return LM(this.db,e,r)}};var jm={};v(jm,{createCode:()=>kM,getCode:()=>FM,invalidateCode:()=>BM});var MM=we.fromHours(1).toSeconds();async function kM(t,e){let r=Ie();return await(await ia()).store(r,{userId:t,info:e},MM),r}async function FM(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 BM(t){await(await ia()).delete(t)}var Ym={};v(Ym,{DocWritethrough:()=>Hm,DocWritethroughProcessor:()=>La,getProcessor:()=>$M,init:()=>U_});var GM=100,rl,La=class t{static get queue(){return t._queue||(t._queue=new yr("docWritethroughQueue",{jobOptions:{attempts:GM}})),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=$e(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Hm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await La.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function U_(){return rl=new La().init(),rl}function $M(){return rl||U_()}function nl(t){return`config${N}${t}`}async function Bt(t){let e=ie();try{return await e.get(nl(t))}catch(r){if(r.status===404)return;throw r}}async function VM(t){return t._id||(t._id=nl(t.type)),ie().put(t)}async function Hc(){let t=await Bt("settings");return t||(t={_id:nl("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ma({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Vc({config:t.config}),t}async function zm(){return(await Hc()).config}async function Ma(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 Vc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Jr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await 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 qM(){return await Bt("google")}async function il(){return(await qM())?.config}async function Zm(){if(!h.SELF_HOSTED)return Km();let t=await il();return(!t||!t.activated)&&(t=Km()),t}function Km(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function WM(){return Bt("logos_oidc")}async function QM(){return Bt("oidc")}async function jM(){let t=(await QM())?.config;return t?.configs&&t.configs[0]}async function Xm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function L_(){return Bt("smtp")}async function HM(t){let e=await L_();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 YM(){return(await Bt("scim"))?.config}async function KM(){return Bt("ai")}var eh={};v(eh,{BUILDER:()=>ek,BUILTIN_PERMISSIONS:()=>sl,CREATOR:()=>tk,GLOBAL_BUILDER:()=>rk,PermissionImpl:()=>me,PermissionLevel:()=>bs,PermissionType:()=>Wa,doesHaveBasePermission:()=>ZM,getAllowedLevels:()=>B_,getBuiltinPermissionByID:()=>zM,getBuiltinPermissions:()=>JM,isPermissionLevelHigherThanRead:()=>XM,levelToNumber:()=>F_});var M_=Q(require("lodash/flatten")),k_=Q(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function F_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function B_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var sl={PUBLIC:{_id:"public",name:"Public",permissions:[new 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 JM(){return(0,k_.default)(sl)}function zM(t){return Object.values(sl).find(r=>r._id===t)}function ZM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(sl),s=(0,M_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&B_(o.level).indexOf(e)!==-1)return!0;return!1}function XM(t){return F_(t)>1}var ek="builder",tk="creator",rk="globalBuilder";var nh={};v(nh,{FlagSet:()=>al,all:()=>ok,flags:()=>th,init:()=>nk,isEnabled:()=>sk,parseEnvFlags:()=>cl,shutdown:()=>ik,testutils:()=>rh});var ul=Q(require("crypto"));var G_=require("posthog-node"),$_=Q(require("dd-trace"));var V_=require("lodash");var ol;function nk(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),ol=new G_.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 ik(){ol?.shutdown()}function cl(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}var al=class{constructor(e){this.flagSchema=e;this.setId=ul.randomUUID()}defaults(){return(0,V_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await $_.default.trace("features.fetch",async e=>{let r=ef(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 cl(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=Zp();l&&(u=ul.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,ol&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await ol.getAllFlags(u,{personProperties:l,onlyEvaluateLocally:!0});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)}}}tf(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},th=new al(kh);async function sk(t){return await th.isEnabled(t)}async function ok(){return await th.fetch()}var rh={};v(rh,{setFeatureFlags:()=>q_,withFeatureFlags:()=>ck});function ak(){let t={};for(let{tenantId:e,key:r,value:n}of cl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function uk(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function q_(t,e){let r=ak();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=uk(r);return bo({TENANT_FEATURE_FLAGS:n})}function ck(t,e,r){let n=q_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var hh={};v(hh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,buildAuthMiddleware:()=>Jk,buildCsrfMiddleware:()=>Zk,buildTenancyMiddleware:()=>zk,builderOnly:()=>_l,builderOrAdmin:()=>Sl,google:()=>Ar,internalApi:()=>El,joiValidator:()=>Fa,oidc:()=>Sr,passport:()=>Xk,platformLogout:()=>iF,refreshOAuthToken:()=>rF,ssoCallbackUrl:()=>on,updateUserOAuth:()=>nF});var mh={};v(mh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,authenticated:()=>hl,builderOnly:()=>_l,builderOrAdmin:()=>Sl,correlation:()=>nI,csp:()=>cI,csrf:()=>Tl,datasource:()=>Yk,errorHandling:()=>sI,google:()=>Ar,internalApi:()=>El,ip:()=>dI,joiValidator:()=>Fa,local:()=>Os,oidc:()=>Sr,pino:()=>tI,querystringToBody:()=>oI,ssoCallbackUrl:()=>on,tenancy:()=>yl});var Os={};v(Os,{authenticate:()=>pk,options:()=>dk});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 zm(),n="/api/global/auth";return Vr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var ih="Invalid credentials",lk="This account has expired. Please reset your password",dk={passReqToCallback:!0};async function pk(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,ih)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,ih)):i.password?await Kf(r,i.password)?(delete i.password,n(null,i)):Me(n,ih):(console.info(`user=${e} has no password set`,i),Me(n,lk))}var Ar={};v(Ar,{buildVerifyFn:()=>j_,getCallbackUrl:()=>hk,strategyFactory:()=>sh});var ka=t=>Promise.resolve(t);async function ll(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=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 fk(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 fk(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 mk=require("passport-google-oauth").OAuth2Strategy;function j_(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return ll(s,!0,i,t)}}async function sh(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=j_(r);return new mk({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function hk(t){return on("google",t)}var Sr={};v(Sr,{buildVerifyFn:()=>Y_,fetchStrategyConfig:()=>Tk,getCallbackUrl:()=>Ak,strategyFactory:()=>Ek});var H_=Q(require("node-fetch"));var gk=require("@techpass/passport-openidconnect").Strategy;function Y_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:yk(n,i),oauth2:{accessToken:s,refreshToken:o}};return ll(l,!1,c,t)}}function yk(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Xf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function Ek(t,e){try{let r=Y_(e),n=new gk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function Tk(t,e){try{let{clientID:r,clientSecret:n,configUrl:i}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let s=await(0,H_.default)(i);if(!s.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${s.statusText}`);let o=await s.json();return{issuer:o.issuer,authorizationURL:o.authorization_endpoint,tokenURL:o.token_endpoint,userInfoURL:o.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function Ak(){return on("oidc")}var oh={};v(oh,{postAuth:()=>Ik,preAuth:()=>_k});var Sk=require("passport-google-oauth").OAuth2Strategy;async function K_(){let t=await Zm();if(!t)throw new Error("No google configuration found");return t}async function _k(t,e,r){let n=await K_(),s=`${await Ma({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await sh(n,s,ka);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 Ik(t,e,r){let n=await K_(),s=`${await Ma({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 Sk({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 mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var Ok=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(Ok);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 ph={};v(ph,{SecretOption:()=>Z_,decrypt:()=>dh,decryptFile:()=>Ck,encrypt:()=>wk,encryptFile:()=>bk,getSecret:()=>lh});var _r=Q(require("crypto")),an=Q(require("fs")),uh=Q(require("zlib"));var ah=require("path"),dl="aes-256-ctr",z_="-",xk=1e4,Rk=32,pl=16,ch=16,Z_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(Z_||{});function lh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function fl(t,e){return _r.default.pbkdf2Sync(t,e,xk,Rk,"sha512")}function wk(t,e="api"){let r=_r.default.randomBytes(pl),n=fl(lh(e),r),i=_r.default.createCipheriv(dl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${z_}${a}`}function dh(t,e="api"){let[r,n]=t.split(z_),i=Buffer.from(r,"hex"),s=fl(lh(e),i),o=_r.default.createDecipheriv(dl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function bk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,ah.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,ah.join)(t,n)),a=_r.default.randomBytes(pl),u=_r.default.randomBytes(ch),c=fl(r,a),l=_r.default.createCipheriv(dl,c,u);return o.write(a),o.write(u),s.pipe(uh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function Dk(t){let e=an.default.createReadStream(t),r=await J_(e,pl),n=await J_(e,ch);return e.close(),{salt:r,iv:n}}async function Ck(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await Dk(t),s=an.default.createReadStream(t,{start:pl+ch}),o=an.default.createWriteStream(e),a=fl(r,n),u=_r.default.createDecipheriv(dl,a,i),c=uh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),d(m)}),u.on("error",m=>{o.close(),d(m)}),c.on("error",m=>{o.close(),d(m)}),o.on("error",m=>{o.close(),d(m)})})}function J_(t,e){return new Promise((r,n)=>{let i=0,s=[];t.on("readable",()=>{let o;for(;(o=t.read(e-i))!==null;)s.push(o),i+=o.length;r(Buffer.concat(s))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var eI=Q(require("dd-trace")),vk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function Nk(){return new Date(Date.now()-vk).toISOString()}function X_(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}async function Pk(t,e){if(ca(t))return{valid:!0,user:void 0};let n=dh(t).split(N)[0];return Ve(n,async()=>{let i;try{let s=ie();i=await dr("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 ml(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function hl(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=ml(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=ml(n,"x-budibase-token"),c=ai(n,"budibase:auth")||Oc(u),l=ml(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=ml(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,_=c.userId,S;try{S=await Lm(_,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<Nk()&&await Um(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 Pk(l,y);_&&(m=!0,g="api_key",p=S,f=!S)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&eI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),X_(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Up(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 X_(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Uk=async(t,e)=>e(),gl=Uk;function yl(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),Ve(l,o)}}var El=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),ca(r)||t.throw(403,"Unauthorized"),e()};var Lk=["GET","HEAD","OPTIONS"],Mk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Tl(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||Lk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!Mk.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Al=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Sl=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 _l=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 kk=require("koa-pino-logger"),Fk=require("correlation-id");function Bk(){return{logger:Ac,genReqId:Fk.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 Gk(){return h.HTTP_LOGGING?kk(Bk()):(t,e)=>e()}var $k=Gk(),tI=$k;var rI=require("uuid"),Vk=require("correlation-id"),qk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,rI.v4)()),Vk.withId(r,()=>e())},nI=qk;function iI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of MT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Wk(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Pc(r)};if(iI(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var sI=Wk;function oI(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}var uI=Q(require("crypto")),aI={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com"],"style-src":["'self'","'unsafe-inline'","https://cdn.jsdelivr.net","https://fonts.googleapis.com","https://rsms.me","https://maxcdn.bootstrapcdn.com"],"object-src":["'none'"],"base-uri":["'self'"],"connect-src":["'self'","https://*.budibase.app","https://*.budibaseqa.app","https://*.budibase.net","https://api-iam.intercom.io","https://api-ping.intercom.io","https://app.posthog.com","https://us.i.posthog.com","wss://nexus-websocket-a.intercom.io","wss://nexus-websocket-b.intercom.io","https://nexus-websocket-a.intercom.io","https://nexus-websocket-b.intercom.io","https://uploads.intercomcdn.com","https://uploads.intercomusercontent.com","https://*.amazonaws.com","https://*.s3.amazonaws.com","https://*.s3.us-east-2.amazonaws.com","https://*.s3.us-east-1.amazonaws.com","https://*.s3.us-west-1.amazonaws.com","https://*.s3.us-west-2.amazonaws.com","https://*.s3.af-south-1.amazonaws.com","https://*.s3.ap-east-1.amazonaws.com","https://*.s3.ap-south-1.amazonaws.com","https://*.s3.ap-northeast-2.amazonaws.com","https://*.s3.ap-southeast-1.amazonaws.com","https://*.s3.ap-southeast-2.amazonaws.com","https://*.s3.ap-northeast-1.amazonaws.com","https://*.s3.ca-central-1.amazonaws.com","https://*.s3.cn-north-1.amazonaws.com","https://*.s3.cn-northwest-1.amazonaws.com","https://*.s3.eu-central-1.amazonaws.com","https://*.s3.eu-west-1.amazonaws.com","https://*.s3.eu-west-2.amazonaws.com","https://*.s3.eu-south-1.amazonaws.com","https://*.s3.eu-west-3.amazonaws.com","https://*.s3.eu-north-1.amazonaws.com","https://*.s3.sa-east-1.amazonaws.com","https://*.s3.me-south-1.amazonaws.com","https://*.s3.us-gov-east-1.amazonaws.com","https://*.s3.us-gov-west-1.amazonaws.com","https://api.github.com"],"font-src":["'self'","data:","https://cdn.jsdelivr.net","https://fonts.gstatic.com","https://rsms.me","https://maxcdn.bootstrapcdn.com","https://js.intercomcdn.com","https://fonts.intercomcdn.com"],"frame-src":["'self'","https:"],"img-src":["http:","https:","data:","blob:"],"manifest-src":["'self'"],"media-src":["'self'","https://js.intercomcdn.com","https://cdn.budi.live"],"worker-src":["blob:"]};async function Qk(t,e){try{let r=uI.default.randomBytes(16).toString("base64"),n={...aI};n["script-src"]=[...aI["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 cI=Qk;var Fa={};v(Fa,{body:()=>jk,params:()=>Hk});var fh=Q(require("joi"));function lI(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:fh.default.any().optional(),updatedAt:fh.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 jk(t,e){return lI(t,"body",e)}function Hk(t,e){return lI(t,"params",e)}var dI=async(t,e)=>t.ip?await Xp(t.ip,()=>e()):e();var Yk={google:oh};var pI=require("koa-passport"),Kk=require("passport-local").Strategy,Il=require("passport-oauth2-refresh"),Jk=hl,zk=yl,Zk=Tl,Xk=pI;pI.use(new Kk(Os.options,Os.authenticate));async function eF(t,e){let r=await Sr.getCallbackUrl(),n,i;try{if(n=await Sr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Sr.strategyFactory(n,ka)}catch{throw new Error("Could not refresh OAuth Token")}return Il.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Il.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function tF(t,e){let r=await Ar.getCallbackUrl(t),n;try{n=await Ar.strategyFactory(t,r,ka)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Il.use(n),new Promise(i=>{Il.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function rF(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Xm(r);return n?eF(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await il();return n?tF(n,t):{err:{data:"Google configuration not found"}}}}}async function nF(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 iF(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 zc(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 Jc.logout(e.user?.email),await Pa(r)}var yh={};v(yh,{validate:()=>cF});var D=Q(require("joi")),sF=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function gh(t,e){let{error:r}=t.validate(e);if(r)throw r}function oF(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)});gh(e,t)}function aF(t){let e=D.default.object({type:D.default.string().allow(...Object.values(bl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(wl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(Dl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...sF),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()}))})});gh(n,t)}function uF(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(...Fh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});gh(n,t)}function cF(t){switch(t?.type){case"component":oF(t);break;case"datasource":aF(t);break;case"automation":uF(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Eh={};v(Eh,{Client:()=>qe,clients:()=>Kr,locks:()=>ci,utils:()=>uc});var Th={};v(Th,{isBlacklisted:()=>dF,refreshBlacklist:()=>gI});var fI=Q(require("dns")),xl=Q(require("net"));var mI=require("util"),Ol,lF=(0,mI.promisify)(fI.default.lookup);async function hI(t){return xl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await lF(t,{all:!0})).map(r=>r.address)}async function gI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(xl.default.isIP(i))r.push(i);else{let s=await hI(i);r=r.concat(s)}}Ol=r}async function dF(t){if(Ol||await gI(),Ol?.length===0)return!1;let e;return xl.default.isIP(t)?e=[t]:e=await hI(t),!!Ol?.find(r=>e.includes(r))}var Sh={};v(Sh,{init:()=>fF});var pF={"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 yI(t,e){let r=pF[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ba=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=yI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Ve(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return t_()}};var EI,Ah;function fF(t){Tr||Kc(),Ah||(Ah=new Ba(t)),EI||(EI=Tr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Ah.processEvent(r,n,i)}))}var Ch={};v(Ch,{COUNT_FIELD_NAME:()=>bh,Sql:()=>wI,SqlTable:()=>Rl,designDoc:()=>Dh,utils:()=>jp});var _I=require("knex");var mF=require("knex");function _h(t){return["link","formula","ai"].indexOf(t)!==-1}function TI(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}=Vp(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&&!_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 gF(t,e,r){return t.createTable(e.name,n=>{TI(n,e,r)})}function yF(t,e,r,n,i){return t.alterTable(e.name,s=>{TI(s,e,r,n,i)})}function EF(t,e){return t.dropTable(e.name)}var Ih=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,mF.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=gF(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=yF(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=EF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return zi(n)}},Rl=Ih;var II=require("lodash"),bh="__bb_total";function AI(){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 TF(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 OI(t){return Array.isArray(t)?t.map(e=>OI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function SI(t){return t.sourceType==="internal"||t.sourceId===Ul}function AF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function xI(t,e='"'){return`${e}${AF(t,e)}${e}`}function xh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=xI(t[r],e));return`[${t.join(",")}]`}function RI(t){return Bh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var SF={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},Rh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new kr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&RI(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(!Wp(e))return null}else{if(qp(e))return null;if(ic(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,II.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(),_=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,SF[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(xh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(xh(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(xI(xh(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 _=sc(E.low),S=sc(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&&!$p(this.table)&&p&&e.andWhereLike(`${p}._id`,`${xr(r.documentType)}%`),e}isSqs(){return SI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;SI(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 ${bh}`)}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=TF(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(Oh()),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 ${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(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())}},wh=class extends Rl{constructor(r,n=AI()){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=OI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,_I.knex)(s),a,u=new Rh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:AI()}});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===Ul){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(!RI(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)}},wI=wh;var Dh={};v(Dh,{base:()=>_F});function _F(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var IF={...ua,...Ae},OF=(t={})=>{rc(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,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