@budibase/backend-core 3.4.6 → 3.4.7
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,13 +1,13 @@
|
|
|
1
|
-
"use strict";var mO=Object.create;var Fa=Object.defineProperty;var hO=Object.getOwnPropertyDescriptor;var gO=Object.getOwnPropertyNames;var yO=Object.getPrototypeOf,EO=Object.prototype.hasOwnProperty;var Y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)Fa(t,r,{get:e[r],enumerable:!0})},Ah=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of gO(e))!EO.call(t,i)&&i!==r&&Fa(t,i,{get:()=>e[i],enumerable:!(n=hO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?mO(yO(t)):{},Ah(e||!t||!t.__esModule?Fa(r,"default",{value:t,enumerable:!0}):r,t)),TO=t=>Ah(Fa({},"__esModule",{value:!0}),t);var jh=Y((Cl,Nl)=>{"use strict";(function(t,e){typeof Cl=="object"&&typeof Nl<"u"?Nl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Cl,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(V){var k=["th","st","nd","rd"],D=V%100;return"["+V+(k[(D-20)%10]||k[D]||k[0])+"]"}},y=function(V,k,D){var W=String(V);return!W||W.length>=k?V:""+Array(k+1-W.length).join(D)+V},O={s:y,z:function(V){var k=-V.utcOffset(),D=Math.abs(k),W=Math.floor(D/60),U=D%60;return(k<=0?"+":"-")+y(W,2,"0")+":"+y(U,2,"0")},m:function V(k,D){if(k.date()<D.date())return-V(D,k);var W=12*(D.year()-k.year())+(D.month()-k.month()),U=k.clone().add(W,c),K=D-U<0,q=k.clone().add(W+(K?-1:1),c);return+(-(W+(D-U)/(K?U-q:q-U))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",L={};L[S]=E;var T="$isDayjsObject",A=function(V){return V instanceof ce||!(!V||!V[T])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},w=function(V,k){if(A(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ce(D)},F=O;F.l=B,F.i=A,F.w=function(V,k){return w(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ce=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[T]=!0}var k=V.prototype;return k.parse=function(D){this.$d=function(W){var U=W.date,K=W.utc;if(U===null)return new Date(NaN);if(F.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var q=U.match(f);if(q){var ie=q[2]-1||0,G=(q[7]||"0").substring(0,3);return K?new Date(Date.UTC(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)):new Date(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)}}return new Date(U)}(D),this.init()},k.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==p},k.isSame=function(D,W){var U=w(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return w(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<w(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(cn,Ve){var Ar=F.w(U.$u?Date.UTC(U.$y,Ve,cn):new Date(U.$y,Ve,cn),U);return K?Ar:Ar.endOf(a)},G=function(cn,Ve){return F.w(U.toDate()[cn].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Ve)),U)},Re=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(q){case d:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Le):ie(0,Le+1);case u:var un=this.$locale().weekStart||0,Is=(Re<un?Re+7:Re)-un;return ie(K?lt-Is:lt+(6-Is),Le);case a:case m:return G(hi+"Hours",0);case o:return G(hi+"Minutes",1);case s:return G(hi+"Seconds",2);case i:return G(hi+"Milliseconds",3);default:return this.clone()}},k.endOf=function(D){return this.startOf(D,!1)},k.$set=function(D,W){var U,K=F.p(D),q="set"+(this.$u?"UTC":""),ie=(U={},U[a]=q+"Date",U[m]=q+"Date",U[c]=q+"Month",U[d]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[K],G=K===a?this.$D+(W-this.$W):W;if(K===c||K===d){var Re=this.clone().set(m,1);Re.$d[ie](G),Re.init(),this.$d=Re.set(m,Math.min(this.$D,Re.daysInMonth())).$d}else ie&&this.$d[ie](G);return this.init(),this},k.set=function(D,W){return this.clone().$set(D,W)},k.get=function(D){return this[F.p(D)]()},k.add=function(D,W){var U,K=this;D=Number(D);var q=F.p(W),ie=function(Le){var lt=w(K);return F.w(lt.date(lt.date()+Math.round(Le*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===d)return this.set(d,this.$y+D);if(q===a)return ie(1);if(q===u)return ie(7);var G=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,Re=this.$d.getTime()+D*G;return F.w(Re,this)},k.subtract=function(D,W){return this.add(-1*D,W)},k.format=function(D){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||p;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,Re=this.$M,Le=U.weekdays,lt=U.months,hi=U.meridiem,un=function(Ve,Ar,xs,ka){return Ve&&(Ve[Ar]||Ve(W,K))||xs[Ar].slice(0,ka)},Is=function(Ve){return F.s(ie%12||12,Ve,"0")},cn=hi||function(Ve,Ar,xs){var ka=Ve<12?"AM":"PM";return xs?ka.toLowerCase():ka};return K.replace(g,function(Ve,Ar){return Ar||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return Re+1;case"MM":return F.s(Re+1,2,"0");case"MMM":return un(U.monthsShort,Re,lt,3);case"MMMM":return un(lt,Re);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return un(U.weekdaysMin,W.$W,Le,2);case"ddd":return un(U.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return cn(ie,G,!0);case"A":return cn(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=w(D),Re=(G.utcOffset()-this.utcOffset())*e,Le=this-G,lt=function(){return F.m(q,G)};switch(ie){case d:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-Re)/6048e5;break;case a:K=(Le-Re)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return U?K:F.a(K)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(D,W){if(!D)return this.$L;var U=this.clone(),K=B(D,W,!0);return K&&(U.$L=K),U},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},V}(),an=ce.prototype;return w.prototype=an,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function(V){an[V[1]]=function(k){return this.$g(k,V[0],V[1])}}),w.extend=function(V,k){return V.$i||(V(k,ce,w),V.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(V){return w(1e3*V)},w.en=L[S],w.Ls=L,w.p={},w})});var Ot=Y(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var qI=t=>new iu(t);We.valid=qI;var WI=t=>new su(t);We.err=WI;var iu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,We.valid)(e(this.value))}mapErr(e){return(0,We.valid)(this.value)}};We.Valid=iu;var su=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,We.err)(this.error)}mapErr(e){return(0,We.err)(e(this.error))}};We.Err=su});var It=Y(Jh=>{"use strict";Object.defineProperty(Jh,"__esModule",{value:!0})});var Dr=Y(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});$t();var re=Ot();It();var QI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],jI=["sun","mon","tue","wed","thu","fri","sat"],YI=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Us=(t,e,r)=>{if(e==="months"&&r.useAliases&&QI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&jI.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)},HI=(t,e,r)=>{if(t==="*")return YI(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):Us(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):Us(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."):Us(n,e,r)}return Us(t,e,r)},zh=(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):Us(t,e,r),KI=(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 HI(n[0],e,r);if(n.length===2){let i=zh(n[0],e,r,0),s=zh(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)")},JI=(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=KI(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)},zI=(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(JI(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)};Ml.default=zI});var Zh=Y(Ls=>{"use strict";var ZI=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var XI=Ot(),ex=ZI(Dr());It();var tx=(t,e)=>{if(!t.seconds)return(0,XI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,ex.default)(r,"seconds",e)};Ls.default=tx});var Xh=Y(Ms=>{"use strict";var rx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var nx=Ot(),ix=rx(Dr());It();var sx=(t,e)=>{if(!t.minutes)return(0,nx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ix.default)(r,"minutes",e)};Ms.default=sx});var eg=Y(ks=>{"use strict";var ox=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var ax=Ot(),ux=ox(Dr());It();var cx=(t,e)=>{if(!t.hours)return(0,ax.err)(["hours field is undefined."]);let{hours:r}=t;return(0,ux.default)(r,"hours",e)};ks.default=cx});var tg=Y(Bs=>{"use strict";var lx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=Ot(),dx=lx(Dr());It();var px=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,dx.default)(r,"daysOfMonth",e)};Bs.default=px});var rg=Y(Gs=>{"use strict";var fx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var mx=Ot(),hx=fx(Dr());It();var gx=(t,e)=>{if(!t.months)return(0,mx.err)(["months field is undefined."]);let{months:r}=t;return(0,hx.default)(r,"months",e)};Gs.default=gx});var ng=Y(Vs=>{"use strict";var yx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=Ot(),Ex=yx(Dr());It();var Tx=(t,e)=>{if(!t.daysOfWeek)return(0,$s.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$s.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$s.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Ex.default)(r,"daysOfWeek",e)};Vs.default=Tx});var ig=Y(qs=>{"use strict";var _x=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var Ax=Ot(),Sx=_x(Dr());It();var Ox=(t,e)=>{if(!t.years)return(0,Ax.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Sx.default)(r,"years",e)};qs.default=Ox});var ug=Y((Fq,ag)=>{"use strict";var kl;try{kl=Map}catch{}var Fl;try{Fl=Set}catch{}function sg(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(og);if(kl&&t instanceof kl)return new Map(Array.from(t.entries()));if(Fl&&t instanceof Fl)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]:sg(t[i],e,r)}return n}return t}function og(t){return sg(t,[],[])}ag.exports=og});var Ws=Y(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.default=vx;var Ix=Object.prototype.toString,xx=Error.prototype.toString,wx=RegExp.prototype.toString,Rx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",bx=/^Symbol\((.*)\)(.*)$/;function Dx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function cg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Dx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Rx.call(t).replace(bx,"Symbol($1)");let n=Ix.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+xx.call(t)+"]":n==="RegExp"?wx.call(t):null}function vx(t,e){let r=cg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=cg(this[n],e);return s!==null?s:i},2)}});var Xt=Y(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.default=be.array=be.object=be.boolean=be.date=be.number=be.string=be.mixed=void 0;var lg=Cx(Ws());function Cx(t){return t&&t.__esModule?t:{default:t}}var dg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,lg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,lg.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"};be.mixed=dg;var pg={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"};be.string=pg;var fg={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"};be.number=fg;var mg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};be.date=mg;var hg={isValue:"${path} field must be ${value}"};be.boolean=hg;var gg={noUnknown:"${path} field has unspecified keys: ${unknown}"};be.object=gg;var yg={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"};be.array=yg;var Nx=Object.assign(Object.create(null),{mixed:dg,string:pg,number:fg,date:mg,object:gg,array:yg,boolean:hg});be.default=Nx});var bi=Y(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Px=t=>t&&t.__isYupSchema__;ou.default=Px});var Tg=Y(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Ux=Eg(require("lodash/has")),Lx=Eg(bi());function Eg(t){return t&&t.__esModule?t:{default:t}}var Gl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Ux.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,Lx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Mx=Gl;au.default=Mx});var Vl=Y($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$l.default=kx;function kx(t){return t==null?[]:[].concat(t)}});var bn=Y(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var Fx=_g(Ws()),Bx=_g(Vl());function _g(t){return t&&t.__esModule?t:{default:t}}function ql(){return ql=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},ql.apply(this,arguments)}var Gx=/\$\{\s*(\w+)\s*\}/g,Wl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ql({},r,{path:n})),typeof e=="string"?e.replace(Gx,(i,s)=>(0,Fx.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,Bx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};uu.default=Wl});var cu=Y(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});jl.default=qx;var Ql=$x(bn());function $x(t){return t&&t.__esModule?t:{default:t}}var Vx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function qx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Vx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Ql.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(!Ql.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 Ql.default(o,s,u),s);return}c(null,s)}})}}});var Qs=Y((jq,xg)=>{"use strict";function Dn(t){this._maxSize=t,this.clear()}Dn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Dn.prototype.get=function(t){return this._values[t]};Dn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Wx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Ig=/^\d+$/,Qx=/^\d/,jx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Yx=/^\s*(['"]?)(.*?)(\1)\s*$/,Kl=512,Ag=new Dn(Kl),Sg=new Dn(Kl),Og=new Dn(Kl);xg.exports={Cache:Dn,split:Hl,normalizePath:Yl,setter:function(t){var e=Yl(t);return Sg.get(t)||Sg.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=Yl(t);return Og.get(t)||Og.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+(Jl(r)||Ig.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Hx(Array.isArray(t)?t:Hl(t),e,r)}};function Yl(t){return Ag.get(t)||Ag.set(t,Hl(t).map(function(e){return e.replace(Yx,"$2")}))}function Hl(t){return t.match(Wx)||[""]}function Hx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(zx(i)&&(i='"'+i+'"'),a=Jl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Jl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function Kx(t){return t.match(Qx)&&!t.match(Ig)}function Jx(t){return jx.test(t)}function zx(t){return!Jl(t)&&(Kx(t)||Jx(t))}});var vn=Y(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Xx;Ys.default=void 0;var Zx=Qs(),lu={context:"$",value:"."};function Xx(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===lu.context,this.isValue=this.key[0]===lu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?lu.context:this.isValue?lu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,Zx.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=js;js.prototype.__isYupRef=!0});var wg=Y(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=nw;var ew=zl(require("lodash/mapValues")),du=zl(bn()),tw=zl(vn());function zl(t){return t&&t.__esModule?t:{default:t}}function pu(){return pu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},pu.apply(this,arguments)}function rw(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 nw(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=rw(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(A){return tw.default.isRef(A)?A.getValue(i,g,E):A}function O(A={}){let B=(0,ew.default)(pu({value:i,originalValue:u,label:o,path:A.path||s},p,A.params),y),w=new du.default(du.default.formatError(A.message||f,B),i,B.path,A.type||d);return w.params=B,w}let S=pu({path:s,parent:g,type:d,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(A=>{du.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var T;if(L=m.call(S,i,S),typeof((T=L)==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(A){n(A);return}du.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var Xl=Y(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.getIn=Rg;Hs.default=void 0;var iw=Qs(),sw=t=>t.substr(0,t.length-1).substr(1);function Rg(t,e,r,n=r){let i,s,o;return e?((0,iw.forEach)(e,(a,u,c)=>{let l=u?sw(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 ow=(t,e,r,n)=>Rg(t,e,r,n).schema,aw=ow;Hs.default=aw});var Dg=Y(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var bg=uw(vn());function uw(t){return t&&t.__esModule?t:{default:t}}var ed=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){bg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){bg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};fu.default=ed});var tr=Y(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var vg=er(ug()),Di=Xt(),cw=er(Tg()),Cg=er(cu()),mu=er(wg()),Ng=er(Ws()),lw=er(vn()),dw=Xl(),pw=er(Vl()),Pg=er(bn()),Ug=er(Dg());function er(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var xt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Ug.default,this._blacklist=new Ug.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Di.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ft({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=ft({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,vg.default)(ft({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=ft({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ft({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Ng.default)(e),o=(0,Ng.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 mO=Object.create;var Fa=Object.defineProperty;var hO=Object.getOwnPropertyDescriptor;var gO=Object.getOwnPropertyNames;var yO=Object.getPrototypeOf,EO=Object.prototype.hasOwnProperty;var Y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)Fa(t,r,{get:e[r],enumerable:!0})},Ah=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of gO(e))!EO.call(t,i)&&i!==r&&Fa(t,i,{get:()=>e[i],enumerable:!(n=hO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?mO(yO(t)):{},Ah(e||!t||!t.__esModule?Fa(r,"default",{value:t,enumerable:!0}):r,t)),TO=t=>Ah(Fa({},"__esModule",{value:!0}),t);var jh=Y((Cl,Nl)=>{"use strict";(function(t,e){typeof Cl=="object"&&typeof Nl<"u"?Nl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Cl,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(V){var k=["th","st","nd","rd"],D=V%100;return"["+V+(k[(D-20)%10]||k[D]||k[0])+"]"}},y=function(V,k,D){var W=String(V);return!W||W.length>=k?V:""+Array(k+1-W.length).join(D)+V},O={s:y,z:function(V){var k=-V.utcOffset(),D=Math.abs(k),W=Math.floor(D/60),U=D%60;return(k<=0?"+":"-")+y(W,2,"0")+":"+y(U,2,"0")},m:function V(k,D){if(k.date()<D.date())return-V(D,k);var W=12*(D.year()-k.year())+(D.month()-k.month()),U=k.clone().add(W,c),K=D-U<0,q=k.clone().add(W+(K?-1:1),c);return+(-(W+(D-U)/(K?U-q:q-U))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",L={};L[S]=E;var T="$isDayjsObject",A=function(V){return V instanceof ce||!(!V||!V[T])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},w=function(V,k){if(A(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ce(D)},F=O;F.l=B,F.i=A,F.w=function(V,k){return w(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ce=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[T]=!0}var k=V.prototype;return k.parse=function(D){this.$d=function(W){var U=W.date,K=W.utc;if(U===null)return new Date(NaN);if(F.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var q=U.match(f);if(q){var ie=q[2]-1||0,G=(q[7]||"0").substring(0,3);return K?new Date(Date.UTC(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)):new Date(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)}}return new Date(U)}(D),this.init()},k.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==p},k.isSame=function(D,W){var U=w(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return w(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<w(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(cn,Ve){var Ar=F.w(U.$u?Date.UTC(U.$y,Ve,cn):new Date(U.$y,Ve,cn),U);return K?Ar:Ar.endOf(a)},G=function(cn,Ve){return F.w(U.toDate()[cn].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Ve)),U)},Re=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(q){case d:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Le):ie(0,Le+1);case u:var un=this.$locale().weekStart||0,Is=(Re<un?Re+7:Re)-un;return ie(K?lt-Is:lt+(6-Is),Le);case a:case m:return G(hi+"Hours",0);case o:return G(hi+"Minutes",1);case s:return G(hi+"Seconds",2);case i:return G(hi+"Milliseconds",3);default:return this.clone()}},k.endOf=function(D){return this.startOf(D,!1)},k.$set=function(D,W){var U,K=F.p(D),q="set"+(this.$u?"UTC":""),ie=(U={},U[a]=q+"Date",U[m]=q+"Date",U[c]=q+"Month",U[d]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[K],G=K===a?this.$D+(W-this.$W):W;if(K===c||K===d){var Re=this.clone().set(m,1);Re.$d[ie](G),Re.init(),this.$d=Re.set(m,Math.min(this.$D,Re.daysInMonth())).$d}else ie&&this.$d[ie](G);return this.init(),this},k.set=function(D,W){return this.clone().$set(D,W)},k.get=function(D){return this[F.p(D)]()},k.add=function(D,W){var U,K=this;D=Number(D);var q=F.p(W),ie=function(Le){var lt=w(K);return F.w(lt.date(lt.date()+Math.round(Le*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===d)return this.set(d,this.$y+D);if(q===a)return ie(1);if(q===u)return ie(7);var G=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,Re=this.$d.getTime()+D*G;return F.w(Re,this)},k.subtract=function(D,W){return this.add(-1*D,W)},k.format=function(D){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||p;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,Re=this.$M,Le=U.weekdays,lt=U.months,hi=U.meridiem,un=function(Ve,Ar,xs,ka){return Ve&&(Ve[Ar]||Ve(W,K))||xs[Ar].slice(0,ka)},Is=function(Ve){return F.s(ie%12||12,Ve,"0")},cn=hi||function(Ve,Ar,xs){var ka=Ve<12?"AM":"PM";return xs?ka.toLowerCase():ka};return K.replace(g,function(Ve,Ar){return Ar||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return Re+1;case"MM":return F.s(Re+1,2,"0");case"MMM":return un(U.monthsShort,Re,lt,3);case"MMMM":return un(lt,Re);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return un(U.weekdaysMin,W.$W,Le,2);case"ddd":return un(U.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return cn(ie,G,!0);case"A":return cn(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=w(D),Re=(G.utcOffset()-this.utcOffset())*e,Le=this-G,lt=function(){return F.m(q,G)};switch(ie){case d:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-Re)/6048e5;break;case a:K=(Le-Re)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return U?K:F.a(K)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(D,W){if(!D)return this.$L;var U=this.clone(),K=B(D,W,!0);return K&&(U.$L=K),U},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},V}(),an=ce.prototype;return w.prototype=an,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function(V){an[V[1]]=function(k){return this.$g(k,V[0],V[1])}}),w.extend=function(V,k){return V.$i||(V(k,ce,w),V.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(V){return w(1e3*V)},w.en=L[S],w.Ls=L,w.p={},w})});var Ot=Y(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var qI=t=>new iu(t);We.valid=qI;var WI=t=>new su(t);We.err=WI;var iu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,We.valid)(e(this.value))}mapErr(e){return(0,We.valid)(this.value)}};We.Valid=iu;var su=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,We.err)(this.error)}mapErr(e){return(0,We.err)(e(this.error))}};We.Err=su});var It=Y(zh=>{"use strict";Object.defineProperty(zh,"__esModule",{value:!0})});var Dr=Y(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});$t();var re=Ot();It();var QI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],jI=["sun","mon","tue","wed","thu","fri","sat"],YI=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Us=(t,e,r)=>{if(e==="months"&&r.useAliases&&QI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&jI.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)},HI=(t,e,r)=>{if(t==="*")return YI(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):Us(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):Us(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."):Us(n,e,r)}return Us(t,e,r)},Jh=(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):Us(t,e,r),KI=(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 HI(n[0],e,r);if(n.length===2){let i=Jh(n[0],e,r,0),s=Jh(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)")},zI=(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=KI(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)},JI=(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(zI(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)};Ml.default=JI});var Zh=Y(Ls=>{"use strict";var ZI=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var XI=Ot(),ex=ZI(Dr());It();var tx=(t,e)=>{if(!t.seconds)return(0,XI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,ex.default)(r,"seconds",e)};Ls.default=tx});var Xh=Y(Ms=>{"use strict";var rx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var nx=Ot(),ix=rx(Dr());It();var sx=(t,e)=>{if(!t.minutes)return(0,nx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ix.default)(r,"minutes",e)};Ms.default=sx});var eg=Y(ks=>{"use strict";var ox=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var ax=Ot(),ux=ox(Dr());It();var cx=(t,e)=>{if(!t.hours)return(0,ax.err)(["hours field is undefined."]);let{hours:r}=t;return(0,ux.default)(r,"hours",e)};ks.default=cx});var tg=Y(Bs=>{"use strict";var lx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=Ot(),dx=lx(Dr());It();var px=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,dx.default)(r,"daysOfMonth",e)};Bs.default=px});var rg=Y(Gs=>{"use strict";var fx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var mx=Ot(),hx=fx(Dr());It();var gx=(t,e)=>{if(!t.months)return(0,mx.err)(["months field is undefined."]);let{months:r}=t;return(0,hx.default)(r,"months",e)};Gs.default=gx});var ng=Y(Vs=>{"use strict";var yx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=Ot(),Ex=yx(Dr());It();var Tx=(t,e)=>{if(!t.daysOfWeek)return(0,$s.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$s.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$s.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Ex.default)(r,"daysOfWeek",e)};Vs.default=Tx});var ig=Y(qs=>{"use strict";var _x=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var Ax=Ot(),Sx=_x(Dr());It();var Ox=(t,e)=>{if(!t.years)return(0,Ax.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Sx.default)(r,"years",e)};qs.default=Ox});var ug=Y((Bq,ag)=>{"use strict";var kl;try{kl=Map}catch{}var Fl;try{Fl=Set}catch{}function sg(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(og);if(kl&&t instanceof kl)return new Map(Array.from(t.entries()));if(Fl&&t instanceof Fl)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]:sg(t[i],e,r)}return n}return t}function og(t){return sg(t,[],[])}ag.exports=og});var Ws=Y(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.default=vx;var Ix=Object.prototype.toString,xx=Error.prototype.toString,wx=RegExp.prototype.toString,Rx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",bx=/^Symbol\((.*)\)(.*)$/;function Dx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function cg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Dx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Rx.call(t).replace(bx,"Symbol($1)");let n=Ix.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+xx.call(t)+"]":n==="RegExp"?wx.call(t):null}function vx(t,e){let r=cg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=cg(this[n],e);return s!==null?s:i},2)}});var Xt=Y(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.default=be.array=be.object=be.boolean=be.date=be.number=be.string=be.mixed=void 0;var lg=Cx(Ws());function Cx(t){return t&&t.__esModule?t:{default:t}}var dg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,lg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,lg.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"};be.mixed=dg;var pg={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"};be.string=pg;var fg={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"};be.number=fg;var mg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};be.date=mg;var hg={isValue:"${path} field must be ${value}"};be.boolean=hg;var gg={noUnknown:"${path} field has unspecified keys: ${unknown}"};be.object=gg;var yg={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"};be.array=yg;var Nx=Object.assign(Object.create(null),{mixed:dg,string:pg,number:fg,date:mg,object:gg,array:yg,boolean:hg});be.default=Nx});var bi=Y(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Px=t=>t&&t.__isYupSchema__;ou.default=Px});var Tg=Y(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Ux=Eg(require("lodash/has")),Lx=Eg(bi());function Eg(t){return t&&t.__esModule?t:{default:t}}var Gl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Ux.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,Lx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Mx=Gl;au.default=Mx});var Vl=Y($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$l.default=kx;function kx(t){return t==null?[]:[].concat(t)}});var bn=Y(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var Fx=_g(Ws()),Bx=_g(Vl());function _g(t){return t&&t.__esModule?t:{default:t}}function ql(){return ql=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},ql.apply(this,arguments)}var Gx=/\$\{\s*(\w+)\s*\}/g,Wl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ql({},r,{path:n})),typeof e=="string"?e.replace(Gx,(i,s)=>(0,Fx.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,Bx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};uu.default=Wl});var cu=Y(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});jl.default=qx;var Ql=$x(bn());function $x(t){return t&&t.__esModule?t:{default:t}}var Vx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function qx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Vx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Ql.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(!Ql.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 Ql.default(o,s,u),s);return}c(null,s)}})}}});var Qs=Y((Yq,xg)=>{"use strict";function Dn(t){this._maxSize=t,this.clear()}Dn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Dn.prototype.get=function(t){return this._values[t]};Dn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Wx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Ig=/^\d+$/,Qx=/^\d/,jx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Yx=/^\s*(['"]?)(.*?)(\1)\s*$/,Kl=512,Ag=new Dn(Kl),Sg=new Dn(Kl),Og=new Dn(Kl);xg.exports={Cache:Dn,split:Hl,normalizePath:Yl,setter:function(t){var e=Yl(t);return Sg.get(t)||Sg.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=Yl(t);return Og.get(t)||Og.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+(zl(r)||Ig.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Hx(Array.isArray(t)?t:Hl(t),e,r)}};function Yl(t){return Ag.get(t)||Ag.set(t,Hl(t).map(function(e){return e.replace(Yx,"$2")}))}function Hl(t){return t.match(Wx)||[""]}function Hx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Jx(i)&&(i='"'+i+'"'),a=zl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function zl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function Kx(t){return t.match(Qx)&&!t.match(Ig)}function zx(t){return jx.test(t)}function Jx(t){return!zl(t)&&(Kx(t)||zx(t))}});var vn=Y(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Xx;Ys.default=void 0;var Zx=Qs(),lu={context:"$",value:"."};function Xx(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===lu.context,this.isValue=this.key[0]===lu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?lu.context:this.isValue?lu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,Zx.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=js;js.prototype.__isYupRef=!0});var wg=Y(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=nw;var ew=Jl(require("lodash/mapValues")),du=Jl(bn()),tw=Jl(vn());function Jl(t){return t&&t.__esModule?t:{default:t}}function pu(){return pu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},pu.apply(this,arguments)}function rw(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 nw(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=rw(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(A){return tw.default.isRef(A)?A.getValue(i,g,E):A}function O(A={}){let B=(0,ew.default)(pu({value:i,originalValue:u,label:o,path:A.path||s},p,A.params),y),w=new du.default(du.default.formatError(A.message||f,B),i,B.path,A.type||d);return w.params=B,w}let S=pu({path:s,parent:g,type:d,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(A=>{du.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var T;if(L=m.call(S,i,S),typeof((T=L)==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(A){n(A);return}du.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var Xl=Y(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.getIn=Rg;Hs.default=void 0;var iw=Qs(),sw=t=>t.substr(0,t.length-1).substr(1);function Rg(t,e,r,n=r){let i,s,o;return e?((0,iw.forEach)(e,(a,u,c)=>{let l=u?sw(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 ow=(t,e,r,n)=>Rg(t,e,r,n).schema,aw=ow;Hs.default=aw});var Dg=Y(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var bg=uw(vn());function uw(t){return t&&t.__esModule?t:{default:t}}var ed=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){bg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){bg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};fu.default=ed});var tr=Y(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var vg=er(ug()),Di=Xt(),cw=er(Tg()),Cg=er(cu()),mu=er(wg()),Ng=er(Ws()),lw=er(vn()),dw=Xl(),pw=er(Vl()),Pg=er(bn()),Ug=er(Dg());function er(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var xt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Ug.default,this._blacklist=new Ug.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Di.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ft({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=ft({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,vg.default)(ft({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=ft({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ft({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Ng.default)(e),o=(0,Ng.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
2
2
|
|
|
3
3
|
attempted value: ${s}
|
|
4
|
-
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let 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,Cg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Cg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Pg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Pg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,vg.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=Di.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Di.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=Di.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,mu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,pw.default)(e).map(s=>new lw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new cw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,mu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Di.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,mu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Di.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,mu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};hu.default=xt;xt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])xt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,dw.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])xt.prototype[t]=xt.prototype.oneOf;for(let t of["not","nope"])xt.prototype[t]=xt.prototype.notOneOf;xt.prototype.optional=xt.prototype.notRequired});var Mg=Y(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Lg;Ks.default=void 0;var fw=mw(tr());function mw(t){return t&&t.__esModule?t:{default:t}}var td=fw.default,hw=td;Ks.default=hw;function Lg(){return new td}Lg.prototype=td.prototype});var vi=Y(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var gw=t=>t==null;gu.default=gw});var $g=Y(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Gg;zs.default=void 0;var yw=Bg(tr()),kg=Xt(),Fg=Bg(vi());function Bg(t){return t&&t.__esModule?t:{default:t}}function Gg(){return new Js}var Js=class extends yw.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=kg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Fg.default)(r)||r===!0}})}isFalse(e=kg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Fg.default)(r)||r===!1}})}};zs.default=Js;Gg.prototype=Js.prototype});var Wg=Y(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=qg;Xs.default=void 0;var Vt=Xt(),rr=Vg(vi()),Ew=Vg(tr());function Vg(t){return t&&t.__esModule?t:{default:t}}var Tw=/^((([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,_w=/^((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,Aw=/^(?:[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,Sw=t=>(0,rr.default)(t)||t===t.trim(),Ow={}.toString();function qg(){return new Zs}var Zs=class extends Ew.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===Ow?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=Vt.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=Vt.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=Vt.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||Vt.string.matches,params:{regex:e},test:o=>(0,rr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(Tw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(_w,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(Aw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Vt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:Sw})}lowercase(e=Vt.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=Vt.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()})}};Xs.default=Zs;qg.prototype=Zs.prototype});var Yg=Y(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=jg;to.default=void 0;var Cn=Xt(),Nn=Qg(vi()),Iw=Qg(tr());function Qg(t){return t&&t.__esModule?t:{default:t}}var xw=t=>t!=+t;function jg(){return new eo}var eo=class extends Iw.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"&&!xw(e)}min(e,r=Cn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Nn.default)(n)||n>=this.resolve(e)}})}max(e,r=Cn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Nn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Cn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Nn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Cn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Nn.default)(n)||n>this.resolve(e)}})}positive(e=Cn.number.positive){return this.moreThan(0,e)}negative(e=Cn.number.negative){return this.lessThan(0,e)}integer(e=Cn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Nn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Nn.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,Nn.default)(i)?i:Math[e](i))}};to.default=eo;jg.prototype=eo.prototype});var Hg=Y(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.default=Rw;var ww=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Rw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=ww.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 zg=Y(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=id;ro.default=void 0;var bw=yu(Hg()),Kg=Xt(),Jg=yu(vi()),Dw=yu(vn()),vw=yu(tr());function yu(t){return t&&t.__esModule?t:{default:t}}var nd=new Date(""),Cw=t=>Object.prototype.toString.call(t)==="[object Date]";function id(){return new Ci}var Ci=class extends vw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,bw.default)(e),isNaN(e)?nd:new Date(e))})})}_typeCheck(e){return Cw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Dw.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=Kg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Jg.default)(i)||i>=this.resolve(n)}})}max(e,r=Kg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Jg.default)(i)||i<=this.resolve(n)}})}};ro.default=Ci;Ci.INVALID_DATE=nd;id.prototype=Ci.prototype;id.INVALID_DATE=nd});var Xg=Y((sW,sd)=>{"use strict";sd.exports=function(t){return Zg(Nw(t),t)};sd.exports.array=Zg;function Zg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=Pw(e),a=Uw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,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 Nw(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 Pw(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function Uw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ey=Y(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=Gw;var Lw=Eu(require("lodash/has")),Mw=Eu(Xg()),kw=Qs(),Fw=Eu(vn()),Bw=Eu(bi());function Eu(t){return t&&t.__esModule?t:{default:t}}function Gw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,kw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Lw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Fw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Bw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Mw.default.array(n,r).reverse()}});var ry=Y(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=$w;function ty(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function $w(t){return(e,r)=>ty(t,e)-ty(t,r)}});var cy=Y(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=uy;io.default=void 0;var ny=qt(require("lodash/has")),iy=qt(require("lodash/snakeCase")),Vw=qt(require("lodash/camelCase")),qw=qt(require("lodash/mapKeys")),Ww=qt(require("lodash/mapValues")),Qw=Qs(),sy=Xt(),jw=qt(ey()),ay=qt(ry()),Yw=qt(cu()),Hw=qt(bn()),ud=qt(tr());function qt(t){return t&&t.__esModule?t:{default:t}}function Ni(){return Ni=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},Ni.apply(this,arguments)}var oy=t=>Object.prototype.toString.call(t)==="[object Object]";function Kw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Jw=(0,ay.default)([]),no=class extends ud.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Jw,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return oy(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,ny.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(!Hw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!oy(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],Ni({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,Yw.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=Ni({},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 ud.default&&s instanceof ud.default&&(n[i]=s.concat(o))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,ay.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,jw.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,Qw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,ny.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=sy.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=Kw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=sy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,qw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Vw.default)}snakeCase(){return this.transformKeys(iy.default)}constantCase(){return this.transformKeys(e=>(0,iy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Ww.default)(this.fields,r=>r.describe()),e}};io.default=no;function uy(t){return new no(t)}uy.prototype=no.prototype});var dy=Y(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=ly;oo.default=void 0;var cd=Pi(vi()),zw=Pi(bi()),Zw=Pi(Ws()),ld=Xt(),Xw=Pi(cu()),eR=Pi(bn()),tR=Pi(tr());function Pi(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Tu.apply(this,arguments)}function ly(t){return new so(t)}var so=class extends tR.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Tu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,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(!eR.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],O=`${r.path||""}[${E}]`,S=Tu({},r,{path:O,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(L,T)=>c.validate(y,S,T)}(0,Xw.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,zw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Zw.default)(e));return r.innerType=e,r}length(e,r=ld.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,cd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ld.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,cd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ld.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,cd.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)}};oo.default=so;ly.prototype=so.prototype});var py=Y(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=iR;ao.default=void 0;var rR=nR(bi());function nR(t){return t&&t.__esModule?t:{default:t}}function iR(t){return new _u(t)}var _u=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,rR.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)}},sR=_u;ao.default=sR});var fy=Y(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=uR;var oR=aR(Xt());function aR(t){return t&&t.__esModule?t:{default:t}}function uR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{oR.default[e][r]=t[e][r]})})}});var fd=Y(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.addMethod=hR;Object.defineProperty(de,"MixedSchema",{enumerable:!0,get:function(){return my.default}});Object.defineProperty(de,"mixed",{enumerable:!0,get:function(){return my.create}});Object.defineProperty(de,"BooleanSchema",{enumerable:!0,get:function(){return pd.default}});Object.defineProperty(de,"bool",{enumerable:!0,get:function(){return pd.create}});Object.defineProperty(de,"boolean",{enumerable:!0,get:function(){return pd.create}});Object.defineProperty(de,"StringSchema",{enumerable:!0,get:function(){return hy.default}});Object.defineProperty(de,"string",{enumerable:!0,get:function(){return hy.create}});Object.defineProperty(de,"NumberSchema",{enumerable:!0,get:function(){return gy.default}});Object.defineProperty(de,"number",{enumerable:!0,get:function(){return gy.create}});Object.defineProperty(de,"DateSchema",{enumerable:!0,get:function(){return yy.default}});Object.defineProperty(de,"date",{enumerable:!0,get:function(){return yy.create}});Object.defineProperty(de,"ObjectSchema",{enumerable:!0,get:function(){return Ey.default}});Object.defineProperty(de,"object",{enumerable:!0,get:function(){return Ey.create}});Object.defineProperty(de,"ArraySchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(de,"array",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(de,"ref",{enumerable:!0,get:function(){return cR.create}});Object.defineProperty(de,"lazy",{enumerable:!0,get:function(){return lR.create}});Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return dR.default}});Object.defineProperty(de,"reach",{enumerable:!0,get:function(){return pR.default}});Object.defineProperty(de,"isSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(de,"setLocale",{enumerable:!0,get:function(){return fR.default}});Object.defineProperty(de,"BaseSchema",{enumerable:!0,get:function(){return mR.default}});var my=Pn(Mg()),pd=Pn($g()),hy=Pn(Wg()),gy=Pn(Yg()),yy=Pn(zg()),Ey=Pn(cy()),Ty=Pn(dy()),cR=vn(),lR=py(),dR=uo(bn()),pR=uo(Xl()),_y=uo(bi()),fR=uo(fy()),mR=uo(tr());function uo(t){return t&&t.__esModule?t:{default:t}}function Ay(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Ay=function(){return t},t}function Pn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Ay();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 hR(t,e,r){if(!t||!(0,_y.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 Sy=Y(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});var md=gd();hd.default=()=>{(0,md.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,md.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,md.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 gd=Y(De=>{"use strict";var gR=De&&De.__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]}),yR=De&&De.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ER=De&&De.__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)&&gR(e,t,r);return yR(e,t),e},TR=De&&De.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(De,"__esModule",{value:!0});De.validateOptions=De.registerOptionPreset=De.getOptionPresets=De.getOptionPreset=void 0;var x=ER(fd());fd();var co=Ot(),_R=TR(Sy());It();var Un={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Oy=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),AR=t=>Un[t]?(0,co.valid)(Un[t]):(0,co.err)(`Option preset '${t}' not found.`);De.getOptionPreset=AR;var SR=()=>Un;De.getOptionPresets=SR;var OR=(t,e)=>{Un[t]=Oy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};De.registerOptionPreset=OR;var IR=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,O,S,L;try{(0,_R.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Un[t.preset]}else T=t.preset;else T=Un.default;let A=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:(O=T.daysOfWeek.upperLimit)!==null&&O!==void 0?O:T.daysOfWeek.maxValue},years:{lowerLimit:(S=T.years.lowerLimit)!==null&&S!==void 0?S:T.years.minValue,upperLimit:(L=T.years.upperLimit)!==null&&L!==void 0?L:T.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:Oy.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:x.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:x.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(A,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(T){return(0,co.err)(T.errors)}};De.validateOptions=IR});var $t=Y((lo,Ed)=>{"use strict";var Mn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Ln=Ot(),xR=Mn(Zh()),wR=Mn(Xh()),RR=Mn(eg()),bR=Mn(tg()),DR=Mn(rg()),vR=Mn(ng()),CR=Mn(ig()),NR=gd();It();var PR=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Ln.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Ln.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Ln.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,Ln.valid)(n)},yd=(t,e={})=>{let r=(0,NR.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=PR(t,n);if(i.isError())return(0,Ln.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,xR.default)(s,n)),o.push((0,wR.default)(s,n)),o.push((0,RR.default)(s,n)),o.push((0,bR.default)(s,n)),o.push((0,DR.default)(s,n)),o.push((0,vR.default)(s,n)),n.useYears&&o.push((0,CR.default)(s,n)),o.every(u=>u.isValid()))return(0,Ln.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,Ln.err)(a)};lo.default=yd;Ed.exports=yd;Ed.exports.default=yd});var YE=Y(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var ir=class extends Error{},Rd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},bd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Dd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Bn=class extends ir{},Ru=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends ir{},Wt=class extends ir{constructor(){super("Zone is an abstract class")}},R="numeric",bt="short",rt="long",bu={year:R,month:R,day:R},Ky={year:R,month:bt,day:R},UR={year:R,month:bt,day:R,weekday:bt},Jy={year:R,month:rt,day:R},zy={year:R,month:rt,day:R,weekday:rt},Zy={hour:R,minute:R},Xy={hour:R,minute:R,second:R},eE={hour:R,minute:R,second:R,timeZoneName:bt},tE={hour:R,minute:R,second:R,timeZoneName:rt},rE={hour:R,minute:R,hourCycle:"h23"},nE={hour:R,minute:R,second:R,hourCycle:"h23"},iE={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:bt},sE={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:rt},oE={year:R,month:R,day:R,hour:R,minute:R},aE={year:R,month:R,day:R,hour:R,minute:R,second:R},uE={year:R,month:bt,day:R,hour:R,minute:R},cE={year:R,month:bt,day:R,hour:R,minute:R,second:R},LR={year:R,month:bt,day:R,weekday:bt,hour:R,minute:R},lE={year:R,month:rt,day:R,hour:R,minute:R,timeZoneName:bt},dE={year:R,month:rt,day:R,hour:R,minute:R,second:R,timeZoneName:bt},pE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,timeZoneName:rt},fE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,second:R,timeZoneName:rt},Pr=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,r){throw new Wt}formatOffset(e,r){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},Td=null,Eo=class t extends Pr{static get instance(){return Td===null&&(Td=new t),Td}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return hE(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},xu={};function MR(t){return xu[t]||(xu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),xu[t]}var kR={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function FR(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 BR(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=kR[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Au={},sr=class t extends Pr{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},xu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return hE(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=MR(this.name),[i,s,o,a,u,c,l]=n.formatToParts?BR(n,r):FR(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=$d({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}},Iy={};function GR(t,e={}){let r=JSON.stringify([t,e]),n=Iy[r];return n||(n=new Intl.ListFormat(t,e),Iy[r]=n),n}var vd={};function Cd(t,e={}){let r=JSON.stringify([t,e]),n=vd[r];return n||(n=new Intl.DateTimeFormat(t,e),vd[r]=n),n}var Nd={};function $R(t,e={}){let r=JSON.stringify([t,e]),n=Nd[r];return n||(n=new Intl.NumberFormat(t,e),Nd[r]=n),n}var Pd={};function VR(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Pd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Pd[i]=s),s}var ho=null;function qR(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function WR(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=Cd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Cd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function QR(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function jR(t){let e=[];for(let r=1;r<=12;r++){let n=Ae.utc(2016,r,1);e.push(t(n))}return e}function YR(t){let e=[];for(let r=1;r<=7;r++){let n=Ae.utc(2016,11,13+r);e.push(t(n))}return e}function Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function HR(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 Ud=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=$R(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):Gd(e,3);return xe(r,this.padTo)}}},Ld=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:Ae.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=Cd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Md=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&mE()&&(this.rtf=VR(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):lb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||he.defaultLocale,o=s||(i?"en-US":qR()),a=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,vd={},Nd={},Pd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=WR(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=QR(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=HR(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Su(this,e,n,EE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=jR(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,AE,()=>{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]=YR(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>SE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ae.utc(2016,11,13,9),Ae.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Su(this,e,r,OE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ae.utc(-40,1,1),Ae.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 Ud(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Ld(e,this.intl,r)}relFormatter(e={}){return new Md(this.intl,this.isEnglish(),e)}listFormatter(e={}){return GR(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}},_d=null,nt=class t extends Pr{static get utcInstance(){return _d===null&&(_d=new t(0)),_d}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Uu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Du=class extends Pr{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 Nr(t,e){if(ne(t)||t===null)return e;if(t instanceof Pr)return t;if(KR(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||sr.create(t)}else return $n(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Du(t)}var xy=()=>Date.now(),wy="system",Ry=null,by=null,Dy=null,vy=60,Cy,he=class{static get now(){return xy}static set now(e){xy=e}static set defaultZone(e){wy=e}static get defaultZone(){return Nr(wy,Eo.instance)}static get defaultLocale(){return Ry}static set defaultLocale(e){Ry=e}static get defaultNumberingSystem(){return by}static set defaultNumberingSystem(e){by=e}static get defaultOutputCalendar(){return Dy}static set defaultOutputCalendar(e){Dy=e}static get twoDigitCutoffYear(){return vy}static set twoDigitCutoffYear(e){vy=e%100}static get throwOnInvalid(){return Cy}static set throwOnInvalid(e){Cy=e}static resetCaches(){_e.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function $n(t){return typeof t=="number"}function Pu(t){return typeof t=="number"&&t%1===0}function KR(t){return typeof t=="string"}function JR(t){return Object.prototype.toString.call(t)==="[object Date]"}function mE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function zR(t){return Array.isArray(t)?t:[t]}function Ny(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 ZR(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return Pu(t)&&t>=e&&t<=r}function XR(t,e){return t-e*Math.floor(t/e)}function xe(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Cr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Bd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Gd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function vu(t,e){let r=XR(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function $d(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function Cu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function kd(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function hE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Uu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function gE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Qe(`Invalid unit value ${t}`);return e}function Nu(t,e){let r={};for(let n in t)if(ki(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=gE(i)}return r}function yo(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}${xe(r,2)}:${xe(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${xe(r,2)}${xe(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Lu(t){return ZR(t,["hour","minute","second","millisecond"])}var eb=["January","February","March","April","May","June","July","August","September","October","November","December"],yE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tb=["J","F","M","A","M","J","J","A","S","O","N","D"];function EE(t){switch(t){case"narrow":return[...tb];case"short":return[...yE];case"long":return[...eb];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var TE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],_E=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],rb=["M","T","W","T","F","S","S"];function AE(t){switch(t){case"narrow":return[...rb];case"short":return[..._E];case"long":return[...TE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var SE=["AM","PM"],nb=["Before Christ","Anno Domini"],ib=["BC","AD"],sb=["B","A"];function OE(t){switch(t){case"narrow":return[...sb];case"short":return[...ib];case"long":return[...nb];default:return null}}function ob(t){return SE[t.hour<12?0:1]}function ab(t,e){return AE(e)[t.weekday-1]}function ub(t,e){return EE(e)[t.month-1]}function cb(t,e){return OE(e)[t.year<0?0:1]}function lb(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 Py(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var db={D:bu,DD:Ky,DDD:Jy,DDDD:zy,t:Zy,tt:Xy,ttt:eE,tttt:tE,T:rE,TT:nE,TTT:iE,TTTT:sE,f:oE,ff:uE,fff:lE,ffff:pE,F:aE,FF:cE,FFF:dE,FFFF:fE},et=class t{static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,s=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);a==="'"?(n.length>0&&s.push({literal:i,val:n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:!1,val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i,val:n}),s}static macroTokenToFormatOpts(e){return db[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return xe(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?ob(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?ub(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?ab(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?cb(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 Py(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 Py(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},IE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Fi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Bi(...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 Gi(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 xE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Cr(e[r+i]);return[n,null,r+i]}}var wE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,pb=`(?:${wE.source}?(?:\\[(${IE.source})\\])?)?`,Vd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,RE=RegExp(`${Vd.source}${pb}`),qd=RegExp(`(?:T${RE.source})?`),fb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,mb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,hb=/(\d{4})-?(\d{3})/,gb=xE("weekYear","weekNumber","weekDay"),yb=xE("year","ordinal"),Eb=/(\d{4})-(\d\d)-(\d\d)/,bE=RegExp(`${Vd.source} ?(?:${wE.source}|(${IE.source}))?`),Tb=RegExp(`(?: ${bE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function _b(t,e){return[{year:Mi(t,e),month:Mi(t,e+1,1),day:Mi(t,e+2,1)},null,e+3]}function $i(t,e){return[{hours:Mi(t,e,0),minutes:Mi(t,e+1,0),seconds:Mi(t,e+2,0),milliseconds:Bd(t[e+3])},null,e+4]}function _o(t,e){let r=!t[e]&&!t[e+1],n=Uu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function Ao(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Ab=RegExp(`^T?${Vd.source}$`),Sb=/^-?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 Ob(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(kn(r)),months:m(kn(n)),weeks:m(kn(i)),days:m(kn(s)),hours:m(kn(o)),minutes:m(kn(a)),seconds:m(kn(u),u==="-0"),milliseconds:m(Bd(c),d)}]}var Ib={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 Wd(t,e,r,n,i,s,o){let a={year:e.length===2?kd(Cr(e)):Cr(e),month:yE.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?TE.indexOf(t)+1:_E.indexOf(t)+1),a}var xb=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function wb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Wd(e,i,n,r,s,o,a),p;return u?p=Ib[u]:c?p=0:p=Uu(l,d),[m,new nt(p)]}function Rb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var bb=/^(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$/,Db=/^(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$/,vb=/^(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 Uy(t){let[,e,r,n,i,s,o,a]=t;return[Wd(e,i,n,r,s,o,a),nt.utcInstance]}function Cb(t){let[,e,r,n,i,s,o,a]=t;return[Wd(e,a,r,n,i,s,o),nt.utcInstance]}var Nb=Fi(fb,qd),Pb=Fi(mb,qd),Ub=Fi(hb,qd),Lb=Fi(RE),DE=Bi(_b,$i,_o,Ao),Mb=Bi(gb,$i,_o,Ao),kb=Bi(yb,$i,_o,Ao),Fb=Bi($i,_o,Ao);function Bb(t){return Gi(t,[Nb,DE],[Pb,Mb],[Ub,kb],[Lb,Fb])}function Gb(t){return Gi(Rb(t),[xb,wb])}function $b(t){return Gi(t,[bb,Uy],[Db,Uy],[vb,Cb])}function Vb(t){return Gi(t,[Sb,Ob])}var qb=Bi($i);function Wb(t){return Gi(t,[Ab,qb])}var Qb=Fi(Eb,Tb),jb=Fi(bE),Yb=Bi($i,_o,Ao);function Hb(t){return Gi(t,[Qb,DE],[jb,Yb])}var Kb="Invalid Duration",vE={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}},Jb={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},...vE},mt=146097/400,Ui=146097/4800,zb={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:Ui/7,days:Ui,hours:Ui*24,minutes:Ui*24*60,seconds:Ui*24*60*60,milliseconds:Ui*24*60*60*1e3},...vE},Fn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Zb=Fn.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 we(n)}function Xb(t){return t<0?Math.floor(t):Math.ceil(t)}function CE(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?Xb(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function eD(t,e){Zb.reduce((r,n)=>ne(e[n])?r:(r&&CE(t,e,r,e,n),n),null)}function tD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var we=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?zb:Jb;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Qe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Nu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if($n(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=Vb(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]=Wb(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 Qe("need to specify a reason the Duration is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Dd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Ru(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?et.create(this.loc,n).formatDurationFromString(this,e):Kb}toHuman(e={}){let r=Fn.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+=Gd(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 Fn)(ki(r.values,i)||ki(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]=gE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Nu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return eD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=tD(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 Fn)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;$n(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)Fn.indexOf(c)>Fn.indexOf(o)&&CE(this.matrix,i,c,r,o)}else $n(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 Fn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function rD(t,e){return!t||!t.isValid?Vn.invalid("missing or invalid start"):!e||!e.isValid?Vn.invalid("missing or invalid end"):e<t?Vn.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 Vn=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 Qe("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new bd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=rD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=we.fromDurationLike(r),i=mo(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=Ae.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ae.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=we.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=we.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(mo).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=we.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()})`:Li}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Li}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Li}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Li}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Li}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Li}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):we.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Gn=class{static hasDST(e=he.defaultZone){let r=Ae.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 Nr(e,he.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:mE()}}};function Ly(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(we.fromMillis(n).as("days"))}function nD(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=Ly(u,c);return(l-l%7)/7}],["days",Ly]],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 iD(t,e,r,n){let[i,s,o,a]=nD(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=we.fromObject(s,n);return c.length>0?we.fromMillis(u,n).shiftTo(...c).plus(l):l}var Qd={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"},My={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=Qd.hanidec.replace(/[\[|\]]/g,"").split("");function oD(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(Qd.hanidec)!==-1)e+=sD.indexOf(t[r]);else for(let i in My){let[s,o]=My[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Qd[t||"latn"]}${e}`)}var aD="missing Intl.DateTimeFormat.formatToParts support";function ue(t,e=r=>r){return{regex:t,deser:([r])=>e(oD(r))}}var uD=String.fromCharCode(160),NE=`[ ${uD}]`,PE=new RegExp(NE,"g");function cD(t){return t.replace(/\./g,"\\.?").replace(PE,NE)}function ky(t){return t.replace(/\./g,"").replace(PE," ").toLowerCase()}function Rt(t,e){return t===null?null:{regex:RegExp(t.map(cD).join("|")),deser:([r])=>t.findIndex(n=>ky(r)===ky(n))+e}}function Fy(t,e){return{regex:t,deser:([,r,n])=>Uu(r,n),groups:e}}function Ad(t){return{regex:t,deser:([e])=>e}}function lD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function dD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),d=wt(e,"{2,4}"),m=wt(e,"{4,6}"),p=E=>({regex:RegExp(lD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return Rt(e.eras("short",!1),0);case"GG":return Rt(e.eras("long",!1),0);case"y":return ue(c);case"yy":return ue(d,kd);case"yyyy":return ue(s);case"yyyyy":return ue(m);case"yyyyyy":return ue(o);case"M":return ue(a);case"MM":return ue(n);case"MMM":return Rt(e.months("short",!0,!1),1);case"MMMM":return Rt(e.months("long",!0,!1),1);case"L":return ue(a);case"LL":return ue(n);case"LLL":return Rt(e.months("short",!1,!1),1);case"LLLL":return Rt(e.months("long",!1,!1),1);case"d":return ue(a);case"dd":return ue(n);case"o":return ue(u);case"ooo":return ue(i);case"HH":return ue(n);case"H":return ue(a);case"hh":return ue(n);case"h":return ue(a);case"mm":return ue(n);case"m":return ue(a);case"q":return ue(a);case"qq":return ue(n);case"s":return ue(a);case"ss":return ue(n);case"S":return ue(u);case"SSS":return ue(i);case"u":return Ad(l);case"uu":return Ad(a);case"uuu":return ue(r);case"a":return Rt(e.meridiems(),0);case"kkkk":return ue(s);case"kk":return ue(d,kd);case"W":return ue(a);case"WW":return ue(n);case"E":case"c":return ue(r);case"EEE":return Rt(e.weekdays("short",!1,!1),1);case"EEEE":return Rt(e.weekdays("long",!1,!1),1);case"ccc":return Rt(e.weekdays("short",!0,!1),1);case"cccc":return Rt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Fy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Fy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Ad(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:aD};return g.token=t,g}var pD={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 fD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=pD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function mD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function hD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(ki(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 gD(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 nt(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=Bd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Sd=null;function yD(){return Sd||(Sd=Ae.fromMillis(1555555555555)),Sd}function ED(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=ME(r,e);return n==null||n.includes(void 0)?t:n}function UE(t,e){return Array.prototype.concat(...t.map(r=>ED(r,e)))}function LE(t,e,r){let n=UE(et.parseFormat(r),t),i=n.map(o=>dD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=mD(i),u=RegExp(o,"i"),[c,l]=hD(e,u,a),[d,m,p]=l?gD(l):[null,null,void 0];if(ki(l,"a")&&ki(l,"H"))throw new Bn("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 TD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=LE(t,e,r);return[n,i,s,o]}function ME(t,e){return t?et.create(e,t).formatDateTimeParts(yD()).map(i=>fD(i,t)):null}var kE=[0,31,59,90,120,151,181,212,243,273,304,334],FE=[0,31,60,91,121,152,182,213,244,274,305,335];function ht(t,e){return new tt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function BE(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 GE(t,e,r){return r+(To(t)?FE:kE)[e-1]}function $E(t,e){let r=To(t)?FE:kE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Fd(t){let{year:e,month:r,day:n}=t,i=GE(e,r,n),s=BE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Cu(a)):o>Cu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function By(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=BE(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=$E(a,o);return{year:a,month:u,day:c,...Lu(t)}}function Od(t){let{year:e,month:r,day:n}=t,i=GE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Gy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=$E(e,r);return{year:e,month:n,day:i,...Lu(t)}}function _D(t){let e=Pu(t.weekYear),r=nr(t.weekNumber,1,Cu(t.weekYear)),n=nr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function AD(t){let e=Pu(t.year),r=nr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function VE(t){let e=Pu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,vu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function qE(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:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Id="Invalid DateTime",$y=864e13;function Ou(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function xd(t){return t.weekData===null&&(t.weekData=Fd(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ae({...r,...e,old:r})}function WE(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 Vy(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function wu(t,e,r){return WE($d(t),e,r)}function qy(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,vu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=we.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=$d(s),[u,c]=WE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ae.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ae.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Iu(t,e,r=!0){return t.isValid?et.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function wd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=xe(t.c.year,r?6:4),e?(n+="-",n+=xe(t.c.month),n+="-",n+=xe(t.c.day)):(n+=xe(t.c.month),n+=xe(t.c.day)),n}function Wy(t,e,r,n,i,s){let o=xe(t.c.hour);return e?(o+=":",o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=xe(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=xe(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=xe(Math.trunc(-t.o/60)),o+=":",o+=xe(Math.trunc(-t.o%60))):(o+="+",o+=xe(Math.trunc(t.o/60)),o+=":",o+=xe(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var QE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},SD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},OD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},jE=["year","month","day","hour","minute","second","millisecond"],ID=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],xD=["year","ordinal","hour","minute","second","millisecond"];function Qy(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Ru(t);return e}function jy(t,e){let r=Nr(e.zone,he.defaultZone),n=_e.fromObject(e),i=he.now(),s,o;if(ne(t.year))s=i;else{for(let c of jE)ne(t[c])&&(t[c]=QE[c]);let a=VE(t)||qE(t);if(a)return Ae.invalid(a);let u=r.offset(i);[s,o]=wu(t,u,r)}return new Ae({ts:s,zone:r,loc:n,o})}function Yy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Gd(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 Hy(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 Ae=class t{constructor(e){let r=e.zone||he.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Ou(r));this.ts=ne(e.ts)?he.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=Vy(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Hy(arguments),[n,i,s,o,a,u,c]=r;return jy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Hy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,jy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=JR(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Nr(r.zone,he.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(Ou(i))}static fromMillis(e,r={}){if($n(e))return e<-$y||e>$y?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if($n(e))return new t({ts:e*1e3,zone:Nr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Nr(r.zone,he.defaultZone);if(!n.isValid)return t.invalid(Ou(n));let i=he.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Nu(e,Qy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&d)throw new Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Bn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=Vy(i,s);p?(f=ID,g=SD,E=Fd(E)):a?(f=xD,g=OD,E=Od(E)):(f=jE,g=QE);let y=!1;for(let w of f){let F=o[w];ne(F)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let O=p?_D(o):a?AD(o):VE(o),S=O||qE(o);if(S)return t.invalid(S);let L=p?By(o):a?Gy(o):o,[T,A]=wu(L,s,n),B=new t({ts:T,zone:n,o:A,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=Bb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Gb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=$b(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Qe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=TD(o,e,r);return l?t.invalid(l):fo(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]=Hb(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the DateTime is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Rd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=ME(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return UE(et.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?xd(this).weekYear:NaN}get weekNumber(){return this.isValid?xd(this).weekNumber:NaN}get weekday(){return this.isValid?xd(this).weekday:NaN}get ordinal(){return this.isValid?Od(this.c).ordinal:NaN}get monthShort(){return this.isValid?Gn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Gn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Gn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Gn.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 To(this.year)}get daysInMonth(){return vu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?Cu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(nt.instance(e),r)}toLocal(){return this.setZone(he.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Nr(e,he.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=wu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Ou(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Nu(e,Qy),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 Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Bn("Can't mix ordinal dates with month/day");let c;n?c=By({...Fd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(vu(c.year,c.month),c.day))):c=Gy({...Od(this.c),...r});let[l,d]=wu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e);return po(this,qy(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,qy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=we.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?et.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Id}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Id}toLocaleParts(e={}){return this.isValid?et.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=wd(this,o);return a+="T",a+=Wy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?wd(this,e==="extended"):null}toISOWeekDate(){return Iu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Wy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Iu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Iu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?wd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Iu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Id}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 we.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=zR(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=iD(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?Vn.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),Yy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Yy(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 Qe("min requires all arguments be DateTimes");return Ny(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return Ny(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return LE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return bu}static get DATE_MED(){return Ky}static get DATE_MED_WITH_WEEKDAY(){return UR}static get DATE_FULL(){return Jy}static get DATE_HUGE(){return zy}static get TIME_SIMPLE(){return Zy}static get TIME_WITH_SECONDS(){return Xy}static get TIME_WITH_SHORT_OFFSET(){return eE}static get TIME_WITH_LONG_OFFSET(){return tE}static get TIME_24_SIMPLE(){return rE}static get TIME_24_WITH_SECONDS(){return nE}static get TIME_24_WITH_SHORT_OFFSET(){return iE}static get TIME_24_WITH_LONG_OFFSET(){return sE}static get DATETIME_SHORT(){return oE}static get DATETIME_SHORT_WITH_SECONDS(){return aE}static get DATETIME_MED(){return uE}static get DATETIME_MED_WITH_SECONDS(){return cE}static get DATETIME_MED_WITH_WEEKDAY(){return LR}static get DATETIME_FULL(){return lE}static get DATETIME_FULL_WITH_SECONDS(){return dE}static get DATETIME_HUGE(){return pE}static get DATETIME_HUGE_WITH_SECONDS(){return fE}};function mo(t){if(Ae.isDateTime(t))return t;if(t&&t.valueOf&&$n(t.valueOf()))return Ae.fromJSDate(t);if(t&&typeof t=="object")return Ae.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var wD="3.2.1";it.DateTime=Ae;it.Duration=we;it.FixedOffsetZone=nt;it.IANAZone=sr;it.Info=Gn;it.Interval=Vn;it.InvalidZone=Du;it.Settings=he;it.SystemZone=Eo;it.VERSION=wD;it.Zone=Pr});var KE=Y((gW,HE)=>{"use strict";var qn=YE();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=qn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=qn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=qn.DateTime.fromISO(t,r),this._date.isValid||(this._date=qn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=qn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=qn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=qn.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))}HE.exports=z});var ZE=Y((yW,zE)=>{"use strict";function Wn(t){return{start:t,count:1}}function JE(t,e){t.end=e,t.step=e-t.start,t.count=2}function jd(t,e,r){e&&(e.count===2?(t.push(Wn(e.start)),t.push(Wn(e.end))):t.push(e)),r&&t.push(r)}function RD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(jd(e,r,Wn(i)),r=void 0):r?r.count===1?JE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Wn(r.start)),r=Wn(r.end),JE(r,i)):(jd(e,r),r=Wn(i)):r=Wn(i)}return jd(e,r),e}zE.exports=RD});var eT=Y((EW,XE)=>{"use strict";var bD=ZE();function DD(t,e,r){var n=bD(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(",")}XE.exports=DD});var nT=Y((TW,rT)=>{"use strict";var Qn=KE(),vD=eT(),tT=1e4;function P(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Qn(e.currentDate,this._tz),this._startDate=e.startDate?new Qn(e.startDate,this._tz):null,this._endDate=e.endDate?new Qn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=P._freezeFields(t)}P.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];P.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};P.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"]}];P.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];P.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}};P.parseDefaults=["0","*","*","*","*","*"];P.standardValidCharacters=/^[,*\d/-]+$/;P.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;P.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;P.validCharacters={second:P.standardValidCharacters,minute:P.standardValidCharacters,hour:P.standardValidCharacters,dayOfMonth:P.dayOfMonthValidCharacters,month:P.standardValidCharacters,dayOfWeek:P.dayOfWeekValidCharacters};P._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};P._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=P.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(!P.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(P._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(P._isValidConstraintChar(n,f)){c.push(f);return}var O=+f;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}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(P._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)};P._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)};P._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=P.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(P._sortCompareFn)}};P._freezeFields=function(t){for(var e=0,r=P.map.length;e<r;++e){var n=P.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};P.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)}};P.prototype._findSchedule=function(e){function r(y,O){for(var S=0,L=O.length;S<L;S++)if(O[S]>=y)return O[S]===y;return O[0]===y}function n(y,O){if(O<6){if(y.getDate()<8&&O===1)return!0;var S=y.getDate()%7?1:0,L=y.getDate()-y.getDate()%7,T=Math.floor(L/7)+S;return T===O}return!1}function i(y){return y.length>0&&y.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Qn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(O){if(!i([O]))return!1;var S=Number.parseInt(O[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+O);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<tT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var 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>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.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>=tT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Qn(o,this._tz),this._hasIterated=!0,o};P.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};P.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};P.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}};P.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}};P.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};P.prototype.reset=function(e){this._currentDate=new Qn(e||this._options.currentDate)};P.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=P.map.length;n<i;++n){var s=P.map[n],o=this.fields[s],a=P.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:P.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(vD(o,a.min,a.max))}return r.join(" ")};P.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Qn(void 0,n._tz)),P.predefined[s]&&(s=P.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=P.map.length-u.length,l=0,d=P.map.length;l<d;++l){var m=P.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var f=m==="dayOfWeek"?O(p):p;a.push(P._parseField(m,f,P.constraints[l]))}}for(var g={},l=0,d=P.map.length;l<d;l++){var E=P.map[l];g[E]=a[l]}var y=P._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new P(g,o);function O(S){var L=S.split("#");if(L.length>1){var T=+L[L.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(L.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,L[0]}return S}}return i(e,r)};P.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(!P._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=P.map.length;s<o;++s){var a=P.map[s],u=e[a];n(a,u,P.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(P._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=P._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new P(i,r||{})};rT.exports=P});var sT=Y((_W,iT)=>{"use strict";var Mu=nT();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Mu.parse(e)};if(r.length>6)return{interval:Mu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return Mu.parse(e,r)};Ur.fieldsToExpression=function(e,r){return Mu.fieldsToExpression(e,r)};Ur.parseString=function(e){for(var r=e.split(`
|
|
5
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Ur._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Ur.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Ur.parseString(i.toString()))})};iT.exports=Ur});var eF={};v(eF,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>fp,BadRequestError:()=>Oc,BudibaseError:()=>ms,Config:()=>Tp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>yp,DEFAULT_EXPENSES_TABLE_ID:()=>gp,DEFAULT_INVENTORY_TABLE_ID:()=>hp,DEFAULT_JOBS_TABLE_ID:()=>mp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,Duration:()=>ve,DurationType:()=>Vf,EmailUnavailableError:()=>hr,ErrorCode:()=>wc,FeatureDisabledError:()=>xc,GlobalRole:()=>Ep,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ir,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>ET,NotFoundError:()=>Sc,RedisClient:()=>Be,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>pp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Ic,UserStatus:()=>Wu,ViewName:()=>kr,accounts:()=>ai,auth:()=>sh,blacklist:()=>ch,cache:()=>ba,configs:()=>rn,constants:()=>_p,context:()=>ye,db:()=>Qr,docIds:()=>pf,docUpdates:()=>dh,encryption:()=>rh,env:()=>h,errors:()=>bc,events:()=>Ts,features:()=>Ym,getPublicError:()=>Rc,init:()=>Xk,installation:()=>kc,locks:()=>oi,logging:()=>cc,middleware:()=>ih,objectStore:()=>Vp,permissions:()=>Wm,platform:()=>la,plugins:()=>ah,queue:()=>dm,redis:()=>uh,roles:()=>sm,security:()=>bm,sessions:()=>Wc,setEnv:()=>Ro,sql:()=>_h,tenancy:()=>Zk,timers:()=>Bo,userUtils:()=>om,users:()=>_s,utils:()=>cs,withEnv:()=>IT});module.exports=TO(eF);var rn={};v(rn,{analyticsEnabled:()=>Lc,generateConfigID:()=>Gm,getAIConfig:()=>IM,getConfig:()=>kt,getDefaultGoogleConfig:()=>Fm,getGoogleConfig:()=>Kc,getGoogleDatasourceConfig:()=>Vm,getOIDCConfig:()=>AM,getOIDCConfigById:()=>qm,getOIDCLogosDoc:()=>TM,getPlatformUrl:()=>Pa,getSCIMConfig:()=>OM,getSMTPConfig:()=>SM,getSMTPConfigDoc:()=>SS,getSettingsConfig:()=>$m,getSettingsConfigDoc:()=>Bc,save:()=>yM});var _O=["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"],Sh=[..._O],Oh={"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 El=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(El||{}),Tl=(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))(Tl||{}),Ba=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Ba||{});var _l=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(_l||{});var Sr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Sr||{}),Kt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Kt||{}),ln=(e=>(e.RANGE="range",e))(ln||{}),gi=(r=>(r.AND="$and",r.OR="$or",r))(gi||{});function Ga(t){return Object.values(gi).includes(t)}function Ih(t){return Object.values(Sr).includes(t)}function xh(t){return Object.values(Kt).includes(t)}function Al(t){return Object.values(ln).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var wh=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 Rh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var tB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Rs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Rs||{});var $a=(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))($a||{});var Va=t=>t.hosting==="cloud";var qa=t=>t.authType==="sso";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||{}),Ee=(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))(Ee||{}),Ft=(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))(Ft||{});var me=(A=>(A.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",A.CREATE_ROW="CREATE_ROW",A.UPDATE_ROW="UPDATE_ROW",A.DELETE_ROW="DELETE_ROW",A.EXECUTE_BASH="EXECUTE_BASH",A.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",A.EXECUTE_SCRIPT="EXECUTE_SCRIPT",A.EXECUTE_QUERY="EXECUTE_QUERY",A.SERVER_LOG="SERVER_LOG",A.DELAY="DELAY",A.FILTER="FILTER",A.QUERY_ROWS="QUERY_ROWS",A.LOOP="LOOP",A.COLLECT="COLLECT",A.OPENAI="OPENAI",A.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",A.BRANCH="BRANCH",A.discord="discord",A.slack="slack",A.zapier="zapier",A.integromat="integromat",A.n8n="n8n",A))(me||{}),bh=[...Object.values(me),...Object.values(Ft)];var Sl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Sl||{});var Ol="bb_internal";var Dh=["attachment_single","attachment","bb_reference","json","array"];var C="_",ke="\uFFF0",Or=t=>`${t}${C}`,Te=(G=>(G.USER="us",G.GROUP="gr",G.WORKSPACE="workspace",G.CONFIG="config",G.TEMPLATE="template",G.APP="app",G.DEV="dev",G.APP_DEV="app_dev",G.APP_METADATA="app_metadata",G.ROLE="role",G.MIGRATIONS="migrations",G.DEV_INFO="devinfo",G.AUTOMATION_LOG="log_au",G.ACCOUNT_METADATA="acc_metadata",G.PLUGIN="plg",G.DATASOURCE="datasource",G.DATASOURCE_PLUS="datasource_plus",G.APP_BACKUP="backup",G.TABLE="ta",G.ROW="ro",G.AUTOMATION="au",G.LINK="li",G.WEBHOOK="wh",G.INSTANCE="inst",G.LAYOUT="layout",G.SCREEN="screen",G.QUERY="query",G.DEPLOYMENTS="deployments",G.METADATA="metadata",G.MEM_VIEW="view",G.USER_FLAG="flag",G.AUTOMATION_METADATA="meta_au",G.AUDIT_LOG="al",G.APP_MIGRATION_METADATA="_design/migrations",G.SCIM_LOG="scimlog",G.ROW_ACTIONS="ra",G))(Te||{}),fG=Object.values(Te).sort((t,e)=>e.length-t.length);var Ir=(e=>(e.USER_METADATA="ta_users",e))(Ir||{}),Il=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Il||{}),mG=Object.values(Il).sort((t,e)=>e.length-t.length);function Wa(t){return!!t.providerType}var xl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(xl||{});var YG=Object.values(xl);var ZG=["rows","queries","automations"],XG=["queries","automations"];var pn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(pn||{}),Qa=(r=>(r.STRING="string",r.NUMBER="number",r))(Qa||{});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 Rl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Rl||(Rl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},I=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),OO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Je=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()}};Je.create=t=>new Je(t);var _i=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Nh=_i;function IO(t){Nh=t}function ja(){return Nh}var Ya=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},xO=[];function N(t,e){let r=ja(),n=Ya({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===_i?void 0:_i].filter(i=>!!i)});t.common.issues.push(n)}var Me=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"}),Ti=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),bl=t=>t.status==="aborted",Dl=t=>t.status==="dirty",vs=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Ha(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Ph(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 $;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})($||($={}));var bs,Ds,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},vh=(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 Je(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 xr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Cs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return vh(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:xr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return vh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new ze({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return br.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new ze({...Z(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Ns({typeName:H.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:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},wO=/^c[^\s-]{8,}$/i,RO=/^[0-9a-z]+$/,bO=/^[0-9A-HJKMNP-TV-Z]{26}$/,DO=/^[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,vO=/^[a-z0-9_-]{21}$/i,CO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,NO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,PO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",wl,UO=/^(?:(?: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])$/,LO=/^(([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})))$/,MO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Uh="((\\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])))",kO=new RegExp(`^${Uh}$`);function Lh(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 FO(t){return new RegExp(`^${Lh(t)}$`)}function Mh(t){let e=`${Uh}T${Lh(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 BO(t,e){return!!((e==="v4"||!e)&&UO.test(t)||(e==="v6"||!e)&&LO.test(t))}var wr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.string,received:s.parsedType}),J}let n=new Me,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")NO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")wl||(wl=new RegExp(PO,"u")),wl.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")DO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")vO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")wO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")RO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")bO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ulid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),N(i,{validation:"url",code:I.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"regex",code:I.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Mh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?kO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?FO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?CO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?BO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?MO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"base64",code:I.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:I.invalid_string,...$.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...$.errToObj(e)})}url(e){return this._addCheck({kind:"url",...$.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...$.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...$.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...$.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...$.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...$.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...$.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...$.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...$.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,...$.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,...$.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...$.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...$.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...$.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...$.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...$.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...$.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...$.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...$.errToObj(r)})}nonempty(e){return this.min(1,$.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:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function GO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.number,received:s.parsedType}),J}let n,i=new Me;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?GO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:$.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.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)}};fn.create=t=>new fn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.bigint,received:s.parsedType}),J}let n,i=new Me;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),N(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.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:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};mn.create=t=>{var e;return new mn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.boolean,received:n.parsedType}),J}return Fe(e.data)}};hn.create=t=>new hn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_date}),J}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:$.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:$.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...Z(t)});var Ai=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),J}return Fe(e.data)}};Ai.create=t=>new Ai({typeName:H.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),J}return Fe(e.data)}};yn.create=t=>new yn({typeName:H.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.null,received:n.parsedType}),J}return Fe(e.data)}};En.create=t=>new En({typeName:H.ZodNull,...Z(t)});var Rr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};Rr.create=t=>new Rr({typeName:H.ZodAny,...Z(t)});var zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};zt.create=t=>new zt({typeName:H.ZodUnknown,...Z(t)});var St=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),J}};St.create=t=>new St({typeName:H.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),J}return Fe(e.data)}};Si.create=t=>new Si({typeName:H.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!==M.array)return N(r,{code:I.invalid_type,expected:M.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(N(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(N(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(N(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...Z(e)});function Ei(t){if(t instanceof qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ei(n))}return new qe({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:Ei(t.element)}):t instanceof dt?dt.create(Ei(t.unwrap())):t instanceof Gt?Gt.create(Ei(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ei(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)!==M.object){let c=this._getOrReturnCtx(e);return N(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof St&&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 pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof St){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&&(N(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(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=>Me.mergeObjectSync(n,c)):Me.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return $.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=$.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ei(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 dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return kh(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Je(a.ctx.common.issues));return N(r,{code:I.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new Je(u));return N(r,{code:I.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:H.ZodUnion,...Z(e)});var Jt=t=>t instanceof An?Jt(t.schema):t instanceof ze?Jt(t.innerType()):t instanceof Sn?[t.value]:t instanceof On?t.options:t instanceof In?te.objectValues(t.enum):t instanceof xn?Jt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...Jt(t.unwrap())]:t instanceof Gt?[null,...Jt(t.unwrap())]:t instanceof Ns||t instanceof Rn?Jt(t.unwrap()):t instanceof wn?Jt(t._def.innerType):[],Ka=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return N(r,{code:I.invalid_type,expected:M.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(N(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Jt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function vl(t,e){let r=xr(t),n=xr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.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=vl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=vl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(bl(s)||bl(o))return J;let a=vl(s.value,o.value);return a.valid?((Dl(s)||Dl(o))&&r.dirty(),{status:r.value,value:a.data}):(N(n,{code:I.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:H.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return N(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return N(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(N(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Me.mergeArray(r,o)):Me.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Bt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:t,typeName:H.ZodTuple,rest:null,...Z(e)})};var Ja=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return N(n,{code:I.invalid_type,expected:M.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Me.mergeObjectAsync(r,i):Me.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:H.ZodRecord,...Z(n)}):new t({keyType:wr.create(),valueType:e,typeName:H.ZodRecord,...Z(r)})}},Oi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return N(n,{code:I.invalid_type,expected:M.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Oi.create=(t,e,r)=>new Oi({valueType:e,keyType:t,typeName:H.ZodMap,...Z(r)});var Ii=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return N(n,{code:I.invalid_type,expected:M.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(N(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(N(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:$.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Ii.create=(t,e)=>new Ii({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...Z(e)});var za=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return N(r,{code:I.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return Ya({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),_i].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Ya({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),_i].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof br){let a=this;return Fe(async function(...u){let c=new Je([]),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 Fe(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new Je([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Je([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:Bt.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||Bt.create([]).rest(zt.create()),returns:r||zt.create(),typeName:H.ZodFunction,...Z(n)})}},An=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})}};An.create=(t,e)=>new An({getter:t,typeName:H.ZodLazy,...Z(e)});var Sn=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return N(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};Sn.create=(t,e)=>new Sn({value:t,typeName:H.ZodLiteral,...Z(e)});function kh(t,e){return new On({values:t,typeName:H.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),J}if(Ha(this,bs,"f")||Ph(this,bs,new Set(this._def.values),"f"),!Ha(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{received:r.data,code:I.invalid_enum_value,options:n}),J}return Fe(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})}};bs=new WeakMap;On.create=kh;var In=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=te.objectValues(r);return N(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),J}if(Ha(this,Ds,"f")||Ph(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ha(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return N(n,{received:n.data,code:I.invalid_enum_value,options:i}),J}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;In.create=(t,e)=>new In({values:t,typeName:H.ZodNativeEnum,...Z(e)});var br=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return N(r,{code:I.invalid_type,expected:M.promise,received:r.parsedType}),J;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};br.create=(t,e)=>new br({type:t,typeName:H.ZodPromise,...Z(e)});var ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{N(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"?Ti(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"?Ti(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:H.ZodEffects,effect:e,...Z(r)});ze.createWithPreprocess=(t,e,r)=>new ze({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===M.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:H.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:H.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 Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Je(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Je(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};xi.create=t=>new xi({typeName:H.ZodNaN,...Z(t)});var $O=Symbol("zod_brand"),Ns=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}},Ps=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(),Ti(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:H.ZodPipeline})}},Rn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Fh(t,e={},r){return t?Rr.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})}}):Rr.create()}var VO={object:qe.lazycreate},H;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(H||(H={}));var qO=(t,e={message:`Input not instance of ${t.name}`})=>Fh(r=>r instanceof t,e),Bh=wr.create,Gh=fn.create,WO=xi.create,QO=mn.create,$h=hn.create,jO=gn.create,YO=Ai.create,HO=yn.create,KO=En.create,JO=Rr.create,zO=zt.create,ZO=St.create,XO=Si.create,eI=Zt.create,tI=qe.create,rI=qe.strictCreate,nI=Tn.create,iI=Ka.create,sI=_n.create,oI=Bt.create,aI=Ja.create,uI=Oi.create,cI=Ii.create,lI=za.create,dI=An.create,pI=Sn.create,fI=On.create,mI=In.create,hI=br.create,Ch=ze.create,gI=dt.create,yI=Gt.create,EI=ze.createWithPreprocess,TI=Ps.create,_I=()=>Bh().optional(),AI=()=>Gh().optional(),SI=()=>$h().optional(),OI={string:t=>wr.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>hn.create({...t,coerce:!0}),bigint:t=>mn.create({...t,coerce:!0}),date:t=>gn.create({...t,coerce:!0})},II=J,ee=Object.freeze({__proto__:null,defaultErrorMap:_i,setErrorMap:IO,getErrorMap:ja,makeIssue:Ya,EMPTY_PATH:xO,addIssueToContext:N,ParseStatus:Me,INVALID:J,DIRTY:Ti,OK:Fe,isAborted:bl,isDirty:Dl,isValid:vs,isAsync:Cs,get util(){return te},get objectUtil(){return Rl},ZodParsedType:M,getParsedType:xr,ZodType:X,datetimeRegex:Mh,ZodString:wr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:Ai,ZodUndefined:yn,ZodNull:En,ZodAny:Rr,ZodUnknown:zt,ZodNever:St,ZodVoid:Si,ZodArray:Zt,ZodObject:qe,ZodUnion:Tn,ZodDiscriminatedUnion:Ka,ZodIntersection:_n,ZodTuple:Bt,ZodRecord:Ja,ZodMap:Oi,ZodSet:Ii,ZodFunction:za,ZodLazy:An,ZodLiteral:Sn,ZodEnum:On,ZodNativeEnum:In,ZodPromise:br,ZodEffects:ze,ZodTransformer:ze,ZodOptional:dt,ZodNullable:Gt,ZodDefault:xn,ZodCatch:wn,ZodNaN:xi,BRAND:$O,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Rn,custom:Fh,Schema:X,ZodSchema:X,late:VO,get ZodFirstPartyTypeKind(){return H},coerce:OI,any:JO,array:eI,bigint:QO,boolean:$h,date:jO,discriminatedUnion:iI,effect:Ch,enum:fI,function:lI,instanceof:qO,intersection:sI,lazy:dI,literal:pI,map:uI,nan:WO,nativeEnum:mI,never:ZO,null:KO,nullable:yI,number:Gh,object:tI,oboolean:SI,onumber:AI,optional:gI,ostring:_I,pipeline:TI,preprocess:EI,promise:hI,record:aI,set:cI,strictObject:rI,string:Bh,symbol:YO,transformer:Ch,tuple:oI,undefined:HO,union:nI,unknown:zO,void:XO,NEVER:II,ZodIssueCode:I,quotelessJson:OO,ZodError:Je});var tu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Vh=ee.record(tu,ee.string()),Za=ee.record(tu,ee.any()),Xa=ee.record(tu,ee.union([ee.any().array(),ee.string()])),qh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Wh))})),eu=ee.union([ee.string(),ee.number()]),Wh={string:Vh.optional(),fuzzy:Vh.optional(),range:ee.record(tu,ee.union([ee.object({high:eu,low:eu}),ee.object({high:eu}),ee.object({low:eu})])).optional(),equal:Za.optional(),notEqual:Za.optional(),empty:Za.optional(),notEmpty:Za.optional(),oneOf:Xa.optional(),contains:Xa.optional(),notContains:Xa.optional(),containsAny:Xa.optional(),$and:qh.optional(),$or:qh.optional()},W$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Wh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(pn).optional(),sortType:ee.nativeEnum(Qa).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var _p={};v(_p,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>fp,Config:()=>Tp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>yp,DEFAULT_EXPENSES_TABLE_ID:()=>gp,DEFAULT_INVENTORY_TABLE_ID:()=>hp,DEFAULT_JOBS_TABLE_ID:()=>mp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,GlobalRole:()=>Ep,Header:()=>Ze,InternalTable:()=>Ir,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>ET,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>pp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>Wu,ViewName:()=>kr});var J1={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 Ze=(O=>(O.API_KEY="x-budibase-api-key",O.LICENSE_KEY="x-budibase-license-key",O.API_VER="x-budibase-api-version",O.APP_ID="x-budibase-app-id",O.SESSION_ID="x-budibase-session-id",O.TYPE="x-budibase-type",O.PREVIEW_ROLE="x-budibase-role",O.TENANT_ID="x-budibase-tenant-id",O.VERIFICATION_CODE="x-budibase-verification-code",O.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",O.RESET_PASSWORD_CODE="x-budibase-reset-password-code",O.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",O.TOKEN="x-budibase-token",O.CSRF_TOKEN="x-csrf-token",O.CORRELATION_ID="x-budibase-correlation-id",O.AUTHORIZATION="authorization",O.MIGRATING_APP="x-budibase-migrating-app",O.COOKIE="cookie",O))(Ze||{});var eq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var oq="darkest",aq="light",RI=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var Xe={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"}},Qh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var wi="datasource_internal_bb_default";var Lr={};v(Lr,{ColumnSplitter:()=>Zd,NoEmptyFilterStrings:()=>pT,buildQuery:()=>ZD,cleanupQuery:()=>tp,fixupFilterArrays:()=>np,getKeyNumbering:()=>rp,getValidOperatorsForType:()=>KD,hasFilters:()=>Xd,limit:()=>mT,recurseLogicalOperators:()=>ep,removeKeyNumbering:()=>ru,runQuery:()=>ku,search:()=>XD,sort:()=>fT,splitFiltersArray:()=>nu});var Vi=j(jh());var Ri={};v(Ri,{filterValueToLabel:()=>PI,hasSchema:()=>UI,isSupportedUserSearch:()=>Hh,parallelForeach:()=>NI,processSearchFilters:()=>Pl,trimOtherProps:()=>LI,unreachable:()=>CI});var Yh=j(require("lodash")),vI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function CI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function NI(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 PI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function UI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function LI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Hh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(Ga(r)){for(let o of t[r].conditions)if(!Hh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function Pl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=nu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Yh.default.pick(i,vI);return s.field=ru(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>Kh,cron:()=>Yd,deepGet:()=>Ul,getUserColor:()=>kI,getUserInitials:()=>MI,getUserLabel:()=>FI,isGoogleSheets:()=>GI,isSQL:()=>$I,retry:()=>VI,roles:()=>zd,schema:()=>So,views:()=>Jd,wait:()=>Ll,withTimeout:()=>BI});var Ul=(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},MI=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"},kI=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%)`},FI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Kh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function BI(t,e){let[r,n]=Kh(t),i=await Promise.race([e,r]);return n(),i}function GI(t){return t==="GOOGLE_SHEETS"}function $I(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Ll(t){return new Promise(e=>setTimeout(e,t))}async function VI(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 Ll(s);try{return await t()}catch(o){n=o}}throw n}var Yd={};v(Yd,{getNextExecutionDates:()=>PD,validate:()=>UD});var aT=j($t()),uT=j(sT()),oT="(Input cron: ",CD={"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 ND(t){let e=[];for(let r of t){r.includes(oT)&&(r=r.split(oT)[0].trim());for(let[n,i]of Object.entries(CD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function PD(t,e=4){let r=uT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function UD(t){let e=(0,aT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:ND(e.getError())}}var So={};v(So,{decodeNonAscii:()=>Hd,encodeNonAscii:()=>kD,isDeprecatedSingleUserColumn:()=>LD,isNumeric:()=>FD,isRequired:()=>MD});function LD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function MD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function kD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Hd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function FD(t){return t.type==="number"||t.type==="bigint"}var Jd={};v(Jd,{basicFields:()=>qD,calculationFields:()=>VD,hasCalculationFields:()=>$D,isBasicViewField:()=>BD,isCalculationField:()=>Oo,isCalculationView:()=>GD,isV2:()=>WD,isVisible:()=>cT});var Kd=require("lodash");function Oo(t){return"calculationType"in t}function BD(t){return!Oo(t)}function GD(t){return t.type==="calculation"}function $D(t){return Object.values(t.schema||{}).some(Oo)}function VD(t){return(0,Kd.pickBy)(t.schema||{},Oo)}function cT(t){return t.visible!==!1}function qD(t,e){let{visible:r=!0}=e||{};return(0,Kd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||cT(n)))}function WD(t){return t.version===2}var zd={};v(zd,{checkForRoleInheritanceLoops:()=>jD});function QD(t){return`role${C}${t}`}function jD(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=QD(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 jn=require("lodash");var YD=/{{([^{].*?)}}/g,dT=Object.values(gi),HD=[...Object.values(Sr),...Object.values(Kt),...Object.values(ln)],KD=(t,e,r)=>{let n=Xe,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||So.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"&&(o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},pT=[Xe.StartsWith.value,Xe.Like.value,Xe.Equals.value,Xe.NotEquals.value,Xe.Contains.value,Xe.NotContains.value,Xe.ContainsAny.value,Xe.In.value];function ep(t,e){for(let r of dT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var tp=t=>{for(let e of pT)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===""||JD(s))&&delete t[e][i]}return t=ep(t,tp),t};function JD(t){return Array.isArray(t)&&t.length===0}var ru=t=>rp(t).key,rp=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}},Zd=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}=rp(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=Hd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function zD(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(YD)||[]).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(Al(r)){let c=Qh[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(Ih(r)||xh(r)||Al(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function nu(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function ZD(t){if(!t)return{};if(Array.isArray(t)&&(t=Pl(t),!t))return{};let e=lT(t.logicalOperator||"all"),r={};return t.onEmptyFilter?r.onEmptyFilter=t.onEmptyFilter:r.onEmptyFilter="all",r[e]={conditions:(t.groups||[]).map(n=>{let{allOr:i,onEmptyFilter:s,filters:o}=nu(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=lT(n.logicalOperator)),{[a]:{conditions:o.map(zD).filter(u=>u)}}})},r}function lT(t){return t==="all"?"$and":"$or"}function np(t){if(!t)return t;for(let e of Object.values(Kt)){let r=t[e];if(!(r==null||!(0,jn.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 ep(t,np),t}function XD(t,e){let r=ku(t,e.query);e.sort&&(r=fT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=mT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function ku(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=tp(e),e=np(e),!Xd(e)&&e.onEmptyFilter==="none")return[];let r=(T,A)=>B=>{for(let[w,F]of Object.entries(e[T]||{})){let ce=Ga(T)?B:Ul(B,ru(w)),an=A(ce,F);if(e.allOr&&an)return!0;if(!e.allOr&&!an)return!1}return!e.allOr},n=r("string",(T,A)=>typeof T!="string"||typeof A!="string"?!1:T.toLowerCase().startsWith(A.toLowerCase())),i=r("fuzzy",(T,A)=>typeof T!="string"||typeof A!="string"?!1:T.toLowerCase().includes(A.toLowerCase())),s=r("range",(T,A)=>{if(T==null||T===""||((0,jn.isPlainObject)(A.low)&&(0,jn.isEmpty)(A.low)&&(A.low=void 0),(0,jn.isPlainObject)(A.high)&&(0,jn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+T;if(!isNaN(B)){let F=+A.low,ce=+A.high;if(!isNaN(F)&&!isNaN(ce))return B>=F&&B<=ce;if(isNaN(F)){if(!isNaN(ce))return B<=ce}else return B>=F}let w=(0,Vi.default)(T);if(w.isValid()){let F=(0,Vi.default)(A.low||"0000-00-00T00:00:00.000Z"),ce=(0,Vi.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ce.isValid())return w.isAfter(F)&&w.isBefore(ce)||w.isSame(F)||w.isSame(ce);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ce.isValid())return w.isBefore(ce)||w.isSame(ce)}return A.low!=null&&A.high!=null?T>=A.low&&T<=A.high:A.low!=null?T>=A.low:A.high!=null?T<=A.high:!1}),o=(T,A)=>{if(Array.isArray(T)){for(let w of T)if(o(w,A))return!0;return!1}if(T&&typeof T=="object"&&typeof A=="string")return T._id===A;if(T===A)return!0;if(T==null&&A!=null||T!=null&&A==null)return!1;let B=(0,Vi.default)(T);if(B.isValid()){let w=(0,Vi.default)(A);if(w.isValid())return B.isSame(w)}return!1},a=T=>(...A)=>!T(...A),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,A)=>(typeof A=="string"&&(A=A.split(",")),typeof T=="number"&&(A=A.map(B=>parseFloat(B))),Array.isArray(A)?A.some(B=>o(T,B)):!1)),f=T=>(A,B)=>!Array.isArray(A)||(typeof B=="string"&&(B=B.split(","),typeof A[0]=="number"&&(B=B.map(w=>parseFloat(w)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](w=>o(A,w)),g=r("contains",(T,A)=>Array.isArray(A)&&A.length===0?!0:f("every")(T,A)),E=r("notContains",(T,A)=>Array.isArray(A)&&A.length===0?!0:a(f("every"))(T,A)),y=r("containsAny",f("some")),O=r("$and",(T,A)=>{if(!A.length)return!1;for(let B of A)if(!ku([T],B).length)return!1;return!0}),S=r("$or",(T,A)=>{if(!A.length)return!1;for(let B of A)if(ku([T],{...B,allOr:!0}).length)return!0;return!1}),L=T=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:O,$or:S},B=Object.entries(e||{}).filter(([w,F])=>!["allOr","onEmptyFilter"].includes(w)&&F&&Object.keys(F).length>0).map(([w])=>A[w]?.(T)??!1);return Xd(e)?e.allOr?B.some(w=>w===!0):B.every(w=>w===!0):!0};return t.filter(L)}function fT(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 mT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Xd=t=>{if(!t)return!1;let e=r=>{for(let n of dT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of HD){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 st={};v(st,{applications:()=>op,automations:()=>ap,screens:()=>dp,users:()=>lp});var op={};v(op,{getDevAppID:()=>ev,getProdAppID:()=>sp});var ip=Or("app"),Io=Or("app_dev");function ev(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(ip);e.shift();let r=e.join(ip);return`${Io}${r}`}function sp(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Io))return t;let e=t.split(Io);e.shift();let r=e.join(Io);return`${ip}${r}`}var ap={};v(ap,{isAppAction:()=>nv,isRowAction:()=>tv,isWebhookAction:()=>rv});function tv(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function rv(t){return t.definition.trigger?.stepId==="WEBHOOK"}function nv(t){return t.definition.trigger?.stepId==="APP"}var lp={};v(lp,{canCreateApps:()=>iv,containsUserID:()=>lv,getGlobalUserID:()=>cv,hasAdminPermissions:()=>cp,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>hT,hasBuilderPermissions:()=>av,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>sv,isAdminOrGlobalBuilder:()=>ov,isBuilder:()=>up,isCreator:()=>uv,isGlobalBuilder:()=>Fu});var Mr=j(require("lodash/fp"));function up(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(sp(e))):!1}function Fu(t){return up(t)&&!Gu(t)||Bu(t)}function iv(t){return Fu(t)||$u(t)}function Bu(t){return t?cp(t):!1}function sv(t,e){return up(t,e)||Bu(t)}function ov(t){return Fu(t)||Bu(t)}function Gu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function hT(t){return t?Mr.flow(Mr.get("roles"),Mr.values,Mr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function av(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function cp(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function uv(t){return t?Fu(t)||cp(t)||$u(t)||Gu(t)||hT(t):!1}function cv(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function lv(t){return typeof t!="string"?!1:t.includes(`us${C}`)}var dp={};v(dp,{findInSettings:()=>dv});function dv(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 hQ={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},gQ={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},yQ={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 xQ={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 bQ={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 CQ={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 UQ={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 kQ={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 GQ={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 qQ={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 jQ={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 KQ={name:"JS Scripting",tagline:"Execute JavaScript Code",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 qi={EQUAL:"EQUAL",NOT_EQUAL:"NOT_EQUAL",GREATER_THAN:"GREATER_THAN",LESS_THAN:"LESS_THAN"},Av={[qi.EQUAL]:"Equals",[qi.NOT_EQUAL]:"Not equals",[qi.GREATER_THAN]:"Greater than",[qi.LESS_THAN]:"Less than"},ZQ={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:qi.EQUAL},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(qi),pretty:Object.values(Av)},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 tj={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 ij={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 aj={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(Sl)},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 gT=(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))(gT||{}),lj={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(gT)}},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 yT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(yT||{}),fj={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(yT),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 bv={ascending:"Ascending",descending:"Descending"},gj={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(pn),pretty:Object.values(bv)},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 Tj={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 Sj={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 xj={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 bj={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"automatioFields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var Cj={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 Uj={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 kv={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 Bv={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 $v={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 qv={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 Qv={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 Yv={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 Kv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var Vu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Vu||{}),kr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(kr||{}),Qi={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"}},gt=Or("app"),qu=Or("app_dev"),yt=qu,pp="internal",fp="budibase",or="_design/sqlite",mp="ta_bb_jobs",hp="ta_bb_inventory",gp="ta_bb_expenses",yp="ta_bb_employee";var Wu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Wu||{}),ji=(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))(ji||{}),Ep=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Ep||{}),Tp=(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))(Tp||{}),ET=new Date(-2147483647e3),Qu=new Date(2147483647e3),ge="default";var ba={};v(ba,{CacheKey:()=>fr,TTL:()=>ri,app:()=>af,bustCache:()=>us,destroy:()=>ia,docWritethrough:()=>km,generic:()=>sa,get:()=>ni,invite:()=>Kf,keys:()=>yc,passwordReset:()=>Lm,store:()=>mr,user:()=>nn,withCache:()=>Kr,writethrough:()=>Um});var sa={};v(sa,{CacheKey:()=>fr,TTL:()=>ri,bustCache:()=>us,destroy:()=>ia,get:()=>ni,keys:()=>yc,store:()=>mr,withCache:()=>Kr});var ye={};v(ye,{DEFAULT_TENANT_ID:()=>ge,baseGlobalDBName:()=>ra,doInAppContext:()=>PN,doInAppMigrationContext:()=>LN,doInAutomationContext:()=>NN,doInContext:()=>Df,doInEnvironmentContext:()=>kN,doInIPContext:()=>Cf,doInIdentityContext:()=>wo,doInScimContext:()=>FN,doInTenant:()=>Ge,ensureSnippetContext:()=>tA,getAppDB:()=>ss,getAppId:()=>Pe,getAuditLogDBName:()=>X_,getAuditLogsDB:()=>GN,getAutomationId:()=>Yp,getCurrentContext:()=>os,getDevAppDB:()=>VN,getEnvironmentVariables:()=>BN,getFeatureFlags:()=>Nf,getGlobalDB:()=>se,getGlobalDBName:()=>lr,getIP:()=>vf,getIdentity:()=>ar,getPlatformURL:()=>bf,getProdAppDB:()=>$N,getProdAppId:()=>MN,getScimDBName:()=>bN,getTableForView:()=>qN,getTenantIDFromAppID:()=>is,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Yr,isScim:()=>Pt,isTenancyEnabled:()=>vN,isTenantIdSet:()=>DN,setFeatureFlags:()=>Pf,setTableForView:()=>WN});var xo={};v(xo,{doInAccountContext:()=>Xv,doInIdentityContext:()=>Sp,doInUserContext:()=>Op,getAccountUserId:()=>TT,getIdentity:()=>Ap});function Ap(){return ar()}function Sp(t,e){return wo(t,e)}function Op(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Sp(n,r)}function Xv(t,e){let r=TT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Sp(i,e)}function TT(t){let e;return Va(t)?e=t.budibaseUserId:e=t.accountId,e}var Hu=require("fs");var ST=require("lodash"),Ip=require("crypto");function xp(){return OT()}function OT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Yu(){return process.env.NODE_ENV!=="production"}function eC(t){if(t)return parseInt(t)}var _T=!1;!_T&&Yu()&&!xp()&&(require("dotenv").config(),_T=!0);var Yi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},AT=!!parseInt(process.env.SELF_HOSTED||"");function tC(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function rC(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function nC(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Hu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Hu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Yu()&&!xp())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 iC(){return Dt.SERVICE_TYPE==="worker"}function sC(){return Dt.SERVICE_TYPE==="apps"}function oC(){return Dt.BUDIBASE_ENVIRONMENT==="QA"}var Dt={isTest:xp,isJest:OT,isDev:Yu,isWorker:iC,isApps:sC,isQA:oC,isProd:()=>!Yu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Ip.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Ip.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:tC(),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||"",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:AT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Yi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE: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:rC(),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:AT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...nC(),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,Dt[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:eC(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,ST.cloneDeep)(Dt),r;for(r in t)Dt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Dt._set(n,i)}}function IT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var xT=["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(Dt))e==="0"&&(Dt[t]=0),e==="false"&&(Dt[t]=0);var h=Dt;var wT=require("async_hooks"),Ce=class t{static{this.storage=new wT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var wp="No app provided";function Fr(t){if(!t)throw wp;return t.startsWith(yt)}function aC(t){if(!t)throw wp;return t.startsWith(gt)&&!Fr(t)}function bo(t){if(!t)throw wp;return Fr(t.appId)}function Ku(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var uC=Ku;function ot(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${gt}${r}`}function cC(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Rp(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:Rp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Rp=(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 z_=j(require("@budibase/nano"));var RT=j(require("node-fetch"));function Ju(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function bT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,RT.default)(Ju(encodeURI(t)),i)}async function zu(t,e="GET",r){let n=await bT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=j(require("pouchdb"));var DT,vT=!1,bp=(t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function Zu(t){DT=bp(t),vT=!0}var dC=()=>{if(!vT)throw new Error("init has not been called")};function Et(t,e){dC();let r=new DT(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 CT=require("uuid");function Oe(){return(0,CT.v4)().replace(/-/g,"")}var Ie=j(require("dd-trace")),Hi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Ie.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 Ie.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Ie.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 Ie.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e.length,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 Ie.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 Ie.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 Ie.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 Ie.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Ie.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 Ie.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 Ie.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 Ie.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 Ie.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 Ie.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Ie.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Ie.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Ie.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Ie.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 Ie.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 Ie.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Rf={};v(Rf,{breakExternalTableId:()=>Of,breakRowIdField:()=>xN,buildExternalTableId:()=>TN,convertRowId:()=>IN,encodeTableId:()=>_N,encodeViewId:()=>AN,generateRowIdField:()=>SN,getNativeSql:()=>ns,isExternalTable:()=>Sf,isExternalTableID:()=>hc,isInternalTableID:()=>EN,isInvalidISODateString:()=>If,isRowId:()=>ON,isValidFilter:()=>gc,isValidISODateString:()=>xf,isValidTime:()=>wN,sqlLog:()=>na,validateManyToMany:()=>wf});var Qr={};v(Qr,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>fp,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>yp,DEFAULT_EXPENSES_TABLE_ID:()=>gp,DEFAULT_INVENTORY_TABLE_ID:()=>hp,DEFAULT_JOBS_TABLE_ID:()=>mp,DatabaseImpl:()=>rs,DatabaseWithConnection:()=>hN,DeprecatedViews:()=>Qi,DocumentType:()=>Te,InternalTable:()=>Ir,QueryBuilder:()=>pr,Replication:()=>G_,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>pp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>kr,baseGlobalDBName:()=>ra,checkErrorCode:()=>W_,closePouchDB:()=>vo,createApiKeyView:()=>L_,createNewUserEmailView:()=>P_,createPlatformAccountEmailView:()=>k_,createPlatformUserView:()=>F_,createUserAppView:()=>U_,createView:()=>ts,dbExists:()=>uN,directCouchAllDbs:()=>mf,directCouchCall:()=>bT,directCouchFind:()=>_f,directCouchQuery:()=>zu,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>cC,fullSearch:()=>pN,generateAppID:()=>m_,generateAppUserID:()=>pc,generateDevInfoID:()=>A_,generateGlobalUserID:()=>Xi,generatePluginID:()=>S_,generateRoleID:()=>cf,generateRowID:()=>uf,generateTableID:()=>h_,generateTemplateID:()=>__,generateUserMetadataID:()=>E_,generateWorkspaceID:()=>g_,getAllApps:()=>Zo,getAllDbs:()=>N_,getAppsByIDs:()=>iN,getCouchInfo:()=>vt,getDB:()=>Ke,getDevAppID:()=>uC,getDevAppIDs:()=>oN,getDevelopmentAppID:()=>Ku,getDocParams:()=>es,getGlobalDBName:()=>lr,getGlobalIDFromUserMetadataID:()=>T_,getGlobalUserParams:()=>Xn,getPluginParams:()=>C_,getPouch:()=>bp,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>sN,getQueryIndex:()=>O_,getRoleParams:()=>mc,getRowParams:()=>lf,getStartEndKeyURL:()=>zo,getTemplateParams:()=>v_,getUrlInfo:()=>Rp,getUserMetadataParams:()=>D_,getUsersByAppParams:()=>fc,getWorkspaceParams:()=>b_,init:()=>Zu,isDatasourceId:()=>w_,isDevApp:()=>bo,isDevAppID:()=>Fr,isDocumentConflictError:()=>mN,isExternalTableId:()=>df,isGlobalUserID:()=>y_,isProdAppID:()=>aC,isQueryId:()=>R_,isSameAppID:()=>aN,isTableId:()=>I_,isViewId:()=>x_,paginatedSearch:()=>dN,pagination:()=>ff,prefixRoleID:()=>cr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>yf,queryPlatformView:()=>ea,queryView:()=>gf,queryViewRaw:()=>Xo,removeKeyNumbering:()=>ta,searchIndexes:()=>Tf});var af={};v(af,{AppState:()=>of,getAppMetadata:()=>dc,invalidateAppMetadata:()=>tN});var Wr={};v(Wr,{getAppClient:()=>lc,getCacheClient:()=>rf,getDocWritethroughClient:()=>zC,getInviteClient:()=>Zn,getLockClient:()=>sf,getPasswordResetClient:()=>Jo,getSessionClient:()=>qr,getSocketClient:()=>JC,getUserClient:()=>Ko,getWritethroughClient:()=>nf,init:()=>Nt,shutdown:()=>p_});var l_=j(require("ioredis"));var tc={};v(tc,{Databases:()=>Dp,SEPARATOR:()=>Ki,SelectableDatabase:()=>Xu,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>ec,getRedisOptions:()=>Ji,removeDbPrefix:()=>vp});var pC=2e3,NT=1e4,Ki="-",Dp=(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))(Dp||{}),Xu=(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))(Xu||{});function ec(){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 Ji(){let{host:t,password:e,port:r}=ec(),n={connectTimeout:NT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:NT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:pC,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Ki}${e}`}function vp(t){let e=t.split(Ki);return e.length>=2?(e.shift(),e.join(Ki)):e[0]}var cc={};v(cc,{correlation:()=>Co,logAlert:()=>Kn,logAlertWithInfo:()=>WC,logWarn:()=>Zi,logger:()=>uc,system:()=>Qp});var Co={};v(Co,{getId:()=>Cp,setHeader:()=>fC});var PT=require("correlation-id"),fC=t=>{let e=PT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Cp(){return PT.getId()}var ac=j(require("pino")),u_=j(require("pino-pretty"));var jp=j(require("dd-trace")),c_=require("dd-trace/ext");var Qp={};v(Qp,{getLogReadStream:()=>FC,getSingleFileMaxSizeInfo:()=>a_,localFileDestination:()=>Wp});var Lo=j(require("fs")),qp=j(require("path")),n_=j(require("rotating-file-stream"));var Vp={};v(Vp,{ObjectStore:()=>Ct,ObjectStoreBuckets:()=>hC,SIGNED_FILE_PREFIX:()=>Fp,bucketTTLConfig:()=>rc,budibaseTempDir:()=>Hn,clientLibraryCDNUrl:()=>CC,clientLibraryPath:()=>KT,clientLibraryUrl:()=>NC,createBucketIfNotExists:()=>Uo,deleteFile:()=>IC,deleteFiles:()=>xC,deleteFolder:()=>jT,downloadTarball:()=>RC,downloadTarballDirect:()=>wC,enrichPluginURLs:()=>LC,extractBucketAndPath:()=>Np,getAppFileUrl:()=>PC,getGlobalFileS3Key:()=>JT,getGlobalFileUrl:()=>UC,getObjectMetadata:()=>bC,getPluginIconKey:()=>XT,getPluginJSKey:()=>ZT,getPluginS3Dir:()=>t_,getPresignedUrl:()=>$r,getReadStream:()=>nc,listAllObjects:()=>QT,processAutomationAttachment:()=>yC,processObjectStoreAttachment:()=>FT,retrieve:()=>WT,retrieveDirectory:()=>OC,retrieveToTmp:()=>SC,sanitizeBucket:()=>He,sanitizeKey:()=>Ne,streamUpload:()=>qT,upload:()=>AC,uploadDirectory:()=>Bp});var sc=require("@aws-sdk/client-s3"),Pp=require("@aws-sdk/lib-storage"),BT=require("@aws-sdk/s3-request-presigner"),Po=j(require("stream")),Up=j(require("node-fetch")),Lp=j(require("tar-fs")),Mp=j(require("zlib")),GT=require("util"),Gr=require("path"),ur=j(require("fs"));var No=j(require("path")),UT=require("os"),LT=j(require("fs"));var MT=j(require("stream")),hC={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},kT=(0,No.join)((0,UT.tmpdir)(),".budibase");try{LT.default.mkdirSync(kT)}catch(t){if(t.code!=="EEXIST")throw t}function Hn(){return kT}var rc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function gC(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=No.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:MT.default.Readable.fromWeb(e.body)}}async function FT(t){let e=Np(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await nc(r,n),s=No.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function yC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await gC(t):await FT(t)}var kp=require("uuid");var $T=j(require("fs/promises")),EC=require("sanitize-s3-objectkey"),VT=(0,GT.promisify)(Po.default.pipeline),TC={bucketCreationPromises:{}},Fp="/files/signed",Br={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"},_C=[Br.html,Br.css,Br.js,Br.json];function Ne(t){return EC(He(t)).replace(/\\/g,"/")}function He(t){return t.replace(new RegExp(yt,"g"),gt)}function Ct(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 sc.S3(e)}async function Uo(t,e){e=He(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=TC.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 AC({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await $T.default.open(r)).createReadStream():s,c=Ct(),l=await Uo(c,t);if(o&&l.created){let g=rc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Br[a.toLowerCase()]:Br.txt),p={Bucket:He(t),Key:Ne(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 Pp.Upload({client:c,params:p}).done()}async function qT({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=Ct(),u=await Uo(a,t);if(s&&u.created){let E=rc(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?Br[o.toLowerCase()]:Br.txt);let l=He(t),d=Ne(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Pp.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function WT(t,e){let r=Ct(),n={Bucket:He(t),Key:Ne(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(_C.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Po.default.Readable.fromWeb(s)}}async function QT(t,e){let r=Ct(),n=(a={})=>r.listObjectsV2({...a,Bucket:He(t),Prefix:Ne(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 $r(t,e,r=3600){let n=Ct({presigning:!0}),i={Bucket:He(t),Key:Ne(e)},s=await(0,BT.getSignedUrl)(n,new sc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Fp}${a}${u}`}else return s}async function SC(t,e){t=He(t),e=Ne(e);let r=await WT(t,e),n=(0,Gr.join)(Hn(),(0,kp.v4)());return r instanceof Po.default.Readable?r.pipe(ur.default.createWriteStream(n)):ur.default.writeFileSync(n,r),n}async function OC(t,e){let r=(0,Gr.join)(Hn(),(0,kp.v4)());ur.default.mkdirSync(r);let n=await QT(t,e),i=await Promise.all(n.map(a=>nc(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,Gr.join)(r,...d);l.length>1&&!ur.default.existsSync(m)&&ur.default.mkdirSync(m,{recursive:!0});let p=ur.default.createWriteStream((0,Gr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{c.on("finish",f),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function IC(t,e){let r=Ct();await Uo(r,t);let n={Bucket:t,Key:Ne(e)};return r.deleteObject(n)}async function xC(t,e){let r=Ct();await Uo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ne(i)}))}};return r.deleteObjects(n)}async function jT(t,e){t=He(t),e=Ne(e);let r=Ct(),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(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s)).Deleted?.length===1e3)return jT(t,e)}async function Bp(t,e,r){t=He(t);let n=[],i=ur.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ne((0,Gr.join)(r,s.name)),a=(0,Gr.join)(e,s.name);s.isDirectory()?n.push(Bp(t,a,o)):n.push(qT({bucket:t,filename:o,stream:ur.default.createReadStream(a)}))}return await Promise.all(n),i}async function wC(t,e,r={}){e=Ne(e);let n=await(0,Up.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await VT(n.body,Mp.default.createUnzip(),Lp.default.extract(e))}async function RC(t,e,r){e=He(e),r=Ne(r);let n=await(0,Up.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Gr.join)(Hn(),r);return await VT(n.body,Mp.default.createUnzip(),Lp.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Bp(e,i,r),i}async function nc(t,e){t=He(t),e=Ne(e);let r=Ct(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof Po.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function bC(t,e){t=He(t),e=Ne(e);let r=Ct(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Np(t){let e=t.split("?")[0],r=new RegExp(`^${Fp}/(?<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 YT=j(require("aws-cloudfront-sign")),oc;function DC(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return oc||(oc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),oc)}var vC=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:DC(),expireTime:new Date().getTime()+1e3*60*60*24}),zi=t=>{let e=Gp(t);return YT.getSignedUrl(e,vC())},Gp=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var HT=j(require("querystring"));function KT(t){return`${Ne(t)}/budibase-client.js`}async function CC(t,e){let r=KT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Gp(r)):await $r(h.APPS_BUCKET_NAME,r)}function NC(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ge&&(n.tenantId=r),`/api/assets/client?${HT.default.encode(n)}`}async function PC(t){return h.CLOUDFRONT_CDN?zi(t):await $r(h.APPS_BUCKET_NAME,t)}var UC=async(t,e,r)=>{let n=JT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),zi(n)):await $r(h.GLOBAL_BUCKET_NAME,n)},JT=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function LC(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await MC(e),n=await kC(e);return{...e,jsUrl:r,iconUrl:n}}))}async function MC(t){let e=ZT(t);return zT(e)}async function kC(t){let e=XT(t);if(e)return zT(e)}async function zT(t){return h.CLOUDFRONT_CDN?zi(t):await $r(h.PLUGIN_BUCKET_NAME,t)}function ZT(t){return e_(t,"plugin.min.js")}function XT(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=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var i_="budibase.log",s_="budibase-logs-history.txt",o_=qp.default.join(Hn(),"systemlogs");function r_(t){return qp.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 Wp(){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 FC(){let t=[],e=r_(s_);if(Lo.default.existsSync(e)){let i=Lo.default.readFileSync(e,"utf-8").split(`
|
|
6
|
-
`);for(let s of i.filter(o=>o))t.push(Lo.default.readFileSync(s))}return t.push(Lo.default.readFileSync(r_(i_))),Buffer.concat(t)}function BC(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function GC(t){return t instanceof Error}function $C(t){return typeof t=="string"}var Vr;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:Wp(),level:t}),Vr=r.length?(0,ac.default)(e,ac.default.multistream(r)):(0,ac.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{$C(E)&&(d=`${d} ${E}`.trimStart()),BC(E)&&l.push(E),GC(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Cp()};let f=jp.default.scope().active();f&&jp.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 O=0;O<l.length;O++){let S=l[O],L=S._logKey;L?(delete S._logKey,g[L]=S):(E[y]=S,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Vr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Vr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Vr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Vr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Vr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Vr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Pe()}catch{}return u},o=()=>{let u;try{u=Yp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var uc=Vr;var VC=["AccountError"];function qC(t){return t&&t.suppressAlert}function Kn(t,e){e&&VC.includes(e.name)&&qC(e)||console.error(`bb-alert: ${t}`,e)}function WC(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Kn(t,n)}function Zi(t,e){console.warn(`bb-warn: ${t}`,e)}var Bo={};v(Bo,{cleanup:()=>QC,clear:()=>Fo,set:()=>ko});var Mo=[];function ko(t,e){let r=setInterval(t,e);return Mo.push(r),r}function Fo(t){let e=Mo.indexOf(t);e!==-1&&Mo.splice(e,1),clearInterval(t)}function QC(){for(let t of Mo)clearInterval(t);Mo=[]}var Kp;if(h.MOCK_REDIS)try{Kp=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var jC=2e3,YC=5e3,d_=h.REDIS_CLUSTERED,Zp=0,Go=!1,
|
|
4
|
+
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let 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,Cg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Cg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Pg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Pg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,vg.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=Di.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Di.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=Di.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,mu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,pw.default)(e).map(s=>new lw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new cw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,mu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Di.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,mu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Di.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,mu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};hu.default=xt;xt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])xt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,dw.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])xt.prototype[t]=xt.prototype.oneOf;for(let t of["not","nope"])xt.prototype[t]=xt.prototype.notOneOf;xt.prototype.optional=xt.prototype.notRequired});var Mg=Y(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Lg;Ks.default=void 0;var fw=mw(tr());function mw(t){return t&&t.__esModule?t:{default:t}}var td=fw.default,hw=td;Ks.default=hw;function Lg(){return new td}Lg.prototype=td.prototype});var vi=Y(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var gw=t=>t==null;gu.default=gw});var $g=Y(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Gg;Js.default=void 0;var yw=Bg(tr()),kg=Xt(),Fg=Bg(vi());function Bg(t){return t&&t.__esModule?t:{default:t}}function Gg(){return new zs}var zs=class extends yw.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=kg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Fg.default)(r)||r===!0}})}isFalse(e=kg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Fg.default)(r)||r===!1}})}};Js.default=zs;Gg.prototype=zs.prototype});var Wg=Y(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=qg;Xs.default=void 0;var Vt=Xt(),rr=Vg(vi()),Ew=Vg(tr());function Vg(t){return t&&t.__esModule?t:{default:t}}var Tw=/^((([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,_w=/^((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,Aw=/^(?:[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,Sw=t=>(0,rr.default)(t)||t===t.trim(),Ow={}.toString();function qg(){return new Zs}var Zs=class extends Ew.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===Ow?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=Vt.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=Vt.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=Vt.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||Vt.string.matches,params:{regex:e},test:o=>(0,rr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(Tw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(_w,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(Aw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Vt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:Sw})}lowercase(e=Vt.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=Vt.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()})}};Xs.default=Zs;qg.prototype=Zs.prototype});var Yg=Y(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=jg;to.default=void 0;var Cn=Xt(),Nn=Qg(vi()),Iw=Qg(tr());function Qg(t){return t&&t.__esModule?t:{default:t}}var xw=t=>t!=+t;function jg(){return new eo}var eo=class extends Iw.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"&&!xw(e)}min(e,r=Cn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Nn.default)(n)||n>=this.resolve(e)}})}max(e,r=Cn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Nn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Cn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Nn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Cn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Nn.default)(n)||n>this.resolve(e)}})}positive(e=Cn.number.positive){return this.moreThan(0,e)}negative(e=Cn.number.negative){return this.lessThan(0,e)}integer(e=Cn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Nn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Nn.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,Nn.default)(i)?i:Math[e](i))}};to.default=eo;jg.prototype=eo.prototype});var Hg=Y(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.default=Rw;var ww=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Rw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=ww.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 Jg=Y(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=id;ro.default=void 0;var bw=yu(Hg()),Kg=Xt(),zg=yu(vi()),Dw=yu(vn()),vw=yu(tr());function yu(t){return t&&t.__esModule?t:{default:t}}var nd=new Date(""),Cw=t=>Object.prototype.toString.call(t)==="[object Date]";function id(){return new Ci}var Ci=class extends vw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,bw.default)(e),isNaN(e)?nd:new Date(e))})})}_typeCheck(e){return Cw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Dw.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=Kg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,zg.default)(i)||i>=this.resolve(n)}})}max(e,r=Kg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,zg.default)(i)||i<=this.resolve(n)}})}};ro.default=Ci;Ci.INVALID_DATE=nd;id.prototype=Ci.prototype;id.INVALID_DATE=nd});var Xg=Y((oW,sd)=>{"use strict";sd.exports=function(t){return Zg(Nw(t),t)};sd.exports.array=Zg;function Zg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=Pw(e),a=Uw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,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 Nw(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 Pw(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function Uw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ey=Y(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=Gw;var Lw=Eu(require("lodash/has")),Mw=Eu(Xg()),kw=Qs(),Fw=Eu(vn()),Bw=Eu(bi());function Eu(t){return t&&t.__esModule?t:{default:t}}function Gw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,kw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Lw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Fw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Bw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Mw.default.array(n,r).reverse()}});var ry=Y(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=$w;function ty(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function $w(t){return(e,r)=>ty(t,e)-ty(t,r)}});var cy=Y(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=uy;io.default=void 0;var ny=qt(require("lodash/has")),iy=qt(require("lodash/snakeCase")),Vw=qt(require("lodash/camelCase")),qw=qt(require("lodash/mapKeys")),Ww=qt(require("lodash/mapValues")),Qw=Qs(),sy=Xt(),jw=qt(ey()),ay=qt(ry()),Yw=qt(cu()),Hw=qt(bn()),ud=qt(tr());function qt(t){return t&&t.__esModule?t:{default:t}}function Ni(){return Ni=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},Ni.apply(this,arguments)}var oy=t=>Object.prototype.toString.call(t)==="[object Object]";function Kw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var zw=(0,ay.default)([]),no=class extends ud.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=zw,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return oy(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,ny.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(!Hw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!oy(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],Ni({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,Yw.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=Ni({},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 ud.default&&s instanceof ud.default&&(n[i]=s.concat(o))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,ay.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,jw.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,Qw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,ny.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=sy.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=Kw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=sy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,qw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Vw.default)}snakeCase(){return this.transformKeys(iy.default)}constantCase(){return this.transformKeys(e=>(0,iy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Ww.default)(this.fields,r=>r.describe()),e}};io.default=no;function uy(t){return new no(t)}uy.prototype=no.prototype});var dy=Y(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=ly;oo.default=void 0;var cd=Pi(vi()),Jw=Pi(bi()),Zw=Pi(Ws()),ld=Xt(),Xw=Pi(cu()),eR=Pi(bn()),tR=Pi(tr());function Pi(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Tu.apply(this,arguments)}function ly(t){return new so(t)}var so=class extends tR.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Tu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,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(!eR.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],O=`${r.path||""}[${E}]`,S=Tu({},r,{path:O,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(L,T)=>c.validate(y,S,T)}(0,Xw.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,Jw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Zw.default)(e));return r.innerType=e,r}length(e,r=ld.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,cd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ld.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,cd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ld.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,cd.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)}};oo.default=so;ly.prototype=so.prototype});var py=Y(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=iR;ao.default=void 0;var rR=nR(bi());function nR(t){return t&&t.__esModule?t:{default:t}}function iR(t){return new _u(t)}var _u=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,rR.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)}},sR=_u;ao.default=sR});var fy=Y(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=uR;var oR=aR(Xt());function aR(t){return t&&t.__esModule?t:{default:t}}function uR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{oR.default[e][r]=t[e][r]})})}});var fd=Y(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.addMethod=hR;Object.defineProperty(de,"MixedSchema",{enumerable:!0,get:function(){return my.default}});Object.defineProperty(de,"mixed",{enumerable:!0,get:function(){return my.create}});Object.defineProperty(de,"BooleanSchema",{enumerable:!0,get:function(){return pd.default}});Object.defineProperty(de,"bool",{enumerable:!0,get:function(){return pd.create}});Object.defineProperty(de,"boolean",{enumerable:!0,get:function(){return pd.create}});Object.defineProperty(de,"StringSchema",{enumerable:!0,get:function(){return hy.default}});Object.defineProperty(de,"string",{enumerable:!0,get:function(){return hy.create}});Object.defineProperty(de,"NumberSchema",{enumerable:!0,get:function(){return gy.default}});Object.defineProperty(de,"number",{enumerable:!0,get:function(){return gy.create}});Object.defineProperty(de,"DateSchema",{enumerable:!0,get:function(){return yy.default}});Object.defineProperty(de,"date",{enumerable:!0,get:function(){return yy.create}});Object.defineProperty(de,"ObjectSchema",{enumerable:!0,get:function(){return Ey.default}});Object.defineProperty(de,"object",{enumerable:!0,get:function(){return Ey.create}});Object.defineProperty(de,"ArraySchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(de,"array",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(de,"ref",{enumerable:!0,get:function(){return cR.create}});Object.defineProperty(de,"lazy",{enumerable:!0,get:function(){return lR.create}});Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return dR.default}});Object.defineProperty(de,"reach",{enumerable:!0,get:function(){return pR.default}});Object.defineProperty(de,"isSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(de,"setLocale",{enumerable:!0,get:function(){return fR.default}});Object.defineProperty(de,"BaseSchema",{enumerable:!0,get:function(){return mR.default}});var my=Pn(Mg()),pd=Pn($g()),hy=Pn(Wg()),gy=Pn(Yg()),yy=Pn(Jg()),Ey=Pn(cy()),Ty=Pn(dy()),cR=vn(),lR=py(),dR=uo(bn()),pR=uo(Xl()),_y=uo(bi()),fR=uo(fy()),mR=uo(tr());function uo(t){return t&&t.__esModule?t:{default:t}}function Ay(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Ay=function(){return t},t}function Pn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Ay();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 hR(t,e,r){if(!t||!(0,_y.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 Sy=Y(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});var md=gd();hd.default=()=>{(0,md.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,md.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,md.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 gd=Y(De=>{"use strict";var gR=De&&De.__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]}),yR=De&&De.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ER=De&&De.__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)&&gR(e,t,r);return yR(e,t),e},TR=De&&De.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(De,"__esModule",{value:!0});De.validateOptions=De.registerOptionPreset=De.getOptionPresets=De.getOptionPreset=void 0;var x=ER(fd());fd();var co=Ot(),_R=TR(Sy());It();var Un={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Oy=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),AR=t=>Un[t]?(0,co.valid)(Un[t]):(0,co.err)(`Option preset '${t}' not found.`);De.getOptionPreset=AR;var SR=()=>Un;De.getOptionPresets=SR;var OR=(t,e)=>{Un[t]=Oy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};De.registerOptionPreset=OR;var IR=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,O,S,L;try{(0,_R.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Un[t.preset]}else T=t.preset;else T=Un.default;let A=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:(O=T.daysOfWeek.upperLimit)!==null&&O!==void 0?O:T.daysOfWeek.maxValue},years:{lowerLimit:(S=T.years.lowerLimit)!==null&&S!==void 0?S:T.years.minValue,upperLimit:(L=T.years.upperLimit)!==null&&L!==void 0?L:T.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:Oy.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:x.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:x.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(A,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(T){return(0,co.err)(T.errors)}};De.validateOptions=IR});var $t=Y((lo,Ed)=>{"use strict";var Mn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Ln=Ot(),xR=Mn(Zh()),wR=Mn(Xh()),RR=Mn(eg()),bR=Mn(tg()),DR=Mn(rg()),vR=Mn(ng()),CR=Mn(ig()),NR=gd();It();var PR=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Ln.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Ln.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Ln.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,Ln.valid)(n)},yd=(t,e={})=>{let r=(0,NR.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=PR(t,n);if(i.isError())return(0,Ln.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,xR.default)(s,n)),o.push((0,wR.default)(s,n)),o.push((0,RR.default)(s,n)),o.push((0,bR.default)(s,n)),o.push((0,DR.default)(s,n)),o.push((0,vR.default)(s,n)),n.useYears&&o.push((0,CR.default)(s,n)),o.every(u=>u.isValid()))return(0,Ln.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,Ln.err)(a)};lo.default=yd;Ed.exports=yd;Ed.exports.default=yd});var YE=Y(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var ir=class extends Error{},Rd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},bd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Dd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Bn=class extends ir{},Ru=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends ir{},Wt=class extends ir{constructor(){super("Zone is an abstract class")}},R="numeric",bt="short",rt="long",bu={year:R,month:R,day:R},Ky={year:R,month:bt,day:R},UR={year:R,month:bt,day:R,weekday:bt},zy={year:R,month:rt,day:R},Jy={year:R,month:rt,day:R,weekday:rt},Zy={hour:R,minute:R},Xy={hour:R,minute:R,second:R},eE={hour:R,minute:R,second:R,timeZoneName:bt},tE={hour:R,minute:R,second:R,timeZoneName:rt},rE={hour:R,minute:R,hourCycle:"h23"},nE={hour:R,minute:R,second:R,hourCycle:"h23"},iE={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:bt},sE={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:rt},oE={year:R,month:R,day:R,hour:R,minute:R},aE={year:R,month:R,day:R,hour:R,minute:R,second:R},uE={year:R,month:bt,day:R,hour:R,minute:R},cE={year:R,month:bt,day:R,hour:R,minute:R,second:R},LR={year:R,month:bt,day:R,weekday:bt,hour:R,minute:R},lE={year:R,month:rt,day:R,hour:R,minute:R,timeZoneName:bt},dE={year:R,month:rt,day:R,hour:R,minute:R,second:R,timeZoneName:bt},pE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,timeZoneName:rt},fE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,second:R,timeZoneName:rt},Pr=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,r){throw new Wt}formatOffset(e,r){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},Td=null,Eo=class t extends Pr{static get instance(){return Td===null&&(Td=new t),Td}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return hE(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},xu={};function MR(t){return xu[t]||(xu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),xu[t]}var kR={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function FR(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 BR(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=kR[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Au={},sr=class t extends Pr{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},xu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return hE(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=MR(this.name),[i,s,o,a,u,c,l]=n.formatToParts?BR(n,r):FR(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=$d({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}},Iy={};function GR(t,e={}){let r=JSON.stringify([t,e]),n=Iy[r];return n||(n=new Intl.ListFormat(t,e),Iy[r]=n),n}var vd={};function Cd(t,e={}){let r=JSON.stringify([t,e]),n=vd[r];return n||(n=new Intl.DateTimeFormat(t,e),vd[r]=n),n}var Nd={};function $R(t,e={}){let r=JSON.stringify([t,e]),n=Nd[r];return n||(n=new Intl.NumberFormat(t,e),Nd[r]=n),n}var Pd={};function VR(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Pd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Pd[i]=s),s}var ho=null;function qR(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function WR(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=Cd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Cd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function QR(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function jR(t){let e=[];for(let r=1;r<=12;r++){let n=Ae.utc(2016,r,1);e.push(t(n))}return e}function YR(t){let e=[];for(let r=1;r<=7;r++){let n=Ae.utc(2016,11,13+r);e.push(t(n))}return e}function Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function HR(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 Ud=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=$R(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):Gd(e,3);return xe(r,this.padTo)}}},Ld=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:Ae.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=Cd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Md=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&mE()&&(this.rtf=VR(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):lb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||he.defaultLocale,o=s||(i?"en-US":qR()),a=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,vd={},Nd={},Pd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=WR(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=QR(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=HR(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Su(this,e,n,EE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=jR(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,AE,()=>{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]=YR(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>SE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ae.utc(2016,11,13,9),Ae.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Su(this,e,r,OE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ae.utc(-40,1,1),Ae.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 Ud(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Ld(e,this.intl,r)}relFormatter(e={}){return new Md(this.intl,this.isEnglish(),e)}listFormatter(e={}){return GR(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}},_d=null,nt=class t extends Pr{static get utcInstance(){return _d===null&&(_d=new t(0)),_d}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Uu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Du=class extends Pr{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 Nr(t,e){if(ne(t)||t===null)return e;if(t instanceof Pr)return t;if(KR(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||sr.create(t)}else return $n(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Du(t)}var xy=()=>Date.now(),wy="system",Ry=null,by=null,Dy=null,vy=60,Cy,he=class{static get now(){return xy}static set now(e){xy=e}static set defaultZone(e){wy=e}static get defaultZone(){return Nr(wy,Eo.instance)}static get defaultLocale(){return Ry}static set defaultLocale(e){Ry=e}static get defaultNumberingSystem(){return by}static set defaultNumberingSystem(e){by=e}static get defaultOutputCalendar(){return Dy}static set defaultOutputCalendar(e){Dy=e}static get twoDigitCutoffYear(){return vy}static set twoDigitCutoffYear(e){vy=e%100}static get throwOnInvalid(){return Cy}static set throwOnInvalid(e){Cy=e}static resetCaches(){_e.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function $n(t){return typeof t=="number"}function Pu(t){return typeof t=="number"&&t%1===0}function KR(t){return typeof t=="string"}function zR(t){return Object.prototype.toString.call(t)==="[object Date]"}function mE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function JR(t){return Array.isArray(t)?t:[t]}function Ny(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 ZR(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return Pu(t)&&t>=e&&t<=r}function XR(t,e){return t-e*Math.floor(t/e)}function xe(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Cr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Bd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Gd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function vu(t,e){let r=XR(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function $d(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function Cu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function kd(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function hE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Uu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function gE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Qe(`Invalid unit value ${t}`);return e}function Nu(t,e){let r={};for(let n in t)if(ki(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=gE(i)}return r}function yo(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}${xe(r,2)}:${xe(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${xe(r,2)}${xe(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Lu(t){return ZR(t,["hour","minute","second","millisecond"])}var eb=["January","February","March","April","May","June","July","August","September","October","November","December"],yE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tb=["J","F","M","A","M","J","J","A","S","O","N","D"];function EE(t){switch(t){case"narrow":return[...tb];case"short":return[...yE];case"long":return[...eb];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var TE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],_E=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],rb=["M","T","W","T","F","S","S"];function AE(t){switch(t){case"narrow":return[...rb];case"short":return[..._E];case"long":return[...TE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var SE=["AM","PM"],nb=["Before Christ","Anno Domini"],ib=["BC","AD"],sb=["B","A"];function OE(t){switch(t){case"narrow":return[...sb];case"short":return[...ib];case"long":return[...nb];default:return null}}function ob(t){return SE[t.hour<12?0:1]}function ab(t,e){return AE(e)[t.weekday-1]}function ub(t,e){return EE(e)[t.month-1]}function cb(t,e){return OE(e)[t.year<0?0:1]}function lb(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 Py(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var db={D:bu,DD:Ky,DDD:zy,DDDD:Jy,t:Zy,tt:Xy,ttt:eE,tttt:tE,T:rE,TT:nE,TTT:iE,TTTT:sE,f:oE,ff:uE,fff:lE,ffff:pE,F:aE,FF:cE,FFF:dE,FFFF:fE},et=class t{static create(e,r={}){return new t(e,r)}static parseFormat(e){let r=null,n="",i=!1,s=[];for(let o=0;o<e.length;o++){let a=e.charAt(o);a==="'"?(n.length>0&&s.push({literal:i,val:n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:!1,val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i,val:n}),s}static macroTokenToFormatOpts(e){return db[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return xe(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?ob(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?ub(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?ab(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?cb(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 Py(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 Py(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},IE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Fi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Bi(...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 Gi(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 xE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Cr(e[r+i]);return[n,null,r+i]}}var wE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,pb=`(?:${wE.source}?(?:\\[(${IE.source})\\])?)?`,Vd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,RE=RegExp(`${Vd.source}${pb}`),qd=RegExp(`(?:T${RE.source})?`),fb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,mb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,hb=/(\d{4})-?(\d{3})/,gb=xE("weekYear","weekNumber","weekDay"),yb=xE("year","ordinal"),Eb=/(\d{4})-(\d\d)-(\d\d)/,bE=RegExp(`${Vd.source} ?(?:${wE.source}|(${IE.source}))?`),Tb=RegExp(`(?: ${bE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function _b(t,e){return[{year:Mi(t,e),month:Mi(t,e+1,1),day:Mi(t,e+2,1)},null,e+3]}function $i(t,e){return[{hours:Mi(t,e,0),minutes:Mi(t,e+1,0),seconds:Mi(t,e+2,0),milliseconds:Bd(t[e+3])},null,e+4]}function _o(t,e){let r=!t[e]&&!t[e+1],n=Uu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function Ao(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Ab=RegExp(`^T?${Vd.source}$`),Sb=/^-?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 Ob(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(kn(r)),months:m(kn(n)),weeks:m(kn(i)),days:m(kn(s)),hours:m(kn(o)),minutes:m(kn(a)),seconds:m(kn(u),u==="-0"),milliseconds:m(Bd(c),d)}]}var Ib={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 Wd(t,e,r,n,i,s,o){let a={year:e.length===2?kd(Cr(e)):Cr(e),month:yE.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?TE.indexOf(t)+1:_E.indexOf(t)+1),a}var xb=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function wb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Wd(e,i,n,r,s,o,a),p;return u?p=Ib[u]:c?p=0:p=Uu(l,d),[m,new nt(p)]}function Rb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var bb=/^(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$/,Db=/^(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$/,vb=/^(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 Uy(t){let[,e,r,n,i,s,o,a]=t;return[Wd(e,i,n,r,s,o,a),nt.utcInstance]}function Cb(t){let[,e,r,n,i,s,o,a]=t;return[Wd(e,a,r,n,i,s,o),nt.utcInstance]}var Nb=Fi(fb,qd),Pb=Fi(mb,qd),Ub=Fi(hb,qd),Lb=Fi(RE),DE=Bi(_b,$i,_o,Ao),Mb=Bi(gb,$i,_o,Ao),kb=Bi(yb,$i,_o,Ao),Fb=Bi($i,_o,Ao);function Bb(t){return Gi(t,[Nb,DE],[Pb,Mb],[Ub,kb],[Lb,Fb])}function Gb(t){return Gi(Rb(t),[xb,wb])}function $b(t){return Gi(t,[bb,Uy],[Db,Uy],[vb,Cb])}function Vb(t){return Gi(t,[Sb,Ob])}var qb=Bi($i);function Wb(t){return Gi(t,[Ab,qb])}var Qb=Fi(Eb,Tb),jb=Fi(bE),Yb=Bi($i,_o,Ao);function Hb(t){return Gi(t,[Qb,DE],[jb,Yb])}var Kb="Invalid Duration",vE={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}},zb={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},...vE},mt=146097/400,Ui=146097/4800,Jb={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:Ui/7,days:Ui,hours:Ui*24,minutes:Ui*24*60,seconds:Ui*24*60*60,milliseconds:Ui*24*60*60*1e3},...vE},Fn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Zb=Fn.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 we(n)}function Xb(t){return t<0?Math.floor(t):Math.ceil(t)}function CE(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?Xb(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function eD(t,e){Zb.reduce((r,n)=>ne(e[n])?r:(r&&CE(t,e,r,e,n),n),null)}function tD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var we=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?Jb:zb;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Qe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Nu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if($n(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=Vb(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]=Wb(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 Qe("need to specify a reason the Duration is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Dd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Ru(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?et.create(this.loc,n).formatDurationFromString(this,e):Kb}toHuman(e={}){let r=Fn.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+=Gd(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 Fn)(ki(r.values,i)||ki(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]=gE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Nu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return eD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=tD(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 Fn)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;$n(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)Fn.indexOf(c)>Fn.indexOf(o)&&CE(this.matrix,i,c,r,o)}else $n(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 Fn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function rD(t,e){return!t||!t.isValid?Vn.invalid("missing or invalid start"):!e||!e.isValid?Vn.invalid("missing or invalid end"):e<t?Vn.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 Vn=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 Qe("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new bd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=rD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=we.fromDurationLike(r),i=mo(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=Ae.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ae.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=we.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=we.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(mo).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=we.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()})`:Li}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Li}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Li}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Li}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Li}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Li}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):we.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Gn=class{static hasDST(e=he.defaultZone){let r=Ae.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 Nr(e,he.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:mE()}}};function Ly(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(we.fromMillis(n).as("days"))}function nD(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=Ly(u,c);return(l-l%7)/7}],["days",Ly]],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 iD(t,e,r,n){let[i,s,o,a]=nD(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=we.fromObject(s,n);return c.length>0?we.fromMillis(u,n).shiftTo(...c).plus(l):l}var Qd={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"},My={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=Qd.hanidec.replace(/[\[|\]]/g,"").split("");function oD(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(Qd.hanidec)!==-1)e+=sD.indexOf(t[r]);else for(let i in My){let[s,o]=My[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Qd[t||"latn"]}${e}`)}var aD="missing Intl.DateTimeFormat.formatToParts support";function ue(t,e=r=>r){return{regex:t,deser:([r])=>e(oD(r))}}var uD=String.fromCharCode(160),NE=`[ ${uD}]`,PE=new RegExp(NE,"g");function cD(t){return t.replace(/\./g,"\\.?").replace(PE,NE)}function ky(t){return t.replace(/\./g,"").replace(PE," ").toLowerCase()}function Rt(t,e){return t===null?null:{regex:RegExp(t.map(cD).join("|")),deser:([r])=>t.findIndex(n=>ky(r)===ky(n))+e}}function Fy(t,e){return{regex:t,deser:([,r,n])=>Uu(r,n),groups:e}}function Ad(t){return{regex:t,deser:([e])=>e}}function lD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function dD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),d=wt(e,"{2,4}"),m=wt(e,"{4,6}"),p=E=>({regex:RegExp(lD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return Rt(e.eras("short",!1),0);case"GG":return Rt(e.eras("long",!1),0);case"y":return ue(c);case"yy":return ue(d,kd);case"yyyy":return ue(s);case"yyyyy":return ue(m);case"yyyyyy":return ue(o);case"M":return ue(a);case"MM":return ue(n);case"MMM":return Rt(e.months("short",!0,!1),1);case"MMMM":return Rt(e.months("long",!0,!1),1);case"L":return ue(a);case"LL":return ue(n);case"LLL":return Rt(e.months("short",!1,!1),1);case"LLLL":return Rt(e.months("long",!1,!1),1);case"d":return ue(a);case"dd":return ue(n);case"o":return ue(u);case"ooo":return ue(i);case"HH":return ue(n);case"H":return ue(a);case"hh":return ue(n);case"h":return ue(a);case"mm":return ue(n);case"m":return ue(a);case"q":return ue(a);case"qq":return ue(n);case"s":return ue(a);case"ss":return ue(n);case"S":return ue(u);case"SSS":return ue(i);case"u":return Ad(l);case"uu":return Ad(a);case"uuu":return ue(r);case"a":return Rt(e.meridiems(),0);case"kkkk":return ue(s);case"kk":return ue(d,kd);case"W":return ue(a);case"WW":return ue(n);case"E":case"c":return ue(r);case"EEE":return Rt(e.weekdays("short",!1,!1),1);case"EEEE":return Rt(e.weekdays("long",!1,!1),1);case"ccc":return Rt(e.weekdays("short",!0,!1),1);case"cccc":return Rt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Fy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Fy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Ad(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:aD};return g.token=t,g}var pD={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 fD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=pD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function mD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function hD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(ki(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 gD(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 nt(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=Bd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Sd=null;function yD(){return Sd||(Sd=Ae.fromMillis(1555555555555)),Sd}function ED(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=ME(r,e);return n==null||n.includes(void 0)?t:n}function UE(t,e){return Array.prototype.concat(...t.map(r=>ED(r,e)))}function LE(t,e,r){let n=UE(et.parseFormat(r),t),i=n.map(o=>dD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=mD(i),u=RegExp(o,"i"),[c,l]=hD(e,u,a),[d,m,p]=l?gD(l):[null,null,void 0];if(ki(l,"a")&&ki(l,"H"))throw new Bn("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 TD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=LE(t,e,r);return[n,i,s,o]}function ME(t,e){return t?et.create(e,t).formatDateTimeParts(yD()).map(i=>fD(i,t)):null}var kE=[0,31,59,90,120,151,181,212,243,273,304,334],FE=[0,31,60,91,121,152,182,213,244,274,305,335];function ht(t,e){return new tt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function BE(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 GE(t,e,r){return r+(To(t)?FE:kE)[e-1]}function $E(t,e){let r=To(t)?FE:kE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Fd(t){let{year:e,month:r,day:n}=t,i=GE(e,r,n),s=BE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Cu(a)):o>Cu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function By(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=BE(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=$E(a,o);return{year:a,month:u,day:c,...Lu(t)}}function Od(t){let{year:e,month:r,day:n}=t,i=GE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Gy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=$E(e,r);return{year:e,month:n,day:i,...Lu(t)}}function _D(t){let e=Pu(t.weekYear),r=nr(t.weekNumber,1,Cu(t.weekYear)),n=nr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function AD(t){let e=Pu(t.year),r=nr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function VE(t){let e=Pu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,vu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function qE(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:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Id="Invalid DateTime",$y=864e13;function Ou(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function xd(t){return t.weekData===null&&(t.weekData=Fd(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ae({...r,...e,old:r})}function WE(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 Vy(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function wu(t,e,r){return WE($d(t),e,r)}function qy(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,vu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=we.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=$d(s),[u,c]=WE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ae.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ae.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Iu(t,e,r=!0){return t.isValid?et.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function wd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=xe(t.c.year,r?6:4),e?(n+="-",n+=xe(t.c.month),n+="-",n+=xe(t.c.day)):(n+=xe(t.c.month),n+=xe(t.c.day)),n}function Wy(t,e,r,n,i,s){let o=xe(t.c.hour);return e?(o+=":",o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=xe(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=xe(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=xe(Math.trunc(-t.o/60)),o+=":",o+=xe(Math.trunc(-t.o%60))):(o+="+",o+=xe(Math.trunc(t.o/60)),o+=":",o+=xe(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var QE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},SD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},OD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},jE=["year","month","day","hour","minute","second","millisecond"],ID=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],xD=["year","ordinal","hour","minute","second","millisecond"];function Qy(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Ru(t);return e}function jy(t,e){let r=Nr(e.zone,he.defaultZone),n=_e.fromObject(e),i=he.now(),s,o;if(ne(t.year))s=i;else{for(let c of jE)ne(t[c])&&(t[c]=QE[c]);let a=VE(t)||qE(t);if(a)return Ae.invalid(a);let u=r.offset(i);[s,o]=wu(t,u,r)}return new Ae({ts:s,zone:r,loc:n,o})}function Yy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Gd(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 Hy(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 Ae=class t{constructor(e){let r=e.zone||he.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Ou(r));this.ts=ne(e.ts)?he.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=Vy(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Hy(arguments),[n,i,s,o,a,u,c]=r;return jy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Hy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,jy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=zR(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Nr(r.zone,he.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(Ou(i))}static fromMillis(e,r={}){if($n(e))return e<-$y||e>$y?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if($n(e))return new t({ts:e*1e3,zone:Nr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Nr(r.zone,he.defaultZone);if(!n.isValid)return t.invalid(Ou(n));let i=he.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Nu(e,Qy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&d)throw new Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Bn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=Vy(i,s);p?(f=ID,g=SD,E=Fd(E)):a?(f=xD,g=OD,E=Od(E)):(f=jE,g=QE);let y=!1;for(let w of f){let F=o[w];ne(F)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let O=p?_D(o):a?AD(o):VE(o),S=O||qE(o);if(S)return t.invalid(S);let L=p?By(o):a?Gy(o):o,[T,A]=wu(L,s,n),B=new t({ts:T,zone:n,o:A,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=Bb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Gb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=$b(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Qe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=TD(o,e,r);return l?t.invalid(l):fo(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]=Hb(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the DateTime is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Rd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=ME(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return UE(et.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?xd(this).weekYear:NaN}get weekNumber(){return this.isValid?xd(this).weekNumber:NaN}get weekday(){return this.isValid?xd(this).weekday:NaN}get ordinal(){return this.isValid?Od(this.c).ordinal:NaN}get monthShort(){return this.isValid?Gn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Gn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Gn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Gn.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 To(this.year)}get daysInMonth(){return vu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?Cu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(nt.instance(e),r)}toLocal(){return this.setZone(he.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Nr(e,he.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=wu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Ou(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Nu(e,Qy),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 Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Bn("Can't mix ordinal dates with month/day");let c;n?c=By({...Fd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(vu(c.year,c.month),c.day))):c=Gy({...Od(this.c),...r});let[l,d]=wu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e);return po(this,qy(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,qy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=we.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?et.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Id}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Id}toLocaleParts(e={}){return this.isValid?et.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=wd(this,o);return a+="T",a+=Wy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?wd(this,e==="extended"):null}toISOWeekDate(){return Iu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Wy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Iu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Iu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?wd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Iu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Id}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 we.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=JR(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=iD(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?Vn.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),Yy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Yy(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 Qe("min requires all arguments be DateTimes");return Ny(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return Ny(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return LE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return bu}static get DATE_MED(){return Ky}static get DATE_MED_WITH_WEEKDAY(){return UR}static get DATE_FULL(){return zy}static get DATE_HUGE(){return Jy}static get TIME_SIMPLE(){return Zy}static get TIME_WITH_SECONDS(){return Xy}static get TIME_WITH_SHORT_OFFSET(){return eE}static get TIME_WITH_LONG_OFFSET(){return tE}static get TIME_24_SIMPLE(){return rE}static get TIME_24_WITH_SECONDS(){return nE}static get TIME_24_WITH_SHORT_OFFSET(){return iE}static get TIME_24_WITH_LONG_OFFSET(){return sE}static get DATETIME_SHORT(){return oE}static get DATETIME_SHORT_WITH_SECONDS(){return aE}static get DATETIME_MED(){return uE}static get DATETIME_MED_WITH_SECONDS(){return cE}static get DATETIME_MED_WITH_WEEKDAY(){return LR}static get DATETIME_FULL(){return lE}static get DATETIME_FULL_WITH_SECONDS(){return dE}static get DATETIME_HUGE(){return pE}static get DATETIME_HUGE_WITH_SECONDS(){return fE}};function mo(t){if(Ae.isDateTime(t))return t;if(t&&t.valueOf&&$n(t.valueOf()))return Ae.fromJSDate(t);if(t&&typeof t=="object")return Ae.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var wD="3.2.1";it.DateTime=Ae;it.Duration=we;it.FixedOffsetZone=nt;it.IANAZone=sr;it.Info=Gn;it.Interval=Vn;it.InvalidZone=Du;it.Settings=he;it.SystemZone=Eo;it.VERSION=wD;it.Zone=Pr});var KE=Y((yW,HE)=>{"use strict";var qn=YE();J.prototype.addYear=function(){this._date=this._date.plus({years:1})};J.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};J.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};J.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}))};J.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}))};J.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}))};J.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};J.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};J.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};J.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}))};J.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}))};J.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}))};J.prototype.getDate=function(){return this._date.day};J.prototype.getFullYear=function(){return this._date.year};J.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};J.prototype.getMonth=function(){return this._date.month-1};J.prototype.getHours=function(){return this._date.hour};J.prototype.getMinutes=function(){return this._date.minute};J.prototype.getSeconds=function(){return this._date.second};J.prototype.getMilliseconds=function(){return this._date.millisecond};J.prototype.getTime=function(){return this._date.valueOf()};J.prototype.getUTCDate=function(){return this._getUTC().day};J.prototype.getUTCFullYear=function(){return this._getUTC().year};J.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};J.prototype.getUTCMonth=function(){return this._getUTC().month-1};J.prototype.getUTCHours=function(){return this._getUTC().hour};J.prototype.getUTCMinutes=function(){return this._getUTC().minute};J.prototype.getUTCSeconds=function(){return this._getUTC().second};J.prototype.toISOString=function(){return this._date.toUTC().toISO()};J.prototype.toJSON=function(){return this._date.toJSON()};J.prototype.setDate=function(t){this._date=this._date.set({day:t})};J.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};J.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};J.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};J.prototype.setHours=function(t){this._date=this._date.set({hour:t})};J.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};J.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};J.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};J.prototype._getUTC=function(){return this._date.toUTC()};J.prototype.toString=function(){return this.toDate().toString()};J.prototype.toDate=function(){return this._date.toJSDate()};J.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};J.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function J(t,e){var r={zone:e};if(t?t instanceof J?this._date=t._date:t instanceof Date?this._date=qn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=qn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=qn.DateTime.fromISO(t,r),this._date.isValid||(this._date=qn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=qn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=qn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=qn.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))}HE.exports=J});var ZE=Y((EW,JE)=>{"use strict";function Wn(t){return{start:t,count:1}}function zE(t,e){t.end=e,t.step=e-t.start,t.count=2}function jd(t,e,r){e&&(e.count===2?(t.push(Wn(e.start)),t.push(Wn(e.end))):t.push(e)),r&&t.push(r)}function RD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(jd(e,r,Wn(i)),r=void 0):r?r.count===1?zE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Wn(r.start)),r=Wn(r.end),zE(r,i)):(jd(e,r),r=Wn(i)):r=Wn(i)}return jd(e,r),e}JE.exports=RD});var eT=Y((TW,XE)=>{"use strict";var bD=ZE();function DD(t,e,r){var n=bD(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(",")}XE.exports=DD});var nT=Y((_W,rT)=>{"use strict";var Qn=KE(),vD=eT(),tT=1e4;function P(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Qn(e.currentDate,this._tz),this._startDate=e.startDate?new Qn(e.startDate,this._tz):null,this._endDate=e.endDate?new Qn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=P._freezeFields(t)}P.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];P.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};P.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"]}];P.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];P.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}};P.parseDefaults=["0","*","*","*","*","*"];P.standardValidCharacters=/^[,*\d/-]+$/;P.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;P.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;P.validCharacters={second:P.standardValidCharacters,minute:P.standardValidCharacters,hour:P.standardValidCharacters,dayOfMonth:P.dayOfMonthValidCharacters,month:P.standardValidCharacters,dayOfWeek:P.dayOfWeekValidCharacters};P._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};P._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=P.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(!P.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(P._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(P._isValidConstraintChar(n,f)){c.push(f);return}var O=+f;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}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(P._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)};P._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)};P._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=P.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(P._sortCompareFn)}};P._freezeFields=function(t){for(var e=0,r=P.map.length;e<r;++e){var n=P.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};P.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)}};P.prototype._findSchedule=function(e){function r(y,O){for(var S=0,L=O.length;S<L;S++)if(O[S]>=y)return O[S]===y;return O[0]===y}function n(y,O){if(O<6){if(y.getDate()<8&&O===1)return!0;var S=y.getDate()%7?1:0,L=y.getDate()-y.getDate()%7,T=Math.floor(L/7)+S;return T===O}return!1}function i(y){return y.length>0&&y.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Qn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(O){if(!i([O]))return!1;var S=Number.parseInt(O[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+O);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<tT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var 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>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.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>=tT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Qn(o,this._tz),this._hasIterated=!0,o};P.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};P.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};P.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}};P.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}};P.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};P.prototype.reset=function(e){this._currentDate=new Qn(e||this._options.currentDate)};P.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=P.map.length;n<i;++n){var s=P.map[n],o=this.fields[s],a=P.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:P.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(vD(o,a.min,a.max))}return r.join(" ")};P.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Qn(void 0,n._tz)),P.predefined[s]&&(s=P.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=P.map.length-u.length,l=0,d=P.map.length;l<d;++l){var m=P.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var f=m==="dayOfWeek"?O(p):p;a.push(P._parseField(m,f,P.constraints[l]))}}for(var g={},l=0,d=P.map.length;l<d;l++){var E=P.map[l];g[E]=a[l]}var y=P._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new P(g,o);function O(S){var L=S.split("#");if(L.length>1){var T=+L[L.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(L.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,L[0]}return S}}return i(e,r)};P.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(!P._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=P.map.length;s<o;++s){var a=P.map[s],u=e[a];n(a,u,P.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(P._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=P._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new P(i,r||{})};rT.exports=P});var sT=Y((AW,iT)=>{"use strict";var Mu=nT();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Mu.parse(e)};if(r.length>6)return{interval:Mu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return Mu.parse(e,r)};Ur.fieldsToExpression=function(e,r){return Mu.fieldsToExpression(e,r)};Ur.parseString=function(e){for(var r=e.split(`
|
|
5
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Ur._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Ur.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Ur.parseString(i.toString()))})};iT.exports=Ur});var eF={};v(eF,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>fp,BadRequestError:()=>Oc,BudibaseError:()=>ms,Config:()=>Tp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>yp,DEFAULT_EXPENSES_TABLE_ID:()=>gp,DEFAULT_INVENTORY_TABLE_ID:()=>hp,DEFAULT_JOBS_TABLE_ID:()=>mp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,Duration:()=>ve,DurationType:()=>Vf,EmailUnavailableError:()=>hr,ErrorCode:()=>wc,FeatureDisabledError:()=>xc,GlobalRole:()=>Ep,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ir,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>ET,NotFoundError:()=>Sc,RedisClient:()=>Be,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>pp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Ic,UserStatus:()=>Wu,ViewName:()=>kr,accounts:()=>ai,auth:()=>sh,blacklist:()=>ch,cache:()=>ba,configs:()=>rn,constants:()=>_p,context:()=>ye,db:()=>Qr,docIds:()=>pf,docUpdates:()=>dh,encryption:()=>rh,env:()=>h,errors:()=>bc,events:()=>Ts,features:()=>Ym,getPublicError:()=>Rc,init:()=>Xk,installation:()=>kc,locks:()=>oi,logging:()=>cc,middleware:()=>ih,objectStore:()=>Vp,permissions:()=>Wm,platform:()=>la,plugins:()=>ah,queue:()=>dm,redis:()=>uh,roles:()=>sm,security:()=>bm,sessions:()=>Wc,setEnv:()=>Ro,sql:()=>_h,tenancy:()=>Zk,timers:()=>Bo,userUtils:()=>om,users:()=>_s,utils:()=>cs,withEnv:()=>IT});module.exports=TO(eF);var rn={};v(rn,{analyticsEnabled:()=>Lc,generateConfigID:()=>Gm,getAIConfig:()=>IM,getConfig:()=>kt,getDefaultGoogleConfig:()=>Fm,getGoogleConfig:()=>Kc,getGoogleDatasourceConfig:()=>Vm,getOIDCConfig:()=>AM,getOIDCConfigById:()=>qm,getOIDCLogosDoc:()=>TM,getPlatformUrl:()=>Pa,getSCIMConfig:()=>OM,getSMTPConfig:()=>SM,getSMTPConfigDoc:()=>SS,getSettingsConfig:()=>$m,getSettingsConfigDoc:()=>Bc,save:()=>yM});var _O=["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"],Sh=[..._O],Oh={"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 El=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(El||{}),Tl=(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))(Tl||{}),Ba=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Ba||{});var _l=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(_l||{});var Sr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Sr||{}),Kt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Kt||{}),ln=(e=>(e.RANGE="range",e))(ln||{}),gi=(r=>(r.AND="$and",r.OR="$or",r))(gi||{});function Ga(t){return Object.values(gi).includes(t)}function Ih(t){return Object.values(Sr).includes(t)}function xh(t){return Object.values(Kt).includes(t)}function Al(t){return Object.values(ln).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var wh=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 Rh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var tB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Rs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Rs||{});var $a=(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))($a||{});var Va=t=>t.hosting==="cloud";var qa=t=>t.authType==="sso";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||{}),Ee=(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))(Ee||{}),Ft=(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))(Ft||{});var me=(A=>(A.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",A.CREATE_ROW="CREATE_ROW",A.UPDATE_ROW="UPDATE_ROW",A.DELETE_ROW="DELETE_ROW",A.EXECUTE_BASH="EXECUTE_BASH",A.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",A.EXECUTE_SCRIPT="EXECUTE_SCRIPT",A.EXECUTE_QUERY="EXECUTE_QUERY",A.SERVER_LOG="SERVER_LOG",A.DELAY="DELAY",A.FILTER="FILTER",A.QUERY_ROWS="QUERY_ROWS",A.LOOP="LOOP",A.COLLECT="COLLECT",A.OPENAI="OPENAI",A.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",A.BRANCH="BRANCH",A.discord="discord",A.slack="slack",A.zapier="zapier",A.integromat="integromat",A.n8n="n8n",A))(me||{}),bh=[...Object.values(me),...Object.values(Ft)];var Sl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Sl||{});var Ol="bb_internal";var Dh=["attachment_single","attachment","bb_reference","json","array"];var C="_",ke="\uFFF0",Or=t=>`${t}${C}`,Te=(G=>(G.USER="us",G.GROUP="gr",G.WORKSPACE="workspace",G.CONFIG="config",G.TEMPLATE="template",G.APP="app",G.DEV="dev",G.APP_DEV="app_dev",G.APP_METADATA="app_metadata",G.ROLE="role",G.MIGRATIONS="migrations",G.DEV_INFO="devinfo",G.AUTOMATION_LOG="log_au",G.ACCOUNT_METADATA="acc_metadata",G.PLUGIN="plg",G.DATASOURCE="datasource",G.DATASOURCE_PLUS="datasource_plus",G.APP_BACKUP="backup",G.TABLE="ta",G.ROW="ro",G.AUTOMATION="au",G.LINK="li",G.WEBHOOK="wh",G.INSTANCE="inst",G.LAYOUT="layout",G.SCREEN="screen",G.QUERY="query",G.DEPLOYMENTS="deployments",G.METADATA="metadata",G.MEM_VIEW="view",G.USER_FLAG="flag",G.AUTOMATION_METADATA="meta_au",G.AUDIT_LOG="al",G.APP_MIGRATION_METADATA="_design/migrations",G.SCIM_LOG="scimlog",G.ROW_ACTIONS="ra",G))(Te||{}),fG=Object.values(Te).sort((t,e)=>e.length-t.length);var Ir=(e=>(e.USER_METADATA="ta_users",e))(Ir||{}),Il=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Il||{}),mG=Object.values(Il).sort((t,e)=>e.length-t.length);function Wa(t){return!!t.providerType}var xl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(xl||{});var YG=Object.values(xl);var ZG=["rows","queries","automations"],XG=["queries","automations"];var pn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(pn||{}),Qa=(r=>(r.STRING="string",r.NUMBER="number",r))(Qa||{});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 Rl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Rl||(Rl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},I=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),OO=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 _i=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Nh=_i;function IO(t){Nh=t}function ja(){return Nh}var Ya=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},xO=[];function N(t,e){let r=ja(),n=Ya({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===_i?void 0:_i].filter(i=>!!i)});t.common.issues.push(n)}var Me=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 z;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 z;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}}},z=Object.freeze({status:"aborted"}),Ti=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),bl=t=>t.status==="aborted",Dl=t=>t.status==="dirty",vs=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Ha(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Ph(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 $;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})($||($={}));var bs,Ds,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},vh=(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 xr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Cs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return vh(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:xr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return vh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Je({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return br.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new Je({...Z(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Ns({typeName:H.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:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},wO=/^c[^\s-]{8,}$/i,RO=/^[0-9a-z]+$/,bO=/^[0-9A-HJKMNP-TV-Z]{26}$/,DO=/^[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,vO=/^[a-z0-9_-]{21}$/i,CO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,NO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,PO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",wl,UO=/^(?:(?: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])$/,LO=/^(([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})))$/,MO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Uh="((\\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])))",kO=new RegExp(`^${Uh}$`);function Lh(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 FO(t){return new RegExp(`^${Lh(t)}$`)}function Mh(t){let e=`${Uh}T${Lh(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 BO(t,e){return!!((e==="v4"||!e)&&UO.test(t)||(e==="v6"||!e)&&LO.test(t))}var wr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.string,received:s.parsedType}),z}let n=new Me,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")NO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")wl||(wl=new RegExp(PO,"u")),wl.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")DO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")vO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")wO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")RO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")bO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ulid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),N(i,{validation:"url",code:I.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"regex",code:I.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Mh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?kO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?FO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?CO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?BO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?MO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"base64",code:I.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:I.invalid_string,...$.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...$.errToObj(e)})}url(e){return this._addCheck({kind:"url",...$.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...$.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...$.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...$.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...$.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...$.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...$.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...$.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...$.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,...$.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,...$.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...$.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...$.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...$.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...$.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...$.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...$.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...$.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...$.errToObj(r)})}nonempty(e){return this.min(1,$.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:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function GO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.number,received:s.parsedType}),z}let n,i=new Me;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?GO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:$.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.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)}};fn.create=t=>new fn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.bigint,received:s.parsedType}),z}let n,i=new Me;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),N(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.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:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};mn.create=t=>{var e;return new mn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.boolean,received:n.parsedType}),z}return Fe(e.data)}};hn.create=t=>new hn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_date}),z}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:$.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:$.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...Z(t)});var Ai=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),z}return Fe(e.data)}};Ai.create=t=>new Ai({typeName:H.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),z}return Fe(e.data)}};yn.create=t=>new yn({typeName:H.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.null,received:n.parsedType}),z}return Fe(e.data)}};En.create=t=>new En({typeName:H.ZodNull,...Z(t)});var Rr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};Rr.create=t=>new Rr({typeName:H.ZodAny,...Z(t)});var Jt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Jt.create=t=>new Jt({typeName:H.ZodUnknown,...Z(t)});var St=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};St.create=t=>new St({typeName:H.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),z}return Fe(e.data)}};Si.create=t=>new Si({typeName:H.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!==M.array)return N(r,{code:I.invalid_type,expected:M.array,received:r.parsedType}),z;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(N(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(N(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(N(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...Z(e)});function Ei(t){if(t instanceof qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ei(n))}return new qe({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:Ei(t.element)}):t instanceof dt?dt.create(Ei(t.unwrap())):t instanceof Gt?Gt.create(Ei(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ei(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)!==M.object){let c=this._getOrReturnCtx(e);return N(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof St&&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 pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof St){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&&(N(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(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=>Me.mergeObjectSync(n,c)):Me.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return $.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=$.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ei(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 dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return kh(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return N(r,{code:I.invalid_union,unionErrors:o}),z}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 N(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:H.ZodUnion,...Z(e)});var zt=t=>t instanceof An?zt(t.schema):t instanceof Je?zt(t.innerType()):t instanceof Sn?[t.value]:t instanceof On?t.options:t instanceof In?te.objectValues(t.enum):t instanceof xn?zt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...zt(t.unwrap())]:t instanceof Gt?[null,...zt(t.unwrap())]:t instanceof Ns||t instanceof Rn?zt(t.unwrap()):t instanceof wn?zt(t._def.innerType):[],Ka=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return N(r,{code:I.invalid_type,expected:M.object,received:r.parsedType}),z;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}):(N(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function vl(t,e){let r=xr(t),n=xr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.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=vl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=vl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(bl(s)||bl(o))return z;let a=vl(s.value,o.value);return a.valid?((Dl(s)||Dl(o))&&r.dirty(),{status:r.value,value:a.data}):(N(n,{code:I.invalid_intersection_types}),z)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:H.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return N(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return N(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),z;!this._def.rest&&n.data.length>this._def.items.length&&(N(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Me.mergeArray(r,o)):Me.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Bt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:t,typeName:H.ZodTuple,rest:null,...Z(e)})};var za=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return N(n,{code:I.invalid_type,expected:M.object,received:n.parsedType}),z;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Me.mergeObjectAsync(r,i):Me.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:H.ZodRecord,...Z(n)}):new t({keyType:wr.create(),valueType:e,typeName:H.ZodRecord,...Z(r)})}},Oi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return N(n,{code:I.invalid_type,expected:M.map,received:n.parsedType}),z;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return z;(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 z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Oi.create=(t,e,r)=>new Oi({valueType:e,keyType:t,typeName:H.ZodMap,...Z(r)});var Ii=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return N(n,{code:I.invalid_type,expected:M.set,received:n.parsedType}),z;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(N(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(N(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return z;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:$.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Ii.create=(t,e)=>new Ii({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...Z(e)});var Ja=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return N(r,{code:I.invalid_type,expected:M.function,received:r.parsedType}),z;function n(a,u){return Ya({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),_i].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Ya({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),_i].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof br){let a=this;return Fe(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 Fe(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:Bt.create(e).rest(Jt.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||Bt.create([]).rest(Jt.create()),returns:r||Jt.create(),typeName:H.ZodFunction,...Z(n)})}},An=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})}};An.create=(t,e)=>new An({getter:t,typeName:H.ZodLazy,...Z(e)});var Sn=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return N(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Sn.create=(t,e)=>new Sn({value:t,typeName:H.ZodLiteral,...Z(e)});function kh(t,e){return new On({values:t,typeName:H.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Ha(this,bs,"f")||Ph(this,bs,new Set(this._def.values),"f"),!Ha(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{received:r.data,code:I.invalid_enum_value,options:n}),z}return Fe(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})}};bs=new WeakMap;On.create=kh;var In=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=te.objectValues(r);return N(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),z}if(Ha(this,Ds,"f")||Ph(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ha(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return N(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;In.create=(t,e)=>new In({values:t,typeName:H.ZodNativeEnum,...Z(e)});var br=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return N(r,{code:I.invalid_type,expected:M.promise,received:r.parsedType}),z;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};br.create=(t,e)=>new br({type:t,typeName:H.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{N(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 z;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?z:u.status==="dirty"||r.value==="dirty"?Ti(u.value):u});{if(r.value==="aborted")return z;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?z:a.status==="dirty"||r.value==="dirty"?Ti(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"?z:(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"?z:(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)}};Je.create=(t,e,r)=>new Je({schema:t,typeName:H.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===M.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:H.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:H.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 Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.nan,received:n.parsedType}),z}return{status:"valid",value:e.data}}};xi.create=t=>new xi({typeName:H.ZodNaN,...Z(t)});var $O=Symbol("zod_brand"),Ns=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}},Ps=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"?z:s.status==="dirty"?(r.dirty(),Ti(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"?z:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:H.ZodPipeline})}},Rn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Fh(t,e={},r){return t?Rr.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})}}):Rr.create()}var VO={object:qe.lazycreate},H;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(H||(H={}));var qO=(t,e={message:`Input not instance of ${t.name}`})=>Fh(r=>r instanceof t,e),Bh=wr.create,Gh=fn.create,WO=xi.create,QO=mn.create,$h=hn.create,jO=gn.create,YO=Ai.create,HO=yn.create,KO=En.create,zO=Rr.create,JO=Jt.create,ZO=St.create,XO=Si.create,eI=Zt.create,tI=qe.create,rI=qe.strictCreate,nI=Tn.create,iI=Ka.create,sI=_n.create,oI=Bt.create,aI=za.create,uI=Oi.create,cI=Ii.create,lI=Ja.create,dI=An.create,pI=Sn.create,fI=On.create,mI=In.create,hI=br.create,Ch=Je.create,gI=dt.create,yI=Gt.create,EI=Je.createWithPreprocess,TI=Ps.create,_I=()=>Bh().optional(),AI=()=>Gh().optional(),SI=()=>$h().optional(),OI={string:t=>wr.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>hn.create({...t,coerce:!0}),bigint:t=>mn.create({...t,coerce:!0}),date:t=>gn.create({...t,coerce:!0})},II=z,ee=Object.freeze({__proto__:null,defaultErrorMap:_i,setErrorMap:IO,getErrorMap:ja,makeIssue:Ya,EMPTY_PATH:xO,addIssueToContext:N,ParseStatus:Me,INVALID:z,DIRTY:Ti,OK:Fe,isAborted:bl,isDirty:Dl,isValid:vs,isAsync:Cs,get util(){return te},get objectUtil(){return Rl},ZodParsedType:M,getParsedType:xr,ZodType:X,datetimeRegex:Mh,ZodString:wr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:Ai,ZodUndefined:yn,ZodNull:En,ZodAny:Rr,ZodUnknown:Jt,ZodNever:St,ZodVoid:Si,ZodArray:Zt,ZodObject:qe,ZodUnion:Tn,ZodDiscriminatedUnion:Ka,ZodIntersection:_n,ZodTuple:Bt,ZodRecord:za,ZodMap:Oi,ZodSet:Ii,ZodFunction:Ja,ZodLazy:An,ZodLiteral:Sn,ZodEnum:On,ZodNativeEnum:In,ZodPromise:br,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Gt,ZodDefault:xn,ZodCatch:wn,ZodNaN:xi,BRAND:$O,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Rn,custom:Fh,Schema:X,ZodSchema:X,late:VO,get ZodFirstPartyTypeKind(){return H},coerce:OI,any:zO,array:eI,bigint:QO,boolean:$h,date:jO,discriminatedUnion:iI,effect:Ch,enum:fI,function:lI,instanceof:qO,intersection:sI,lazy:dI,literal:pI,map:uI,nan:WO,nativeEnum:mI,never:ZO,null:KO,nullable:yI,number:Gh,object:tI,oboolean:SI,onumber:AI,optional:gI,ostring:_I,pipeline:TI,preprocess:EI,promise:hI,record:aI,set:cI,strictObject:rI,string:Bh,symbol:YO,transformer:Ch,tuple:oI,undefined:HO,union:nI,unknown:JO,void:XO,NEVER:II,ZodIssueCode:I,quotelessJson:OO,ZodError:ze});var tu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Vh=ee.record(tu,ee.string()),Za=ee.record(tu,ee.any()),Xa=ee.record(tu,ee.union([ee.any().array(),ee.string()])),qh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Wh))})),eu=ee.union([ee.string(),ee.number()]),Wh={string:Vh.optional(),fuzzy:Vh.optional(),range:ee.record(tu,ee.union([ee.object({high:eu,low:eu}),ee.object({high:eu}),ee.object({low:eu})])).optional(),equal:Za.optional(),notEqual:Za.optional(),empty:Za.optional(),notEmpty:Za.optional(),oneOf:Xa.optional(),contains:Xa.optional(),notContains:Xa.optional(),containsAny:Xa.optional(),$and:qh.optional(),$or:qh.optional()},W$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Wh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(pn).optional(),sortType:ee.nativeEnum(Qa).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var _p={};v(_p,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>fp,Config:()=>Tp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>yp,DEFAULT_EXPENSES_TABLE_ID:()=>gp,DEFAULT_INVENTORY_TABLE_ID:()=>hp,DEFAULT_JOBS_TABLE_ID:()=>mp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,GlobalRole:()=>Ep,Header:()=>Ze,InternalTable:()=>Ir,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>ET,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>pp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>Wu,ViewName:()=>kr});var J1={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 Ze=(O=>(O.API_KEY="x-budibase-api-key",O.LICENSE_KEY="x-budibase-license-key",O.API_VER="x-budibase-api-version",O.APP_ID="x-budibase-app-id",O.SESSION_ID="x-budibase-session-id",O.TYPE="x-budibase-type",O.PREVIEW_ROLE="x-budibase-role",O.TENANT_ID="x-budibase-tenant-id",O.VERIFICATION_CODE="x-budibase-verification-code",O.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",O.RESET_PASSWORD_CODE="x-budibase-reset-password-code",O.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",O.TOKEN="x-budibase-token",O.CSRF_TOKEN="x-csrf-token",O.CORRELATION_ID="x-budibase-correlation-id",O.AUTHORIZATION="authorization",O.MIGRATING_APP="x-budibase-migrating-app",O.COOKIE="cookie",O))(Ze||{});var tq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var aq="darkest",uq="light",RI=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var Xe={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"}},Qh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var wi="datasource_internal_bb_default";var Lr={};v(Lr,{ColumnSplitter:()=>Zd,NoEmptyFilterStrings:()=>pT,buildQuery:()=>ZD,cleanupQuery:()=>tp,fixupFilterArrays:()=>np,getKeyNumbering:()=>rp,getValidOperatorsForType:()=>KD,hasFilters:()=>Xd,limit:()=>mT,recurseLogicalOperators:()=>ep,removeKeyNumbering:()=>ru,runQuery:()=>ku,search:()=>XD,sort:()=>fT,splitFiltersArray:()=>nu});var Vi=j(jh());var Ri={};v(Ri,{filterValueToLabel:()=>PI,hasSchema:()=>UI,isSupportedUserSearch:()=>Hh,parallelForeach:()=>NI,processSearchFilters:()=>Pl,trimOtherProps:()=>LI,unreachable:()=>CI});var Yh=j(require("lodash")),vI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function CI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function NI(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 PI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function UI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function LI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Hh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(Ga(r)){for(let o of t[r].conditions)if(!Hh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function Pl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=nu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Yh.default.pick(i,vI);return s.field=ru(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>Kh,cron:()=>Yd,deepGet:()=>Ul,getUserColor:()=>kI,getUserInitials:()=>MI,getUserLabel:()=>FI,isGoogleSheets:()=>GI,isSQL:()=>$I,retry:()=>VI,roles:()=>Jd,schema:()=>So,views:()=>zd,wait:()=>Ll,withTimeout:()=>BI});var Ul=(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},MI=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"},kI=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%)`},FI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Kh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function BI(t,e){let[r,n]=Kh(t),i=await Promise.race([e,r]);return n(),i}function GI(t){return t==="GOOGLE_SHEETS"}function $I(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Ll(t){return new Promise(e=>setTimeout(e,t))}async function VI(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 Ll(s);try{return await t()}catch(o){n=o}}throw n}var Yd={};v(Yd,{getNextExecutionDates:()=>PD,validate:()=>UD});var aT=j($t()),uT=j(sT()),oT="(Input cron: ",CD={"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 ND(t){let e=[];for(let r of t){r.includes(oT)&&(r=r.split(oT)[0].trim());for(let[n,i]of Object.entries(CD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function PD(t,e=4){let r=uT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function UD(t){let e=(0,aT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:ND(e.getError())}}var So={};v(So,{decodeNonAscii:()=>Hd,encodeNonAscii:()=>kD,isDeprecatedSingleUserColumn:()=>LD,isNumeric:()=>FD,isRequired:()=>MD});function LD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function MD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function kD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Hd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function FD(t){return t.type==="number"||t.type==="bigint"}var zd={};v(zd,{basicFields:()=>qD,calculationFields:()=>VD,hasCalculationFields:()=>$D,isBasicViewField:()=>BD,isCalculationField:()=>Oo,isCalculationView:()=>GD,isV2:()=>WD,isVisible:()=>cT});var Kd=require("lodash");function Oo(t){return"calculationType"in t}function BD(t){return!Oo(t)}function GD(t){return t.type==="calculation"}function $D(t){return Object.values(t.schema||{}).some(Oo)}function VD(t){return(0,Kd.pickBy)(t.schema||{},Oo)}function cT(t){return t.visible!==!1}function qD(t,e){let{visible:r=!0}=e||{};return(0,Kd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||cT(n)))}function WD(t){return t.version===2}var Jd={};v(Jd,{checkForRoleInheritanceLoops:()=>jD});function QD(t){return`role${C}${t}`}function jD(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=QD(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 jn=require("lodash");var YD=/{{([^{].*?)}}/g,dT=Object.values(gi),HD=[...Object.values(Sr),...Object.values(Kt),...Object.values(ln)],KD=(t,e,r)=>{let n=Xe,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||So.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"&&(o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},pT=[Xe.StartsWith.value,Xe.Like.value,Xe.Equals.value,Xe.NotEquals.value,Xe.Contains.value,Xe.NotContains.value,Xe.ContainsAny.value,Xe.In.value];function ep(t,e){for(let r of dT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var tp=t=>{for(let e of pT)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===""||zD(s))&&delete t[e][i]}return t=ep(t,tp),t};function zD(t){return Array.isArray(t)&&t.length===0}var ru=t=>rp(t).key,rp=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}},Zd=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}=rp(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=Hd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function JD(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(YD)||[]).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(Al(r)){let c=Qh[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(Ih(r)||xh(r)||Al(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function nu(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function ZD(t){if(!t)return{};if(Array.isArray(t)&&(t=Pl(t),!t))return{};let e=lT(t.logicalOperator||"all"),r={};return t.onEmptyFilter?r.onEmptyFilter=t.onEmptyFilter:r.onEmptyFilter="all",r[e]={conditions:(t.groups||[]).map(n=>{let{allOr:i,onEmptyFilter:s,filters:o}=nu(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=lT(n.logicalOperator)),{[a]:{conditions:o.map(JD).filter(u=>u)}}})},r}function lT(t){return t==="all"?"$and":"$or"}function np(t){if(!t)return t;for(let e of Object.values(Kt)){let r=t[e];if(!(r==null||!(0,jn.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 ep(t,np),t}function XD(t,e){let r=ku(t,e.query);e.sort&&(r=fT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=mT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function ku(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=tp(e),e=np(e),!Xd(e)&&e.onEmptyFilter==="none")return[];let r=(T,A)=>B=>{for(let[w,F]of Object.entries(e[T]||{})){let ce=Ga(T)?B:Ul(B,ru(w)),an=A(ce,F);if(e.allOr&&an)return!0;if(!e.allOr&&!an)return!1}return!e.allOr},n=r("string",(T,A)=>typeof T!="string"||typeof A!="string"?!1:T.toLowerCase().startsWith(A.toLowerCase())),i=r("fuzzy",(T,A)=>typeof T!="string"||typeof A!="string"?!1:T.toLowerCase().includes(A.toLowerCase())),s=r("range",(T,A)=>{if(T==null||T===""||((0,jn.isPlainObject)(A.low)&&(0,jn.isEmpty)(A.low)&&(A.low=void 0),(0,jn.isPlainObject)(A.high)&&(0,jn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+T;if(!isNaN(B)){let F=+A.low,ce=+A.high;if(!isNaN(F)&&!isNaN(ce))return B>=F&&B<=ce;if(isNaN(F)){if(!isNaN(ce))return B<=ce}else return B>=F}let w=(0,Vi.default)(T);if(w.isValid()){let F=(0,Vi.default)(A.low||"0000-00-00T00:00:00.000Z"),ce=(0,Vi.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ce.isValid())return w.isAfter(F)&&w.isBefore(ce)||w.isSame(F)||w.isSame(ce);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ce.isValid())return w.isBefore(ce)||w.isSame(ce)}return A.low!=null&&A.high!=null?T>=A.low&&T<=A.high:A.low!=null?T>=A.low:A.high!=null?T<=A.high:!1}),o=(T,A)=>{if(Array.isArray(T)){for(let w of T)if(o(w,A))return!0;return!1}if(T&&typeof T=="object"&&typeof A=="string")return T._id===A;if(T===A)return!0;if(T==null&&A!=null||T!=null&&A==null)return!1;let B=(0,Vi.default)(T);if(B.isValid()){let w=(0,Vi.default)(A);if(w.isValid())return B.isSame(w)}return!1},a=T=>(...A)=>!T(...A),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,A)=>(typeof A=="string"&&(A=A.split(",")),typeof T=="number"&&(A=A.map(B=>parseFloat(B))),Array.isArray(A)?A.some(B=>o(T,B)):!1)),f=T=>(A,B)=>!Array.isArray(A)||(typeof B=="string"&&(B=B.split(","),typeof A[0]=="number"&&(B=B.map(w=>parseFloat(w)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](w=>o(A,w)),g=r("contains",(T,A)=>Array.isArray(A)&&A.length===0?!0:f("every")(T,A)),E=r("notContains",(T,A)=>Array.isArray(A)&&A.length===0?!0:a(f("every"))(T,A)),y=r("containsAny",f("some")),O=r("$and",(T,A)=>{if(!A.length)return!1;for(let B of A)if(!ku([T],B).length)return!1;return!0}),S=r("$or",(T,A)=>{if(!A.length)return!1;for(let B of A)if(ku([T],{...B,allOr:!0}).length)return!0;return!1}),L=T=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:O,$or:S},B=Object.entries(e||{}).filter(([w,F])=>!["allOr","onEmptyFilter"].includes(w)&&F&&Object.keys(F).length>0).map(([w])=>A[w]?.(T)??!1);return Xd(e)?e.allOr?B.some(w=>w===!0):B.every(w=>w===!0):!0};return t.filter(L)}function fT(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 mT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Xd=t=>{if(!t)return!1;let e=r=>{for(let n of dT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of HD){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 st={};v(st,{applications:()=>op,automations:()=>ap,screens:()=>dp,users:()=>lp});var op={};v(op,{getDevAppID:()=>ev,getProdAppID:()=>sp});var ip=Or("app"),Io=Or("app_dev");function ev(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(ip);e.shift();let r=e.join(ip);return`${Io}${r}`}function sp(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Io))return t;let e=t.split(Io);e.shift();let r=e.join(Io);return`${ip}${r}`}var ap={};v(ap,{isAppAction:()=>nv,isRowAction:()=>tv,isWebhookAction:()=>rv});function tv(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function rv(t){return t.definition.trigger?.stepId==="WEBHOOK"}function nv(t){return t.definition.trigger?.stepId==="APP"}var lp={};v(lp,{canCreateApps:()=>iv,containsUserID:()=>lv,getGlobalUserID:()=>cv,hasAdminPermissions:()=>cp,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>hT,hasBuilderPermissions:()=>av,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>sv,isAdminOrGlobalBuilder:()=>ov,isBuilder:()=>up,isCreator:()=>uv,isGlobalBuilder:()=>Fu});var Mr=j(require("lodash/fp"));function up(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(sp(e))):!1}function Fu(t){return up(t)&&!Gu(t)||Bu(t)}function iv(t){return Fu(t)||$u(t)}function Bu(t){return t?cp(t):!1}function sv(t,e){return up(t,e)||Bu(t)}function ov(t){return Fu(t)||Bu(t)}function Gu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function hT(t){return t?Mr.flow(Mr.get("roles"),Mr.values,Mr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function av(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function cp(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function uv(t){return t?Fu(t)||cp(t)||$u(t)||Gu(t)||hT(t):!1}function cv(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function lv(t){return typeof t!="string"?!1:t.includes(`us${C}`)}var dp={};v(dp,{findInSettings:()=>dv});function dv(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 gQ={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},yQ={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},EQ={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 wQ={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 DQ={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 NQ={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 LQ={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 FQ={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 $Q={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 WQ={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 YQ={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 zQ={name:"JS Scripting",tagline:"Execute JavaScript Code",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 qi={EQUAL:"EQUAL",NOT_EQUAL:"NOT_EQUAL",GREATER_THAN:"GREATER_THAN",LESS_THAN:"LESS_THAN"},Av={[qi.EQUAL]:"Equals",[qi.NOT_EQUAL]:"Not equals",[qi.GREATER_THAN]:"Greater than",[qi.LESS_THAN]:"Less than"},XQ={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:qi.EQUAL},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(qi),pretty:Object.values(Av)},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 rj={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 sj={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 uj={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(Sl)},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 gT=(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))(gT||{}),dj={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(gT)}},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 yT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(yT||{}),mj={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(yT),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 bv={ascending:"Ascending",descending:"Descending"},yj={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(pn),pretty:Object.values(bv)},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 _j={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 Oj={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 wj={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 Dj={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"automatioFields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var Nj={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 Lj={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 kv={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 Bv={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 $v={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 qv={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 Qv={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 Yv={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 Kv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var Vu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Vu||{}),kr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(kr||{}),Qi={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"}},gt=Or("app"),qu=Or("app_dev"),yt=qu,pp="internal",fp="budibase",or="_design/sqlite",mp="ta_bb_jobs",hp="ta_bb_inventory",gp="ta_bb_expenses",yp="ta_bb_employee";var Wu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Wu||{}),ji=(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))(ji||{}),Ep=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Ep||{}),Tp=(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))(Tp||{}),ET=new Date(-2147483647e3),Qu=new Date(2147483647e3),ge="default";var ba={};v(ba,{CacheKey:()=>fr,TTL:()=>ri,app:()=>af,bustCache:()=>us,destroy:()=>ia,docWritethrough:()=>km,generic:()=>sa,get:()=>ni,invite:()=>Kf,keys:()=>yc,passwordReset:()=>Lm,store:()=>mr,user:()=>nn,withCache:()=>Kr,writethrough:()=>Um});var sa={};v(sa,{CacheKey:()=>fr,TTL:()=>ri,bustCache:()=>us,destroy:()=>ia,get:()=>ni,keys:()=>yc,store:()=>mr,withCache:()=>Kr});var ye={};v(ye,{DEFAULT_TENANT_ID:()=>ge,baseGlobalDBName:()=>ra,doInAppContext:()=>PN,doInAppMigrationContext:()=>LN,doInAutomationContext:()=>NN,doInContext:()=>Df,doInEnvironmentContext:()=>kN,doInIPContext:()=>Cf,doInIdentityContext:()=>wo,doInScimContext:()=>FN,doInTenant:()=>Ge,ensureSnippetContext:()=>tA,getAppDB:()=>ss,getAppId:()=>Pe,getAuditLogDBName:()=>X_,getAuditLogsDB:()=>GN,getAutomationId:()=>Yp,getCurrentContext:()=>os,getDevAppDB:()=>VN,getEnvironmentVariables:()=>BN,getFeatureFlags:()=>Nf,getGlobalDB:()=>se,getGlobalDBName:()=>lr,getIP:()=>vf,getIdentity:()=>ar,getPlatformURL:()=>bf,getProdAppDB:()=>$N,getProdAppId:()=>MN,getScimDBName:()=>bN,getTableForView:()=>qN,getTenantIDFromAppID:()=>is,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Yr,isScim:()=>Pt,isTenancyEnabled:()=>vN,isTenantIdSet:()=>DN,setFeatureFlags:()=>Pf,setTableForView:()=>WN});var xo={};v(xo,{doInAccountContext:()=>Xv,doInIdentityContext:()=>Sp,doInUserContext:()=>Op,getAccountUserId:()=>TT,getIdentity:()=>Ap});function Ap(){return ar()}function Sp(t,e){return wo(t,e)}function Op(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Sp(n,r)}function Xv(t,e){let r=TT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Sp(i,e)}function TT(t){let e;return Va(t)?e=t.budibaseUserId:e=t.accountId,e}var Hu=require("fs");var ST=require("lodash"),Ip=require("crypto");function xp(){return OT()}function OT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Yu(){return process.env.NODE_ENV!=="production"}function eC(t){if(t)return parseInt(t)}var _T=!1;!_T&&Yu()&&!xp()&&(require("dotenv").config(),_T=!0);var Yi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},AT=!!parseInt(process.env.SELF_HOSTED||"");function tC(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function rC(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function nC(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Hu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Hu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Yu()&&!xp())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 iC(){return Dt.SERVICE_TYPE==="worker"}function sC(){return Dt.SERVICE_TYPE==="apps"}function oC(){return Dt.BUDIBASE_ENVIRONMENT==="QA"}var Dt={isTest:xp,isJest:OT,isDev:Yu,isWorker:iC,isApps:sC,isQA:oC,isProd:()=>!Yu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Ip.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Ip.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:tC(),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||"",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:AT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Yi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE: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:rC(),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:AT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...nC(),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,Dt[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:eC(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,ST.cloneDeep)(Dt),r;for(r in t)Dt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Dt._set(n,i)}}function IT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var xT=["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(Dt))e==="0"&&(Dt[t]=0),e==="false"&&(Dt[t]=0);var h=Dt;var wT=require("async_hooks"),Ce=class t{static{this.storage=new wT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var wp="No app provided";function Fr(t){if(!t)throw wp;return t.startsWith(yt)}function aC(t){if(!t)throw wp;return t.startsWith(gt)&&!Fr(t)}function bo(t){if(!t)throw wp;return Fr(t.appId)}function Ku(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var uC=Ku;function ot(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${gt}${r}`}function cC(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Rp(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:Rp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Rp=(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 J_=j(require("@budibase/nano"));var RT=j(require("node-fetch"));function zu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function bT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,RT.default)(zu(encodeURI(t)),i)}async function Ju(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=j(require("pouchdb"));var DT,vT=!1,bp=(t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function Zu(t){DT=bp(t),vT=!0}var dC=()=>{if(!vT)throw new Error("init has not been called")};function Et(t,e){dC();let r=new DT(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 CT=require("uuid");function Oe(){return(0,CT.v4)().replace(/-/g,"")}var Ie=j(require("dd-trace")),Hi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Ie.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 Ie.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Ie.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 Ie.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e.length,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 Ie.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 Ie.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 Ie.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 Ie.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Ie.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 Ie.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 Ie.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 Ie.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 Ie.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 Ie.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Ie.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Ie.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Ie.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Ie.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 Ie.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 Ie.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Rf={};v(Rf,{breakExternalTableId:()=>Of,breakRowIdField:()=>xN,buildExternalTableId:()=>TN,convertRowId:()=>IN,encodeTableId:()=>_N,encodeViewId:()=>AN,generateRowIdField:()=>SN,getNativeSql:()=>ns,isExternalTable:()=>Sf,isExternalTableID:()=>hc,isInternalTableID:()=>EN,isInvalidISODateString:()=>If,isRowId:()=>ON,isValidFilter:()=>gc,isValidISODateString:()=>xf,isValidTime:()=>wN,sqlLog:()=>na,validateManyToMany:()=>wf});var Qr={};v(Qr,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>fp,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>yp,DEFAULT_EXPENSES_TABLE_ID:()=>gp,DEFAULT_INVENTORY_TABLE_ID:()=>hp,DEFAULT_JOBS_TABLE_ID:()=>mp,DatabaseImpl:()=>rs,DatabaseWithConnection:()=>hN,DeprecatedViews:()=>Qi,DocumentType:()=>Te,InternalTable:()=>Ir,QueryBuilder:()=>pr,Replication:()=>G_,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>pp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>kr,baseGlobalDBName:()=>ra,checkErrorCode:()=>W_,closePouchDB:()=>vo,createApiKeyView:()=>L_,createNewUserEmailView:()=>P_,createPlatformAccountEmailView:()=>k_,createPlatformUserView:()=>F_,createUserAppView:()=>U_,createView:()=>ts,dbExists:()=>uN,directCouchAllDbs:()=>mf,directCouchCall:()=>bT,directCouchFind:()=>_f,directCouchQuery:()=>Ju,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>cC,fullSearch:()=>pN,generateAppID:()=>m_,generateAppUserID:()=>pc,generateDevInfoID:()=>A_,generateGlobalUserID:()=>Xi,generatePluginID:()=>S_,generateRoleID:()=>cf,generateRowID:()=>uf,generateTableID:()=>h_,generateTemplateID:()=>__,generateUserMetadataID:()=>E_,generateWorkspaceID:()=>g_,getAllApps:()=>Zo,getAllDbs:()=>N_,getAppsByIDs:()=>iN,getCouchInfo:()=>vt,getDB:()=>Ke,getDevAppID:()=>uC,getDevAppIDs:()=>oN,getDevelopmentAppID:()=>Ku,getDocParams:()=>es,getGlobalDBName:()=>lr,getGlobalIDFromUserMetadataID:()=>T_,getGlobalUserParams:()=>Xn,getPluginParams:()=>C_,getPouch:()=>bp,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>sN,getQueryIndex:()=>O_,getRoleParams:()=>mc,getRowParams:()=>lf,getStartEndKeyURL:()=>Jo,getTemplateParams:()=>v_,getUrlInfo:()=>Rp,getUserMetadataParams:()=>D_,getUsersByAppParams:()=>fc,getWorkspaceParams:()=>b_,init:()=>Zu,isDatasourceId:()=>w_,isDevApp:()=>bo,isDevAppID:()=>Fr,isDocumentConflictError:()=>mN,isExternalTableId:()=>df,isGlobalUserID:()=>y_,isProdAppID:()=>aC,isQueryId:()=>R_,isSameAppID:()=>aN,isTableId:()=>I_,isViewId:()=>x_,paginatedSearch:()=>dN,pagination:()=>ff,prefixRoleID:()=>cr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>yf,queryPlatformView:()=>ea,queryView:()=>gf,queryViewRaw:()=>Xo,removeKeyNumbering:()=>ta,searchIndexes:()=>Tf});var af={};v(af,{AppState:()=>of,getAppMetadata:()=>dc,invalidateAppMetadata:()=>tN});var Wr={};v(Wr,{getAppClient:()=>lc,getCacheClient:()=>rf,getDocWritethroughClient:()=>JC,getInviteClient:()=>Zn,getLockClient:()=>sf,getPasswordResetClient:()=>zo,getSessionClient:()=>qr,getSocketClient:()=>zC,getUserClient:()=>Ko,getWritethroughClient:()=>nf,init:()=>Nt,shutdown:()=>p_});var l_=j(require("ioredis"));var tc={};v(tc,{Databases:()=>Dp,SEPARATOR:()=>Ki,SelectableDatabase:()=>Xu,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>ec,getRedisOptions:()=>zi,removeDbPrefix:()=>vp});var pC=2e3,NT=1e4,Ki="-",Dp=(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))(Dp||{}),Xu=(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))(Xu||{});function ec(){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 zi(){let{host:t,password:e,port:r}=ec(),n={connectTimeout:NT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:NT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:pC,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Ki}${e}`}function vp(t){let e=t.split(Ki);return e.length>=2?(e.shift(),e.join(Ki)):e[0]}var cc={};v(cc,{correlation:()=>Co,logAlert:()=>Kn,logAlertWithInfo:()=>WC,logWarn:()=>Zi,logger:()=>uc,system:()=>Qp});var Co={};v(Co,{getId:()=>Cp,setHeader:()=>fC});var PT=require("correlation-id"),fC=t=>{let e=PT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Cp(){return PT.getId()}var ac=j(require("pino")),u_=j(require("pino-pretty"));var jp=j(require("dd-trace")),c_=require("dd-trace/ext");var Qp={};v(Qp,{getLogReadStream:()=>FC,getSingleFileMaxSizeInfo:()=>a_,localFileDestination:()=>Wp});var Lo=j(require("fs")),qp=j(require("path")),n_=j(require("rotating-file-stream"));var Vp={};v(Vp,{ObjectStore:()=>Ct,ObjectStoreBuckets:()=>hC,SIGNED_FILE_PREFIX:()=>Fp,bucketTTLConfig:()=>rc,budibaseTempDir:()=>Hn,clientLibraryCDNUrl:()=>CC,clientLibraryPath:()=>KT,clientLibraryUrl:()=>NC,createBucketIfNotExists:()=>Uo,deleteFile:()=>IC,deleteFiles:()=>xC,deleteFolder:()=>jT,downloadTarball:()=>RC,downloadTarballDirect:()=>wC,enrichPluginURLs:()=>LC,extractBucketAndPath:()=>Np,getAppFileUrl:()=>PC,getGlobalFileS3Key:()=>zT,getGlobalFileUrl:()=>UC,getObjectMetadata:()=>bC,getPluginIconKey:()=>XT,getPluginJSKey:()=>ZT,getPluginS3Dir:()=>t_,getPresignedUrl:()=>$r,getReadStream:()=>nc,listAllObjects:()=>QT,processAutomationAttachment:()=>yC,processObjectStoreAttachment:()=>FT,retrieve:()=>WT,retrieveDirectory:()=>OC,retrieveToTmp:()=>SC,sanitizeBucket:()=>He,sanitizeKey:()=>Ne,streamUpload:()=>qT,upload:()=>AC,uploadDirectory:()=>Bp});var sc=require("@aws-sdk/client-s3"),Pp=require("@aws-sdk/lib-storage"),BT=require("@aws-sdk/s3-request-presigner"),Po=j(require("stream")),Up=j(require("node-fetch")),Lp=j(require("tar-fs")),Mp=j(require("zlib")),GT=require("util"),Gr=require("path"),ur=j(require("fs"));var No=j(require("path")),UT=require("os"),LT=j(require("fs"));var MT=j(require("stream")),hC={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},kT=(0,No.join)((0,UT.tmpdir)(),".budibase");try{LT.default.mkdirSync(kT)}catch(t){if(t.code!=="EEXIST")throw t}function Hn(){return kT}var rc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function gC(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=No.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:MT.default.Readable.fromWeb(e.body)}}async function FT(t){let e=Np(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await nc(r,n),s=No.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function yC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await gC(t):await FT(t)}var kp=require("uuid");var $T=j(require("fs/promises")),EC=require("sanitize-s3-objectkey"),VT=(0,GT.promisify)(Po.default.pipeline),TC={bucketCreationPromises:{}},Fp="/files/signed",Br={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"},_C=[Br.html,Br.css,Br.js,Br.json];function Ne(t){return EC(He(t)).replace(/\\/g,"/")}function He(t){return t.replace(new RegExp(yt,"g"),gt)}function Ct(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 sc.S3(e)}async function Uo(t,e){e=He(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=TC.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 AC({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await $T.default.open(r)).createReadStream():s,c=Ct(),l=await Uo(c,t);if(o&&l.created){let g=rc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Br[a.toLowerCase()]:Br.txt),p={Bucket:He(t),Key:Ne(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 Pp.Upload({client:c,params:p}).done()}async function qT({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=Ct(),u=await Uo(a,t);if(s&&u.created){let E=rc(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?Br[o.toLowerCase()]:Br.txt);let l=He(t),d=Ne(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Pp.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function WT(t,e){let r=Ct(),n={Bucket:He(t),Key:Ne(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(_C.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Po.default.Readable.fromWeb(s)}}async function QT(t,e){let r=Ct(),n=(a={})=>r.listObjectsV2({...a,Bucket:He(t),Prefix:Ne(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 $r(t,e,r=3600){let n=Ct({presigning:!0}),i={Bucket:He(t),Key:Ne(e)},s=await(0,BT.getSignedUrl)(n,new sc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Fp}${a}${u}`}else return s}async function SC(t,e){t=He(t),e=Ne(e);let r=await WT(t,e),n=(0,Gr.join)(Hn(),(0,kp.v4)());return r instanceof Po.default.Readable?r.pipe(ur.default.createWriteStream(n)):ur.default.writeFileSync(n,r),n}async function OC(t,e){let r=(0,Gr.join)(Hn(),(0,kp.v4)());ur.default.mkdirSync(r);let n=await QT(t,e),i=await Promise.all(n.map(a=>nc(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,Gr.join)(r,...d);l.length>1&&!ur.default.existsSync(m)&&ur.default.mkdirSync(m,{recursive:!0});let p=ur.default.createWriteStream((0,Gr.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 IC(t,e){let r=Ct();await Uo(r,t);let n={Bucket:t,Key:Ne(e)};return r.deleteObject(n)}async function xC(t,e){let r=Ct();await Uo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ne(i)}))}};return r.deleteObjects(n)}async function jT(t,e){t=He(t),e=Ne(e);let r=Ct(),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(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s)).Deleted?.length===1e3)return jT(t,e)}async function Bp(t,e,r){t=He(t);let n=[],i=ur.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ne((0,Gr.join)(r,s.name)),a=(0,Gr.join)(e,s.name);s.isDirectory()?n.push(Bp(t,a,o)):n.push(qT({bucket:t,filename:o,stream:ur.default.createReadStream(a)}))}return await Promise.all(n),i}async function wC(t,e,r={}){e=Ne(e);let n=await(0,Up.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await VT(n.body,Mp.default.createUnzip(),Lp.default.extract(e))}async function RC(t,e,r){e=He(e),r=Ne(r);let n=await(0,Up.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Gr.join)(Hn(),r);return await VT(n.body,Mp.default.createUnzip(),Lp.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Bp(e,i,r),i}async function nc(t,e){t=He(t),e=Ne(e);let r=Ct(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof Po.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function bC(t,e){t=He(t),e=Ne(e);let r=Ct(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Np(t){let e=t.split("?")[0],r=new RegExp(`^${Fp}/(?<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 YT=j(require("aws-cloudfront-sign")),oc;function DC(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return oc||(oc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),oc)}var vC=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:DC(),expireTime:new Date().getTime()+1e3*60*60*24}),Ji=t=>{let e=Gp(t);return YT.getSignedUrl(e,vC())},Gp=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var HT=j(require("querystring"));function KT(t){return`${Ne(t)}/budibase-client.js`}async function CC(t,e){let r=KT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Gp(r)):await $r(h.APPS_BUCKET_NAME,r)}function NC(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ge&&(n.tenantId=r),`/api/assets/client?${HT.default.encode(n)}`}async function PC(t){return h.CLOUDFRONT_CDN?Ji(t):await $r(h.APPS_BUCKET_NAME,t)}var UC=async(t,e,r)=>{let n=zT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),Ji(n)):await $r(h.GLOBAL_BUCKET_NAME,n)},zT=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function LC(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await MC(e),n=await kC(e);return{...e,jsUrl:r,iconUrl:n}}))}async function MC(t){let e=ZT(t);return JT(e)}async function kC(t){let e=XT(t);if(e)return JT(e)}async function JT(t){return h.CLOUDFRONT_CDN?Ji(t):await $r(h.PLUGIN_BUCKET_NAME,t)}function ZT(t){return e_(t,"plugin.min.js")}function XT(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=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var i_="budibase.log",s_="budibase-logs-history.txt",o_=qp.default.join(Hn(),"systemlogs");function r_(t){return qp.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 Wp(){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 FC(){let t=[],e=r_(s_);if(Lo.default.existsSync(e)){let i=Lo.default.readFileSync(e,"utf-8").split(`
|
|
6
|
+
`);for(let s of i.filter(o=>o))t.push(Lo.default.readFileSync(s))}return t.push(Lo.default.readFileSync(r_(i_))),Buffer.concat(t)}function BC(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function GC(t){return t instanceof Error}function $C(t){return typeof t=="string"}var Vr;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:Wp(),level:t}),Vr=r.length?(0,ac.default)(e,ac.default.multistream(r)):(0,ac.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{$C(E)&&(d=`${d} ${E}`.trimStart()),BC(E)&&l.push(E),GC(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Cp()};let f=jp.default.scope().active();f&&jp.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 O=0;O<l.length;O++){let S=l[O],L=S._logKey;L?(delete S._logKey,g[L]=S):(E[y]=S,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Vr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Vr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Vr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Vr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Vr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Vr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Pe()}catch{}return u},o=()=>{let u;try{u=Yp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var uc=Vr;var VC=["AccountError"];function qC(t){return t&&t.suppressAlert}function Kn(t,e){e&&VC.includes(e.name)&&qC(e)||console.error(`bb-alert: ${t}`,e)}function WC(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Kn(t,n)}function Zi(t,e){console.warn(`bb-warn: ${t}`,e)}var Bo={};v(Bo,{cleanup:()=>QC,clear:()=>Fo,set:()=>ko});var Mo=[];function ko(t,e){let r=setInterval(t,e);return Mo.push(r),r}function Fo(t){let e=Mo.indexOf(t);e!==-1&&Mo.splice(e,1),clearInterval(t)}function QC(){for(let t of Mo)clearInterval(t);Mo=[]}var Kp;if(h.MOCK_REDIS)try{Kp=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var jC=2e3,YC=5e3,d_=h.REDIS_CLUSTERED,Zp=0,Go=!1,zp={},zn=!1;h.MOCK_REDIS&&(zn=!0);function Xp(t){return zp[t]}function Hp(t,e){Go||(Go=!0,clearTimeout(t),zn=!1,Kn("Redis connection failed",e),setTimeout(()=>{ef()},jC))}function ef(t=Zp){let e=h.MOCK_REDIS&&Kp?Kp:l_.default,r;Go=!1;let n=Xp(t);if(n&&zn)return;h.MOCK_REDIS&&(zp[t]=new e(zi())),r=setTimeout(()=>{zn||Hp(r,"Did not successfully connect in timeout")},YC),n&&n.disconnect();let{host:i,port:s}=ec(),o=zi();d_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Hp(r,a)}),n.on("error",a=>{Hp(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),zn=!0}),zp[t]=n}function HC(t=Zp){return new Promise(e=>{if(Xp(t)==null)ef();else if(zn){e("");return}let r=ko(()=>{zn&&(Fo(r),e(""))},500)})}function KC(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:vp(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var Jp=class{constructor(e,r=null){this._db=e,this._select=r||Zp}getClient(){return Xp(this._select)}async init(){return Go=!1,ef(this._select),await HC(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Go=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${Ki}${e}`;let n;return d_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),KC(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ye(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ye(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ye(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=>Ye(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=Ye(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[Ye(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=Ye(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ye(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ye(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ye(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(Ye(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=`
|
|
7
7
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
8
8
|
redis.call('DEL', KEYS[1])
|
|
9
9
|
end
|
|
10
|
-
`;await n.eval(i,1,Ye(this._db,e),r)}},Be=
|
|
10
|
+
`;await n.eval(i,1,Ye(this._db,e),r)}},Be=Jp;var $o,Vo,qo,Wo,Jn,Qo,jo,Yo,Ho,tf;async function Nt(){$o=await new Be("users").init(),Vo=await new Be("session").init(),qo=await new Be("appMetadata").init(),Wo=await new Be("data_cache").init(),Qo=await new Be("locks").init(),Jn=await new Be("writeThrough").init(),Yo=await new Be("invitation").init(),Ho=await new Be("pwReset").init(),jo=await new Be("socket_io",1).init(),tf=await new Be("docWriteThrough").init()}async function p_(){$o&&await $o.finish(),Vo&&await Vo.finish(),qo&&await qo.finish(),Wo&&await Wo.finish(),Jn&&await Jn.finish(),Qo&&await Qo.finish(),Yo&&await Yo.finish(),Ho&&await Ho.finish(),jo&&await jo.finish(),tf&&await tf.finish()}process.on("exit",async()=>{await p_()});async function Ko(){return $o||await Nt(),$o}async function qr(){return Vo||await Nt(),Vo}async function lc(){return qo||await Nt(),qo}async function rf(){return Wo||await Nt(),Wo}async function nf(){return Jn||await Nt(),Jn}async function sf(){return Qo||await Nt(),Qo}async function zC(){return jo||await Nt(),jo}async function Zn(){return Yo||await Nt(),Yo}async function zo(){return Ho||await Nt(),Ho}async function JC(){return Jn||await Nt(),Jn}var of=(e=>(e.INVALID="invalid",e))(of||{}),f_=3600,ZC=60;async function XC(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function eN(t){return!t||t.state==="invalid"}async function dc(t){let e=await lc(),r=await e.get(t);if(!r){let n=f_;try{r=await XC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=ZC;else throw i}if(eN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function tN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await lc();await r.delete(t),e&&await r.store(t,e,f_)}var pf={};v(pf,{generateAppID:()=>m_,generateAppUserID:()=>pc,generateDevInfoID:()=>A_,generateGlobalUserID:()=>Xi,generatePluginID:()=>S_,generateRoleID:()=>cf,generateRowID:()=>uf,generateTableID:()=>h_,generateTemplateID:()=>__,generateUserMetadataID:()=>E_,generateWorkspaceID:()=>g_,getDocParams:()=>es,getGlobalIDFromUserMetadataID:()=>T_,getGlobalUserParams:()=>Xn,getPluginParams:()=>C_,getQueryIndex:()=>O_,getRoleParams:()=>mc,getRowParams:()=>lf,getStartEndKeyURL:()=>Jo,getTemplateParams:()=>v_,getUserMetadataParams:()=>D_,getUsersByAppParams:()=>fc,getWorkspaceParams:()=>b_,isDatasourceId:()=>w_,isExternalTableId:()=>df,isGlobalUserID:()=>y_,isQueryId:()=>R_,isTableId:()=>I_,isViewId:()=>x_,prefixRoleID:()=>cr});var m_=t=>{let e=gt;return t&&(e+=`${t}${C}`),`${e}${Oe()}`};function h_(){return`ta${C}${Oe()}`}function uf(t,e){return e=e||Oe(),`ro${C}${t}${C}${e}`}function g_(){return`workspace${C}${Oe()}`}function Xi(t){return`us${C}${t||Oe()}`}var rN=new RegExp(`^us${C}.+`);function y_(t){return rN.test(t)}function E_(t){return uf("ta_users",t)}function T_(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}function __(t){return`template${C}${t}${C}${Oe()}`}function pc(t,e){return`${t}${C}${e}`}function cf(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return cf(t)}var A_=t=>`devinfo${C}${t}`,S_=t=>`plg${C}${t}`;var nN=new RegExp("^datasource_plus_(.+)__(.+)$");function es(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${C}${e}`,endkey:`${t}${C}${e}${ke}`}}function lf(t,e,r={}){if(t==null)return es("ro",null,r);let n=e??`${t}${C}`;return es("ro",n,r)}function O_(t){return`database/${t}`}var df=t=>{let e=t.match(nN);return!!t&&e!==null},I_=t=>!!t&&(t.startsWith(`ta${C}`)||df(t));function x_(t){return!!t&&t.startsWith(`view${C}`)}function w_(t){return!!t&&t.startsWith(`datasource${C}`)}function R_(t){return!!t&&t.startsWith(`query${C}`)}function b_(t="",e={}){return{...e,startkey:`workspace${C}${t}`,endkey:`workspace${C}${t}${ke}`}}function Xn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${ke}`}}function D_(t,e={}){return lf("ta_users",t,e)}function fc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function v_(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${ke}`}}function mc(t,e={}){return es("role",t,e)}function Jo(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var C_=(t,e={})=>es("plg",t,e);async function N_(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await mf(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ge?await n():(await n(Jo("app",i)),await n(Jo("app_dev",i)),r.push(lr(i))),r}async function Zo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ge);let o=(await N_({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(C);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===ge&&d||l===i}return!1});if(r){let u=o.filter(l=>Fr(l)),c=o.filter(l=>!Fr(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:bo(l)?"development":"published"})):c.filter(l=>t?bo(l):!bo(l))}}async function iN(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 sN(){return(await Zo({idsOnly:!0})).filter(e=>!Fr(e))}async function oN(){return(await Zo({idsOnly:!0})).filter(e=>Fr(e))}function aN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function uN(t){return at(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 hf="_design/database";function cN(){return{_id:hf,views:{}}}async function lN(t,e){if(Qi[e])try{let r=await t.get(hf);for(let n of Qi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ts(t,e,r){let n;try{n=await t.get(hf)}catch{n=cN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ts(t,e,r);throw s}}var P_=async()=>{let t=se(),e=`function(doc) {
|
|
11
11
|
if (doc._id.startsWith("us${C}")) {
|
|
12
12
|
emit(doc.email.toLowerCase(), doc._id)
|
|
13
13
|
}
|
|
@@ -34,5 +34,5 @@ attempted value: ${s}
|
|
|
34
34
|
if (doc.ssoId) {
|
|
35
35
|
emit(doc.ssoId, doc._id)
|
|
36
36
|
}
|
|
37
|
-
}`,"platform_users_lowercase_2")},ea=async(t,e)=>{let r={account_by_email:k_,platform_users_lowercase_2:F_};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return gf(t,e,n,i,{arrayResponse:!0})})},B_={by_email2:P_,by_api_key:L_,by_app:U_},dr=async(t,e,r,n)=>{r||(r=se());let i=B_[t];return gf(t,e,r,i,n)};async function yf(t,e,r){let n=se(),i=B_[t];return Xo(t,e,n,i,r)}var Ef=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([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=Et(this.target.name),await this.replicate()}},G_=Ef;var V_=j(require("node-fetch"));var ta=Lr.removeKeyNumbering;function ei(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=ta(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)=>ei(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(ei(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${E} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>ei(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(ei(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[O,S]of Object.entries(f)){O=ta(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let L=g(O,S);if(L!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=L,(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)=>ei(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(ei(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)=>ei(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}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await $_(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await $_(n,i,r);throw s}}};async function $_(t,e,r){let n=await(0,V_.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 q_(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 q_(t,e,r,c)}async function dN(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 pN(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 q_(t,e,r,n)}}var Tf={};v(Tf,{createUserIndex:()=>fN});async function fN(){let t=se(),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 W_(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 mN(t){return W_(t,409)}var Af=`${C}${C}`,j_=/^\[.*]$/g,gN=encodeURIComponent(" "),Y_=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,yN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function hc(t){return t.startsWith("datasource"+C)}function EN(t){return!hc(t)}function ns(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 Sf(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==wi||t?.sourceType==="external"?!0:!!(t?._id&&hc(t._id))}function TN(t,e){return`${t}${Af}${encodeURIComponent(e)}`}function _N(t){return hc(t)?encodeURIComponent(t):t}function AN(t){return encodeURIComponent(t)}function Of(t){let e=t.split(Af),r=e.shift(),n=e.join(Af);if(n.includes(gN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function SN(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 ON(t){return Array.isArray(t)||typeof t=="string"&&t.match(j_)!=null}function IN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(j_)!=null?t.substring(1,t.length-1):t}function xN(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 If(t){let e=t.trim();if(!Y_.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function xf(t){return Y_.test(t.trim())}function gc(t){return t!=null&&t!==""}function wN(t){return yN.test(t)}function na(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 RN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function wf(t){if(RN(t))return t}var H_="Database does not exist.";function K_(t){return(0,z_.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var jr=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 hN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new rs(t,r,e);return new Hi(n)}var rs=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=K_(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=K_(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new jr(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===H_)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new jr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new jr(`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){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 documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(wh(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 jr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===H_)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ju(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new jr("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 na("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 jr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ke(t,e){return new Hi(new rs(t,e))}async function at(t,e,r){let n=Ke(t,r);return await e(n)}async function mf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await zu(e)}async function _f(t,e){let r=await zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var Z_=null;function lr(t){return t||(t=Q()),ra(t)}function X_(t){return t||(t=Q()),t===ge?Se.AUDIT_LOGS.name:`${t}${C}${Se.AUDIT_LOGS.name}`}function bN(t){return t||(t=Q()),t===ge?Se.SCIM_LOGS.name:`${t}${C}${Se.SCIM_LOGS.name}`}function ra(t){return!t||t===ge?Se.GLOBAL.name:`${t}${C}${Se.GLOBAL.name}`}function bf(){return h.PLATFORM_URL}function Yr(){return!!h.MULTI_TENANCY}function DN(){return!!Ce.get()?.tenantId}function vN(){return h.MULTI_TENANCY}function is(t){if(!t)return;if(!Yr())return ge;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function CN(t){let e;try{e=Ce.get()}catch{e={}}return e={...e,...t},e}async function Hr(t,e){UN();let r=CN(t);return Ce.run(r,e)}async function NN(t){return await tA(),Hr({tenantId:is(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Df(t,e){let r=is(t);return Hr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||ge),Hr(t?{tenantId:t}:{},e)}async function PN(t,e){return eA(t,e)}async function eA(t,e,r){if(!t)throw new Error("appId is required");let n=is(t),i={appId:t,...r};return n&&(i.tenantId=n),Hr(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),Hr(r,e)}function UN(){if(Ce.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function LN(t,e){return eA(t,e,{isMigrating:!0})}function ar(){try{return Ce.get()?.identity}catch{}}function Q(){if(!Yr())return ge;let e=Ce.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Yp(){return Ce.get()?.automationId}function Pe(){let e=Ce.get()?.appId;return!e&&h.isTest()&&Z_?Z_:e}function vf(){return Ce.get()?.ip}var MN=()=>{let t=Pe();if(!t)throw new Error("Could not get appId");return ot(t)};function kN(t,e){if(!t)throw new Error("Must supply environment variables.");return Hr({environmentVariables:t},e)}function FN(t){return Hr({isScim:!0},t)}function Cf(t,e){return Hr({ip:t},e)}async function tA(t=!h.isTest()){let e=os();if(!e||e.snippets)return;let r,n=ss();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function BN(){let t=Ce.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=Ce.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ke(ra(t?.tenantId))}function GN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ke(X_())}function ss(t){let e=Pe();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ke(e,t)}function $N(t){let e=Pe();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ke(ot(e),t)}function VN(t){let e=Pe();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ke(Ku(e),t)}function Pt(){return!!Ce.get()?.isScim}function os(){try{return Ce.get()}catch{return}}function Nf(t){let e=os();if(e)return e.featureFlagCache?.[t]}function Pf(t,e){let r=os();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function qN(t){let e=os();if(e)return e.viewToTableCache?.[t]}function WN(t,e){let r=os();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function jt(t){let e=Q();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await rf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?jt(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[jt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(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 bustCache(e){let r=await this.getClient();try{await r.delete(jt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?jt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var as=new ti,fr=(a=>(a.CHECKLIST="checklist",a.INSTALLATION="installation",a.ANALYTICS_ENABLED="analyticsEnabled",a.UNIQUE_TENANT_ID="uniqueTenantId",a.EVENTS="events",a.BACKFILL_METADATA="backfillMetadata",a.EVENTS_RATE_LIMIT="eventsRateLimit",a))(fr||{}),ri=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ri||{}),yc=(...t)=>as.keys(...t),ni=(...t)=>as.get(...t),mr=(...t)=>as.store(...t),ia=(...t)=>as.delete(...t),Kr=(...t)=>as.withCache(...t),us=(...t)=>as.bustCache(...t);var nn={};v(nn,{getUser:()=>va,getUsers:()=>aM,invalidateUser:()=>Ca});var aa={};v(aa,{addTenantToUrl:()=>QN,getTenantDB:()=>Uf,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>jN});function Uf(t){return Ke(lr(t))}function QN(t){let e=Q();if(Yr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var jN=(t,e)=>{let r;return e?r=e.tenantId||ge:r=Q(),(is(t)||ge)===r},YN=Object.values(ws),oa=(t,e)=>{if(!Yr())return ge;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=YN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(bf()).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:()=>ut,tenants:()=>Qf,users:()=>Ut});var Ut={};v(Ut,{addSsoUser:()=>nA,addUser:()=>XN,getUserDoc:()=>rA,lookupTenantId:()=>HN,removeUser:()=>eP,updateUserDoc:()=>KN});function ut(){return Ke(Se.PLATFORM_INFO.name)}async function HN(t){return h.MULTI_TENANCY?(await rA(t)).tenantId:ge}async function rA(t){return ut().get(t)}async function KN(t){await ut().put(t)}function JN(t,e){return{_id:t,tenantId:e}}function zN(t,e,r){return{_id:e,userId:t,tenantId:r}}function ZN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Lf(t,e){let r=ut(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function nA(t,e,r,n){return Lf(t,()=>ZN(t,e,r,n))}async function XN(t,e,r,n){let i=[Lf(e,()=>JN(e,t)),Lf(r,()=>zN(e,r,t))];n&&i.push(nA(n,r,e,t)),await Promise.all(i)}async function eP(t){let e=ut(),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 Qf={};v(Qf,{addTenant:()=>TP,exists:()=>gP,getTenantIds:()=>hP,removeTenant:()=>_P,tenacyLockOptions:()=>Wf});var oi={};v(oi,{AUTO_EXTEND_POLLING_MS:()=>fA,doWithLock:()=>ds,newRedlock:()=>si});var pA=j(require("redlock"));var cs={};v(cs,{Duration:()=>ve,DurationType:()=>Vf,clearCookie:()=>Jr,compare:()=>Ff,getAppIdFromCtx:()=>uP,getCookie:()=>ii,hasCircularStructure:()=>dP,hash:()=>kf,isAudited:()=>Gf,isClient:()=>cP,isPublicApiRequest:()=>aP,isServingApp:()=>iP,isServingBuilder:()=>sP,isServingBuilderPreview:()=>oP,isValidInternalAPIKey:()=>ca,newid:()=>Oe,openJwt:()=>Tc,resolveAppUrl:()=>uA,setCookie:()=>cA,timeout:()=>lP,validEmail:()=>$f});var Mf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),tP=h.SALT_ROUNDS||10;async function kf(t){let e=await Mf.genSalt(tP);return Mf.hash(t,e)}async function Ff(t,e){return Mf.compare(t,e)}var Ec=j(require("jsonwebtoken")),Bf="app"+C,sA="/app/",oA="/app/preview",rP="/builder",aA=`${rP}/app/`,nP="/api/public/v";function ua(t){return t&&t.startsWith(Bf)?t:void 0}async function uA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=oa(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Zo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function iP(t){return t.path.startsWith(`/${Bf}`)?!0:t.path.startsWith(sA)}function sP(t){return t.path.startsWith(aA)}function oP(t){return t.path.startsWith(oA)}function aP(t){return t.path.startsWith(nP)}async function uP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=ua(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=ua(t.request.body.appId));let n=iA(t.path);!r&&n&&(r=ua(n));let i=t.path.startsWith(oA),s=t.path.startsWith(sA)&&!i;!r&&s&&(r=ua(await uA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(aA)){let a=iA(t.request.headers.referer);r=ua(a)}return r}function iA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Bf))}function Tc(t){if(t)try{return Ec.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Ec.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 ii(t,e){let r=t.cookies.get(e);if(r)return Tc(r)}function cA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Ec.default.sign(e,h.JWT_SECRET));let i={expires:Qu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Jr(t,e){cA(t,null,e)}function cP(t){return t.headers["x-budibase-type"]==="client"}function lP(t){return new Promise(e=>setTimeout(e,t))}function Gf(t){return!!Oh[t]}function dP(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 $f(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}var Vf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Vf||{}),lA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},ve=class t{static convert(e,r,n){return n*lA[e]/lA[r]}static from(e,r){return{to:n=>t.convert(e,n,r),toMs:()=>t.convert(e,"milliseconds",r),toSeconds:()=>t.convert(e,"seconds",r)}}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,e){if(t==="custom")return si(e);switch(t){case"try_once":return si(ls.TRY_ONCE);case"try_twice":return si(ls.TRY_TWICE);case"default":return si(ls.DEFAULT);case"delay_500":return si(ls.DELAY_500);case"auto_extend":return si(ls.AUTO_EXTEND);default:throw Ri.unreachable(t)}}var ls={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 si(t={}){let e={...ls.DEFAULT,...t},n=(await sf()).getClient();return new pA.default([n],e)}function fP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var fA=ve.fromSeconds(10).toMs();async function ds(t,e){let r=await pP(t.type,t.customOptions),n,i;try{let s=fP(t),o=t.type==="auto_extend"?fA: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 qf=Se.PLATFORM_INFO.docs.tenants,Wf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function hP(){return(await _c()).tenantIds}async function _c(){let t=ut(),e;try{e=await t.get(qf)}catch(r){if(r.status===404)e=await EP();else throw r}return e}async function gP(t){return(await _c()).tenantIds.indexOf(t)!==-1}function yP(){return{_id:qf,tenantIds:[]}}async function EP(){let t=ut(),e=yP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(qf);throw r}return e}async function TP(t){let e=ut();await ds(Wf,async()=>{let r=await _c();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function _P(t){try{await ds(Wf,async()=>{let e=ut(),r=await _c();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 ai={};v(ai,{getAccount:()=>zr,getAccountByTenantId:()=>ps,getStatus:()=>AP});var mA=j(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";Co.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,mA.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 jf=new da(h.ACCOUNT_PORTAL_URL),Yf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,zr=async t=>{if(Yf)return;let e={email:t},r=await jf.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]},ps=async t=>{if(Yf)return;let e={tenantId:t},r=await jf.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]},AP=async()=>{if(Yf)return;let t=await jf.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:()=>Ht,addAppBuilder:()=>nM,bulkGetGlobalUsersById:()=>Qc,bulkUpdateGlobalUsers:()=>Ra,cleanseUserObject:()=>vm,doesUserExist:()=>Z0,getAccountHolderFromUsers:()=>Nc,getAllUserIds:()=>J0,getAllUsers:()=>z0,getById:()=>pi,getCreatorCount:()=>tM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>EA,getExistingTenantUsers:()=>yA,getFirstPlatformUser:()=>pa,getGlobalUserByAppPage:()=>hS,getGlobalUserByEmail:()=>Mt,getPlatformUsers:()=>Ac,getUserCount:()=>eM,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>RA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>wA,isBuilder:()=>gs,isCreator:()=>Yt,isGlobalBuilder:()=>xA,paginatedUsers:()=>yS,removeAppBuilder:()=>iM,removePortalUserPermissions:()=>rM,searchExistingEmails:()=>Jf,searchGlobalUsersByApp:()=>jc,searchGlobalUsersByAppAccess:()=>Dm,searchGlobalUsersByEmail:()=>gS,validateUniqueUser:()=>Cc});var om={};v(om,{getAccountHolderFromUsers:()=>Nc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>RA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>wA,isBuilder:()=>gs,isCreator:()=>Yt,isGlobalBuilder:()=>xA,validateUniqueUser:()=>Cc});var Kf={};v(Kf,{createCode:()=>OP,deleteCode:()=>xP,getCode:()=>IP,getExistingInvites:()=>Hf,getInviteCodes:()=>gA,updateCode:()=>SP});var hA=ve.fromDays(7).toSeconds();async function SP(t,e){await(await Zn()).store(t,e,hA)}async function OP(t,e){let r=Oe();return await(await Zn()).store(r,{email:t,info:e},hA),r}async function IP(t){let r=await(await Zn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function xP(t){await(await Zn()).delete(t)}async function gA(){let r=(await(await Zn()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function Hf(t){return(await gA()).filter(e=>t.includes(e.email))}async function Jf(t){let e=[],r=await yA(t);e.push(...r.map(o=>o.email));let n=await EA(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await Hf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Ac(t){return await ea("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function pa(t){return(await Ac(t))[0]??null}async function yA(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 EA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ea("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ea("account_by_email",r)}var bc={};v(bc,{BadRequestError:()=>Oc,BudibaseError:()=>ms,EmailUnavailableError:()=>hr,ErrorCode:()=>wc,FeatureDisabledError:()=>xc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Sc,UsageLimitError:()=>Ic,getPublicError:()=>Rc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},wc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(wc||{}),Rc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends ms{constructor(r,n,i="http"){super(r,i);this.status=n}},Sc=class extends ct{constructor(e){super(e,404)}},Oc=class extends ct{constructor(e){super(e,400)}},Ic=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},xc=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{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 sm={};v(sm,{AccessController:()=>Xf,BUILTIN_ROLE_IDS:()=>ha,Role:()=>Zr,RoleHierarchyTraversal:()=>Dc,RoleIDVersion:()=>em,builtinRoleToNumber:()=>fa,checkForRoleResourceArray:()=>SA,externalRole:()=>CP,findRole:()=>ma,getAllRoleIds:()=>LP,getAllRoles:()=>im,getBuiltinRole:()=>_A,getBuiltinRoles:()=>rm,getDBRoleID:()=>OA,getExternalRoleID:()=>Xr,getExternalRoleIDs:()=>IA,getRole:()=>NP,getUserRoleHierarchy:()=>nm,getUserRoleIdHierarchy:()=>AA,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>vP,prefixRoleIDNoBuiltin:()=>Zf,roleIDsAreEqual:()=>Tt,roleToNumber:()=>DP,saveRoles:()=>PP,validInherits:()=>bP});var zf=j(require("semver"));var vc=j(require("lodash/fp/cloneDeep"));var TA=require("lodash");var ha={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},pe={...ha,BUILDER:"BUILDER"},em={UUID:void 0,NAME:"name"};function RP(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var Zr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=em.NAME}addInheritance(e){return e&&typeof e=="string"?e=Zf(e):e&&Array.isArray(e)&&(e=e.map(Zf)),this.inherits=e,this}},Dc=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&&!RP(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),Qt.roles.checkForRoleInheritanceLoops(i))break}}return(0,TA.uniqBy)(i,s=>s._id)}},tm={ADMIN:new Zr(pe.ADMIN,pe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(pe.POWER),POWER:new Zr(pe.POWER,pe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(pe.BASIC),BASIC:new Zr(pe.BASIC,pe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(pe.PUBLIC),PUBLIC:new Zr(pe.PUBLIC,pe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Zr(pe.BUILDER,pe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function rm(){return(0,vc.default)(tm)}function ui(t){return Object.values(ha).includes(t)}function Zf(t){return ui(t)?t:cr(t)}function _A(t){let e=Object.values(tm).find(r=>t.includes(r._id));if(e)return(0,vc.default)(e)}function bP(t,e){if(!e)return!1;let r=n=>t.find(i=>Tt(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=rm(),r=Object.values(e).length+1;if(Tt(t,pe.ADMIN)||Tt(t,pe.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 DP(t){if(ui(t))return fa(t);let e=await nm(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=>Tt(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(ui(n.inherits))return fa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function vP(t,e){return t?e&&fa(t)>fa(e)?e:t:e}function Tt(t,e){return cr(t)===cr(e)}function CP(t){let e;return t._id&&(e=Xr(t._id)),{...t,_id:e,inherits:IA(t.inherits,t.version)}}function ma(t,e,r){let n=_A(t);n||(t=cr(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,vc.default)(tm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Xr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function NP(t,e){let r=ss(),n=[];if(!ui(t)){let i=await r.tryGet(OA(t));i&&n.push(i)}return ma(t,n,e)}async function PP(t){await ss().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function UP(t,e){let r=await im();if(Tt(t,pe.ADMIN))return r;let n=ma(t,r,e),i=[];return n&&(i=new Dc(r,e).walk(n)),i}async function AA(t){return(await nm(t)).map(r=>r._id)}async function nm(t,e){return UP(t,e)}function SA(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 LP(t){return(await im(t)).map(r=>r._id)}async function im(t){if(t)return at(t,e);{let r;try{r=ss()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(mc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Xr(a._id,a.version)));let i=rm(),s=[];!r||await MP(r)?s=[pe.ADMIN,pe.POWER,pe.BASIC,pe.PUBLIC]:s=[pe.ADMIN,pe.BASIC,pe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Xr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Xr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=SA(o.permissions,a);return n}}async function MP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!zf.default.valid(r)?!0:!zf.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Xf=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,pe.BUILDER)||Tt(r,e)||Tt(r,pe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await AA(r),this.userHierarchies[r]=n),n?.find(i=>Tt(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 OA(t){return t?.startsWith("role")?t:cr(t)}function Xr(t,e){if(t.startsWith(`role${C}`)&&(ui(t)||e===em.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function IA(t,e){return t&&(typeof t=="string"?Xr(t,e):t.map(r=>Xr(r,e)))}var gs=st.users.isBuilder,en=st.users.isAdmin,xA=st.users.isGlobalBuilder,wA=st.users.isAdminOrBuilder,tn=st.users.hasAdminPermissions,_t=st.users.hasBuilderPermissions,RA=st.users.hasAppBuilderPermissions;async function Yt(t){let e=st.users.isCreator(t);return!e&&t?await kP(t):e}async function kP(t){let e=t?.userGroups||[];if(e.length>0){let r=se(),n=[];for(let i of e)try{let s=await r.get(i);n.push(s)}catch(s){if(s.error!=="not_found")throw s}return n.some(i=>Object.values(i.roles||{}).includes(ha.ADMIN))}return!1}async function Cc(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 Nc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await fs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ts={};v(Ts,{account:()=>qA,ai:()=>HA,analytics:()=>Uc,app:()=>WA,auditLog:()=>cS,auth:()=>Vc,automation:()=>QA,backfill:()=>iS,backfillCache:()=>Gc,backup:()=>aS,datasource:()=>jA,email:()=>YA,environmentVariable:()=>uS,group:()=>sS,identification:()=>Lt,initAsyncEvents:()=>L0,installation:()=>Aa,layout:()=>JA,license:()=>KA,org:()=>zA,plugin:()=>oS,processors:()=>pm,publishEvent:()=>_,query:()=>ZA,role:()=>wa,rowAction:()=>lS,rows:()=>eS,screen:()=>XA,serve:()=>rS,shutdown:()=>M0,table:()=>tS,user:()=>$e,view:()=>nS});var pm={};v(pm,{analyticsProcessor:()=>FA,init:()=>eU,processors:()=>gr});var Uc={};v(Uc,{enabled:()=>Pc});var Pc=async()=>Lc();var NA=require("posthog-node");var FP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",BP=t=>t==="served:app:preview"||t==="served:app";var DA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},vA=async t=>{if(!FP(t))return!1;let e=await GP(t);if(e){let r=new Date(e.timestamp);switch(DA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await bA(t,{timestamp:Date.now()}),!1):!0}}else return await bA(t,{timestamp:Date.now()}),!1},CA=t=>{let e=`eventsRateLimit:${t}`;return BP(t)&&(e=e+":"+Pe()),e},GP=async t=>{let e=CA(t);return await ni(e)},bA=async(t,e)=>{let r=CA(t),n=DA[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var VP=["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"],ga=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new NA.PostHog(e)}async processEvent(e,r,n,i){if(VP.includes(e)||await vA(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Pe();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 PA=ga;var qP=["installation:version:upgraded","installation:version:downgraded"],WP=["installation","tenant"],ya=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new PA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!qP.includes(e)&&!await Pc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!WP.includes(e.type)&&!await Pc()||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 am=h.SELF_HOSTED&&!h.isDev(),Ea=class{async processEvent(e,r,n){am||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){am||console.log("[audit] identified",e)}async identifyGroup(e){am||console.log("[audit] group identified",e)}shutdown(){}};var dm={};v(dm,{JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>zP});var UA=j(require("events"));function QP(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 um=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new UA.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=>{let i=r(n);async function s(a){try{await a}catch{await Qt.wait(50),await s(r(n))}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n)}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){let n=r?.jobId?.toString();if(n&&this._queuedJobIds.has(n)){console.log(`Ignoring already queued job ${n}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";n&&this._queuedJobIds.add(n);let i=()=>{let o={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:r};this._messages.push(o),this._addCount++,this._emitter.emit("message",o)},s=r?.delay;return s?setTimeout(i,s):i(),{id:n}}async close(){}async removeRepeatableByKey(e){console.log(e)}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}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.map(e=>QP(e))}},LA=um;var cm=j(require("bull"));var ys=(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))(ys||{});function MA(t,e,r){HP(t,e),r&&jP(t,r)}function jP(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var YP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function HP(t,e){let r=YP[e];function n(i,s){let o=i.data.event?.appId;if(o)return Df(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var KP=ve.fromMinutes(5).toMs(),JP=ve.fromSeconds(30).toMs(),lm=ve.fromSeconds(60).toMs(),Ta=[],Mc;async function kA(){for(let t of Ta)await t.clean(lm,"completed"),await t.clean(lm,"failed")}function ci(t,e={}){let n={redis:Ji(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:KP,lockRenewTime:JP}};e.jobOptions&&(n.defaultJobOptions=e.jobOptions);let i;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?i=new cm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new LA(t,n):i=new cm.default(t,n),MA(i,t,e?.removeStalledCb),Ta.push(i),!Mc&&!h.isTest()&&(Mc=ko(kA,lm),kA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function zP(){if(Mc&&Fo(Mc),Ta.length){for(let t of Ta)await t.close();Ta=[]}console.log("Queues shutdown")}var Es=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ci("auditLogQueue"),t.auditLogQueue.process(async n=>Ge(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&&Gf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Pe(),hostInfo:r.hostInfo},tenantId:Q()})}}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 FA=new ya,ZP=new Ea,XP=new Es;function eU(t){return Es.init(t)}var gr=new _a([FA,ZP,XP]);var kc={};v(kc,{checkInstallVersion:()=>nU,getInstall:()=>Sa,getInstallFromDB:()=>mm});var fm=j(require("semver"));var Sa=async()=>Kr("installation",86400,mm,{useTenancy:!1});async function tU(t){let e={_id:Se.PLATFORM_INFO.docs.install,installId:Oe(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return mm();throw r}}var mm=async()=>at(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 tU(t);else throw r}return e}),rU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await us("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},nU=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=fm.default.gt(r,e),i=fm.default.lt(r,e);await rU(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Lt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Kn(`Invalid version "${r}" - is it semver?`):Kn("Failed to retrieve version",n)}};var iU=async()=>{let t=Ap(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Oa();return{id:BA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Fc(Q()),s=Oa();return{id:BA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Fc(Q()),s=await li(),o=n.account,a;return o?a=o.hosting:a=Oa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},sU=async(t,e)=>{let r=t,n="installation",i=Oa(),s=h.VERSION,o=xa(),a={id:r,type:n,hosting:i,version:s,environment:o};await hm(a,e),await Ia({...a,id:`$${n}_${r}`},e)},oU=async(t,e,r)=>{let n=await Fc(t),i="tenant",s=await li(),o=xa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await hm(a,r),await Ia({...a,id:`$${i}_${n}`},r)},aU=async(t,e,r)=>{let n=t._id,i=await Fc(t.tenantId),s="user",o=_t(t),a=tn(t),u;Wa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,d=!!e&&l&&e.verified,m=await li(),p=e?e.hosting:Oa(),f=xa();await Ia({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},uU=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 li(),c=xa();if(Va(t)){let d=await Mt(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await gr.identify(t,e)},hm=async(t,e)=>{await gr.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Oa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>cU()?"account-portal":(await Sa()).installId,Fc=async t=>h.SELF_HOSTED?GA(t):t,GA=async t=>Ge(t,()=>Kr("uniqueTenantId",86400,async()=>{let e=se(),r=await Bc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),cU=()=>h.SERVICE==="account-portal",BA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Lt={getCurrentIdentity:iU,identifyInstallationGroup:sU,identifyTenantGroup:oU,identifyUser:aU,identifyAccount:uU,identify:Ia,identifyGroup:hm,getInstallationId:li,getUniqueTenantId:GA};var Gc={};v(Gc,{end:()=>dU,isAlreadySent:()=>Em,isBackfillingEvent:()=>ym,recordEvent:()=>gm,start:()=>lU});var lU=async t=>fU({eventWhitelist:t}),gm=async(t,e)=>{let r=Tm(t,e);await mr(r,e,void 0,{useTenancy:!1})},dU=async()=>{await mU(),await hU()},pU=async()=>ni("backfillMetadata"),fU=async t=>mr("backfillMetadata",t),mU=async()=>{await ia("backfillMetadata")},hU=async()=>{let t=Tm(),e=await yc(t);for(let r of e)await ia(r,{useTenancy:!1})},ym=async t=>{let r=(await pU())?.eventWhitelist;return!!(r&&r.includes(t))},Em=async(t,e)=>{let r=Tm(t,e);return!!await ni(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}`},Tm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=gU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var yr;function $c(){yr=ci("systemEventQueue")}async function $A(){yr&&await yr.close()}async function VA(t){yr||$c();let{event:e,identity:r}=t;Sh.indexOf(e)!==-1&&r.tenantId&&await yr.add(t)}var _=async(t,e,r,n)=>{let i=n||await Lt.getCurrentIdentity();if(!(n?!1:await ym(t))){await VA({event:t,identity:i,properties:e,timestamp:r}),await gr.processEvent(t,i,e,r);return}await Em(t,e)||(await gr.processEvent(t,i,e,r),await gm(t,e))};async function yU(t,e){let r={tenantId:t.tenantId};await _("account:created",r,void 0,e)}async function EU(t){let e={tenantId:t.tenantId};await _("account:deleted",e)}async function TU(t){let e={tenantId:t.tenantId};await _("account:verified",e)}var qA={created:yU,deleted:EU,verified:TU};var _U=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:created",r,e)};async function AU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:updated",e)}async function SU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:deleted",e)}async function OU(t,e){let r={appId:t.appId,audited:{name:t.name}};await _("app:published",r,e)}async function IU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:unpublished",e)}async function xU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:file:imported",e)}async function wU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await _("app:duplicated",r)}async function RU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await _("app:template:imported",r)}async function bU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await _("app:version:updated",n)}async function DU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await _("app:version:reverted",n)}async function vU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:reverted",e)}async function CU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:exported",e)}var WA={created:_U,updated:AU,deleted:SU,published:OU,unpublished:IU,fileImported:xU,duplicated:wU,templateImported:RU,versionUpdated:bU,versionReverted:DU,reverted:vU,exported:CU};async function NU(t,e){let n={userId:(await Lt.getCurrentIdentity()).id,source:t,audited:{email:e}};await _("auth:login",n)}async function PU(t){let r={userId:(await Lt.getCurrentIdentity()).id,audited:{email:t}};await _("auth:logout",r)}async function UU(t,e){let r={type:t};await _("auth:sso:created",r,e)}async function LU(t){let e={type:t};await _("auth:sso:updated",e)}async function MU(t,e){let r={type:t};await _("auth:sso:activated",r,e)}async function kU(t){let e={type:t};await _("auth:sso:deactivated",e)}var Vc={login:NU,logout:PU,SSOCreated:UU,SSOUpdated:LU,SSOActivated:MU,SSODeactivated:kU};async function FU(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 _("automation:created",r,e)}async function BU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:trigger:updated",e)}async function GU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:deleted",e)}async function $U(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:tested",e)}var VU=async(t,e)=>{let r={count:t};await _("automations:run",r,e)};async function qU(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 _("automation:step:created",n,r)}async function WU(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 _("automation:step:deleted",r)}var QA={created:FU,triggerUpdated:BU,deleted:GU,tested:$U,run:VU,stepCreated:qU,stepDeleted:WU};function _m(t){return!Object.values(Ba).includes(t.source)}async function QU(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await _("datasource:created",r,e)}async function jU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await _("datasource:updated",e)}async function YU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await _("datasource:deleted",e)}var jA={created:QU,updated:jU,deleted:YU};async function HU(t){let e={};await _("email:smtp:created",e,t)}async function KU(){let t={};await _("email:smtp:updated",t)}var YA={SMTPCreated:HU,SMTPUpdated:KU};async function JU(t){let e={};await _("ai:config:created",e,t)}async function zU(){let t={};await _("ai:config:updated",t)}var HA={AIConfigCreated:JU,AIConfigUpdated:zU};async function ZU(t,e){let r={accountId:t.accountId,...e};await _("license:plan:changed",r)}async function XU(t){let e={accountId:t.accountId};await _("license:activated",e)}async function eL(t){let e={accountId:t.accountId};await _("license:checkout:opened",e)}async function tL(t){let e={accountId:t.accountId};await _("license:checkout:success",e)}async function rL(t){let e={accountId:t.accountId};await _("license:portal:opened",e)}async function nL(t){let e={accountId:t.accountId};await _("license:payment:failed",e)}async function iL(t){let e={accountId:t.accountId};await _("license:payment:recovered",e)}var KA={planChanged:ZU,activated:XU,checkoutOpened:eL,checkoutSuccess:tL,portalOpened:rL,paymentFailed:nL,paymentRecovered:iL};async function sL(t,e){let r={layoutId:t._id};await _("layout:created",r,e)}async function oL(t){let e={layoutId:t};await _("layout:deleted",e)}var JA={created:sL,deleted:oL};async function aL(t){let e={};await _("org:info:name:updated",e,t)}async function uL(t){let e={};await _("org:info:logo:updated",e,t)}async function cL(t){let e={};await _("org:platformurl:updated",e,t)}async function lL(){let t={};await _("analytics:opt:out",t)}async function dL(){let t={};await _("analytics:opt:out",t)}var zA={nameUpdated:aL,logoUpdated:uL,platformURLUpdated:cL,analyticsOptOut:lL,analyticsOptIn:dL};var pL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:created",n,r)},fL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:updated",r)},mL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:deleted",r)},hL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await _("query:import",n)},gL=async(t,e)=>{let r={count:t};await _("queries:run",r,e)},yL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:previewed",r)},ZA={created:pL,updated:fL,deleted:mL,imported:hL,run:gL,previewed:yL};async function EL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:created",r,e)}async function TL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:updated",e)}async function _L(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:deleted",e)}async function AL(t,e,r){let n={userId:t._id,roleId:e};await _("role:assigned",n,r)}async function SL(t,e){let r={userId:t._id,roleId:e};await _("role:unassigned",r)}var wa={created:EL,updated:TL,deleted:_L,assigned:AL,unassigned:SL};async function OL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:created",r,e)}async function IL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:deleted",e)}var XA={created:OL,deleted:IL};var xL=async(t,e)=>{let r={count:t};await _("rows:created",r,e)},wL=async(t,e)=>{let r={tableId:t._id,count:e};await _("rows:imported",r)},eS={created:xL,imported:wL};async function RL(t,e){let r={tableId:t._id,audited:{name:t.name}};await _("table:created",r,e)}async function bL(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 _("table:updated",i)}async function DL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:deleted",e)}async function vL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await _("table:exported",r)}async function CL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:imported",e)}var tS={created:RL,updated:bL,deleted:DL,exported:vL,imported:CL};async function NL(t){let e={timezone:t};await _("served:builder",e)}async function PL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await _("served:app",n)}async function UL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await _("served:app:preview",r)}var rS={servedBuilder:NL,servedApp:PL,servedAppPreview:UL};async function LL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:created",r,e)}async function ML(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:updated",e)}async function kL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:deleted",e)}async function FL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:onboarding:complete",e)}async function BL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:admin:assigned",r,e)}async function GL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:admin:removed",e)}async function $L(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:builder:assigned",r,e)}async function VL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:builder:removed",e)}async function qL(t){let e={audited:{email:t}};await _("user:invited",e)}async function WL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:invite:accepted",e)}async function QL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:force:reset",e)}async function jL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:updated",e)}async function YL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset:requested",e)}async function HL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset",e)}async function KL(t){let e={users:t};await _("user:data:collaboration",e)}var $e={created:LL,updated:ML,deleted:kL,permissionAdminAssigned:BL,permissionAdminRemoved:GL,permissionBuilderAssigned:$L,permissionBuilderRemoved:VL,onboardingComplete:FL,invited:qL,inviteAccepted:WL,passwordForceReset:QL,passwordUpdated:jL,passwordResetRequested:YL,passwordReset:HL,dataCollaboration:KL};async function JL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await _("view:created",r,e)}async function zL(t){let e={tableId:t.tableId};await _("view:updated",e)}async function ZL(t){let e={tableId:t.tableId};await _("view:deleted",e)}async function XL(t,e){let r={tableId:t._id,format:e};await _("view:exported",r)}async function e0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await _("view:filter:created",n,r)}async function t0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await _("view:filter:updated",r)}async function r0(t){let e={tableId:t.tableId};await _("view:filter:deleted",e)}async function n0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await _("view:calculation:created",n,r)}async function i0(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:updated",e)}async function s0(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:deleted",e)}async function o0(t,e){let r={tableId:t};await _("view:join:created",r,e)}var nS={created:JL,updated:zL,deleted:ZL,exported:XL,filterCreated:e0,filterUpdated:t0,filterDeleted:r0,calculationCreated:n0,calculationUpdated:i0,calculationDeleted:s0,viewJoinCreated:o0};async function a0(t){let e={currentVersion:t};await _("installation:version:checked",e)}async function u0(t,e){let r={from:t,to:e};await _("installation:version:upgraded",r)}async function c0(t,e){let r={from:t,to:e};await _("installation:version:downgraded",r)}async function l0(){let t={};await _("installation:firstStartup",t)}var Aa={versionChecked:a0,upgraded:u0,downgraded:c0,firstStartup:l0};var As=!h.SELF_HOSTED&&!h.isDev();async function d0(t){As||await _("app:backfill:succeeded",t)}async function p0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("app:backfill:failed",e)}async function f0(t){As||await _("tenant:backfill:succeeded",t)}async function m0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("tenant:backfill:failed",e)}async function h0(){if(As)return;let t={};await _("installation:backfill:succeeded",t)}async function g0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("installation:backfill:failed",e)}var iS={appSucceeded:d0,appFailed:p0,tenantSucceeded:f0,tenantFailed:m0,installationSucceeded:h0,installationFailed:g0};async function y0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:created",r,e)}async function E0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:updated",e)}async function T0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:deleted",e)}async function _0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:user_added",r)}async function A0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:users_deleted",r)}async function S0(t){let e={groupId:t,onboarding:!0};await _("user_group:onboarding_added",e)}async function O0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await _("user_group:permissions_edited",e)}var sS={created:y0,updated:E0,deleted:T0,usersAdded:_0,usersDeleted:A0,createdOnboarding:S0,permissionsEdited:O0};async function I0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:init",e)}async function x0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await _("plugin:imported",e)}async function w0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:deleted",e)}var oS={init:I0,imported:x0,deleted:w0};async function R0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await _("app:backup:restored",e)}async function b0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await _("app:backup:triggered",s)}var aS={appBackupRestored:R0,appBackupTriggered:b0};async function D0(t,e){let r={name:t,environments:e};await _("environment_variable:created",r)}async function v0(t){let e={name:t};await _("environment_variable:deleted",e)}async function C0(t){let e={userId:t};await _("environment_variable:upgrade_panel_opened",e)}var uS={created:D0,deleted:v0,upgradePanelOpened:C0};async function N0(t){let e={filters:t};await _("audit_log:filtered",e)}async function P0(t){let e={filters:t};await _("audit_log:downloaded",e)}var cS={filtered:N0,downloaded:P0};async function U0(t,e){await _("row_action:created",t,e)}var lS={created:U0};function L0(){}var M0=()=>{gr.shutdown(),console.log("Events shutdown")};var Am=async t=>{await $e.deleted(t),_t(t)&&await $e.permissionBuilderRemoved(t),tn(t)&&await $e.permissionAdminRemoved(t)},k0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await wa.assigned(t,i)},F0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await wa.unassigned(t,i)},B0=async(t,e)=>{let r=t.roles,n=e?.roles;await k0(t,r,n),await F0(t,r,n)},Sm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Lt.identifyUser(t,n),e?(await $e.updated(t),$0(t,e)&&await $e.permissionBuilderRemoved(t),q0(t,e)&&await $e.permissionAdminRemoved(t),W0(t,e)&&await $e.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await $e.passwordForceReset(t),t.password!==e.password&&await $e.passwordUpdated(t)):await $e.created(t),G0(t,e)&&await $e.permissionBuilderAssigned(t),V0(t,e)&&await $e.permissionAdminAssigned(t),await B0(t,e)},G0=(t,e)=>dS(t,e,_t),$0=(t,e)=>pS(t,e,_t),V0=(t,e)=>dS(t,e,tn),q0=(t,e)=>pS(t,e,tn),W0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",dS=(t,e,r)=>!(!r(t)||e&&r(e)),pS=(t,e,r)=>!(r(t)||!e||!r(e));var Wc={};v(Wc,{createASession:()=>j0,endSession:()=>Y0,getSession:()=>Im,getSessionsForUser:()=>qc,invalidateSessions:()=>di,updateSessionTTL:()=>Om});var fS=require("uuid");var mS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):ve.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function qc(t){return t?(await(await qr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function di(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await qc(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await qr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||Zi(`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 j0(t,e){await di(t,{reason:"creation"});let r=await qr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,fS.v4)(),s=Ss(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,mS),o}async function Om(t){let e=await qr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,mS)}async function Y0(t,e){await(await qr()).delete(Ss(t,e))}async function Im(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await qr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var bm={};v(bm,{PASSWORD_MAX_LENGTH:()=>wm,PASSWORD_MIN_LENGTH:()=>xm,validatePassword:()=>Rm});var xm=+(h.PASSWORD_MIN_LENGTH||12),wm=+(h.PASSWORD_MAX_LENGTH||512);function Rm(t){return!t||t.length<xm?{valid:!1,error:`Password invalid. Minimum ${xm} characters.`}:t.length>wm?{valid:!1,error:`Password invalid. Maximum ${wm} characters.`}:{valid:!0}}var H0=async t=>{let e=t._id;await Ut.removeUser(t),await Am(t),await nn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Ht=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&&en(e)?!1:await t.features.isSSOEnforced()||Wa(e)?!0:(r||(r=await ps(Q())),!!(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 ct("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Rm(o);if(!d.valid)throw new ct(d.error,400)}u=r.hashPassword?await kf(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||Xi();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 se().allDocs(Xn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await jc(e,{})).length}}static async getUsersByAppAccess(e){return await Dm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Mt(e)}static async getUser(e){let r=await pi(e);return r&&delete r.password,r}static async bulkGet(e){return await Qc(e)}static async bulkUpdate(e){return await Ra(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=se(),{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 pi(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 Mt(s),c&&c._id!==o))throw new hr(s);let l=c?0:1,d=await Yt(c)!==await Yt(e)?1:0;return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Cc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=vm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Sm(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await Jf(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 Yt(d)&&o.push(d)}let l=await ps(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 Ra(d);for(let p of d)await Ut.addUser(n,p._id,p.email),await Sm(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await Nc(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 Ra(a),l=(await Promise.all(o.map(Yt))).filter(p=>!!p).length,d=[];for(let p of o){let g=(await pa(p._id)).ssoId;g&&(await Ac(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await H0(p)}await ut().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=se(),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 ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await Yt(n)?1:0;await t.quotas.removeUsers(1,s),await Am(n),await nn.invalidateUser(i),await di(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("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 Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Qc(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function J0(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function z0(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ra(t){return await se().bulkDocs(t)}async function pi(t,e){let n=await se().get(t);return e?.cleanup&&(n=Da(n)),n}async function Mt(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=Da(n)),n}async function Z0(t){try{let e=await Mt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function jc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=fc(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=Da(s)),s}async function Dm(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 _f(lr(),i)).rows}function hS(t,e){if(e)return pc(ot(t),e._id)}async function gS(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}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var X0=8;async function yS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??X0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await pi(e.equal._id)]:r?(u=await jc(r,a),l=d=>hS(r,d)):e?.string?.email?(u=await gS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Qc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Xn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Lr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Xn(null,a))).rows.map(m=>m.doc),ff(u,s,{paginate:!0,property:c,getKey:l})}async function eM(){return(await yf("by_email2",{limit:0,include_docs:!1})).total_rows}async function tM(){let t=0;async function e(r){let n=await yS({bookmark:r}),i=await Promise.all(n.data.map(Yt));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 vm(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 nM(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ht.save(t,{hashPassword:!1})}async function iM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ht.save(t,{hashPassword:!1})}var ES=3600;async function sM(t,e){let n=await Uf(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 oM(t){let e=await Ht.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 va({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=sM),!e)try{e=Q()}catch{e=await Ut.lookupTenantId(t)}let i=await Ko(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,ES)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await Ht.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function aM(t){let e=await Ko(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await oM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,ES);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ca(t){await(await Ko()).delete(t)}var Um={};v(Um,{Writethrough:()=>Nm});var TS=1e4,Cm=null;async function Pm(){if(!Cm){let t=await nf();Cm=new ti(t)}return Cm}function Yc(t,e){return t.name+e}function _S(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function uM(t,e,r=TS){let n=await Pm(),i=e._id,s;i&&(s=await n.get(Yc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({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;Zi("Ignoring conflict in write-through cache")}})).executed||Zi("Ignoring redlock conflict in write-through cache")),s=_S(a,o?null:s?.lastWrite),a._id&&await n.store(Yc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function cM(t,e){let r=await Pm(),n=Yc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=_S(s),await r.store(n,i)}return i.doc}async function lM(t,e,r){let n=await Pm();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(Yc(t,i))}finally{await t.remove(i,r)}}var Nm=class{constructor(e,r=TS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return uM(this.db,e,r)}async get(e){return cM(this.db,e)}async remove(e,r){return lM(this.db,e,r)}};var Lm={};v(Lm,{createCode:()=>pM,getCode:()=>fM,invalidateCode:()=>mM});var dM=ve.fromHours(1).toSeconds();async function pM(t,e){let r=Oe();return await(await Jo()).store(r,{userId:t,info:e},dM),r}async function fM(t){let r=await(await Jo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function mM(t){await(await Jo()).delete(t)}var km={};v(km,{DocWritethrough:()=>Mm,DocWritethroughProcessor:()=>Na,getProcessor:()=>gM,init:()=>AS});var hM=100,Hc,Na=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:hM}})),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}){let i=Ke(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Mm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Na.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function AS(){return Hc=new Na().init(),Hc}function gM(){return Hc||AS()}function Gm(t){return`config${C}${t}`}async function kt(t){let e=se();try{return await e.get(Gm(t))}catch(r){if(r.status===404)return;throw r}}async function yM(t){return se().put(t)}async function Bc(){let t=await kt("settings");return t||(t={_id:Gm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Pa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Lc({config:t.config}),t}async function $m(){return(await Bc()).config}async function Pa(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await kt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Lc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Kr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await kt("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 EM(){return await kt("google")}async function Kc(){return(await EM())?.config}async function Vm(){if(!h.SELF_HOSTED)return Fm();let t=await Kc();return(!t||!t.activated)&&(t=Fm()),t}function Fm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function TM(){return kt("logos_oidc")}async function _M(){return kt("oidc")}async function AM(){let t=(await _M())?.config;return t?.configs&&t.configs[0]}async function qm(t){let e=(await kt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function SS(){return kt("smtp")}async function SM(t){let e=await SS();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}}}async function OM(){return(await kt("scim"))?.config}async function IM(){return kt("ai")}var Wm={};v(Wm,{BUILDER:()=>DM,BUILTIN_PERMISSIONS:()=>Jc,CREATOR:()=>vM,GLOBAL_BUILDER:()=>CM,PermissionImpl:()=>fe,PermissionLevel:()=>Rs,PermissionType:()=>$a,doesHaveBasePermission:()=>RM,getAllowedLevels:()=>wS,getBuiltinPermissionByID:()=>wM,getBuiltinPermissions:()=>xM,isPermissionLevelHigherThanRead:()=>bM,levelToNumber:()=>xS});var OS=j(require("lodash/flatten")),IS=j(require("lodash/fp/cloneDeep")),fe=class{constructor(e,r){this.type=e,this.level=r}};function xS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function wS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Jc={PUBLIC:{_id:"public",name:"Public",permissions:[new fe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new fe("query","read"),new fe("table","read"),new fe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new fe("query","write"),new fe("table","write"),new fe("automation","execute"),new fe("legacy_view","read"),new fe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new fe("table","write"),new fe("user","read"),new fe("automation","execute"),new fe("webhook","read"),new fe("legacy_view","read"),new fe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new fe("table","admin"),new fe("user","admin"),new fe("automation","admin"),new fe("webhook","read"),new fe("query","admin"),new fe("legacy_view","read"),new fe("app","read")]}};function xM(){return(0,IS.default)(Jc)}function wM(t){return Object.values(Jc).find(r=>r._id===t)}function RM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Jc),s=(0,OS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&wS(o.level).indexOf(e)!==-1)return!0;return!1}function bM(t){return xS(t)>1}var DM="builder",vM="creator",CM="globalBuilder";var Ym={};v(Ym,{FlagSet:()=>Zc,all:()=>LM,flags:()=>Qm,init:()=>NM,isEnabled:()=>UM,parseEnvFlags:()=>el,shutdown:()=>PM,testutils:()=>jm});var Xc=j(require("crypto"));var RS=require("posthog-node"),bS=j(require("dd-trace"));var DS=require("lodash");var zc;function NM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),zc=new RS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:ve.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function PM(){zc?.shutdown()}function el(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 Zc=class{constructor(e){this.flagSchema=e;this.setId=Xc.randomUUID()}defaults(){return(0,DS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await bS.default.trace("features.fetch",async e=>{let r=Nf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:l,key:d,value:m}of el(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=vf();l&&(u=Xc.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,zc&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await zc.getAllFlags(u,{personProperties:l});for(let[m,p]of Object.entries(d)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${p}`);continue}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)}}}Pf(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},Qm=new Zc(Rh);async function UM(t){return await Qm.isEnabled(t)}async function LM(){return await Qm.fetch()}var jm={};v(jm,{setFeatureFlags:()=>vS,withFeatureFlags:()=>FM});function MM(){let t={};for(let{tenantId:e,key:r,value:n}of el(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function kM(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=MM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=kM(r);return Ro({TENANT_FEATURE_FLAGS:n})}function FM(t,e,r){let n=vS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var sh={};v(sh,{adminOnly:()=>dl,auditLog:()=>al,authError:()=>Ue,buildAuthMiddleware:()=>xk,buildCsrfMiddleware:()=>Rk,buildTenancyMiddleware:()=>wk,builderOnly:()=>fl,builderOrAdmin:()=>pl,google:()=>Er,internalApi:()=>cl,joiValidator:()=>La,oidc:()=>Tr,passport:()=>bk,platformLogout:()=>Pk,refreshOAuthToken:()=>Ck,ssoCallbackUrl:()=>sn,updateUserOAuth:()=>Nk});var ih={};v(ih,{adminOnly:()=>dl,auditLog:()=>al,authError:()=>Ue,authenticated:()=>ol,builderOnly:()=>fl,builderOrAdmin:()=>pl,correlation:()=>WS,csp:()=>JS,csrf:()=>ll,datasource:()=>Ok,errorHandling:()=>jS,google:()=>Er,internalApi:()=>cl,ip:()=>ZS,joiValidator:()=>La,local:()=>Os,oidc:()=>Tr,pino:()=>VS,querystringToBody:()=>YS,ssoCallbackUrl:()=>sn,tenancy:()=>ul});var Os={};v(Os,{authenticate:()=>$M,options:()=>GM});function Ue(t,e,r){return t(r,null,{message:e})}async function sn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await $m(),n="/api/global/auth";return Yr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Hm="Invalid credentials",BM="This account has expired. Please reset your password",GM={passReqToCallback:!0};async function $M(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await Mt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,Hm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Hm)):i.password?await Ff(r,i.password)?(delete i.password,n(null,i)):Ue(n,Hm):(console.info(`user=${e} has no password set`,i),Ue(n,BM))}var Er={};v(Er,{buildVerifyFn:()=>PS,getCallbackUrl:()=>WM,strategyFactory:()=>Km});var Ua=t=>Promise.resolve(t);async function tl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ue(r,"sso user id required");if(!t.email)return Ue(r,"sso user email required");let i=Xi(t.userId),s;try{s=await pi(i)}catch(a){if(!a.status||a.status!==404)return Ue(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Mt(t.email)),!s&&e)return Ue(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await VM(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ue(r,"Error saving user",a)}return r(null,o)}async function VM(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 qM=require("passport-google-oauth").OAuth2Strategy;function PS(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 tl(s,!0,i,t)}}async function Km(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=PS(r);return new qM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function WM(t){return sn("google",t)}var Tr={};v(Tr,{buildVerifyFn:()=>LS,fetchStrategyConfig:()=>HM,getCallbackUrl:()=>KM,strategyFactory:()=>YM});var US=j(require("node-fetch"));var QM=require("@techpass/passport-openidconnect").Strategy;function LS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:jM(n,i),oauth2:{accessToken:s,refreshToken:o}};return tl(l,!1,c,t)}}function jM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&$f(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function YM(t,e){try{let r=LS(e),n=new QM(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function HM(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,US.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 KM(){return sn("oidc")}var Jm={};v(Jm,{postAuth:()=>ZM,preAuth:()=>zM});var JM=require("passport-google-oauth").OAuth2Strategy;async function MS(){let t=await Vm();if(!t)throw new Error("No google configuration found");return t}async function zM(t,e,r){let n=await MS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Km(n,s,Ua);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function ZM(t,e,r){let n=await MS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ii(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new JM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Jr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var XM=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(XM);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}}):[],mi=(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 rh={};v(rh,{SecretOption:()=>BS,decrypt:()=>th,decryptFile:()=>sk,encrypt:()=>rk,encryptFile:()=>nk,getSecret:()=>eh});var _r=j(require("crypto")),on=j(require("fs")),Zm=j(require("zlib"));var zm=require("path"),rl="aes-256-ctr",FS="-",ek=1e4,tk=32,nl=16,Xm=16,BS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(BS||{});function eh(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 il(t,e){return _r.default.pbkdf2Sync(t,e,ek,tk,"sha512")}function rk(t,e="api"){let r=_r.default.randomBytes(nl),n=il(eh(e),r),i=_r.default.createCipheriv(rl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${FS}${a}`}function th(t,e="api"){let[r,n]=t.split(FS),i=Buffer.from(r,"hex"),s=il(eh(e),i),o=_r.default.createDecipheriv(rl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function nk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,zm.join)(t,e);if(on.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=on.default.createReadStream(i),o=on.default.createWriteStream((0,zm.join)(t,n)),a=_r.default.randomBytes(nl),u=_r.default.randomBytes(Xm),c=il(r,a),l=_r.default.createCipheriv(rl,c,u);return o.write(a),o.write(u),s.pipe(Zm.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function ik(t){let e=on.default.createReadStream(t),r=await kS(e,nl),n=await kS(e,Xm);return e.close(),{salt:r,iv:n}}async function sk(t,e,r){if(on.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ik(t),s=on.default.createReadStream(t,{start:nl+Xm}),o=on.default.createWriteStream(e),a=il(r,n),u=_r.default.createDecipheriv(rl,a,i),c=Zm.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 $S=j(require("dd-trace")),ok=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ak(){return new Date(Date.now()-ok).toISOString()}function GS(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 uk(t,e){if(ca(t))return{valid:!0,user:void 0};let n=th(t).split(C)[0];return Ge(n,async()=>{let i;try{let s=se();i=await dr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await va({userId:i,tenantId:n,populateUser:e})};throw new hs})}function sl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ol(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=sl(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=sl(n,"x-budibase-token"),c=ii(n,"budibase:auth")||Tc(u),l=sl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=sl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await Im(O,y),e&&e.populateUser?p=await va({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await va({userId:O,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<ak()&&await Om(S),m=!0}catch(L){m=!1,console.error(`Auth Error: ${L.message}`),Jr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await uk(l,y);O&&(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)&&$S.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),GS(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Op(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Jr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return GS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var ck=async(t,e)=>e(),al=ck;function ul(t,e,r={noTenancyRequired:!1}){let n=fi(t),i=fi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!mi(s,i)};!!mi(s,n)||(u.excludeStrategies=["query"]);let l=oa(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var cl=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"],dk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ll(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||lk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!dk.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 dl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var pl=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var fl=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs: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 pk=require("koa-pino-logger"),fk=require("correlation-id");function mk(){return{logger:uc,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 hk(){return h.HTTP_LOGGING?pk(mk()):(t,e)=>e()}var gk=hk(),VS=gk;var qS=require("uuid"),yk=require("correlation-id"),Ek=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,qS.v4)()),yk.withId(r,()=>e())},WS=Ek;function QS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of xT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Tk(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:Rc(r)};if(QS(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 jS=Tk;function YS(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 KS=j(require("crypto")),HS={"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 _k(t,e){try{let r=KS.default.randomBytes(16).toString("base64"),n={...HS};n["script-src"]=[...HS["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 JS=_k;var La={};v(La,{body:()=>Ak,params:()=>Sk});var nh=j(require("joi"));function zS(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:nh.default.any().optional(),updatedAt:nh.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function Ak(t,e){return zS(t,"body",e)}function Sk(t,e){return zS(t,"params",e)}var ZS=async(t,e)=>t.ip?await Cf(t.ip,()=>e()):e();var Ok={google:Jm};var XS=require("koa-passport"),Ik=require("passport-local").Strategy,ml=require("passport-oauth2-refresh"),xk=ol,wk=ul,Rk=ll,bk=XS;XS.use(new Ik(Os.options,Os.authenticate));async function Dk(t,e){let r=await Tr.getCallbackUrl(),n,i;try{if(n=await Tr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Tr.strategyFactory(n,Ua)}catch{throw new Error("Could not refresh OAuth Token")}return ml.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{ml.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function vk(t,e){let r=await Er.getCallbackUrl(t),n;try{n=await Er.strategyFactory(t,r,Ua)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return ml.use(n),new Promise(i=>{ml.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Ck(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await qm(r);return n?Dk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Kc();return n?vk(n,t):{err:{data:"Google configuration not found"}}}}}async function Nk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=se(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Ca(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Pk(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=ii(e,"budibase:auth"),s=await qc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Jr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await di(r,{sessionIds:o,reason:"logout"}),await Vc.logout(e.user?.email),await Ca(r)}var ah={};v(ah,{validate:()=>Fk});var b=j(require("joi")),Uk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function oh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Lk(t){let e=b.default.object({type:b.default.string().allow("component").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),settings:b.default.array().items(b.default.object().unknown(!0)).required()}).unknown(!0)});oh(e,t)}function Mk(t){let e=b.default.object({type:b.default.string().allow(...Object.values(Tl)).required(),required:b.default.boolean().required(),default:b.default.any(),display:b.default.string()}),r=b.default.object({type:b.default.string().allow(...Object.values(El)),readable:b.default.boolean(),fields:b.default.object().pattern(b.default.string(),e)}).required(),n=b.default.object({type:b.default.string().allow("datasource").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({docs:b.default.string(),plus:b.default.boolean().optional(),isSQL:b.default.boolean().optional(),auth:b.default.object({type:b.default.string().required()}).optional(),features:b.default.object(Object.fromEntries(Object.values(_l).map(i=>[i,b.default.boolean().optional()]))).optional(),relationships:b.default.boolean().optional(),description:b.default.string().required(),friendlyName:b.default.string().required(),type:b.default.string().allow(...Uk),datasource:b.default.object().pattern(b.default.string(),e).required(),query:b.default.object().pattern(b.default.string(),r).unknown(!0).required(),extra:b.default.object().pattern(b.default.string(),b.default.object({type:b.default.string().required(),displayName:b.default.string().required(),required:b.default.boolean(),data:b.default.object()}))})});oh(n,t)}function kk(t){let e=b.default.object().pattern(b.default.string(),{type:b.default.string().allow(...Object.values(oe)).required(),customType:b.default.string().allow(...Object.values(Ee)),title:b.default.string(),description:b.default.string(),enum:b.default.array().items(b.default.string()),pretty:b.default.array().items(b.default.string())}),r=b.default.object({properties:e,required:b.default.array().items(b.default.string())}).concat(e).required(),n=b.default.object({type:b.default.string().allow("automation").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),tagline:b.default.string().required(),icon:b.default.string().required(),description:b.default.string().required(),type:b.default.string().allow("ACTION","LOGIC").required(),stepId:b.default.string().disallow(...bh).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});oh(n,t)}function Fk(t){switch(t?.type){case"component":Lk(t);break;case"datasource":Mk(t);break;case"automation":kk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var uh={};v(uh,{Client:()=>Be,clients:()=>Wr,locks:()=>oi,utils:()=>tc});var ch={};v(ch,{isBlacklisted:()=>Gk,refreshBlacklist:()=>nO});var eO=j(require("dns")),gl=j(require("net"));var tO=require("util"),hl,Bk=(0,tO.promisify)(eO.default.lookup);async function rO(t){return gl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Bk(t,{all:!0})).map(r=>r.address)}async function nO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(gl.default.isIP(i))r.push(i);else{let s=await rO(i);r=r.concat(s)}}hl=r}async function Gk(t){if(hl||await nO(),hl?.length===0)return!1;let e;return gl.default.isIP(t)?e=[t]:e=await rO(t),!!hl?.find(r=>e.includes(r))}var dh={};v(dh,{init:()=>Vk});var $k={"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 iO(t,e){let r=$k[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ma=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=iO(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Ge(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return $A()}};var sO,lh;function Vk(t){yr||$c(),lh||(lh=new Ma(t)),sO||(sO=yr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await lh.processEvent(r,n,i)}))}var _h={};v(_h,{COUNT_FIELD_NAME:()=>Eh,Sql:()=>fO,SqlTable:()=>yl,designDoc:()=>Th,utils:()=>Rf});var cO=require("knex");var qk=require("knex");function ph(t){return["link","formula","ai"].indexOf(t)!==-1}function oO(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":Qt.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}=Of(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=y.primary[0],S=y.schema[O].externalType;S?t.specificType(p.foreignKey,S):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${p.type} is not a valid SQL type`;default:Ri.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!ph(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!ph(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||ph(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Qk(t,e,r){return t.createTable(e.name,n=>{oO(n,e,r)})}function jk(t,e,r,n,i){return t.alterTable(e.name,s=>{oO(s,e,r,n,i)})}function Yk(t,e){return t.dropTable(e.name)}var fh=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,qk.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=Qk(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=jk(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=ns(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=Yk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ns(n)}},yl=fh;var lO=require("lodash"),Eh="__bb_total";function aO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function mh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Hk(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function dO(t){return Array.isArray(t)?t.map(e=>dO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function uO(t){return t.sourceType==="internal"||t.sourceId===Ol}function Kk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function pO(t,e='"'){return`${e}${Kk(t,e)}${e}`}function hh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=pO(t[r],e));return`[${t.join(",")}]`}var Jk={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},gh=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 Lr.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]}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.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(If(e))return null;if(xf(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,lO.cloneDeep)(e);for(let r of Object.values(Sr)){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(ln)){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(),O=wf(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),O){let L=a?.[O.through]||d.through,T=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(A=>{A.whereExists(i(S,y)),r&&A.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(T)),e=e.where(A=>{A.whereExists(i(S,y.clone())),r&&A.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 O=(S,L,T)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ce=>E(ce,F?`${F}.${w}`:w,T))};for(let S in f){let L=f[S],T=ta(S),A=T.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let F=c(u);e=y(e,w.id.map(ce=>F?`${F}.${ce}`:ce),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Jk[g],T,(F,ce)=>O(ce,F,L)));else{let F=c(u);e=E(e,F?`${F}.${T}`:T,L)}}}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,O,S)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(hh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(hh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,O,S)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(pO(hh(S)))])):l(f,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(f===r?.notContains&&(L=L.not),L=L.where(T=>{for(let A of S){f===r?.containsAny?T=T.or:T=T.and;let B=typeof A=="string"?`"${A.toLowerCase()}"`:A;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),f===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),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),O=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 O)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,O)},(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 O=gc(E.low),S=gc(E.high),L=this.getFieldSchema(g),T=g,A=E.high,B=E.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(A!=null&&(A=`${A.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),A=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),O&&S?f.whereBetween(T,[B,A]):O?f.where(T,">=",B):S?f.where(T,"<=",A):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 O=this.convertClobs(g);return f.where(S=>S.whereNotNull(O).andWhere(O,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 O=this.convertClobs(g);return f.where(S=>S.not.whereNull(O).and.where(O,"!=",E)).or.whereNull(O)}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&&!Sf(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Or(r.documentType)}%`),e}isSqs(){return uO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;uO(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 ${Eh}`)}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 O=c[m];if(!O)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,L=a?.[r]||r,T=p&&a?.[p]||p,A=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=Hk(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ce=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),an=`${S}.${y||f}`,V=s.from(A).orderBy(an),k=p&&y&&E,D=k?`${T}.${g}`:`${S}.${f}`,W=k?`${L}.${E}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(p,{alias:T,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(w.map(ie=>this.rawQuotedIdentifier(ie))).limit(mh()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,d),K=U(this.knex.raw(`json_group_array(json_object(${ce}))`));break;case"pg":K=U(this.knex.raw(`json_agg(json_build_object(${ce}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${ce}) LIMIT ${mh()})`));break;case"mysql2":case"oracledb":K=U(this.knex.raw(`json_arrayagg(json_object(${ce}))`));break;case"mssql":{let q=s.select("*").from({[L]:V.select(F.map(ie=>s.ref(ie[1]).as(ie[0]))).limit(mh())});K=s.raw(`(SELECT ?? = (${q} 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())}},yh=class extends yl{constructor(r,n=aO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=ns(r);return i==="sqlite3"&&(s=dO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,cO.knex)(s),a,u=new gh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:aO()}});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===Ol){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(!this._isJsonColumn(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}_isJsonColumn(r){return Dh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){na(this.getSqlClient(),r,n)}},fO=yh;var Th={};v(Th,{base:()=>zk});function zk(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Zk={...aa,...ye},Xk=(t={})=>{Zu(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,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
|
+
}`,"platform_users_lowercase_2")},ea=async(t,e)=>{let r={account_by_email:k_,platform_users_lowercase_2:F_};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return gf(t,e,n,i,{arrayResponse:!0})})},B_={by_email2:P_,by_api_key:L_,by_app:U_},dr=async(t,e,r,n)=>{r||(r=se());let i=B_[t];return gf(t,e,r,i,n)};async function yf(t,e,r){let n=se(),i=B_[t];return Xo(t,e,n,i,r)}var Ef=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([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=Et(this.target.name),await this.replicate()}},G_=Ef;var V_=j(require("node-fetch"));var ta=Lr.removeKeyNumbering;function ei(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=ta(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)=>ei(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(ei(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${E} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>ei(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(ei(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[O,S]of Object.entries(f)){O=ta(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let L=g(O,S);if(L!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=L,(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)=>ei(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(ei(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)=>ei(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}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await $_(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await $_(n,i,r);throw s}}};async function $_(t,e,r){let n=await(0,V_.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 q_(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 q_(t,e,r,c)}async function dN(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 pN(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 q_(t,e,r,n)}}var Tf={};v(Tf,{createUserIndex:()=>fN});async function fN(){let t=se(),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 W_(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 mN(t){return W_(t,409)}var Af=`${C}${C}`,j_=/^\[.*]$/g,gN=encodeURIComponent(" "),Y_=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,yN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function hc(t){return t.startsWith("datasource"+C)}function EN(t){return!hc(t)}function ns(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 Sf(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==wi||t?.sourceType==="external"?!0:!!(t?._id&&hc(t._id))}function TN(t,e){return`${t}${Af}${encodeURIComponent(e)}`}function _N(t){return hc(t)?encodeURIComponent(t):t}function AN(t){return encodeURIComponent(t)}function Of(t){let e=t.split(Af),r=e.shift(),n=e.join(Af);if(n.includes(gN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function SN(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 ON(t){return Array.isArray(t)||typeof t=="string"&&t.match(j_)!=null}function IN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(j_)!=null?t.substring(1,t.length-1):t}function xN(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 If(t){let e=t.trim();if(!Y_.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function xf(t){return Y_.test(t.trim())}function gc(t){return t!=null&&t!==""}function wN(t){return yN.test(t)}function na(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 RN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function wf(t){if(RN(t))return t}var H_="Database does not exist.";function K_(t){return(0,J_.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var jr=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 hN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new rs(t,r,e);return new Hi(n)}var rs=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=K_(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=K_(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new jr(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===H_)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new jr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new jr(`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){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 documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(wh(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 jr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===H_)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=zu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new jr("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 na("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 jr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ke(t,e){return new Hi(new rs(t,e))}async function at(t,e,r){let n=Ke(t,r);return await e(n)}async function mf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Ju(e)}async function _f(t,e){let r=await Ju(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var Z_=null;function lr(t){return t||(t=Q()),ra(t)}function X_(t){return t||(t=Q()),t===ge?Se.AUDIT_LOGS.name:`${t}${C}${Se.AUDIT_LOGS.name}`}function bN(t){return t||(t=Q()),t===ge?Se.SCIM_LOGS.name:`${t}${C}${Se.SCIM_LOGS.name}`}function ra(t){return!t||t===ge?Se.GLOBAL.name:`${t}${C}${Se.GLOBAL.name}`}function bf(){return h.PLATFORM_URL}function Yr(){return!!h.MULTI_TENANCY}function DN(){return!!Ce.get()?.tenantId}function vN(){return h.MULTI_TENANCY}function is(t){if(!t)return;if(!Yr())return ge;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function CN(t){let e;try{e=Ce.get()}catch{e={}}return e={...e,...t},e}async function Hr(t,e){UN();let r=CN(t);return Ce.run(r,e)}async function NN(t){return await tA(),Hr({tenantId:is(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Df(t,e){let r=is(t);return Hr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||ge),Hr(t?{tenantId:t}:{},e)}async function PN(t,e){return eA(t,e)}async function eA(t,e,r){if(!t)throw new Error("appId is required");let n=is(t),i={appId:t,...r};return n&&(i.tenantId=n),Hr(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),Hr(r,e)}function UN(){if(Ce.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function LN(t,e){return eA(t,e,{isMigrating:!0})}function ar(){try{return Ce.get()?.identity}catch{}}function Q(){if(!Yr())return ge;let e=Ce.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Yp(){return Ce.get()?.automationId}function Pe(){let e=Ce.get()?.appId;return!e&&h.isTest()&&Z_?Z_:e}function vf(){return Ce.get()?.ip}var MN=()=>{let t=Pe();if(!t)throw new Error("Could not get appId");return ot(t)};function kN(t,e){if(!t)throw new Error("Must supply environment variables.");return Hr({environmentVariables:t},e)}function FN(t){return Hr({isScim:!0},t)}function Cf(t,e){return Hr({ip:t},e)}async function tA(t=!h.isTest()){let e=os();if(!e||e.snippets)return;let r,n=ss();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function BN(){let t=Ce.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=Ce.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ke(ra(t?.tenantId))}function GN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ke(X_())}function ss(t){let e=Pe();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ke(e,t)}function $N(t){let e=Pe();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ke(ot(e),t)}function VN(t){let e=Pe();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ke(Ku(e),t)}function Pt(){return!!Ce.get()?.isScim}function os(){try{return Ce.get()}catch{return}}function Nf(t){let e=os();if(e)return e.featureFlagCache?.[t]}function Pf(t,e){let r=os();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function qN(t){let e=os();if(e)return e.viewToTableCache?.[t]}function WN(t,e){let r=os();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function jt(t){let e=Q();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await rf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?jt(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[jt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(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 bustCache(e){let r=await this.getClient();try{await r.delete(jt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?jt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var as=new ti,fr=(a=>(a.CHECKLIST="checklist",a.INSTALLATION="installation",a.ANALYTICS_ENABLED="analyticsEnabled",a.UNIQUE_TENANT_ID="uniqueTenantId",a.EVENTS="events",a.BACKFILL_METADATA="backfillMetadata",a.EVENTS_RATE_LIMIT="eventsRateLimit",a))(fr||{}),ri=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ri||{}),yc=(...t)=>as.keys(...t),ni=(...t)=>as.get(...t),mr=(...t)=>as.store(...t),ia=(...t)=>as.delete(...t),Kr=(...t)=>as.withCache(...t),us=(...t)=>as.bustCache(...t);var nn={};v(nn,{getUser:()=>va,getUsers:()=>aM,invalidateUser:()=>Ca});var aa={};v(aa,{addTenantToUrl:()=>QN,getTenantDB:()=>Uf,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>jN});function Uf(t){return Ke(lr(t))}function QN(t){let e=Q();if(Yr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var jN=(t,e)=>{let r;return e?r=e.tenantId||ge:r=Q(),(is(t)||ge)===r},YN=Object.values(ws),oa=(t,e)=>{if(!Yr())return ge;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=YN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(bf()).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:()=>ut,tenants:()=>Qf,users:()=>Ut});var Ut={};v(Ut,{addSsoUser:()=>nA,addUser:()=>XN,getUserDoc:()=>rA,lookupTenantId:()=>HN,removeUser:()=>eP,updateUserDoc:()=>KN});function ut(){return Ke(Se.PLATFORM_INFO.name)}async function HN(t){return h.MULTI_TENANCY?(await rA(t)).tenantId:ge}async function rA(t){return ut().get(t)}async function KN(t){await ut().put(t)}function zN(t,e){return{_id:t,tenantId:e}}function JN(t,e,r){return{_id:e,userId:t,tenantId:r}}function ZN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Lf(t,e){let r=ut(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function nA(t,e,r,n){return Lf(t,()=>ZN(t,e,r,n))}async function XN(t,e,r,n){let i=[Lf(e,()=>zN(e,t)),Lf(r,()=>JN(e,r,t))];n&&i.push(nA(n,r,e,t)),await Promise.all(i)}async function eP(t){let e=ut(),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 Qf={};v(Qf,{addTenant:()=>TP,exists:()=>gP,getTenantIds:()=>hP,removeTenant:()=>_P,tenacyLockOptions:()=>Wf});var oi={};v(oi,{AUTO_EXTEND_POLLING_MS:()=>fA,doWithLock:()=>ds,newRedlock:()=>si});var pA=j(require("redlock"));var cs={};v(cs,{Duration:()=>ve,DurationType:()=>Vf,clearCookie:()=>zr,compare:()=>Ff,getAppIdFromCtx:()=>uP,getCookie:()=>ii,hasCircularStructure:()=>dP,hash:()=>kf,isAudited:()=>Gf,isClient:()=>cP,isPublicApiRequest:()=>aP,isServingApp:()=>iP,isServingBuilder:()=>sP,isServingBuilderPreview:()=>oP,isValidInternalAPIKey:()=>ca,newid:()=>Oe,openJwt:()=>Tc,resolveAppUrl:()=>uA,setCookie:()=>cA,timeout:()=>lP,validEmail:()=>$f});var Mf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),tP=h.SALT_ROUNDS||10;async function kf(t){let e=await Mf.genSalt(tP);return Mf.hash(t,e)}async function Ff(t,e){return Mf.compare(t,e)}var Ec=j(require("jsonwebtoken")),Bf="app"+C,sA="/app/",oA="/app/preview",rP="/builder",aA=`${rP}/app/`,nP="/api/public/v";function ua(t){return t&&t.startsWith(Bf)?t:void 0}async function uA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=oa(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Zo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function iP(t){return t.path.startsWith(`/${Bf}`)?!0:t.path.startsWith(sA)}function sP(t){return t.path.startsWith(aA)}function oP(t){return t.path.startsWith(oA)}function aP(t){return t.path.startsWith(nP)}async function uP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=ua(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=ua(t.request.body.appId));let n=iA(t.path);!r&&n&&(r=ua(n));let i=t.path.startsWith(oA),s=t.path.startsWith(sA)&&!i;!r&&s&&(r=ua(await uA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(aA)){let a=iA(t.request.headers.referer);r=ua(a)}return r}function iA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Bf))}function Tc(t){if(t)try{return Ec.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Ec.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 ii(t,e){let r=t.cookies.get(e);if(r)return Tc(r)}function cA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Ec.default.sign(e,h.JWT_SECRET));let i={expires:Qu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function zr(t,e){cA(t,null,e)}function cP(t){return t.headers["x-budibase-type"]==="client"}function lP(t){return new Promise(e=>setTimeout(e,t))}function Gf(t){return!!Oh[t]}function dP(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 $f(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}var Vf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Vf||{}),lA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},ve=class t{static convert(e,r,n){return n*lA[e]/lA[r]}static from(e,r){return{to:n=>t.convert(e,n,r),toMs:()=>t.convert(e,"milliseconds",r),toSeconds:()=>t.convert(e,"seconds",r)}}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,e){if(t==="custom")return si(e);switch(t){case"try_once":return si(ls.TRY_ONCE);case"try_twice":return si(ls.TRY_TWICE);case"default":return si(ls.DEFAULT);case"delay_500":return si(ls.DELAY_500);case"auto_extend":return si(ls.AUTO_EXTEND);default:throw Ri.unreachable(t)}}var ls={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 si(t={}){let e={...ls.DEFAULT,...t},n=(await sf()).getClient();return new pA.default([n],e)}function fP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var fA=ve.fromSeconds(10).toMs();async function ds(t,e){let r=await pP(t.type,t.customOptions),n,i;try{let s=fP(t),o=t.type==="auto_extend"?fA: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 qf=Se.PLATFORM_INFO.docs.tenants,Wf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function hP(){return(await _c()).tenantIds}async function _c(){let t=ut(),e;try{e=await t.get(qf)}catch(r){if(r.status===404)e=await EP();else throw r}return e}async function gP(t){return(await _c()).tenantIds.indexOf(t)!==-1}function yP(){return{_id:qf,tenantIds:[]}}async function EP(){let t=ut(),e=yP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(qf);throw r}return e}async function TP(t){let e=ut();await ds(Wf,async()=>{let r=await _c();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function _P(t){try{await ds(Wf,async()=>{let e=ut(),r=await _c();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 ai={};v(ai,{getAccount:()=>Jr,getAccountByTenantId:()=>ps,getStatus:()=>AP});var mA=j(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";Co.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,mA.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 jf=new da(h.ACCOUNT_PORTAL_URL),Yf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(Yf)return;let e={email:t},r=await jf.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]},ps=async t=>{if(Yf)return;let e={tenantId:t},r=await jf.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]},AP=async()=>{if(Yf)return;let t=await jf.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:()=>Ht,addAppBuilder:()=>nM,bulkGetGlobalUsersById:()=>Qc,bulkUpdateGlobalUsers:()=>Ra,cleanseUserObject:()=>vm,doesUserExist:()=>Z0,getAccountHolderFromUsers:()=>Nc,getAllUserIds:()=>z0,getAllUsers:()=>J0,getById:()=>pi,getCreatorCount:()=>tM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>EA,getExistingTenantUsers:()=>yA,getFirstPlatformUser:()=>pa,getGlobalUserByAppPage:()=>hS,getGlobalUserByEmail:()=>Mt,getPlatformUsers:()=>Ac,getUserCount:()=>eM,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>RA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>wA,isBuilder:()=>gs,isCreator:()=>Yt,isGlobalBuilder:()=>xA,paginatedUsers:()=>yS,removeAppBuilder:()=>iM,removePortalUserPermissions:()=>rM,searchExistingEmails:()=>zf,searchGlobalUsersByApp:()=>jc,searchGlobalUsersByAppAccess:()=>Dm,searchGlobalUsersByEmail:()=>gS,validateUniqueUser:()=>Cc});var om={};v(om,{getAccountHolderFromUsers:()=>Nc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>RA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>wA,isBuilder:()=>gs,isCreator:()=>Yt,isGlobalBuilder:()=>xA,validateUniqueUser:()=>Cc});var Kf={};v(Kf,{createCode:()=>OP,deleteCode:()=>xP,getCode:()=>IP,getExistingInvites:()=>Hf,getInviteCodes:()=>gA,updateCode:()=>SP});var hA=ve.fromDays(7).toSeconds();async function SP(t,e){await(await Zn()).store(t,e,hA)}async function OP(t,e){let r=Oe();return await(await Zn()).store(r,{email:t,info:e},hA),r}async function IP(t){let r=await(await Zn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function xP(t){await(await Zn()).delete(t)}async function gA(){let r=(await(await Zn()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function Hf(t){return(await gA()).filter(e=>t.includes(e.email))}async function zf(t){let e=[],r=await yA(t);e.push(...r.map(o=>o.email));let n=await EA(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await Hf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Ac(t){return await ea("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function pa(t){return(await Ac(t))[0]??null}async function yA(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 EA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ea("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ea("account_by_email",r)}var bc={};v(bc,{BadRequestError:()=>Oc,BudibaseError:()=>ms,EmailUnavailableError:()=>hr,ErrorCode:()=>wc,FeatureDisabledError:()=>xc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Sc,UsageLimitError:()=>Ic,getPublicError:()=>Rc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},wc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(wc||{}),Rc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends ms{constructor(r,n,i="http"){super(r,i);this.status=n}},Sc=class extends ct{constructor(e){super(e,404)}},Oc=class extends ct{constructor(e){super(e,400)}},Ic=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},xc=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{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 sm={};v(sm,{AccessController:()=>Xf,BUILTIN_ROLE_IDS:()=>ha,Role:()=>Zr,RoleHierarchyTraversal:()=>Dc,RoleIDVersion:()=>em,builtinRoleToNumber:()=>fa,checkForRoleResourceArray:()=>SA,externalRole:()=>CP,findRole:()=>ma,getAllRoleIds:()=>LP,getAllRoles:()=>im,getBuiltinRole:()=>_A,getBuiltinRoles:()=>rm,getDBRoleID:()=>OA,getExternalRoleID:()=>Xr,getExternalRoleIDs:()=>IA,getRole:()=>NP,getUserRoleHierarchy:()=>nm,getUserRoleIdHierarchy:()=>AA,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>vP,prefixRoleIDNoBuiltin:()=>Zf,roleIDsAreEqual:()=>Tt,roleToNumber:()=>DP,saveRoles:()=>PP,validInherits:()=>bP});var Jf=j(require("semver"));var vc=j(require("lodash/fp/cloneDeep"));var TA=require("lodash");var ha={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},pe={...ha,BUILDER:"BUILDER"},em={UUID:void 0,NAME:"name"};function RP(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var Zr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=em.NAME}addInheritance(e){return e&&typeof e=="string"?e=Zf(e):e&&Array.isArray(e)&&(e=e.map(Zf)),this.inherits=e,this}},Dc=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&&!RP(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),Qt.roles.checkForRoleInheritanceLoops(i))break}}return(0,TA.uniqBy)(i,s=>s._id)}},tm={ADMIN:new Zr(pe.ADMIN,pe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(pe.POWER),POWER:new Zr(pe.POWER,pe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(pe.BASIC),BASIC:new Zr(pe.BASIC,pe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(pe.PUBLIC),PUBLIC:new Zr(pe.PUBLIC,pe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Zr(pe.BUILDER,pe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function rm(){return(0,vc.default)(tm)}function ui(t){return Object.values(ha).includes(t)}function Zf(t){return ui(t)?t:cr(t)}function _A(t){let e=Object.values(tm).find(r=>t.includes(r._id));if(e)return(0,vc.default)(e)}function bP(t,e){if(!e)return!1;let r=n=>t.find(i=>Tt(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=rm(),r=Object.values(e).length+1;if(Tt(t,pe.ADMIN)||Tt(t,pe.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 DP(t){if(ui(t))return fa(t);let e=await nm(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=>Tt(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(ui(n.inherits))return fa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function vP(t,e){return t?e&&fa(t)>fa(e)?e:t:e}function Tt(t,e){return cr(t)===cr(e)}function CP(t){let e;return t._id&&(e=Xr(t._id)),{...t,_id:e,inherits:IA(t.inherits,t.version)}}function ma(t,e,r){let n=_A(t);n||(t=cr(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,vc.default)(tm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Xr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function NP(t,e){let r=ss(),n=[];if(!ui(t)){let i=await r.tryGet(OA(t));i&&n.push(i)}return ma(t,n,e)}async function PP(t){await ss().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function UP(t,e){let r=await im();if(Tt(t,pe.ADMIN))return r;let n=ma(t,r,e),i=[];return n&&(i=new Dc(r,e).walk(n)),i}async function AA(t){return(await nm(t)).map(r=>r._id)}async function nm(t,e){return UP(t,e)}function SA(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 LP(t){return(await im(t)).map(r=>r._id)}async function im(t){if(t)return at(t,e);{let r;try{r=ss()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(mc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Xr(a._id,a.version)));let i=rm(),s=[];!r||await MP(r)?s=[pe.ADMIN,pe.POWER,pe.BASIC,pe.PUBLIC]:s=[pe.ADMIN,pe.BASIC,pe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Xr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Xr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=SA(o.permissions,a);return n}}async function MP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Jf.default.valid(r)?!0:!Jf.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Xf=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,pe.BUILDER)||Tt(r,e)||Tt(r,pe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await AA(r),this.userHierarchies[r]=n),n?.find(i=>Tt(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 OA(t){return t?.startsWith("role")?t:cr(t)}function Xr(t,e){if(t.startsWith(`role${C}`)&&(ui(t)||e===em.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function IA(t,e){return t&&(typeof t=="string"?Xr(t,e):t.map(r=>Xr(r,e)))}var gs=st.users.isBuilder,en=st.users.isAdmin,xA=st.users.isGlobalBuilder,wA=st.users.isAdminOrBuilder,tn=st.users.hasAdminPermissions,_t=st.users.hasBuilderPermissions,RA=st.users.hasAppBuilderPermissions;async function Yt(t){let e=st.users.isCreator(t);return!e&&t?await kP(t):e}async function kP(t){let e=t?.userGroups||[];if(e.length>0){let r=se(),n=[];for(let i of e)try{let s=await r.get(i);n.push(s)}catch(s){if(s.error!=="not_found")throw s}return n.some(i=>Object.values(i.roles||{}).includes(ha.ADMIN))}return!1}async function Cc(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 Jr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Nc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await fs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ts={};v(Ts,{account:()=>qA,ai:()=>HA,analytics:()=>Uc,app:()=>WA,auditLog:()=>cS,auth:()=>Vc,automation:()=>QA,backfill:()=>iS,backfillCache:()=>Gc,backup:()=>aS,datasource:()=>jA,email:()=>YA,environmentVariable:()=>uS,group:()=>sS,identification:()=>Lt,initAsyncEvents:()=>L0,installation:()=>Aa,layout:()=>zA,license:()=>KA,org:()=>JA,plugin:()=>oS,processors:()=>pm,publishEvent:()=>_,query:()=>ZA,role:()=>wa,rowAction:()=>lS,rows:()=>eS,screen:()=>XA,serve:()=>rS,shutdown:()=>M0,table:()=>tS,user:()=>$e,view:()=>nS});var pm={};v(pm,{analyticsProcessor:()=>FA,init:()=>eU,processors:()=>gr});var Uc={};v(Uc,{enabled:()=>Pc});var Pc=async()=>Lc();var NA=require("posthog-node");var FP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",BP=t=>t==="served:app:preview"||t==="served:app";var DA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},vA=async t=>{if(!FP(t))return!1;let e=await GP(t);if(e){let r=new Date(e.timestamp);switch(DA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await bA(t,{timestamp:Date.now()}),!1):!0}}else return await bA(t,{timestamp:Date.now()}),!1},CA=t=>{let e=`eventsRateLimit:${t}`;return BP(t)&&(e=e+":"+Pe()),e},GP=async t=>{let e=CA(t);return await ni(e)},bA=async(t,e)=>{let r=CA(t),n=DA[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var VP=["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"],ga=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new NA.PostHog(e)}async processEvent(e,r,n,i){if(VP.includes(e)||await vA(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Pe();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 PA=ga;var qP=["installation:version:upgraded","installation:version:downgraded"],WP=["installation","tenant"],ya=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new PA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!qP.includes(e)&&!await Pc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!WP.includes(e.type)&&!await Pc()||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 am=h.SELF_HOSTED&&!h.isDev(),Ea=class{async processEvent(e,r,n){am||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){am||console.log("[audit] identified",e)}async identifyGroup(e){am||console.log("[audit] group identified",e)}shutdown(){}};var dm={};v(dm,{JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>JP});var UA=j(require("events"));function QP(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 um=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new UA.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=>{let i=r(n);async function s(a){try{await a}catch{await Qt.wait(50),await s(r(n))}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n)}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){let n=r?.jobId?.toString();if(n&&this._queuedJobIds.has(n)){console.log(`Ignoring already queued job ${n}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";n&&this._queuedJobIds.add(n);let i=()=>{let o={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:r};this._messages.push(o),this._addCount++,this._emitter.emit("message",o)},s=r?.delay;return s?setTimeout(i,s):i(),{id:n}}async close(){}async removeRepeatableByKey(e){console.log(e)}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}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.map(e=>QP(e))}},LA=um;var cm=j(require("bull"));var ys=(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))(ys||{});function MA(t,e,r){HP(t,e),r&&jP(t,r)}function jP(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var YP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function HP(t,e){let r=YP[e];function n(i,s){let o=i.data.event?.appId;if(o)return Df(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var KP=ve.fromMinutes(5).toMs(),zP=ve.fromSeconds(30).toMs(),lm=ve.fromSeconds(60).toMs(),Ta=[],Mc;async function kA(){for(let t of Ta)await t.clean(lm,"completed"),await t.clean(lm,"failed")}function ci(t,e={}){let n={redis:zi(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:KP,lockRenewTime:zP}};e.jobOptions&&(n.defaultJobOptions=e.jobOptions);let i;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?i=new cm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new LA(t,n):i=new cm.default(t,n),MA(i,t,e?.removeStalledCb),Ta.push(i),!Mc&&!h.isTest()&&(Mc=ko(kA,lm),kA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function JP(){if(Mc&&Fo(Mc),Ta.length){for(let t of Ta)await t.close();Ta=[]}console.log("Queues shutdown")}var Es=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ci("auditLogQueue"),t.auditLogQueue.process(async n=>Ge(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&&Gf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Pe(),hostInfo:r.hostInfo},tenantId:Q()})}}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 FA=new ya,ZP=new Ea,XP=new Es;function eU(t){return Es.init(t)}var gr=new _a([FA,ZP,XP]);var kc={};v(kc,{checkInstallVersion:()=>nU,getInstall:()=>Sa,getInstallFromDB:()=>mm});var fm=j(require("semver"));var Sa=async()=>Kr("installation",86400,mm,{useTenancy:!1});async function tU(t){let e={_id:Se.PLATFORM_INFO.docs.install,installId:Oe(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return mm();throw r}}var mm=async()=>at(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 tU(t);else throw r}return e}),rU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await us("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},nU=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=fm.default.gt(r,e),i=fm.default.lt(r,e);await rU(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Lt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Kn(`Invalid version "${r}" - is it semver?`):Kn("Failed to retrieve version",n)}};var iU=async()=>{let t=Ap(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Oa();return{id:BA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Fc(Q()),s=Oa();return{id:BA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Fc(Q()),s=await li(),o=n.account,a;return o?a=o.hosting:a=Oa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},sU=async(t,e)=>{let r=t,n="installation",i=Oa(),s=h.VERSION,o=xa(),a={id:r,type:n,hosting:i,version:s,environment:o};await hm(a,e),await Ia({...a,id:`$${n}_${r}`},e)},oU=async(t,e,r)=>{let n=await Fc(t),i="tenant",s=await li(),o=xa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await hm(a,r),await Ia({...a,id:`$${i}_${n}`},r)},aU=async(t,e,r)=>{let n=t._id,i=await Fc(t.tenantId),s="user",o=_t(t),a=tn(t),u;Wa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,d=!!e&&l&&e.verified,m=await li(),p=e?e.hosting:Oa(),f=xa();await Ia({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},uU=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 li(),c=xa();if(Va(t)){let d=await Mt(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await gr.identify(t,e)},hm=async(t,e)=>{await gr.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Oa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>cU()?"account-portal":(await Sa()).installId,Fc=async t=>h.SELF_HOSTED?GA(t):t,GA=async t=>Ge(t,()=>Kr("uniqueTenantId",86400,async()=>{let e=se(),r=await Bc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),cU=()=>h.SERVICE==="account-portal",BA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Lt={getCurrentIdentity:iU,identifyInstallationGroup:sU,identifyTenantGroup:oU,identifyUser:aU,identifyAccount:uU,identify:Ia,identifyGroup:hm,getInstallationId:li,getUniqueTenantId:GA};var Gc={};v(Gc,{end:()=>dU,isAlreadySent:()=>Em,isBackfillingEvent:()=>ym,recordEvent:()=>gm,start:()=>lU});var lU=async t=>fU({eventWhitelist:t}),gm=async(t,e)=>{let r=Tm(t,e);await mr(r,e,void 0,{useTenancy:!1})},dU=async()=>{await mU(),await hU()},pU=async()=>ni("backfillMetadata"),fU=async t=>mr("backfillMetadata",t),mU=async()=>{await ia("backfillMetadata")},hU=async()=>{let t=Tm(),e=await yc(t);for(let r of e)await ia(r,{useTenancy:!1})},ym=async t=>{let r=(await pU())?.eventWhitelist;return!!(r&&r.includes(t))},Em=async(t,e)=>{let r=Tm(t,e);return!!await ni(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}`},Tm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=gU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var yr;function $c(){yr=ci("systemEventQueue")}async function $A(){yr&&await yr.close()}async function VA(t){yr||$c();let{event:e,identity:r}=t;Sh.indexOf(e)!==-1&&r.tenantId&&await yr.add(t)}var _=async(t,e,r,n)=>{let i=n||await Lt.getCurrentIdentity();if(!(n?!1:await ym(t))){await VA({event:t,identity:i,properties:e,timestamp:r}),await gr.processEvent(t,i,e,r);return}await Em(t,e)||(await gr.processEvent(t,i,e,r),await gm(t,e))};async function yU(t,e){let r={tenantId:t.tenantId};await _("account:created",r,void 0,e)}async function EU(t){let e={tenantId:t.tenantId};await _("account:deleted",e)}async function TU(t){let e={tenantId:t.tenantId};await _("account:verified",e)}var qA={created:yU,deleted:EU,verified:TU};var _U=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:created",r,e)};async function AU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:updated",e)}async function SU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:deleted",e)}async function OU(t,e){let r={appId:t.appId,audited:{name:t.name}};await _("app:published",r,e)}async function IU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:unpublished",e)}async function xU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:file:imported",e)}async function wU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await _("app:duplicated",r)}async function RU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await _("app:template:imported",r)}async function bU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await _("app:version:updated",n)}async function DU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await _("app:version:reverted",n)}async function vU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:reverted",e)}async function CU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:exported",e)}var WA={created:_U,updated:AU,deleted:SU,published:OU,unpublished:IU,fileImported:xU,duplicated:wU,templateImported:RU,versionUpdated:bU,versionReverted:DU,reverted:vU,exported:CU};async function NU(t,e){let n={userId:(await Lt.getCurrentIdentity()).id,source:t,audited:{email:e}};await _("auth:login",n)}async function PU(t){let r={userId:(await Lt.getCurrentIdentity()).id,audited:{email:t}};await _("auth:logout",r)}async function UU(t,e){let r={type:t};await _("auth:sso:created",r,e)}async function LU(t){let e={type:t};await _("auth:sso:updated",e)}async function MU(t,e){let r={type:t};await _("auth:sso:activated",r,e)}async function kU(t){let e={type:t};await _("auth:sso:deactivated",e)}var Vc={login:NU,logout:PU,SSOCreated:UU,SSOUpdated:LU,SSOActivated:MU,SSODeactivated:kU};async function FU(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 _("automation:created",r,e)}async function BU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:trigger:updated",e)}async function GU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:deleted",e)}async function $U(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:tested",e)}var VU=async(t,e)=>{let r={count:t};await _("automations:run",r,e)};async function qU(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 _("automation:step:created",n,r)}async function WU(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 _("automation:step:deleted",r)}var QA={created:FU,triggerUpdated:BU,deleted:GU,tested:$U,run:VU,stepCreated:qU,stepDeleted:WU};function _m(t){return!Object.values(Ba).includes(t.source)}async function QU(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await _("datasource:created",r,e)}async function jU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await _("datasource:updated",e)}async function YU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await _("datasource:deleted",e)}var jA={created:QU,updated:jU,deleted:YU};async function HU(t){let e={};await _("email:smtp:created",e,t)}async function KU(){let t={};await _("email:smtp:updated",t)}var YA={SMTPCreated:HU,SMTPUpdated:KU};async function zU(t){let e={};await _("ai:config:created",e,t)}async function JU(){let t={};await _("ai:config:updated",t)}var HA={AIConfigCreated:zU,AIConfigUpdated:JU};async function ZU(t,e){let r={accountId:t.accountId,...e};await _("license:plan:changed",r)}async function XU(t){let e={accountId:t.accountId};await _("license:activated",e)}async function eL(t){let e={accountId:t.accountId};await _("license:checkout:opened",e)}async function tL(t){let e={accountId:t.accountId};await _("license:checkout:success",e)}async function rL(t){let e={accountId:t.accountId};await _("license:portal:opened",e)}async function nL(t){let e={accountId:t.accountId};await _("license:payment:failed",e)}async function iL(t){let e={accountId:t.accountId};await _("license:payment:recovered",e)}var KA={planChanged:ZU,activated:XU,checkoutOpened:eL,checkoutSuccess:tL,portalOpened:rL,paymentFailed:nL,paymentRecovered:iL};async function sL(t,e){let r={layoutId:t._id};await _("layout:created",r,e)}async function oL(t){let e={layoutId:t};await _("layout:deleted",e)}var zA={created:sL,deleted:oL};async function aL(t){let e={};await _("org:info:name:updated",e,t)}async function uL(t){let e={};await _("org:info:logo:updated",e,t)}async function cL(t){let e={};await _("org:platformurl:updated",e,t)}async function lL(){let t={};await _("analytics:opt:out",t)}async function dL(){let t={};await _("analytics:opt:out",t)}var JA={nameUpdated:aL,logoUpdated:uL,platformURLUpdated:cL,analyticsOptOut:lL,analyticsOptIn:dL};var pL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:created",n,r)},fL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:updated",r)},mL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:deleted",r)},hL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await _("query:import",n)},gL=async(t,e)=>{let r={count:t};await _("queries:run",r,e)},yL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:previewed",r)},ZA={created:pL,updated:fL,deleted:mL,imported:hL,run:gL,previewed:yL};async function EL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:created",r,e)}async function TL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:updated",e)}async function _L(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:deleted",e)}async function AL(t,e,r){let n={userId:t._id,roleId:e};await _("role:assigned",n,r)}async function SL(t,e){let r={userId:t._id,roleId:e};await _("role:unassigned",r)}var wa={created:EL,updated:TL,deleted:_L,assigned:AL,unassigned:SL};async function OL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:created",r,e)}async function IL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:deleted",e)}var XA={created:OL,deleted:IL};var xL=async(t,e)=>{let r={count:t};await _("rows:created",r,e)},wL=async(t,e)=>{let r={tableId:t._id,count:e};await _("rows:imported",r)},eS={created:xL,imported:wL};async function RL(t,e){let r={tableId:t._id,audited:{name:t.name}};await _("table:created",r,e)}async function bL(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 _("table:updated",i)}async function DL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:deleted",e)}async function vL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await _("table:exported",r)}async function CL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:imported",e)}var tS={created:RL,updated:bL,deleted:DL,exported:vL,imported:CL};async function NL(t){let e={timezone:t};await _("served:builder",e)}async function PL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await _("served:app",n)}async function UL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await _("served:app:preview",r)}var rS={servedBuilder:NL,servedApp:PL,servedAppPreview:UL};async function LL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:created",r,e)}async function ML(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:updated",e)}async function kL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:deleted",e)}async function FL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:onboarding:complete",e)}async function BL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:admin:assigned",r,e)}async function GL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:admin:removed",e)}async function $L(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:builder:assigned",r,e)}async function VL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:builder:removed",e)}async function qL(t){let e={audited:{email:t}};await _("user:invited",e)}async function WL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:invite:accepted",e)}async function QL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:force:reset",e)}async function jL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:updated",e)}async function YL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset:requested",e)}async function HL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset",e)}async function KL(t){let e={users:t};await _("user:data:collaboration",e)}var $e={created:LL,updated:ML,deleted:kL,permissionAdminAssigned:BL,permissionAdminRemoved:GL,permissionBuilderAssigned:$L,permissionBuilderRemoved:VL,onboardingComplete:FL,invited:qL,inviteAccepted:WL,passwordForceReset:QL,passwordUpdated:jL,passwordResetRequested:YL,passwordReset:HL,dataCollaboration:KL};async function zL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await _("view:created",r,e)}async function JL(t){let e={tableId:t.tableId};await _("view:updated",e)}async function ZL(t){let e={tableId:t.tableId};await _("view:deleted",e)}async function XL(t,e){let r={tableId:t._id,format:e};await _("view:exported",r)}async function e0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await _("view:filter:created",n,r)}async function t0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await _("view:filter:updated",r)}async function r0(t){let e={tableId:t.tableId};await _("view:filter:deleted",e)}async function n0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await _("view:calculation:created",n,r)}async function i0(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:updated",e)}async function s0(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:deleted",e)}async function o0(t,e){let r={tableId:t};await _("view:join:created",r,e)}var nS={created:zL,updated:JL,deleted:ZL,exported:XL,filterCreated:e0,filterUpdated:t0,filterDeleted:r0,calculationCreated:n0,calculationUpdated:i0,calculationDeleted:s0,viewJoinCreated:o0};async function a0(t){let e={currentVersion:t};await _("installation:version:checked",e)}async function u0(t,e){let r={from:t,to:e};await _("installation:version:upgraded",r)}async function c0(t,e){let r={from:t,to:e};await _("installation:version:downgraded",r)}async function l0(){let t={};await _("installation:firstStartup",t)}var Aa={versionChecked:a0,upgraded:u0,downgraded:c0,firstStartup:l0};var As=!h.SELF_HOSTED&&!h.isDev();async function d0(t){As||await _("app:backfill:succeeded",t)}async function p0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("app:backfill:failed",e)}async function f0(t){As||await _("tenant:backfill:succeeded",t)}async function m0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("tenant:backfill:failed",e)}async function h0(){if(As)return;let t={};await _("installation:backfill:succeeded",t)}async function g0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("installation:backfill:failed",e)}var iS={appSucceeded:d0,appFailed:p0,tenantSucceeded:f0,tenantFailed:m0,installationSucceeded:h0,installationFailed:g0};async function y0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:created",r,e)}async function E0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:updated",e)}async function T0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:deleted",e)}async function _0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:user_added",r)}async function A0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:users_deleted",r)}async function S0(t){let e={groupId:t,onboarding:!0};await _("user_group:onboarding_added",e)}async function O0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await _("user_group:permissions_edited",e)}var sS={created:y0,updated:E0,deleted:T0,usersAdded:_0,usersDeleted:A0,createdOnboarding:S0,permissionsEdited:O0};async function I0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:init",e)}async function x0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await _("plugin:imported",e)}async function w0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:deleted",e)}var oS={init:I0,imported:x0,deleted:w0};async function R0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await _("app:backup:restored",e)}async function b0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await _("app:backup:triggered",s)}var aS={appBackupRestored:R0,appBackupTriggered:b0};async function D0(t,e){let r={name:t,environments:e};await _("environment_variable:created",r)}async function v0(t){let e={name:t};await _("environment_variable:deleted",e)}async function C0(t){let e={userId:t};await _("environment_variable:upgrade_panel_opened",e)}var uS={created:D0,deleted:v0,upgradePanelOpened:C0};async function N0(t){let e={filters:t};await _("audit_log:filtered",e)}async function P0(t){let e={filters:t};await _("audit_log:downloaded",e)}var cS={filtered:N0,downloaded:P0};async function U0(t,e){await _("row_action:created",t,e)}var lS={created:U0};function L0(){}var M0=()=>{gr.shutdown(),console.log("Events shutdown")};var Am=async t=>{await $e.deleted(t),_t(t)&&await $e.permissionBuilderRemoved(t),tn(t)&&await $e.permissionAdminRemoved(t)},k0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await wa.assigned(t,i)},F0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await wa.unassigned(t,i)},B0=async(t,e)=>{let r=t.roles,n=e?.roles;await k0(t,r,n),await F0(t,r,n)},Sm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Lt.identifyUser(t,n),e?(await $e.updated(t),$0(t,e)&&await $e.permissionBuilderRemoved(t),q0(t,e)&&await $e.permissionAdminRemoved(t),W0(t,e)&&await $e.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await $e.passwordForceReset(t),t.password!==e.password&&await $e.passwordUpdated(t)):await $e.created(t),G0(t,e)&&await $e.permissionBuilderAssigned(t),V0(t,e)&&await $e.permissionAdminAssigned(t),await B0(t,e)},G0=(t,e)=>dS(t,e,_t),$0=(t,e)=>pS(t,e,_t),V0=(t,e)=>dS(t,e,tn),q0=(t,e)=>pS(t,e,tn),W0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",dS=(t,e,r)=>!(!r(t)||e&&r(e)),pS=(t,e,r)=>!(r(t)||!e||!r(e));var Wc={};v(Wc,{createASession:()=>j0,endSession:()=>Y0,getSession:()=>Im,getSessionsForUser:()=>qc,invalidateSessions:()=>di,updateSessionTTL:()=>Om});var fS=require("uuid");var mS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):ve.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function qc(t){return t?(await(await qr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function di(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await qc(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await qr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||Zi(`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 j0(t,e){await di(t,{reason:"creation"});let r=await qr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,fS.v4)(),s=Ss(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,mS),o}async function Om(t){let e=await qr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,mS)}async function Y0(t,e){await(await qr()).delete(Ss(t,e))}async function Im(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await qr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var bm={};v(bm,{PASSWORD_MAX_LENGTH:()=>wm,PASSWORD_MIN_LENGTH:()=>xm,validatePassword:()=>Rm});var xm=+(h.PASSWORD_MIN_LENGTH||12),wm=+(h.PASSWORD_MAX_LENGTH||512);function Rm(t){return!t||t.length<xm?{valid:!1,error:`Password invalid. Minimum ${xm} characters.`}:t.length>wm?{valid:!1,error:`Password invalid. Maximum ${wm} characters.`}:{valid:!0}}var H0=async t=>{let e=t._id;await Ut.removeUser(t),await Am(t),await nn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Ht=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&&en(e)?!1:await t.features.isSSOEnforced()||Wa(e)?!0:(r||(r=await ps(Q())),!!(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 ct("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Rm(o);if(!d.valid)throw new ct(d.error,400)}u=r.hashPassword?await kf(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||Xi();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 se().allDocs(Xn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await jc(e,{})).length}}static async getUsersByAppAccess(e){return await Dm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Mt(e)}static async getUser(e){let r=await pi(e);return r&&delete r.password,r}static async bulkGet(e){return await Qc(e)}static async bulkUpdate(e){return await Ra(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=se(),{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 pi(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 Mt(s),c&&c._id!==o))throw new hr(s);let l=c?0:1,d=await Yt(c)!==await Yt(e)?1:0;return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Cc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=vm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Sm(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await zf(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 Yt(d)&&o.push(d)}let l=await ps(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 Ra(d);for(let p of d)await Ut.addUser(n,p._id,p.email),await Sm(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await Nc(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 Ra(a),l=(await Promise.all(o.map(Yt))).filter(p=>!!p).length,d=[];for(let p of o){let g=(await pa(p._id)).ssoId;g&&(await Ac(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await H0(p)}await ut().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=se(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Jr(o))throw n.userId===ar()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await Yt(n)?1:0;await t.quotas.removeUsers(1,s),await Am(n),await nn.invalidateUser(i),await di(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("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 Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Qc(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function z0(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function J0(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ra(t){return await se().bulkDocs(t)}async function pi(t,e){let n=await se().get(t);return e?.cleanup&&(n=Da(n)),n}async function Mt(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=Da(n)),n}async function Z0(t){try{let e=await Mt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function jc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=fc(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=Da(s)),s}async function Dm(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 _f(lr(),i)).rows}function hS(t,e){if(e)return pc(ot(t),e._id)}async function gS(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}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var X0=8;async function yS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??X0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await pi(e.equal._id)]:r?(u=await jc(r,a),l=d=>hS(r,d)):e?.string?.email?(u=await gS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Qc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Xn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Lr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Xn(null,a))).rows.map(m=>m.doc),ff(u,s,{paginate:!0,property:c,getKey:l})}async function eM(){return(await yf("by_email2",{limit:0,include_docs:!1})).total_rows}async function tM(){let t=0;async function e(r){let n=await yS({bookmark:r}),i=await Promise.all(n.data.map(Yt));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 vm(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 nM(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ht.save(t,{hashPassword:!1})}async function iM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ht.save(t,{hashPassword:!1})}var ES=3600;async function sM(t,e){let n=await Uf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Jr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function oM(t){let e=await Ht.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 Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function va({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=sM),!e)try{e=Q()}catch{e=await Ut.lookupTenantId(t)}let i=await Ko(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,ES)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await Ht.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function aM(t){let e=await Ko(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await oM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,ES);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ca(t){await(await Ko()).delete(t)}var Um={};v(Um,{Writethrough:()=>Nm});var TS=1e4,Cm=null;async function Pm(){if(!Cm){let t=await nf();Cm=new ti(t)}return Cm}function Yc(t,e){return t.name+e}function _S(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function uM(t,e,r=TS){let n=await Pm(),i=e._id,s;i&&(s=await n.get(Yc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({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;Zi("Ignoring conflict in write-through cache")}})).executed||Zi("Ignoring redlock conflict in write-through cache")),s=_S(a,o?null:s?.lastWrite),a._id&&await n.store(Yc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function cM(t,e){let r=await Pm(),n=Yc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=_S(s),await r.store(n,i)}return i.doc}async function lM(t,e,r){let n=await Pm();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(Yc(t,i))}finally{await t.remove(i,r)}}var Nm=class{constructor(e,r=TS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return uM(this.db,e,r)}async get(e){return cM(this.db,e)}async remove(e,r){return lM(this.db,e,r)}};var Lm={};v(Lm,{createCode:()=>pM,getCode:()=>fM,invalidateCode:()=>mM});var dM=ve.fromHours(1).toSeconds();async function pM(t,e){let r=Oe();return await(await zo()).store(r,{userId:t,info:e},dM),r}async function fM(t){let r=await(await zo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function mM(t){await(await zo()).delete(t)}var km={};v(km,{DocWritethrough:()=>Mm,DocWritethroughProcessor:()=>Na,getProcessor:()=>gM,init:()=>AS});var hM=100,Hc,Na=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:hM}})),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}){let i=Ke(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Mm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Na.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function AS(){return Hc=new Na().init(),Hc}function gM(){return Hc||AS()}function Gm(t){return`config${C}${t}`}async function kt(t){let e=se();try{return await e.get(Gm(t))}catch(r){if(r.status===404)return;throw r}}async function yM(t){return se().put(t)}async function Bc(){let t=await kt("settings");return t||(t={_id:Gm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Pa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Lc({config:t.config}),t}async function $m(){return(await Bc()).config}async function Pa(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await kt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Lc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Kr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await kt("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 EM(){return await kt("google")}async function Kc(){return(await EM())?.config}async function Vm(){if(!h.SELF_HOSTED)return Fm();let t=await Kc();return(!t||!t.activated)&&(t=Fm()),t}function Fm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function TM(){return kt("logos_oidc")}async function _M(){return kt("oidc")}async function AM(){let t=(await _M())?.config;return t?.configs&&t.configs[0]}async function qm(t){let e=(await kt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function SS(){return kt("smtp")}async function SM(t){let e=await SS();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}}}async function OM(){return(await kt("scim"))?.config}async function IM(){return kt("ai")}var Wm={};v(Wm,{BUILDER:()=>DM,BUILTIN_PERMISSIONS:()=>zc,CREATOR:()=>vM,GLOBAL_BUILDER:()=>CM,PermissionImpl:()=>fe,PermissionLevel:()=>Rs,PermissionType:()=>$a,doesHaveBasePermission:()=>RM,getAllowedLevels:()=>wS,getBuiltinPermissionByID:()=>wM,getBuiltinPermissions:()=>xM,isPermissionLevelHigherThanRead:()=>bM,levelToNumber:()=>xS});var OS=j(require("lodash/flatten")),IS=j(require("lodash/fp/cloneDeep")),fe=class{constructor(e,r){this.type=e,this.level=r}};function xS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function wS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var zc={PUBLIC:{_id:"public",name:"Public",permissions:[new fe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new fe("query","read"),new fe("table","read"),new fe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new fe("query","write"),new fe("table","write"),new fe("automation","execute"),new fe("legacy_view","read"),new fe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new fe("table","write"),new fe("user","read"),new fe("automation","execute"),new fe("webhook","read"),new fe("legacy_view","read"),new fe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new fe("table","admin"),new fe("user","admin"),new fe("automation","admin"),new fe("webhook","read"),new fe("query","admin"),new fe("legacy_view","read"),new fe("app","read")]}};function xM(){return(0,IS.default)(zc)}function wM(t){return Object.values(zc).find(r=>r._id===t)}function RM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(zc),s=(0,OS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&wS(o.level).indexOf(e)!==-1)return!0;return!1}function bM(t){return xS(t)>1}var DM="builder",vM="creator",CM="globalBuilder";var Ym={};v(Ym,{FlagSet:()=>Zc,all:()=>LM,flags:()=>Qm,init:()=>NM,isEnabled:()=>UM,parseEnvFlags:()=>el,shutdown:()=>PM,testutils:()=>jm});var Xc=j(require("crypto"));var RS=require("posthog-node"),bS=j(require("dd-trace"));var DS=require("lodash");var Jc;function NM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Jc=new RS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:ve.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function PM(){Jc?.shutdown()}function el(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 Zc=class{constructor(e){this.flagSchema=e;this.setId=Xc.randomUUID()}defaults(){return(0,DS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await bS.default.trace("features.fetch",async e=>{let r=Nf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:l,key:d,value:m}of el(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=vf();l&&(u=Xc.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,Jc&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await Jc.getAllFlags(u,{personProperties:l});for(let[m,p]of Object.entries(d)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${p}`);continue}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)}}}Pf(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},Qm=new Zc(Rh);async function UM(t){return await Qm.isEnabled(t)}async function LM(){return await Qm.fetch()}var jm={};v(jm,{setFeatureFlags:()=>vS,withFeatureFlags:()=>FM});function MM(){let t={};for(let{tenantId:e,key:r,value:n}of el(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function kM(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=MM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=kM(r);return Ro({TENANT_FEATURE_FLAGS:n})}function FM(t,e,r){let n=vS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var sh={};v(sh,{adminOnly:()=>dl,auditLog:()=>al,authError:()=>Ue,buildAuthMiddleware:()=>xk,buildCsrfMiddleware:()=>Rk,buildTenancyMiddleware:()=>wk,builderOnly:()=>fl,builderOrAdmin:()=>pl,google:()=>Er,internalApi:()=>cl,joiValidator:()=>La,oidc:()=>Tr,passport:()=>bk,platformLogout:()=>Pk,refreshOAuthToken:()=>Ck,ssoCallbackUrl:()=>sn,updateUserOAuth:()=>Nk});var ih={};v(ih,{adminOnly:()=>dl,auditLog:()=>al,authError:()=>Ue,authenticated:()=>ol,builderOnly:()=>fl,builderOrAdmin:()=>pl,correlation:()=>WS,csp:()=>zS,csrf:()=>ll,datasource:()=>Ok,errorHandling:()=>jS,google:()=>Er,internalApi:()=>cl,ip:()=>ZS,joiValidator:()=>La,local:()=>Os,oidc:()=>Tr,pino:()=>VS,querystringToBody:()=>YS,ssoCallbackUrl:()=>sn,tenancy:()=>ul});var Os={};v(Os,{authenticate:()=>$M,options:()=>GM});function Ue(t,e,r){return t(r,null,{message:e})}async function sn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await $m(),n="/api/global/auth";return Yr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Hm="Invalid credentials",BM="This account has expired. Please reset your password",GM={passReqToCallback:!0};async function $M(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await Mt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,Hm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Hm)):i.password?await Ff(r,i.password)?(delete i.password,n(null,i)):Ue(n,Hm):(console.info(`user=${e} has no password set`,i),Ue(n,BM))}var Er={};v(Er,{buildVerifyFn:()=>PS,getCallbackUrl:()=>WM,strategyFactory:()=>Km});var Ua=t=>Promise.resolve(t);async function tl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ue(r,"sso user id required");if(!t.email)return Ue(r,"sso user email required");let i=Xi(t.userId),s;try{s=await pi(i)}catch(a){if(!a.status||a.status!==404)return Ue(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Mt(t.email)),!s&&e)return Ue(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await VM(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ue(r,"Error saving user",a)}return r(null,o)}async function VM(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 qM=require("passport-google-oauth").OAuth2Strategy;function PS(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 tl(s,!0,i,t)}}async function Km(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=PS(r);return new qM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function WM(t){return sn("google",t)}var Tr={};v(Tr,{buildVerifyFn:()=>LS,fetchStrategyConfig:()=>HM,getCallbackUrl:()=>KM,strategyFactory:()=>YM});var US=j(require("node-fetch"));var QM=require("@techpass/passport-openidconnect").Strategy;function LS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:jM(n,i),oauth2:{accessToken:s,refreshToken:o}};return tl(l,!1,c,t)}}function jM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&$f(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function YM(t,e){try{let r=LS(e),n=new QM(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function HM(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,US.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 KM(){return sn("oidc")}var zm={};v(zm,{postAuth:()=>ZM,preAuth:()=>JM});var zM=require("passport-google-oauth").OAuth2Strategy;async function MS(){let t=await Vm();if(!t)throw new Error("No google configuration found");return t}async function JM(t,e,r){let n=await MS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Km(n,s,Ua);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function ZM(t,e,r){let n=await MS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ii(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new zM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var XM=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(XM);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}}):[],mi=(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 rh={};v(rh,{SecretOption:()=>BS,decrypt:()=>th,decryptFile:()=>sk,encrypt:()=>rk,encryptFile:()=>nk,getSecret:()=>eh});var _r=j(require("crypto")),on=j(require("fs")),Zm=j(require("zlib"));var Jm=require("path"),rl="aes-256-ctr",FS="-",ek=1e4,tk=32,nl=16,Xm=16,BS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(BS||{});function eh(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 il(t,e){return _r.default.pbkdf2Sync(t,e,ek,tk,"sha512")}function rk(t,e="api"){let r=_r.default.randomBytes(nl),n=il(eh(e),r),i=_r.default.createCipheriv(rl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${FS}${a}`}function th(t,e="api"){let[r,n]=t.split(FS),i=Buffer.from(r,"hex"),s=il(eh(e),i),o=_r.default.createDecipheriv(rl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function nk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Jm.join)(t,e);if(on.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=on.default.createReadStream(i),o=on.default.createWriteStream((0,Jm.join)(t,n)),a=_r.default.randomBytes(nl),u=_r.default.randomBytes(Xm),c=il(r,a),l=_r.default.createCipheriv(rl,c,u);return o.write(a),o.write(u),s.pipe(Zm.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function ik(t){let e=on.default.createReadStream(t),r=await kS(e,nl),n=await kS(e,Xm);return e.close(),{salt:r,iv:n}}async function sk(t,e,r){if(on.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ik(t),s=on.default.createReadStream(t,{start:nl+Xm}),o=on.default.createWriteStream(e),a=il(r,n),u=_r.default.createDecipheriv(rl,a,i),c=Zm.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 $S=j(require("dd-trace")),ok=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ak(){return new Date(Date.now()-ok).toISOString()}function GS(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 uk(t,e){if(ca(t))return{valid:!0,user:void 0};let n=th(t).split(C)[0];return Ge(n,async()=>{let i;try{let s=se();i=await dr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await va({userId:i,tenantId:n,populateUser:e})};throw new hs})}function sl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ol(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=sl(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=sl(n,"x-budibase-token"),c=ii(n,"budibase:auth")||Tc(u),l=sl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=sl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await Im(O,y),e&&e.populateUser?p=await va({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await va({userId:O,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<ak()&&await Om(S),m=!0}catch(L){m=!1,console.error(`Auth Error: ${L.message}`),zr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await uk(l,y);O&&(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)&&$S.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),GS(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Op(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 GS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var ck=async(t,e)=>e(),al=ck;function ul(t,e,r={noTenancyRequired:!1}){let n=fi(t),i=fi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!mi(s,i)};!!mi(s,n)||(u.excludeStrategies=["query"]);let l=oa(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var cl=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"],dk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ll(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||lk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!dk.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 dl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var pl=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var fl=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs: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 pk=require("koa-pino-logger"),fk=require("correlation-id");function mk(){return{logger:uc,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 hk(){return h.HTTP_LOGGING?pk(mk()):(t,e)=>e()}var gk=hk(),VS=gk;var qS=require("uuid"),yk=require("correlation-id"),Ek=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,qS.v4)()),yk.withId(r,()=>e())},WS=Ek;function QS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of xT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Tk(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:Rc(r)};if(QS(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 jS=Tk;function YS(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 KS=j(require("crypto")),HS={"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 _k(t,e){try{let r=KS.default.randomBytes(16).toString("base64"),n={...HS};n["script-src"]=[...HS["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 zS=_k;var La={};v(La,{body:()=>Ak,params:()=>Sk});var nh=j(require("joi"));function JS(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:nh.default.any().optional(),updatedAt:nh.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function Ak(t,e){return JS(t,"body",e)}function Sk(t,e){return JS(t,"params",e)}var ZS=async(t,e)=>t.ip?await Cf(t.ip,()=>e()):e();var Ok={google:zm};var XS=require("koa-passport"),Ik=require("passport-local").Strategy,ml=require("passport-oauth2-refresh"),xk=ol,wk=ul,Rk=ll,bk=XS;XS.use(new Ik(Os.options,Os.authenticate));async function Dk(t,e){let r=await Tr.getCallbackUrl(),n,i;try{if(n=await Tr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Tr.strategyFactory(n,Ua)}catch{throw new Error("Could not refresh OAuth Token")}return ml.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{ml.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function vk(t,e){let r=await Er.getCallbackUrl(t),n;try{n=await Er.strategyFactory(t,r,Ua)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return ml.use(n),new Promise(i=>{ml.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Ck(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await qm(r);return n?Dk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Kc();return n?vk(n,t):{err:{data:"Google configuration not found"}}}}}async function Nk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=se(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Ca(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Pk(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=ii(e,"budibase:auth"),s=await qc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):zr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await di(r,{sessionIds:o,reason:"logout"}),await Vc.logout(e.user?.email),await Ca(r)}var ah={};v(ah,{validate:()=>Fk});var b=j(require("joi")),Uk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function oh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Lk(t){let e=b.default.object({type:b.default.string().allow("component").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),settings:b.default.array().items(b.default.object().unknown(!0)).required()}).unknown(!0)});oh(e,t)}function Mk(t){let e=b.default.object({type:b.default.string().allow(...Object.values(Tl)).required(),required:b.default.boolean().required(),default:b.default.any(),display:b.default.string()}),r=b.default.object({type:b.default.string().allow(...Object.values(El)),readable:b.default.boolean(),fields:b.default.object().pattern(b.default.string(),e)}).required(),n=b.default.object({type:b.default.string().allow("datasource").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({docs:b.default.string(),plus:b.default.boolean().optional(),isSQL:b.default.boolean().optional(),auth:b.default.object({type:b.default.string().required()}).optional(),features:b.default.object(Object.fromEntries(Object.values(_l).map(i=>[i,b.default.boolean().optional()]))).optional(),relationships:b.default.boolean().optional(),description:b.default.string().required(),friendlyName:b.default.string().required(),type:b.default.string().allow(...Uk),datasource:b.default.object().pattern(b.default.string(),e).required(),query:b.default.object().pattern(b.default.string(),r).unknown(!0).required(),extra:b.default.object().pattern(b.default.string(),b.default.object({type:b.default.string().required(),displayName:b.default.string().required(),required:b.default.boolean(),data:b.default.object()}))})});oh(n,t)}function kk(t){let e=b.default.object().pattern(b.default.string(),{type:b.default.string().allow(...Object.values(oe)).required(),customType:b.default.string().allow(...Object.values(Ee)),title:b.default.string(),description:b.default.string(),enum:b.default.array().items(b.default.string()),pretty:b.default.array().items(b.default.string())}),r=b.default.object({properties:e,required:b.default.array().items(b.default.string())}).concat(e).required(),n=b.default.object({type:b.default.string().allow("automation").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),tagline:b.default.string().required(),icon:b.default.string().required(),description:b.default.string().required(),type:b.default.string().allow("ACTION","LOGIC").required(),stepId:b.default.string().disallow(...bh).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});oh(n,t)}function Fk(t){switch(t?.type){case"component":Lk(t);break;case"datasource":Mk(t);break;case"automation":kk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var uh={};v(uh,{Client:()=>Be,clients:()=>Wr,locks:()=>oi,utils:()=>tc});var ch={};v(ch,{isBlacklisted:()=>Gk,refreshBlacklist:()=>nO});var eO=j(require("dns")),gl=j(require("net"));var tO=require("util"),hl,Bk=(0,tO.promisify)(eO.default.lookup);async function rO(t){return gl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Bk(t,{all:!0})).map(r=>r.address)}async function nO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(gl.default.isIP(i))r.push(i);else{let s=await rO(i);r=r.concat(s)}}hl=r}async function Gk(t){if(hl||await nO(),hl?.length===0)return!1;let e;return gl.default.isIP(t)?e=[t]:e=await rO(t),!!hl?.find(r=>e.includes(r))}var dh={};v(dh,{init:()=>Vk});var $k={"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 iO(t,e){let r=$k[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ma=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=iO(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Ge(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return $A()}};var sO,lh;function Vk(t){yr||$c(),lh||(lh=new Ma(t)),sO||(sO=yr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await lh.processEvent(r,n,i)}))}var _h={};v(_h,{COUNT_FIELD_NAME:()=>Eh,Sql:()=>fO,SqlTable:()=>yl,designDoc:()=>Th,utils:()=>Rf});var cO=require("knex");var qk=require("knex");function ph(t){return["link","formula","ai"].indexOf(t)!==-1}function oO(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":Qt.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}=Of(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=y.primary[0],S=y.schema[O].externalType;S?t.specificType(p.foreignKey,S):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${p.type} is not a valid SQL type`;default:Ri.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!ph(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!ph(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||ph(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Qk(t,e,r){return t.createTable(e.name,n=>{oO(n,e,r)})}function jk(t,e,r,n,i){return t.alterTable(e.name,s=>{oO(s,e,r,n,i)})}function Yk(t,e){return t.dropTable(e.name)}var fh=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,qk.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=Qk(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=jk(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=ns(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=Yk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ns(n)}},yl=fh;var lO=require("lodash"),Eh="__bb_total";function aO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function mh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Hk(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function dO(t){return Array.isArray(t)?t.map(e=>dO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function uO(t){return t.sourceType==="internal"||t.sourceId===Ol}function Kk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function pO(t,e='"'){return`${e}${Kk(t,e)}${e}`}function hh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=pO(t[r],e));return`[${t.join(",")}]`}var zk={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},gh=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 Lr.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]}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.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(If(e))return null;if(xf(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,lO.cloneDeep)(e);for(let r of Object.values(Sr)){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(ln)){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(),O=wf(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),O){let L=a?.[O.through]||d.through,T=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(A=>{A.whereExists(i(S,y)),r&&A.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(T)),e=e.where(A=>{A.whereExists(i(S,y.clone())),r&&A.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 O=(S,L,T)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ce=>E(ce,F?`${F}.${w}`:w,T))};for(let S in f){let L=f[S],T=ta(S),A=T.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let F=c(u);e=y(e,w.id.map(ce=>F?`${F}.${ce}`:ce),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,zk[g],T,(F,ce)=>O(ce,F,L)));else{let F=c(u);e=E(e,F?`${F}.${T}`:T,L)}}}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,O,S)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(hh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(hh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,O,S)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(pO(hh(S)))])):l(f,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(f===r?.notContains&&(L=L.not),L=L.where(T=>{for(let A of S){f===r?.containsAny?T=T.or:T=T.and;let B=typeof A=="string"?`"${A.toLowerCase()}"`:A;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),f===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),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),O=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 O)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,O)},(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 O=gc(E.low),S=gc(E.high),L=this.getFieldSchema(g),T=g,A=E.high,B=E.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(A!=null&&(A=`${A.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),A=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),O&&S?f.whereBetween(T,[B,A]):O?f.where(T,">=",B):S?f.where(T,"<=",A):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 O=this.convertClobs(g);return f.where(S=>S.whereNotNull(O).andWhere(O,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 O=this.convertClobs(g);return f.where(S=>S.not.whereNull(O).and.where(O,"!=",E)).or.whereNull(O)}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&&!Sf(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Or(r.documentType)}%`),e}isSqs(){return uO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;uO(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 ${Eh}`)}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 O=c[m];if(!O)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,L=a?.[r]||r,T=p&&a?.[p]||p,A=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=Hk(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ce=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),an=`${S}.${y||f}`,V=s.from(A).orderBy(an),k=p&&y&&E,D=k?`${T}.${g}`:`${S}.${f}`,W=k?`${L}.${E}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(p,{alias:T,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(w.map(ie=>this.rawQuotedIdentifier(ie))).limit(mh()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,d),K=U(this.knex.raw(`json_group_array(json_object(${ce}))`));break;case"pg":K=U(this.knex.raw(`json_agg(json_build_object(${ce}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${ce}) LIMIT ${mh()})`));break;case"mysql2":case"oracledb":K=U(this.knex.raw(`json_arrayagg(json_object(${ce}))`));break;case"mssql":{let q=s.select("*").from({[L]:V.select(F.map(ie=>s.ref(ie[1]).as(ie[0]))).limit(mh())});K=s.raw(`(SELECT ?? = (${q} 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())}},yh=class extends yl{constructor(r,n=aO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=ns(r);return i==="sqlite3"&&(s=dO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,cO.knex)(s),a,u=new gh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:aO()}});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===Ol){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(!this._isJsonColumn(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}_isJsonColumn(r){return Dh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){na(this.getSqlClient(),r,n)}},fO=yh;var Th={};v(Th,{base:()=>Jk});function Jk(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Zk={...aa,...ye},Xk=(t={})=>{Zu(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,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
|