@budibase/backend-core 3.4.24 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,27 +1,27 @@
1
- "use strict";var yO=Object.create;var ka=Object.defineProperty;var EO=Object.getOwnPropertyDescriptor;var TO=Object.getOwnPropertyNames;var AO=Object.getPrototypeOf,_O=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)ka(t,r,{get:e[r],enumerable:!0})},Ih=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of TO(e))!_O.call(t,i)&&i!==r&&ka(t,i,{get:()=>e[i],enumerable:!(n=EO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?yO(AO(t)):{},Ih(e||!t||!t.__esModule?ka(r,"default",{value:t,enumerable:!0}):r,t)),SO=t=>Ih(ka({},"__esModule",{value:!0}),t);var Kh=H((Ul,Ll)=>{"use strict";(function(t,e){typeof Ul=="object"&&typeof Ll<"u"?Ll.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Ul,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",_=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},R=function(V,k){if(_(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=_,F.w=function(V,k){return R(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=R(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return R(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<R(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 _r=F.w(U.$u?Date.UTC(U.$y,Ve,cn):new Date(U.$y,Ve,cn),U);return K?_r:_r.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)},be=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=(be<un?be+7:be)-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 be=this.clone().set(m,1);be.$d[ie](G),be.init(),this.$d=be.set(m,Math.min(this.$D,be.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=R(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,be=this.$d.getTime()+D*G;return F.w(be,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,be=this.$M,Le=U.weekdays,lt=U.months,hi=U.meridiem,un=function(Ve,_r,xs,Ma){return Ve&&(Ve[_r]||Ve(W,K))||xs[_r].slice(0,Ma)},Is=function(Ve){return F.s(ie%12||12,Ve,"0")},cn=hi||function(Ve,_r,xs){var Ma=Ve<12?"AM":"PM";return xs?Ma.toLowerCase():Ma};return K.replace(g,function(Ve,_r){return _r||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return be+1;case"MM":return F.s(be+1,2,"0");case"MMM":return un(U.monthsShort,be,lt,3);case"MMMM":return un(lt,be);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=R(D),be=(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-be)/6048e5;break;case a:K=(Le-be)/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 R.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])}}),R.extend=function(V,k){return V.$i||(V(k,ce,R),V.$i=!0),R},R.locale=B,R.isDayjs=_,R.unix=function(V){return R(1e3*V)},R.en=L[S],R.Ls=L,R.p={},R})});var It=H(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var HI=t=>new nu(t);We.valid=HI;var YI=t=>new iu(t);We.err=YI;var nu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,We.valid)(e(this.value))}mapErr(e){return(0,We.valid)(this.value)}};We.Valid=nu;var iu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,We.err)(this.error)}mapErr(e){return(0,We.err)(e(this.error))}};We.Err=iu});var xt=H(Xh=>{"use strict";Object.defineProperty(Xh,"__esModule",{value:!0})});var Dr=H(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});$t();var re=It();xt();var KI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],zI=["sun","mon","tue","wed","thu","fri","sat"],JI=(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&&KI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&zI.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)},ZI=(t,e,r)=>{if(t==="*")return JI(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)},eg=(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),XI=(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 ZI(n[0],e,r);if(n.length===2){let i=eg(n[0],e,r,0),s=eg(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)")},ex=(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=XI(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)},tx=(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(ex(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)};Bl.default=tx});var tg=H(Ls=>{"use strict";var rx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var nx=It(),ix=rx(Dr());xt();var sx=(t,e)=>{if(!t.seconds)return(0,nx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,ix.default)(r,"seconds",e)};Ls.default=sx});var rg=H(Ms=>{"use strict";var ox=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var ax=It(),ux=ox(Dr());xt();var cx=(t,e)=>{if(!t.minutes)return(0,ax.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ux.default)(r,"minutes",e)};Ms.default=cx});var ng=H(ks=>{"use strict";var lx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var dx=It(),px=lx(Dr());xt();var fx=(t,e)=>{if(!t.hours)return(0,dx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,px.default)(r,"hours",e)};ks.default=fx});var ig=H(Bs=>{"use strict";var mx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=It(),hx=mx(Dr());xt();var gx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,hx.default)(r,"daysOfMonth",e)};Bs.default=gx});var sg=H(Gs=>{"use strict";var yx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var Ex=It(),Tx=yx(Dr());xt();var Ax=(t,e)=>{if(!t.months)return(0,Ex.err)(["months field is undefined."]);let{months:r}=t;return(0,Tx.default)(r,"months",e)};Gs.default=Ax});var og=H(Vs=>{"use strict";var _x=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=It(),Sx=_x(Dr());xt();var Ox=(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,Sx.default)(r,"daysOfWeek",e)};Vs.default=Ox});var ag=H(qs=>{"use strict";var Ix=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var xx=It(),Rx=Ix(Dr());xt();var wx=(t,e)=>{if(!t.years)return(0,xx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Rx.default)(r,"years",e)};qs.default=wx});var dg=H((eW,lg)=>{"use strict";var Gl;try{Gl=Map}catch{}var $l;try{$l=Set}catch{}function ug(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(cg);if(Gl&&t instanceof Gl)return new Map(Array.from(t.entries()));if($l&&t instanceof $l)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]:ug(t[i],e,r)}return n}return t}function cg(t){return ug(t,[],[])}lg.exports=cg});var Ws=H(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});Vl.default=Ux;var bx=Object.prototype.toString,Dx=Error.prototype.toString,vx=RegExp.prototype.toString,Cx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Nx=/^Symbol\((.*)\)(.*)$/;function Px(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function pg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Px(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Cx.call(t).replace(Nx,"Symbol($1)");let n=bx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Dx.call(t)+"]":n==="RegExp"?vx.call(t):null}function Ux(t,e){let r=pg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=pg(this[n],e);return s!==null?s:i},2)}});var Xt=H(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.default=De.array=De.object=De.boolean=De.date=De.number=De.string=De.mixed=void 0;var fg=Lx(Ws());function Lx(t){return t&&t.__esModule?t:{default:t}}var mg={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,fg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,fg.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"};De.mixed=mg;var hg={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"};De.string=hg;var gg={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"};De.number=gg;var yg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};De.date=yg;var Eg={isValue:"${path} field must be ${value}"};De.boolean=Eg;var Tg={noUnknown:"${path} field has unspecified keys: ${unknown}"};De.object=Tg;var Ag={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"};De.array=Ag;var Mx=Object.assign(Object.create(null),{mixed:mg,string:hg,number:gg,date:yg,object:Tg,array:Ag,boolean:Eg});De.default=Mx});var bi=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var kx=t=>t&&t.__isYupSchema__;su.default=kx});var Sg=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Fx=_g(require("lodash/has")),Bx=_g(bi());function _g(t){return t&&t.__esModule?t:{default:t}}var ql=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Fx.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,Bx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Gx=ql;ou.default=Gx});var Ql=H(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Wl.default=$x;function $x(t){return t==null?[]:[].concat(t)}});var bn=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Vx=Og(Ws()),qx=Og(Ql());function Og(t){return t&&t.__esModule?t:{default:t}}function jl(){return jl=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},jl.apply(this,arguments)}var Wx=/\$\{\s*(\w+)\s*\}/g,Hl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=jl({},r,{path:n})),typeof e=="string"?e.replace(Wx,(i,s)=>(0,Vx.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,qx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};au.default=Hl});var uu=H(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=Hx;var Yl=Qx(bn());function Qx(t){return t&&t.__esModule?t:{default:t}}var jx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Hx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=jx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Yl.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(!Yl.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 Yl.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((uW,bg)=>{"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 Yx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,wg=/^\d+$/,Kx=/^\d/,zx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Jx=/^\s*(['"]?)(.*?)(\1)\s*$/,Zl=512,Ig=new Dn(Zl),xg=new Dn(Zl),Rg=new Dn(Zl);bg.exports={Cache:Dn,split:Jl,normalizePath:zl,setter:function(t){var e=zl(t);return xg.get(t)||xg.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=zl(t);return Rg.get(t)||Rg.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+(Xl(r)||wg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Zx(Array.isArray(t)?t:Jl(t),e,r)}};function zl(t){return Ig.get(t)||Ig.set(t,Jl(t).map(function(e){return e.replace(Jx,"$2")}))}function Jl(t){return t.match(Yx)||[""]}function Zx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(tR(i)&&(i='"'+i+'"'),a=Xl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Xl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function Xx(t){return t.match(Kx)&&!t.match(wg)}function eR(t){return zx.test(t)}function tR(t){return!Xl(t)&&(Xx(t)||eR(t))}});var vn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=nR;Hs.default=void 0;var rR=Qs(),cu={context:"$",value:"."};function nR(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]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,rR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var Dg=H(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.default=aR;var iR=ed(require("lodash/mapValues")),lu=ed(bn()),sR=ed(vn());function ed(t){return t&&t.__esModule?t:{default:t}}function du(){return du=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},du.apply(this,arguments)}function oR(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function aR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=oR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(_){return sR.default.isRef(_)?_.getValue(i,g,E):_}function O(_={}){let B=(0,iR.default)(du({value:i,originalValue:u,label:o,path:_.path||s},p,_.params),y),R=new lu.default(lu.default.formatError(_.message||f,B),i,B.path,_.type||d);return R.params=B,R}let S=du({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(_=>{lu.default.isError(_)?n(_):_?n(null,_):n(O())})}catch(_){n(_)}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(_){n(_);return}lu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var rd=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=vg;Ys.default=void 0;var uR=Qs(),cR=t=>t.substr(0,t.length-1).substr(1);function vg(t,e,r,n=r){let i,s,o;return e?((0,uR.forEach)(e,(a,u,c)=>{let l=u?cR(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 lR=(t,e,r,n)=>vg(t,e,r,n).schema,dR=lR;Ys.default=dR});var Ng=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Cg=pR(vn());function pR(t){return t&&t.__esModule?t:{default:t}}var nd=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){Cg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Cg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};pu.default=nd});var tr=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Pg=er(dg()),Di=Xt(),fR=er(Sg()),Ug=er(uu()),fu=er(Dg()),Lg=er(Ws()),mR=er(vn()),hR=rd(),gR=er(Ql()),Mg=er(bn()),kg=er(Ng());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 Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new kg.default,this._blacklist=new kg.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,Pg.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,Lg.default)(e),o=(0,Lg.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 yO=Object.create;var Fa=Object.defineProperty;var EO=Object.getOwnPropertyDescriptor;var TO=Object.getOwnPropertyNames;var AO=Object.getPrototypeOf,_O=Object.prototype.hasOwnProperty;var H=(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})},xh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of TO(e))!_O.call(t,i)&&i!==r&&Fa(t,i,{get:()=>e[i],enumerable:!(n=EO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?yO(AO(t)):{},xh(e||!t||!t.__esModule?Fa(r,"default",{value:t,enumerable:!0}):r,t)),SO=t=>xh(Fa({},"__esModule",{value:!0}),t);var zh=H((Ll,Ml)=>{"use strict";(function(t,e){typeof Ll=="object"&&typeof Ml<"u"?Ml.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Ll,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",p="year",m="date",d="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 F=["th","st","nd","rd"],C=V%100;return"["+V+(F[(C-20)%10]||F[C]||F[0])+"]"}},y=function(V,F,C){var W=String(V);return!W||W.length>=F?V:""+Array(F+1-W.length).join(C)+V},S={s:y,z:function(V){var F=-V.utcOffset(),C=Math.abs(F),W=Math.floor(C/60),L=C%60;return(F<=0?"+":"-")+y(W,2,"0")+":"+y(L,2,"0")},m:function V(F,C){if(F.date()<C.date())return-V(C,F);var W=12*(C.year()-F.year())+(C.month()-F.month()),L=F.clone().add(W,c),K=C-L<0,q=F.clone().add(W+(K?-1:1),c);return+(-(W+(C-L)/(K?L-q:q-L))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:p,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}},_="en",M={};M[_]=E;var T="$isDayjsObject",O=function(V){return V instanceof le||!(!V||!V[T])},x=function V(F,C,W){var L;if(!F)return _;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),C&&(M[K]=C,L=K);var q=F.split("-");if(!L&&q.length>1)return V(q[0])}else{var se=F.name;M[se]=F,L=se}return!W&&L&&(_=L),L||!W&&_},w=function(V,F){if(O(V))return V.clone();var C=typeof F=="object"?F:{};return C.date=V,C.args=arguments,new le(C)},B=S;B.l=x,B.i=O,B.w=function(V,F){return w(V,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var le=function(){function V(C){this.$L=x(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}var F=V.prototype;return F.parse=function(C){this.$d=function(W){var L=W.date,K=W.utc;if(L===null)return new Date(NaN);if(B.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var q=L.match(f);if(q){var se=q[2]-1||0,G=(q[7]||"0").substring(0,3);return K?new Date(Date.UTC(q[1],se,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)):new Date(q[1],se,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)}}return new Date(L)}(C),this.init()},F.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==d},F.isSame=function(C,W){var L=w(C);return this.startOf(W)<=L&&L<=this.endOf(W)},F.isAfter=function(C,W){return w(C)<this.startOf(W)},F.isBefore=function(C,W){return this.endOf(W)<w(C)},F.$g=function(C,W,L){return B.u(C)?this[W]:this.set(L,C)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(C,W){var L=this,K=!!B.u(W)||W,q=B.p(C),se=function(un,qe){var Ar=B.w(L.$u?Date.UTC(L.$y,qe,un):new Date(L.$y,qe,un),L);return K?Ar:Ar.endOf(a)},G=function(un,qe){return B.w(L.toDate()[un].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(qe)),L)},be=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(q){case p:return K?se(1,0):se(31,11);case c:return K?se(1,Le):se(0,Le+1);case u:var an=this.$locale().weekStart||0,Is=(be<an?be+7:be)-an;return se(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()}},F.endOf=function(C){return this.startOf(C,!1)},F.$set=function(C,W){var L,K=B.p(C),q="set"+(this.$u?"UTC":""),se=(L={},L[a]=q+"Date",L[m]=q+"Date",L[c]=q+"Month",L[p]=q+"FullYear",L[o]=q+"Hours",L[s]=q+"Minutes",L[i]=q+"Seconds",L[n]=q+"Milliseconds",L)[K],G=K===a?this.$D+(W-this.$W):W;if(K===c||K===p){var be=this.clone().set(m,1);be.$d[se](G),be.init(),this.$d=be.set(m,Math.min(this.$D,be.daysInMonth())).$d}else se&&this.$d[se](G);return this.init(),this},F.set=function(C,W){return this.clone().$set(C,W)},F.get=function(C){return this[B.p(C)]()},F.add=function(C,W){var L,K=this;C=Number(C);var q=B.p(W),se=function(Le){var lt=w(K);return B.w(lt.date(lt.date()+Math.round(Le*C)),K)};if(q===c)return this.set(c,this.$M+C);if(q===p)return this.set(p,this.$y+C);if(q===a)return se(1);if(q===u)return se(7);var G=(L={},L[s]=e,L[o]=r,L[i]=t,L)[q]||1,be=this.$d.getTime()+C*G;return B.w(be,this)},F.subtract=function(C,W){return this.add(-1*C,W)},F.format=function(C){var W=this,L=this.$locale();if(!this.isValid())return L.invalidDate||d;var K=C||"YYYY-MM-DDTHH:mm:ssZ",q=B.z(this),se=this.$H,G=this.$m,be=this.$M,Le=L.weekdays,lt=L.months,hi=L.meridiem,an=function(qe,Ar,xs,ka){return qe&&(qe[Ar]||qe(W,K))||xs[Ar].slice(0,ka)},Is=function(qe){return B.s(se%12||12,qe,"0")},un=hi||function(qe,Ar,xs){var ka=qe<12?"AM":"PM";return xs?ka.toLowerCase():ka};return K.replace(g,function(qe,Ar){return Ar||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return B.s(W.$y,4,"0");case"M":return be+1;case"MM":return B.s(be+1,2,"0");case"MMM":return an(L.monthsShort,be,lt,3);case"MMMM":return an(lt,be);case"D":return W.$D;case"DD":return B.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return an(L.weekdaysMin,W.$W,Le,2);case"ddd":return an(L.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return un(se,G,!0);case"A":return un(se,G,!1);case"m":return String(G);case"mm":return B.s(G,2,"0");case"s":return String(W.$s);case"ss":return B.s(W.$s,2,"0");case"SSS":return B.s(W.$ms,3,"0");case"Z":return q}return null}(qe)||q.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(C,W,L){var K,q=this,se=B.p(W),G=w(C),be=(G.utcOffset()-this.utcOffset())*e,Le=this-G,lt=function(){return B.m(q,G)};switch(se){case p:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-be)/6048e5;break;case a:K=(Le-be)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(C,W){if(!C)return this.$L;var L=this.clone(),K=x(C,W,!0);return K&&(L.$L=K),L},F.clone=function(){return B.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},V}(),on=le.prototype;return w.prototype=on,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",p],["$D",m]].forEach(function(V){on[V[1]]=function(F){return this.$g(F,V[0],V[1])}}),w.extend=function(V,F){return V.$i||(V(F,le,w),V.$i=!0),w},w.locale=x,w.isDayjs=O,w.unix=function(V){return w(1e3*V)},w.en=M[_],w.Ls=M,w.p={},w})});var It=H(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.Err=Qe.Valid=Qe.err=Qe.valid=void 0;var HI=t=>new nu(t);Qe.valid=HI;var YI=t=>new iu(t);Qe.err=YI;var nu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Qe.valid)(e(this.value))}mapErr(e){return(0,Qe.valid)(this.value)}};Qe.Valid=nu;var iu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Qe.err)(this.error)}mapErr(e){return(0,Qe.err)(e(this.error))}};Qe.Err=iu});var xt=H(eg=>{"use strict";Object.defineProperty(eg,"__esModule",{value:!0})});var br=H(Gl=>{"use strict";Object.defineProperty(Gl,"__esModule",{value:!0});$t();var re=It();xt();var KI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],zI=["sun","mon","tue","wed","thu","fri","sat"],JI=(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&&KI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&zI.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)},ZI=(t,e,r)=>{if(t==="*")return JI(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)},tg=(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),XI=(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 ZI(n[0],e,r);if(n.length===2){let i=tg(n[0],e,r,0),s=tg(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)")},ex=(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=XI(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)},tx=(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(ex(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)};Gl.default=tx});var rg=H(Ls=>{"use strict";var rx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var nx=It(),ix=rx(br());xt();var sx=(t,e)=>{if(!t.seconds)return(0,nx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,ix.default)(r,"seconds",e)};Ls.default=sx});var ng=H(Ms=>{"use strict";var ox=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var ax=It(),ux=ox(br());xt();var cx=(t,e)=>{if(!t.minutes)return(0,ax.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ux.default)(r,"minutes",e)};Ms.default=cx});var ig=H(ks=>{"use strict";var lx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var dx=It(),px=lx(br());xt();var fx=(t,e)=>{if(!t.hours)return(0,dx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,px.default)(r,"hours",e)};ks.default=fx});var sg=H(Bs=>{"use strict";var mx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=It(),hx=mx(br());xt();var gx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,hx.default)(r,"daysOfMonth",e)};Bs.default=gx});var og=H(Gs=>{"use strict";var yx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var Ex=It(),Tx=yx(br());xt();var Ax=(t,e)=>{if(!t.months)return(0,Ex.err)(["months field is undefined."]);let{months:r}=t;return(0,Tx.default)(r,"months",e)};Gs.default=Ax});var ag=H(Vs=>{"use strict";var _x=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=It(),Sx=_x(br());xt();var Ox=(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,Sx.default)(r,"daysOfWeek",e)};Vs.default=Ox});var ug=H(qs=>{"use strict";var Ix=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var xx=It(),Rx=Ix(br());xt();var wx=(t,e)=>{if(!t.years)return(0,xx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Rx.default)(r,"years",e)};qs.default=wx});var pg=H((tW,dg)=>{"use strict";var $l;try{$l=Map}catch{}var Vl;try{Vl=Set}catch{}function cg(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(lg);if($l&&t instanceof $l)return new Map(Array.from(t.entries()));if(Vl&&t instanceof Vl)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]:cg(t[i],e,r)}return n}return t}function lg(t){return cg(t,[],[])}dg.exports=lg});var Ws=H(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.default=Ux;var bx=Object.prototype.toString,Dx=Error.prototype.toString,Cx=RegExp.prototype.toString,vx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Nx=/^Symbol\((.*)\)(.*)$/;function Px(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function fg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Px(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return vx.call(t).replace(Nx,"Symbol($1)");let n=bx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Dx.call(t)+"]":n==="RegExp"?Cx.call(t):null}function Ux(t,e){let r=fg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=fg(this[n],e);return s!==null?s:i},2)}});var Zt=H(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.default=De.array=De.object=De.boolean=De.date=De.number=De.string=De.mixed=void 0;var mg=Lx(Ws());function Lx(t){return t&&t.__esModule?t:{default:t}}var hg={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,mg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,mg.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"};De.mixed=hg;var gg={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"};De.string=gg;var yg={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"};De.number=yg;var Eg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};De.date=Eg;var Tg={isValue:"${path} field must be ${value}"};De.boolean=Tg;var Ag={noUnknown:"${path} field has unspecified keys: ${unknown}"};De.object=Ag;var _g={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"};De.array=_g;var Mx=Object.assign(Object.create(null),{mixed:hg,string:gg,number:yg,date:Eg,object:Ag,array:_g,boolean:Tg});De.default=Mx});var bi=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var kx=t=>t&&t.__isYupSchema__;su.default=kx});var Og=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Fx=Sg(require("lodash/has")),Bx=Sg(bi());function Sg(t){return t&&t.__esModule?t:{default:t}}var Wl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Fx.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,Bx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Gx=Wl;ou.default=Gx});var jl=H(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.default=$x;function $x(t){return t==null?[]:[].concat(t)}});var wn=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Vx=Ig(Ws()),qx=Ig(jl());function Ig(t){return t&&t.__esModule?t:{default:t}}function Hl(){return Hl=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},Hl.apply(this,arguments)}var Wx=/\$\{\s*(\w+)\s*\}/g,Yl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Hl({},r,{path:n})),typeof e=="string"?e.replace(Wx,(i,s)=>(0,Vx.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,qx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};au.default=Yl});var uu=H(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=Hx;var Kl=Qx(wn());function Qx(t){return t&&t.__esModule?t:{default:t}}var jx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Hx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=jx(e),l=n.length,p=[];if(o=o||[],!l)return o.length?c(new Kl.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let d=n[m];d(i,function(g){if(g){if(!Kl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);p.push(g)}if(--l<=0){if(p.length&&(a&&p.sort(a),o.length&&p.push(...o),o=p),o.length){c(new Kl.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((cW,Dg)=>{"use strict";function bn(t){this._maxSize=t,this.clear()}bn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};bn.prototype.get=function(t){return this._values[t]};bn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Yx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,bg=/^\d+$/,Kx=/^\d/,zx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Jx=/^\s*(['"]?)(.*?)(\1)\s*$/,Xl=512,xg=new bn(Xl),Rg=new bn(Xl),wg=new bn(Xl);Dg.exports={Cache:bn,split:Zl,normalizePath:Jl,setter:function(t){var e=Jl(t);return Rg.get(t)||Rg.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=Jl(t);return wg.get(t)||wg.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+(ed(r)||bg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Zx(Array.isArray(t)?t:Zl(t),e,r)}};function Jl(t){return xg.get(t)||xg.set(t,Zl(t).map(function(e){return e.replace(Jx,"$2")}))}function Zl(t){return t.match(Yx)||[""]}function Zx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(tR(i)&&(i='"'+i+'"'),a=ed(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ed(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function Xx(t){return t.match(Kx)&&!t.match(bg)}function eR(t){return zx.test(t)}function tR(t){return!ed(t)&&(Xx(t)||eR(t))}});var Dn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=nR;Hs.default=void 0;var rR=Qs(),cu={context:"$",value:"."};function nR(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]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,rR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var Cg=H(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.default=aR;var iR=td(require("lodash/mapValues")),lu=td(wn()),sR=td(Dn());function td(t){return t&&t.__esModule?t:{default:t}}function du(){return du=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},du.apply(this,arguments)}function oR(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function aR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=oR(r,["value","path","label","options","originalValue","sync"]),{name:p,test:m,params:d,message:f}=t,{parent:g,context:E}=a;function y(O){return sR.default.isRef(O)?O.getValue(i,g,E):O}function S(O={}){let x=(0,iR.default)(du({value:i,originalValue:u,label:o,path:O.path||s},d,O.params),y),w=new lu.default(lu.default.formatError(O.message||f,x),i,x.path,O.type||p);return w.params=x,w}let _=du({path:s,parent:g,type:p,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(_,i,_)).then(O=>{lu.default.isError(O)?n(O):O?n(null,O):n(S())})}catch(O){n(O)}return}let M;try{var T;if(M=m.call(_,i,_),typeof((T=M)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(O){n(O);return}lu.default.isError(M)?n(M):M?n(null,M):n(S())}return e.OPTIONS=t,e}});var nd=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=vg;Ys.default=void 0;var uR=Qs(),cR=t=>t.substr(0,t.length-1).substr(1);function vg(t,e,r,n=r){let i,s,o;return e?((0,uR.forEach)(e,(a,u,c)=>{let l=u?cR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let p=c?parseInt(l,10):0;if(r&&p>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[p],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var lR=(t,e,r,n)=>vg(t,e,r,n).schema,dR=lR;Ys.default=dR});var Pg=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Ng=pR(Dn());function pR(t){return t&&t.__esModule?t:{default:t}}var id=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){Ng.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Ng.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};pu.default=id});var er=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Ug=Xt(pg()),Di=Zt(),fR=Xt(Og()),Lg=Xt(uu()),fu=Xt(Cg()),Mg=Xt(Ws()),mR=Xt(Dn()),hR=nd(),gR=Xt(jl()),kg=Xt(wn()),Fg=Xt(Pg());function Xt(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Fg.default,this._blacklist=new Fg.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,Ug.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,Mg.default)(e),o=(0,Mg.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,Ug.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Ug.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(Mg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Mg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Pg.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,fu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,gR.default)(e).map(s=>new mR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new fR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Di.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,fu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Di.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,fu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};mu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,hR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var Bg=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Fg;Ks.default=void 0;var yR=ER(tr());function ER(t){return t&&t.__esModule?t:{default:t}}var id=yR.default,TR=id;Ks.default=TR;function Fg(){return new id}Fg.prototype=id.prototype});var vi=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var AR=t=>t==null;hu.default=AR});var Wg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=qg;Js.default=void 0;var _R=Vg(tr()),Gg=Xt(),$g=Vg(vi());function Vg(t){return t&&t.__esModule?t:{default:t}}function qg(){return new zs}var zs=class extends _R.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=Gg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,$g.default)(r)||r===!0}})}isFalse(e=Gg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,$g.default)(r)||r===!1}})}};Js.default=zs;qg.prototype=zs.prototype});var Hg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=jg;Xs.default=void 0;var Vt=Xt(),rr=Qg(vi()),SR=Qg(tr());function Qg(t){return t&&t.__esModule?t:{default:t}}var OR=/^((([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,IR=/^((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,xR=/^(?:[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,RR=t=>(0,rr.default)(t)||t===t.trim(),wR={}.toString();function jg(){return new Zs}var Zs=class extends SR.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===wR?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(OR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(IR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(xR,{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:RR})}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;jg.prototype=Zs.prototype});var zg=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Kg;to.default=void 0;var Cn=Xt(),Nn=Yg(vi()),bR=Yg(tr());function Yg(t){return t&&t.__esModule?t:{default:t}}var DR=t=>t!=+t;function Kg(){return new eo}var eo=class extends bR.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"&&!DR(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;Kg.prototype=eo.prototype});var Jg=H(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});sd.default=CR;var vR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function CR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=vR.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}});var ey=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ad;ro.default=void 0;var NR=gu(Jg()),Zg=Xt(),Xg=gu(vi()),PR=gu(vn()),UR=gu(tr());function gu(t){return t&&t.__esModule?t:{default:t}}var od=new Date(""),LR=t=>Object.prototype.toString.call(t)==="[object Date]";function ad(){return new Ci}var Ci=class extends UR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,NR.default)(e),isNaN(e)?od:new Date(e))})})}_typeCheck(e){return LR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(PR.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=Zg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Xg.default)(i)||i>=this.resolve(n)}})}max(e,r=Zg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Xg.default)(i)||i<=this.resolve(n)}})}};ro.default=Ci;Ci.INVALID_DATE=od;ad.prototype=Ci.prototype;ad.INVALID_DATE=od});var ry=H((_W,ud)=>{"use strict";ud.exports=function(t){return ty(MR(t),t)};ud.exports.array=ty;function ty(t,e){var r=t.length,n=new Array(r),i={},s=r,o=kR(e),a=FR(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 MR(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}function kR(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function FR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ny=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=WR;var BR=yu(require("lodash/has")),GR=yu(ry()),$R=Qs(),VR=yu(vn()),qR=yu(bi());function yu(t){return t&&t.__esModule?t:{default:t}}function WR(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,$R.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,BR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),VR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,qR.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return GR.default.array(n,r).reverse()}});var sy=H(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=QR;function iy(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 QR(t){return(e,r)=>iy(t,e)-iy(t,r)}});var py=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=dy;io.default=void 0;var oy=qt(require("lodash/has")),ay=qt(require("lodash/snakeCase")),jR=qt(require("lodash/camelCase")),HR=qt(require("lodash/mapKeys")),YR=qt(require("lodash/mapValues")),KR=Qs(),uy=Xt(),zR=qt(ny()),ly=qt(sy()),JR=qt(uu()),ZR=qt(bn()),dd=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 cy=t=>Object.prototype.toString.call(t)==="[object Object]";function XR(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var ew=(0,ly.default)([]),no=class extends dd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=ew,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return cy(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,oy.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(!ZR.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!cy(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,JR.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 dd.default&&s instanceof dd.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,ly.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,zR.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,KR.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,oy.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=uy.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=XR(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=uy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,HR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(jR.default)}snakeCase(){return this.transformKeys(ay.default)}constantCase(){return this.transformKeys(e=>(0,ay.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,YR.default)(this.fields,r=>r.describe()),e}};io.default=no;function dy(t){return new no(t)}dy.prototype=no.prototype});var my=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=fy;oo.default=void 0;var pd=Pi(vi()),tw=Pi(bi()),rw=Pi(Ws()),fd=Xt(),nw=Pi(uu()),iw=Pi(bn()),sw=Pi(tr());function Pi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Eu.apply(this,arguments)}function fy(t){return new so(t)}var so=class extends sw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!iw.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=Eu({},r,{path:O,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(L,T)=>c.validate(y,S,T)}(0,nw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,tw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,rw.default)(e));return r.innerType=e,r}length(e,r=fd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,pd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||fd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,pd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||fd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,pd.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;fy.prototype=so.prototype});var hy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=uw;ao.default=void 0;var ow=aw(bi());function aw(t){return t&&t.__esModule?t:{default:t}}function uw(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,ow.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},cw=Tu;ao.default=cw});var gy=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.default=pw;var lw=dw(Xt());function dw(t){return t&&t.__esModule?t:{default:t}}function pw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{lw.default[e][r]=t[e][r]})})}});var gd=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Tw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return yy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return yy.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return hd.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return hd.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return hd.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Ey.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Ey.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return _y.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Sy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Sy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return fw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return mw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return hw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return gw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return yw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return Ew.default}});var yy=Pn(Bg()),hd=Pn(Wg()),Ey=Pn(Hg()),Ty=Pn(zg()),Ay=Pn(ey()),_y=Pn(py()),Sy=Pn(my()),fw=vn(),mw=hy(),hw=uo(bn()),gw=uo(rd()),Oy=uo(bi()),yw=uo(gy()),Ew=uo(tr());function uo(t){return t&&t.__esModule?t:{default:t}}function Iy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Iy=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=Iy();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 Tw(t,e,r){if(!t||!(0,Oy.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 xy=H(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});var yd=Td();Ed.default=()=>{(0,yd.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,yd.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,yd.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 Td=H(ve=>{"use strict";var Aw=ve&&ve.__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]}),_w=ve&&ve.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Sw=ve&&ve.__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)&&Aw(e,t,r);return _w(e,t),e},Ow=ve&&ve.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ve,"__esModule",{value:!0});ve.validateOptions=ve.registerOptionPreset=ve.getOptionPresets=ve.getOptionPreset=void 0;var x=Sw(gd());gd();var co=It(),Iw=Ow(xy());xt();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}}},Ry=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(),xw=t=>Un[t]?(0,co.valid)(Un[t]):(0,co.err)(`Option preset '${t}' not found.`);ve.getOptionPreset=xw;var Rw=()=>Un;ve.getOptionPresets=Rw;var ww=(t,e)=>{Un[t]=Ry.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};ve.registerOptionPreset=ww;var bw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,O,S,L;try{(0,Iw.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 _=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),R=x.object({presetId:x.string().required(),preset:Ry.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(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(R)}catch(T){return(0,co.err)(T.errors)}};ve.validateOptions=bw});var $t=H((lo,_d)=>{"use strict";var Mn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Ln=It(),Dw=Mn(tg()),vw=Mn(rg()),Cw=Mn(ng()),Nw=Mn(ig()),Pw=Mn(sg()),Uw=Mn(og()),Lw=Mn(ag()),Mw=Td();xt();var kw=(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)},Ad=(t,e={})=>{let r=(0,Mw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=kw(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,Dw.default)(s,n)),o.push((0,vw.default)(s,n)),o.push((0,Cw.default)(s,n)),o.push((0,Nw.default)(s,n)),o.push((0,Pw.default)(s,n)),o.push((0,Uw.default)(s,n)),n.useYears&&o.push((0,Lw.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=Ad;_d.exports=Ad;_d.exports.default=Ad});var zE=H(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var ir=class extends Error{},vd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Cd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Nd=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")}},w="numeric",Dt="short",rt="long",wu={year:w,month:w,day:w},Zy={year:w,month:Dt,day:w},Fw={year:w,month:Dt,day:w,weekday:Dt},Xy={year:w,month:rt,day:w},eE={year:w,month:rt,day:w,weekday:rt},tE={hour:w,minute:w},rE={hour:w,minute:w,second:w},nE={hour:w,minute:w,second:w,timeZoneName:Dt},iE={hour:w,minute:w,second:w,timeZoneName:rt},sE={hour:w,minute:w,hourCycle:"h23"},oE={hour:w,minute:w,second:w,hourCycle:"h23"},aE={hour:w,minute:w,second:w,hourCycle:"h23",timeZoneName:Dt},uE={hour:w,minute:w,second:w,hourCycle:"h23",timeZoneName:rt},cE={year:w,month:w,day:w,hour:w,minute:w},lE={year:w,month:w,day:w,hour:w,minute:w,second:w},dE={year:w,month:Dt,day:w,hour:w,minute:w},pE={year:w,month:Dt,day:w,hour:w,minute:w,second:w},Bw={year:w,month:Dt,day:w,weekday:Dt,hour:w,minute:w},fE={year:w,month:rt,day:w,hour:w,minute:w,timeZoneName:Dt},mE={year:w,month:rt,day:w,hour:w,minute:w,second:w,timeZoneName:Dt},hE={year:w,month:rt,day:w,weekday:rt,hour:w,minute:w,timeZoneName:rt},gE={year:w,month:rt,day:w,weekday:rt,hour:w,minute:w,second:w,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}},Sd=null,Eo=class t extends Pr{static get instance(){return Sd===null&&(Sd=new t),Sd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return EE(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}},Iu={};function Gw(t){return Iu[t]||(Iu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Iu[t]}var $w={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Vw(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 qw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=$w[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={},Iu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return EE(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=Gw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?qw(n,r):Vw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Wd({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}},wy={};function Ww(t,e={}){let r=JSON.stringify([t,e]),n=wy[r];return n||(n=new Intl.ListFormat(t,e),wy[r]=n),n}var Pd={};function Ud(t,e={}){let r=JSON.stringify([t,e]),n=Pd[r];return n||(n=new Intl.DateTimeFormat(t,e),Pd[r]=n),n}var Ld={};function Qw(t,e={}){let r=JSON.stringify([t,e]),n=Ld[r];return n||(n=new Intl.NumberFormat(t,e),Ld[r]=n),n}var Md={};function jw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Md[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Md[i]=s),s}var ho=null;function Hw(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function Yw(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=Ud(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Ud(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Kw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function zw(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Jw(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function _u(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Zw(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 kd=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=Qw(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):qd(e,3);return xe(r,this.padTo)}}},Fd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&sr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Ud(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Bd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&yE()&&(this.rtf=jw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):mb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||he.defaultLocale,o=s||(i?"en-US":Hw()),a=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Pd={},Ld={},Md={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Yw(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Kw(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=Zw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return _u(this,e,n,_E,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=zw(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return _u(this,e,n,IE,()=>{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]=Jw(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return _u(this,void 0,e,()=>xE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return _u(this,e,r,RE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new kd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Fd(e,this.intl,r)}relFormatter(e={}){return new Bd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ww(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}},Od=null,nt=class t extends Pr{static get utcInstance(){return Od===null&&(Od=new t(0)),Od}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${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}},bu=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(Xw(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 bu(t)}var by=()=>Date.now(),Dy="system",vy=null,Cy=null,Ny=null,Py=60,Uy,he=class{static get now(){return by}static set now(e){by=e}static set defaultZone(e){Dy=e}static get defaultZone(){return Nr(Dy,Eo.instance)}static get defaultLocale(){return vy}static set defaultLocale(e){vy=e}static get defaultNumberingSystem(){return Cy}static set defaultNumberingSystem(e){Cy=e}static get defaultOutputCalendar(){return Ny}static set defaultOutputCalendar(e){Ny=e}static get twoDigitCutoffYear(){return Py}static set twoDigitCutoffYear(e){Py=e%100}static get throwOnInvalid(){return Uy}static set throwOnInvalid(e){Uy=e}static resetCaches(){Ae.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function $n(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function Xw(t){return typeof t=="string"}function eb(t){return Object.prototype.toString.call(t)==="[object Date]"}function yE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function tb(t){return Array.isArray(t)?t:[t]}function Ly(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function rb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return Nu(t)&&t>=e&&t<=r}function nb(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 Vd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function qd(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 Du(t,e){let r=nb(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 Wd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function vu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Gd(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function EE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Pu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function TE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Qe(`Invalid unit value ${t}`);return e}function Cu(t,e){let r={};for(let n in t)if(ki(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=TE(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 Uu(t){return rb(t,["hour","minute","second","millisecond"])}var ib=["January","February","March","April","May","June","July","August","September","October","November","December"],AE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],sb=["J","F","M","A","M","J","J","A","S","O","N","D"];function _E(t){switch(t){case"narrow":return[...sb];case"short":return[...AE];case"long":return[...ib];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 SE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],OE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ob=["M","T","W","T","F","S","S"];function IE(t){switch(t){case"narrow":return[...ob];case"short":return[...OE];case"long":return[...SE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var xE=["AM","PM"],ab=["Before Christ","Anno Domini"],ub=["BC","AD"],cb=["B","A"];function RE(t){switch(t){case"narrow":return[...cb];case"short":return[...ub];case"long":return[...ab];default:return null}}function lb(t){return xE[t.hour<12?0:1]}function db(t,e){return IE(e)[t.weekday-1]}function pb(t,e){return _E(e)[t.month-1]}function fb(t,e){return RE(e)[t.year<0?0:1]}function mb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let 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 My(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var hb={D:wu,DD:Zy,DDD:Xy,DDDD:eE,t:tE,tt:rE,ttt:nE,tttt:iE,T:sE,TT:oE,TTT:aE,TTTT:uE,f:cE,ff:dE,fff:fE,ffff:hE,F:lE,FF:pE,FFF:mE,FFFF:gE},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 hb[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?lb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?pb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?db(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?fb(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 My(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 My(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},wE=/[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 bE(...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 DE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,gb=`(?:${DE.source}?(?:\\[(${wE.source})\\])?)?`,Qd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,vE=RegExp(`${Qd.source}${gb}`),jd=RegExp(`(?:T${vE.source})?`),yb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Eb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Tb=/(\d{4})-?(\d{3})/,Ab=bE("weekYear","weekNumber","weekDay"),_b=bE("year","ordinal"),Sb=/(\d{4})-(\d\d)-(\d\d)/,CE=RegExp(`${Qd.source} ?(?:${DE.source}|(${wE.source}))?`),Ob=RegExp(`(?: ${CE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function Ib(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:Vd(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Pu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var xb=RegExp(`^T?${Qd.source}$`),Rb=/^-?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 wb(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(Vd(c),d)}]}var bb={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 Hd(t,e,r,n,i,s,o){let a={year:e.length===2?Gd(Cr(e)):Cr(e),month:AE.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?SE.indexOf(t)+1:OE.indexOf(t)+1),a}var Db=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function vb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Hd(e,i,n,r,s,o,a),p;return u?p=bb[u]:c?p=0:p=Pu(l,d),[m,new nt(p)]}function Cb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Nb=/^(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$/,Pb=/^(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$/,Ub=/^(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 ky(t){let[,e,r,n,i,s,o,a]=t;return[Hd(e,i,n,r,s,o,a),nt.utcInstance]}function Lb(t){let[,e,r,n,i,s,o,a]=t;return[Hd(e,a,r,n,i,s,o),nt.utcInstance]}var Mb=Fi(yb,jd),kb=Fi(Eb,jd),Fb=Fi(Tb,jd),Bb=Fi(vE),NE=Bi(Ib,$i,Ao,_o),Gb=Bi(Ab,$i,Ao,_o),$b=Bi(_b,$i,Ao,_o),Vb=Bi($i,Ao,_o);function qb(t){return Gi(t,[Mb,NE],[kb,Gb],[Fb,$b],[Bb,Vb])}function Wb(t){return Gi(Cb(t),[Db,vb])}function Qb(t){return Gi(t,[Nb,ky],[Pb,ky],[Ub,Lb])}function jb(t){return Gi(t,[Rb,wb])}var Hb=Bi($i);function Yb(t){return Gi(t,[xb,Hb])}var Kb=Fi(Sb,Ob),zb=Fi(CE),Jb=Bi($i,Ao,_o);function Zb(t){return Gi(t,[Kb,NE],[zb,Jb])}var Xb="Invalid Duration",PE={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},eD={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...PE},mt=146097/400,Ui=146097/4800,tD={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},...PE},Fn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],rD=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 nD(t){return t<0?Math.floor(t):Math.ceil(t)}function UE(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?nD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function iD(t,e){rD.reduce((r,n)=>ne(e[n])?r:(r&&UE(t,e,r,e,n),n),null)}function sD(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?tD:eD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Qe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Cu(e,t.normalizeUnit),loc:Ae.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]=jb(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]=Yb(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 Nd(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):Xb}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+=qd(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]=TE(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,...Cu(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 iD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=sD(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)&&UE(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 oD(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 Cd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=oD(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=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=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=wu,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=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return sr.isValidZone(e)}static normalizeZone(e){return Nr(e,he.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.create(r,null,"gregory").eras(e)}static features(){return{relative:yE()}}};function Fy(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 aD(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=Fy(u,c);return(l-l%7)/7}],["days",Fy]],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 uD(t,e,r,n){let[i,s,o,a]=aD(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 Yd={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"},By={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]},cD=Yd.hanidec.replace(/[\[|\]]/g,"").split("");function lD(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(Yd.hanidec)!==-1)e+=cD.indexOf(t[r]);else for(let i in By){let[s,o]=By[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Yd[t||"latn"]}${e}`)}var dD="missing Intl.DateTimeFormat.formatToParts support";function ue(t,e=r=>r){return{regex:t,deser:([r])=>e(lD(r))}}var pD=String.fromCharCode(160),LE=`[ ${pD}]`,ME=new RegExp(LE,"g");function fD(t){return t.replace(/\./g,"\\.?").replace(ME,LE)}function Gy(t){return t.replace(/\./g,"").replace(ME," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(fD).join("|")),deser:([r])=>t.findIndex(n=>Gy(r)===Gy(n))+e}}function $y(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Id(t){return{regex:t,deser:([e])=>e}}function mD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function hD(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(mD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ue(c);case"yy":return ue(d,Gd);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 bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ue(a);case"LL":return ue(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(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 Id(l);case"uu":return Id(a);case"uuu":return ue(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ue(s);case"kk":return ue(d,Gd);case"W":return ue(a);case"WW":return ue(n);case"E":case"c":return ue(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return $y(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return $y(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Id(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:dD};return g.token=t,g}var gD={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=gD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function ED(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function TD(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 AD(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=Vd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var xd=null;function _D(){return xd||(xd=_e.fromMillis(1555555555555)),xd}function SD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=BE(r,e);return n==null||n.includes(void 0)?t:n}function kE(t,e){return Array.prototype.concat(...t.map(r=>SD(r,e)))}function FE(t,e,r){let n=kE(et.parseFormat(r),t),i=n.map(o=>hD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=ED(i),u=RegExp(o,"i"),[c,l]=TD(e,u,a),[d,m,p]=l?AD(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 OD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=FE(t,e,r);return[n,i,s,o]}function BE(t,e){return t?et.create(e,t).formatDateTimeParts(_D()).map(i=>yD(i,t)):null}var GE=[0,31,59,90,120,151,181,212,243,273,304,334],$E=[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 VE(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 qE(t,e,r){return r+(To(t)?$E:GE)[e-1]}function WE(t,e){let r=To(t)?$E:GE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function $d(t){let{year:e,month:r,day:n}=t,i=qE(e,r,n),s=VE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=vu(a)):o>vu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Uu(t)}}function Vy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=VE(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}=WE(a,o);return{year:a,month:u,day:c,...Uu(t)}}function Rd(t){let{year:e,month:r,day:n}=t,i=qE(e,r,n);return{year:e,ordinal:i,...Uu(t)}}function qy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=WE(e,r);return{year:e,month:n,day:i,...Uu(t)}}function ID(t){let e=Nu(t.weekYear),r=nr(t.weekNumber,1,vu(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 xD(t){let e=Nu(t.year),r=nr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function QE(t){let e=Nu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,Du(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function jE(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 wd="Invalid DateTime",Wy=864e13;function Su(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function bd(t){return t.weekData===null&&(t.weekData=$d(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 _e({...r,...e,old:r})}function HE(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 Qy(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function xu(t,e,r){return HE(Wd(t),e,r)}function jy(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Du(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=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=Wd(s),[u,c]=HE(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=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ou(t,e,r=!0){return t.isValid?et.create(Ae.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Dd(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 Hy(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 YE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},RD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},wD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},KE=["year","month","day","hour","minute","second","millisecond"],bD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],DD=["year","ordinal","hour","minute","second","millisecond"];function Yy(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 Ky(t,e){let r=Nr(e.zone,he.defaultZone),n=Ae.fromObject(e),i=he.now(),s,o;if(ne(t.year))s=i;else{for(let c of KE)ne(t[c])&&(t[c]=YE[c]);let a=QE(t)||jE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function zy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=qd(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 Jy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||he.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Su(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=Qy(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||Ae.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Jy(arguments),[n,i,s,o,a,u,c]=r;return Ky({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Jy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,Ky({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=eb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Nr(r.zone,he.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if($n(e))return e<-Wy||e>Wy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nr(r.zone,he.defaultZone),loc:Ae.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:Ae.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(Su(n));let i=he.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Cu(e,Yy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Ae.fromObject(r);if((l||a)&&d)throw new 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=Qy(i,s);p?(f=bD,g=RD,E=$d(E)):a?(f=DD,g=wD,E=Rd(E)):(f=KE,g=YE);let y=!1;for(let R of f){let F=o[R];ne(F)?y?o[R]=g[R]:o[R]=E[R]:y=!0}let O=p?ID(o):a?xD(o):QE(o),S=O||jE(o);if(S)return t.invalid(S);let L=p?Vy(o):a?qy(o):o,[T,_]=xu(L,s,n),B=new t({ts:T,zone:n,o:_,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=qb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Wb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=Qb(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=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=OD(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]=Zb(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 vd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=BE(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return kE(et.parseFormat(e),Ae.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?bd(this).weekYear:NaN}get weekNumber(){return this.isValid?bd(this).weekNumber:NaN}get weekday(){return this.isValid?bd(this).weekday:NaN}get ordinal(){return this.isValid?Rd(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 Du(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?vu(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]=xu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Su(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Cu(e,Yy),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=Vy({...$d(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=qy({...Rd(this.c),...r});let[l,d]=xu(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,jy(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,jy(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):wd}toLocaleString(e=wu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):wd}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=Dd(this,o);return a+="T",a+=Hy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Dd(this,e==="extended"):null}toISOWeekDate(){return Ou(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Hy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ou(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ou(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Dd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ou(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():wd}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=tb(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=uD(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),zy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?zy(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 Ly(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return Ly(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return FE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return Zy}static get DATE_MED_WITH_WEEKDAY(){return Fw}static get DATE_FULL(){return Xy}static get DATE_HUGE(){return eE}static get TIME_SIMPLE(){return tE}static get TIME_WITH_SECONDS(){return rE}static get TIME_WITH_SHORT_OFFSET(){return nE}static get TIME_WITH_LONG_OFFSET(){return iE}static get TIME_24_SIMPLE(){return sE}static get TIME_24_WITH_SECONDS(){return oE}static get TIME_24_WITH_SHORT_OFFSET(){return aE}static get TIME_24_WITH_LONG_OFFSET(){return uE}static get DATETIME_SHORT(){return cE}static get DATETIME_SHORT_WITH_SECONDS(){return lE}static get DATETIME_MED(){return dE}static get DATETIME_MED_WITH_SECONDS(){return pE}static get DATETIME_MED_WITH_WEEKDAY(){return Bw}static get DATETIME_FULL(){return fE}static get DATETIME_FULL_WITH_SECONDS(){return mE}static get DATETIME_HUGE(){return hE}static get DATETIME_HUGE_WITH_SECONDS(){return gE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&$n(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var vD="3.2.1";it.DateTime=_e;it.Duration=we;it.FixedOffsetZone=nt;it.IANAZone=sr;it.Info=Gn;it.Interval=Vn;it.InvalidZone=bu;it.Settings=he;it.SystemZone=Eo;it.VERSION=vD;it.Zone=Pr});var ZE=H((NW,JE)=>{"use strict";var qn=zE();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))}JE.exports=J});var tT=H((PW,eT)=>{"use strict";function Wn(t){return{start:t,count:1}}function XE(t,e){t.end=e,t.step=e-t.start,t.count=2}function Kd(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 CD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Kd(e,r,Wn(i)),r=void 0):r?r.count===1?XE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Wn(r.start)),r=Wn(r.end),XE(r,i)):(Kd(e,r),r=Wn(i)):r=Wn(i)}return Kd(e,r),e}eT.exports=CD});var nT=H((UW,rT)=>{"use strict";var ND=tT();function PD(t,e,r){var n=ND(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(",")}rT.exports=PD});var oT=H((LW,sT)=>{"use strict";var Qn=ZE(),UD=nT(),iT=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<iT;){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>=iT)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(UD(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||{})};sT.exports=P});var uT=H((MW,aT)=>{"use strict";var Lu=oT();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Lu.parse(e)};if(r.length>6)return{interval:Lu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return Lu.parse(e,r)};Ur.fieldsToExpression=function(e,r){return Lu.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()))})};aT.exports=Ur});var cF={};v(cF,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>yp,BadRequestError:()=>Ic,BudibaseError:()=>ms,Config:()=>Op,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>_p,DEFAULT_EXPENSES_TABLE_ID:()=>Ap,DEFAULT_INVENTORY_TABLE_ID:()=>Tp,DEFAULT_JOBS_TABLE_ID:()=>Ep,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Wi,DocumentType:()=>Te,Duration:()=>Re,DurationType:()=>jf,EmailUnavailableError:()=>hr,ErrorCode:()=>wc,FeatureDisabledError:()=>Rc,GlobalRole:()=>Sp,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ir,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>_T,NotFoundError:()=>Oc,RedisClient:()=>Ge,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>gp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>xc,UserStatus:()=>Wu,ViewName:()=>kr,accounts:()=>ai,auth:()=>uh,blacklist:()=>ph,cache:()=>wa,configs:()=>rn,constants:()=>Ip,context:()=>ye,db:()=>Vr,docIds:()=>of,docUpdates:()=>mh,encryption:()=>sh,env:()=>h,errors:()=>Dc,events:()=>Ts,features:()=>zm,getPublicError:()=>bc,init:()=>uF,installation:()=>Bc,locks:()=>oi,logging:()=>gc,middleware:()=>ah,objectStore:()=>Sf,permissions:()=>Hm,platform:()=>ca,plugins:()=>lh,queue:()=>mm,redis:()=>dh,roles:()=>cm,security:()=>Cm,sessions:()=>jc,setEnv:()=>wo,sql:()=>Oh,tenancy:()=>aF,timers:()=>jo,userUtils:()=>lm,users:()=>As,utils:()=>cs,withEnv:()=>wT});module.exports=SO(cF);var rn={};v(rn,{analyticsEnabled:()=>Mc,generateConfigID:()=>qm,getAIConfig:()=>PM,getConfig:()=>Ft,getDefaultGoogleConfig:()=>$m,getGoogleConfig:()=>Jc,getGoogleDatasourceConfig:()=>Qm,getOIDCConfig:()=>vM,getOIDCConfigById:()=>jm,getOIDCLogosDoc:()=>bM,getPlatformUrl:()=>Na,getSCIMConfig:()=>NM,getSMTPConfig:()=>CM,getSMTPConfigDoc:()=>xS,getSettingsConfig:()=>Wm,getSettingsConfigDoc:()=>$c,save:()=>RM});var OO=["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"],xh=[...OO],Rh={"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 Al=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Al||{}),_l=(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))(_l||{}),Fa=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Fa||{});var Sl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Sl||{});var IO=j(require("lodash")),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 Ba(t){return Object.values(gi).includes(t)}function wh(t){return Object.values(Sr).includes(t)}function bh(t){return Object.values(Kt).includes(t)}function Ol(t){return Object.values(ln).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var Dh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var vh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var lB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var Ga=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Ga||{});var $a=t=>t.hosting==="cloud";var Va=t=>t.authType==="sso";var 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||{}),St=(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))(St||{});var de=(_=>(_.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",_.CREATE_ROW="CREATE_ROW",_.UPDATE_ROW="UPDATE_ROW",_.DELETE_ROW="DELETE_ROW",_.EXECUTE_BASH="EXECUTE_BASH",_.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",_.EXECUTE_SCRIPT="EXECUTE_SCRIPT",_.EXECUTE_QUERY="EXECUTE_QUERY",_.SERVER_LOG="SERVER_LOG",_.DELAY="DELAY",_.FILTER="FILTER",_.QUERY_ROWS="QUERY_ROWS",_.LOOP="LOOP",_.COLLECT="COLLECT",_.OPENAI="OPENAI",_.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",_.BRANCH="BRANCH",_.discord="discord",_.slack="slack",_.zapier="zapier",_.integromat="integromat",_.n8n="n8n",_))(de||{}),Ch=[...Object.values(de),...Object.values(St)];var Il=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Il||{});var xl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(xl||{});var Rl="bb_internal";var Nh=["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||{}),bG=Object.values(Te).sort((t,e)=>e.length-t.length);var Ir=(e=>(e.USER_METADATA="ta_users",e))(Ir||{}),wl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(wl||{}),DG=Object.values(wl).sort((t,e)=>e.length-t.length);function qa(t){return!!t.providerType}var bl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(bl||{});var u$=Object.values(bl);var f$=["rows","queries","automations"],m$=["queries","automations"];var pn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(pn||{}),Wa=(r=>(r.STRING="string",r.NUMBER="number",r))(Wa||{});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 vl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(vl||(vl={}));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"]),wO=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 Ai=(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}},Lh=Ai;function bO(t){Lh=t}function Qa(){return Lh}var ja=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},DO=[];function N(t,e){let r=Qa(),n=ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ai?void 0:Ai].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}),Cl=t=>t.status==="aborted",Nl=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 Mh(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}},Ph=(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 Ph(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 Ph(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:Y.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 An.create(this,e,this._def)}transform(e){return new Je({...Z(this._def),schema:this,typeName:Y.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:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},vO=/^c[^\s-]{8,}$/i,CO=/^[0-9a-z]+$/,NO=/^[0-9A-HJKMNP-TV-Z]{26}$/,PO=/^[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,UO=/^[a-z0-9_-]{21}$/i,LO=/^[-+]?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)?)??$/,MO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,kO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Dl,FO=/^(?:(?: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])$/,BO=/^(([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})))$/,GO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kh="((\\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])))",$O=new RegExp(`^${kh}$`);function Fh(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 VO(t){return new RegExp(`^${Fh(t)}$`)}function Bh(t){let e=`${kh}T${Fh(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 qO(t,e){return!!((e==="v4"||!e)&&FO.test(t)||(e==="v6"||!e)&&BO.test(t))}var Rr=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")MO.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")Dl||(Dl=new RegExp(kO,"u")),Dl.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")PO.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")UO.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")vO.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")CO.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")NO.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"?Bh(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"?$O.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?VO(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"?LO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?qO(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"?GO.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}};Rr.create=t=>{var e;return new Rr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function WO(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"?WO(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:Y.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:Y.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:Y.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:Y.ZodDate,...Z(t)});var _i=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)}};_i.create=t=>new _i({typeName:Y.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:Y.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:Y.ZodNull,...Z(t)});var wr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};wr.create=t=>new wr({typeName:Y.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:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};Ot.create=t=>new Ot({typeName:Y.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:Y.ZodVoid,...Z(t)});var Zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==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:Y.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 Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(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:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return 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 Gh(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var 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:Y.ZodUnion,...Z(e)});var zt=t=>t instanceof _n?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 wn?zt(t.unwrap()):t instanceof Rn?zt(t._def.innerType):[],Ya=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return 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:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Pl(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=Pl(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=Pl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var An=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Cl(s)||Cl(o))return z;let a=Pl(s.value,o.value);return a.valid?((Nl(s)||Nl(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}))}};An.create=(t,e,r)=>new An({left:t,right:e,typeName:Y.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:Y.ZodTuple,rest:null,...Z(e)})};var Ka=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:Y.ZodRecord,...Z(n)}):new t({keyType:Rr.create(),valueType:e,typeName:Y.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:Y.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:Y.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}),z;function n(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].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:Y.ZodFunction,...Z(n)})}},_n=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:Y.ZodLazy,...Z(e)});var 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:Y.ZodLiteral,...Z(e)});function Gh(t,e){return new On({values:t,typeName:Y.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")||Mh(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=Gh;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")||Mh(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:Y.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:Y.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{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:Y.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.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:Y.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:Y.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:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.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:Y.ZodNaN,...Z(t)});var QO=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:Y.ZodPipeline})}},wn=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}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function $h(t,e={},r){return t?wr.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})}}):wr.create()}var jO={object:qe.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var HO=(t,e={message:`Input not instance of ${t.name}`})=>$h(r=>r instanceof t,e),Vh=Rr.create,qh=fn.create,YO=xi.create,KO=mn.create,Wh=hn.create,zO=gn.create,JO=_i.create,ZO=yn.create,XO=En.create,eI=wr.create,tI=Jt.create,rI=Ot.create,nI=Si.create,iI=Zt.create,sI=qe.create,oI=qe.strictCreate,aI=Tn.create,uI=Ya.create,cI=An.create,lI=Bt.create,dI=Ka.create,pI=Oi.create,fI=Ii.create,mI=za.create,hI=_n.create,gI=Sn.create,yI=On.create,EI=In.create,TI=br.create,Uh=Je.create,AI=dt.create,_I=Gt.create,SI=Je.createWithPreprocess,OI=Ps.create,II=()=>Vh().optional(),xI=()=>qh().optional(),RI=()=>Wh().optional(),wI={string:t=>Rr.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})},bI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:Ai,setErrorMap:bO,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:DO,addIssueToContext:N,ParseStatus:Me,INVALID:z,DIRTY:Ti,OK:Fe,isAborted:Cl,isDirty:Nl,isValid:vs,isAsync:Cs,get util(){return te},get objectUtil(){return vl},ZodParsedType:M,getParsedType:xr,ZodType:X,datetimeRegex:Bh,ZodString:Rr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:_i,ZodUndefined:yn,ZodNull:En,ZodAny:wr,ZodUnknown:Jt,ZodNever:Ot,ZodVoid:Si,ZodArray:Zt,ZodObject:qe,ZodUnion:Tn,ZodDiscriminatedUnion:Ya,ZodIntersection:An,ZodTuple:Bt,ZodRecord:Ka,ZodMap:Oi,ZodSet:Ii,ZodFunction:za,ZodLazy:_n,ZodLiteral:Sn,ZodEnum:On,ZodNativeEnum:In,ZodPromise:br,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Gt,ZodDefault:xn,ZodCatch:Rn,ZodNaN:xi,BRAND:QO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:wn,custom:$h,Schema:X,ZodSchema:X,late:jO,get ZodFirstPartyTypeKind(){return Y},coerce:wI,any:eI,array:iI,bigint:KO,boolean:Wh,date:zO,discriminatedUnion:uI,effect:Uh,enum:yI,function:mI,instanceof:HO,intersection:cI,lazy:hI,literal:gI,map:pI,nan:YO,nativeEnum:EI,never:rI,null:XO,nullable:_I,number:qh,object:sI,oboolean:RI,onumber:xI,optional:AI,ostring:II,pipeline:OI,preprocess:SI,promise:TI,record:dI,set:fI,strictObject:oI,string:Vh,symbol:JO,transformer:Uh,tuple:lI,undefined:ZO,union:aI,unknown:tI,void:nI,NEVER:bI,ZodIssueCode:I,quotelessJson:wO,ZodError:ze});var eu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Qh=ee.record(eu,ee.string()),Ja=ee.record(eu,ee.any()),Za=ee.record(eu,ee.union([ee.any().array(),ee.string()])),jh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Hh))})),Xa=ee.union([ee.string(),ee.number()]),Hh={string:Qh.optional(),fuzzy:Qh.optional(),range:ee.record(eu,ee.union([ee.object({high:Xa,low:Xa}),ee.object({high:Xa}),ee.object({low:Xa})])).optional(),equal:Ja.optional(),notEqual:Ja.optional(),empty:Ja.optional(),notEmpty:Ja.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:jh.optional(),$or:jh.optional()},sV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Hh}).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(Wa).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Ip={};v(Ip,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>yp,Config:()=>Op,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>_p,DEFAULT_EXPENSES_TABLE_ID:()=>Ap,DEFAULT_INVENTORY_TABLE_ID:()=>Tp,DEFAULT_JOBS_TABLE_ID:()=>Ep,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Wi,DocumentType:()=>Te,GlobalRole:()=>Sp,Header:()=>Ze,InternalTable:()=>Ir,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>_T,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>gp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>Wu,ViewName:()=>kr});var pq={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 gq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var Sq="darkest",Oq="light",CI=[{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"}},Yh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Ri="datasource_internal_bb_default";var Lr={};v(Lr,{ColumnSplitter:()=>rp,NoEmptyFilterStrings:()=>hT,buildQuery:()=>nv,cleanupQuery:()=>sp,fixupFilterArrays:()=>ap,getKeyNumbering:()=>op,getValidOperatorsForType:()=>ev,hasFilters:()=>np,limit:()=>yT,recurseLogicalOperators:()=>ip,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>iv,sort:()=>gT,splitFiltersArray:()=>ru});var Vi=j(Kh());var wi={};v(wi,{filterValueToLabel:()=>kI,hasSchema:()=>FI,isSupportedUserSearch:()=>Jh,parallelForeach:()=>MI,processSearchFilters:()=>Ml,trimOtherProps:()=>BI,unreachable:()=>LI});var zh=j(require("lodash")),UI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function LI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function MI(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 kI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function FI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function BI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Jh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(Ba(s)){for(let c of t[s].conditions)if(!Jh(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Ml(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=zh.default.pick(i,UI);return s.field=tu(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>Zh,cron:()=>zd,deepGet:()=>kl,getUserColor:()=>$I,getUserInitials:()=>GI,getUserLabel:()=>VI,isGoogleSheets:()=>WI,isSQL:()=>QI,lists:()=>tp,retry:()=>jI,roles:()=>ep,schema:()=>So,views:()=>Xd,wait:()=>Fl,withTimeout:()=>qI});var kl=(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},GI=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"},$I=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%)`},VI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Zh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function qI(t,e){let[r,n]=Zh(t),i=await Promise.race([e(),r]);return n(),i}function WI(t){return t==="GOOGLE_SHEETS"}function QI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Fl(t){return new Promise(e=>setTimeout(e,t))}async function jI(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 Fl(s);try{return await t()}catch(o){n=o}}throw n}var zd={};v(zd,{getNextExecutionDates:()=>kD,validate:()=>FD});var lT=j($t()),dT=j(uT()),cT="(Input cron: ",LD={"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 MD(t){let e=[];for(let r of t){r.includes(cT)&&(r=r.split(cT)[0].trim());for(let[n,i]of Object.entries(LD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function kD(t,e=4){let r=dT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function FD(t){let e=(0,lT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:MD(e.getError())}}var So={};v(So,{decodeNonAscii:()=>Jd,encodeNonAscii:()=>$D,isDeprecatedSingleUserColumn:()=>BD,isNumeric:()=>VD,isRequired:()=>GD});function BD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function GD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function $D(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Jd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function VD(t){return t.type==="number"||t.type==="bigint"}var Xd={};v(Xd,{basicFields:()=>HD,calculationFields:()=>jD,hasCalculationFields:()=>QD,isBasicViewField:()=>qD,isCalculationField:()=>Oo,isCalculationView:()=>WD,isV2:()=>YD,isVisible:()=>pT});var Zd=require("lodash");function Oo(t){return"calculationType"in t}function qD(t){return!Oo(t)}function WD(t){return t.type==="calculation"}function QD(t){return Object.values(t.schema||{}).some(Oo)}function jD(t){return(0,Zd.pickBy)(t.schema||{},Oo)}function pT(t){return t.visible!==!1}function HD(t,e){let{visible:r=!0}=e||{};return(0,Zd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||pT(n)))}function YD(t){return t.version===2}var ep={};v(ep,{checkForRoleInheritanceLoops:()=>zD});function KD(t){return`role${C}${t}`}function zD(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=KD(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 tp={};v(tp,{punctuateList:()=>JD});function JD(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}var jn=require("lodash");var ZD=/{{([^{].*?)}}/g,mT=Object.values(gi),XD=[...Object.values(Sr),...Object.values(Kt),...Object.values(ln)],ev=(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},hT=[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 ip(t,e){for(let r of mT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var sp=t=>{for(let e of hT)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===""||tv(s))&&delete t[e][i]}return t=ip(t,sp),t};function tv(t){return Array.isArray(t)&&t.length===0}var tu=t=>op(t).key,op=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}},rp=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}=op(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=Jd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function rv(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(ZD)||[]).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(Ol(r)){let c=Yh[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(wh(r)||bh(r)||Ol(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function ru(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function nv(t){if(!t)return{};if(Array.isArray(t)&&(t=Ml(t),!t))return{};let e=fT(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}=ru(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=fT(n.logicalOperator)),{[a]:{conditions:o.map(rv).filter(u=>u)}}})},r}function fT(t){return t==="all"?"$and":"$or"}function ap(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 ip(t,ap),t}function iv(t,e){let r=Mu(t,e.query);e.sort&&(r=gT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=yT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=sp(e),e=ap(e),!np(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[R,F]of Object.entries(e[T]||{})){let ce=Ba(T)?B:kl(B,tu(R)),an=_(ce,F);if(e.allOr&&an)return!0;if(!e.allOr&&!an)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,jn.isPlainObject)(_.low)&&(0,jn.isEmpty)(_.low)&&(_.low=void 0),(0,jn.isPlainObject)(_.high)&&(0,jn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let F=+_.low,ce=+_.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 R=(0,Vi.default)(T);if(R.isValid()){let F=(0,Vi.default)(_.low||"0000-00-00T00:00:00.000Z"),ce=(0,Vi.default)(_.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ce.isValid())return R.isAfter(F)&&R.isBefore(ce)||R.isSame(F)||R.isSame(ce);if(F.isValid())return R.isAfter(F)||R.isSame(F);if(ce.isValid())return R.isBefore(ce)||R.isSame(ce)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let R of T)if(o(R,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,Vi.default)(T);if(B.isValid()){let R=(0,Vi.default)(_);if(R.isValid())return B.isSame(R)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),f=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(R=>parseFloat(R)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](R=>o(_,R)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:f("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(f("every"))(T,_)),y=r("containsAny",f("some")),O=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Mu([T],B).length)return!1;return!0}),S=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Mu([T],{...B,allOr:!0}).length)return!0;return!1}),L=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:O,$or:S},B=Object.entries(e||{}).filter(([R,F])=>!["allOr","onEmptyFilter"].includes(R)&&F&&Object.keys(F).length>0).map(([R])=>_[R]?.(T)??!1);return np(e)?e.allOr?B.some(R=>R===!0):B.every(R=>R===!0):!0};return t.filter(L)}function gT(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 yT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var np=t=>{if(!t)return!1;let e=r=>{for(let n of mT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of XD){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:()=>cp,automations:()=>lp,screens:()=>hp,users:()=>mp});var cp={};v(cp,{getDevAppID:()=>sv,getProdAppID:()=>ku});var up=Or("app"),Io=Or("app_dev");function sv(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(up);e.shift();let r=e.join(up);return`${Io}${r}`}function ku(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`${up}${r}`}var lp={};v(lp,{isAppAction:()=>uv,isRowAction:()=>ov,isWebhookAction:()=>av});function ov(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function av(t){return t.definition.trigger?.stepId==="WEBHOOK"}function uv(t){return t.definition.trigger?.stepId==="APP"}var mp={};v(mp,{canCreateApps:()=>cv,containsUserID:()=>hv,getGlobalUserID:()=>mv,getUserAppGroups:()=>gv,getUserGroups:()=>fp,hasAdminPermissions:()=>pp,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>ET,hasBuilderPermissions:()=>pv,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>lv,isAdminOrGlobalBuilder:()=>dv,isBuilder:()=>dp,isCreator:()=>fv,isGlobalBuilder:()=>Fu,userAppAccessList:()=>yv});var Mr=j(require("lodash/fp"));function dp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ku(e))):!1}function Fu(t){return dp(t)&&!Gu(t)||Bu(t)}function cv(t){return Fu(t)||$u(t)}function Bu(t){return t?pp(t):!1}function lv(t,e){return dp(t,e)||Bu(t)}function dv(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 ET(t){return t?Mr.flow(Mr.get("roles"),Mr.values,Mr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function pv(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function pp(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function fv(t){return t?Fu(t)||pp(t)||$u(t)||Gu(t)||ET(t):!1}function mv(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function hv(t){return typeof t!="string"?!1:t.includes(`us${C}`)}function fp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function gv(t,e,r){let n=ku(t);return fp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function yv(t,e){let n=fp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var hp={};v(hp,{findInSettings:()=>Ev});function Ev(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 NQ={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},PQ={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},UQ={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 VQ={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 QQ={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 YQ={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 JQ={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var ej={name:"Delay",icon:"Clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var nj={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 oj={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 cj={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 pj={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 bv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},hj={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Il),pretty:Object.values(bv)},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 Ej={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 _j={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 Ij={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(xl)},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 TT=(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))(TT||{}),wj={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(TT)}},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 AT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(AT||{}),vj={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(AT),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 Lv={ascending:"Ascending",descending:"Descending"},Pj={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(Lv)},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 Mj={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 Bj={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 Vj={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 Qj={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 Yj={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 Jj={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 Wv={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 jv={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 Yv={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 zv={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 Zv={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 eC={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 rC={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||{}),Wi={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,gp="internal",yp="budibase",or="_design/sqlite",Ep="ta_bb_jobs",Tp="ta_bb_inventory",Ap="ta_bb_expenses",_p="ta_bb_employee";var Wu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Wu||{}),Qi=(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))(Qi||{}),Sp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Sp||{}),Op=(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))(Op||{}),_T=new Date(-2147483647e3),Qu=new Date(2147483647e3),ge="default";var wa={};v(wa,{CacheKey:()=>fr,TTL:()=>ri,app:()=>ef,bustCache:()=>as,destroy:()=>ia,docWritethrough:()=>Gm,generic:()=>sa,get:()=>ni,invite:()=>Xf,keys:()=>yc,passwordReset:()=>Fm,store:()=>mr,user:()=>nn,withCache:()=>Kr,writethrough:()=>km});var sa={};v(sa,{CacheKey:()=>fr,TTL:()=>ri,bustCache:()=>as,destroy:()=>ia,get:()=>ni,keys:()=>yc,store:()=>mr,withCache:()=>Kr});var ye={};v(ye,{DEFAULT_TENANT_ID:()=>ge,baseGlobalDBName:()=>No,doInAppContext:()=>kC,doInAppMigrationContext:()=>BC,doInAutomationContext:()=>MC,doInContext:()=>qp,doInEnvironmentContext:()=>$C,doInIPContext:()=>jp,doInIdentityContext:()=>Ro,doInScimContext:()=>VC,doInTenant:()=>Be,ensureSnippetContext:()=>QT,getAppDB:()=>Ji,getAppId:()=>Ne,getAuditLogDBName:()=>qT,getAuditLogsDB:()=>WC,getAutomationId:()=>Wp,getCurrentContext:()=>Zi,getDevAppDB:()=>jC,getEnvironmentVariables:()=>qC,getFeatureFlags:()=>Hp,getGlobalDB:()=>se,getGlobalDBName:()=>ur,getIP:()=>Qp,getIdentity:()=>ar,getPlatformURL:()=>Vp,getProdAppDB:()=>QC,getProdAppId:()=>GC,getScimDBName:()=>NC,getTableForView:()=>HC,getTenantIDFromAppID:()=>zi,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Gr,isScim:()=>Nt,isTenancyEnabled:()=>UC,isTenantIdSet:()=>PC,setFeatureFlags:()=>Yp,setTableForView:()=>YC});var xo={};v(xo,{doInAccountContext:()=>oC,doInIdentityContext:()=>Rp,doInUserContext:()=>wp,getAccountUserId:()=>ST,getIdentity:()=>xp});function xp(){return ar()}function Rp(t,e){return Ro(t,e)}function wp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Rp(n,r)}function oC(t,e){let r=ST(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Rp(i,e)}function ST(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Yu=require("fs");var xT=require("lodash"),bp=require("crypto");function Dp(){return RT()}function RT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Hu(){return process.env.NODE_ENV!=="production"}function aC(t){if(t)return parseInt(t)}var OT=!1;!OT&&Hu()&&!Dp()&&(require("dotenv").config(),OT=!0);var ji={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},IT=!!parseInt(process.env.SELF_HOSTED||"");function uC(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function cC(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function lC(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Yu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Yu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Hu()&&!Dp())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 dC(){return vt.SERVICE_TYPE==="worker"}function pC(){return vt.SERVICE_TYPE==="apps"}function fC(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Dp,isJest:RT,isDev:Hu,isWorker:dC,isApps:pC,isQA:fC,isProd:()=>!Hu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,bp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,bp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:uC(),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:IT,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||ji.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||ji.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||ji.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||ji.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||ji.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||ji.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:cC(),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:IT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...lC(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:aC(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,xT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function wT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var bT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var DT=require("async_hooks"),Ce=class t{static{this.storage=new DT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var vp="No app provided";function Fr(t){if(!t)throw vp;return t.startsWith(yt)}function mC(t){if(!t)throw vp;return t.startsWith(gt)&&!Fr(t)}function bo(t){if(!t)throw vp;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 hC=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 gC(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Ct=t=>{let e=Cp(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:Cp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Cp=(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 $T=j(require("@budibase/nano"));var vT=j(require("node-fetch"));function zu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function CT(t,e="GET",r){let{url:n,cookie:i}=Ct(),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,vT.default)(zu(encodeURI(t)),i)}async function Ju(t,e="GET",r){let n=await CT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Hn=j(require("pouchdb"));var NT,PT=!1,Np=(t={})=>{let{url:e,cookie:r}=Ct(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Hn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Hn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Hn.default.plugin(i.plugin),Hn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Hn.default.plugin(i)}return Hn.default.defaults(n)};function Zu(t){NT=Np(t),PT=!0}var EC=()=>{if(!PT)throw new Error("init has not been called")};function Et(t,e){EC();let r=new NT(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 UT=require("uuid");function Oe(){return(0,UT.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 Bp={};v(Bp,{breakExternalTableId:()=>Lp,breakRowIdField:()=>bC,buildExternalTableId:()=>SC,convertRowId:()=>wC,encodeTableId:()=>OC,encodeViewId:()=>IC,generateRowIdField:()=>xC,getNativeSql:()=>Yi,isExternalTable:()=>Up,isExternalTableID:()=>Xu,isInternalTableID:()=>_C,isInvalidISODateString:()=>Mp,isRowId:()=>RC,isValidFilter:()=>ec,isValidISODateString:()=>kp,isValidTime:()=>DC,sqlLog:()=>Co,validateManyToMany:()=>Fp});var Pp=`${C}${C}`,MT=/^\[.*]$/g,TC=encodeURIComponent(" "),kT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,AC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Xu(t){return t.startsWith("datasource"+C)}function _C(t){return!Xu(t)}function Yi(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 Up(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==Ri||t?.sourceType==="external"?!0:!!(t?._id&&Xu(t._id))}function SC(t,e){return`${t}${Pp}${encodeURIComponent(e)}`}function OC(t){return Xu(t)?encodeURIComponent(t):t}function IC(t){return encodeURIComponent(t)}function Lp(t){let e=t.split(Pp),r=e.shift(),n=e.join(Pp);if(n.includes(TC)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function xC(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 RC(t){return Array.isArray(t)||typeof t=="string"&&t.match(MT)!=null}function wC(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(MT)!=null?t.substring(1,t.length-1):t}function bC(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 Mp(t){let e=t.trim();if(!kT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function kp(t){return kT.test(t.trim())}function ec(t){return t!=null&&t!==""}function DC(t){return AC.test(t)}function Co(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function vC(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Fp(t){if(vC(t))return t}var FT="Database does not exist.";function BT(t){return(0,$T.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Br=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 CC(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Ki(t,r,e);return new Hi(n)}var Ki=class t{constructor(e,r,n){this.couchInfo=Ct();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Ct(n),this.instanceNano=BT(this.couchInfo)),t.nano||t.init()}static init(){let e=Ct();t.nano=BT(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 Br(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===FT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Br(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Br(`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(Dh(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 Br(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===FT)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 Br("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 Co("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(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 Br(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 He(t,e){return new Hi(new Ki(t,e))}async function at(t,e,r){let n=He(t,r);return await e(n)}async function Gp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Ju(e)}async function $p(t,e){let r=await Ju(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var VT=null;function ur(t){return t||(t=Q()),No(t)}function qT(t){return t||(t=Q()),t===ge?Se.AUDIT_LOGS.name:`${t}${C}${Se.AUDIT_LOGS.name}`}function NC(t){return t||(t=Q()),t===ge?Se.SCIM_LOGS.name:`${t}${C}${Se.SCIM_LOGS.name}`}function No(t){return!t||t===ge?Se.GLOBAL.name:`${t}${C}${Se.GLOBAL.name}`}function Vp(){return h.PLATFORM_URL}function Gr(){return!!h.MULTI_TENANCY}function PC(){return!!Ce.get()?.tenantId}function UC(){return h.MULTI_TENANCY}function zi(t){if(!t)return;if(!Gr())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 LC(t){let e;try{e=Ce.get()}catch{e={}}return e={...e,...t},e}async function $r(t,e){FC();let r=LC(t);return Ce.run(r,e)}async function MC(t){return await QT(),await $r({tenantId:zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function qp(t,e){let r=zi(t);return $r({tenantId:r,appId:t},e)}async function Be(t,e){return h.MULTI_TENANCY||(t=t||ge),$r(t?{tenantId:t}:{},e)}async function kC(t,e){return WT(t,e)}async function WT(t,e,r){if(!t)throw new Error("appId is required");let n=zi(t),i={appId:t,...r};return n&&(i.tenantId=n),$r(i,e)}async function Ro(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),$r(r,e)}function FC(){if(Ce.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function BC(t,e){return WT(t,e,{isMigrating:!0})}function ar(){try{return Ce.get()?.identity}catch{}}function Q(){if(!Gr())return ge;let e=Ce.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Wp(){return Ce.get()?.automationId}function Ne(){let e=Ce.get()?.appId;return!e&&h.isTest()&&VT?VT:e}function Qp(){return Ce.get()?.ip}var GC=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function $C(t,e){if(!t)throw new Error("Must supply environment variables.");return $r({environmentVariables:t},e)}function VC(t){return $r({isScim:!0},t)}function jp(t,e){return $r({ip:t},e)}async function QT(t=!h.isTest()){let e=Zi();if(!e||e.snippets)return;let r,n=Ji();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function qC(){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 He(No(t?.tenantId))}function WC(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return He(qT())}function Ji(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return He(e,t)}function QC(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return He(ot(e),t)}function jC(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return He(Ku(e),t)}function Nt(){return!!Ce.get()?.isScim}function Zi(){try{return Ce.get()}catch{return}}function Hp(t){let e=Zi();if(e)return e.featureFlagCache?.[t]}function Yp(t,e){let r=Zi();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function HC(t){let e=Zi();if(e)return e.viewToTableCache?.[t]}function YC(t,e){let r=Zi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Yr={};v(Yr,{getAppClient:()=>uc,getCacheClient:()=>Lf,getDocWritethroughClient:()=>JN,getInviteClient:()=>ei,getLockClient:()=>kf,getPasswordResetClient:()=>na,getSessionClient:()=>Hr,getSocketClient:()=>zN,getUserClient:()=>ra,getWritethroughClient:()=>Mf,init:()=>Ut,shutdown:()=>i_});var r_=j(require("ioredis"));var nc={};v(nc,{Databases:()=>Kp,SEPARATOR:()=>Xi,SelectableDatabase:()=>tc,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>rc,getRedisOptions:()=>es,removeDbPrefix:()=>zp});var KC=2e3,jT=1e4,Xi="-",Kp=(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))(Kp||{}),tc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(tc||{});function rc(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function es(){let{host:t,password:e,port:r}=rc(),n={connectTimeout:jT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:jT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:KC,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Xi}${e}`}function zp(t){let e=t.split(Xi);return e.length>=2?(e.shift(),e.join(Xi)):e[0]}var gc={};v(gc,{correlation:()=>Po,logAlert:()=>Jn,logAlertWithInfo:()=>WN,logWarn:()=>ss,logger:()=>hc,system:()=>xf});var Po={};v(Po,{getId:()=>Jp,setHeader:()=>zC});var HT=require("correlation-id"),zC=t=>{let e=HT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Jp(){return HT.getId()}var mc=j(require("pino")),e_=j(require("pino-pretty"));var Rf=j(require("dd-trace")),t_=require("dd-trace/ext");var xf={};v(xf,{getLogReadStream:()=>FN,getSingleFileMaxSizeInfo:()=>XA,localFileDestination:()=>If});var Vo=j(require("fs")),Of=j(require("path")),KA=j(require("rotating-file-stream"));var Sf={};v(Sf,{ObjectStore:()=>Pt,ObjectStoreBuckets:()=>ZC,SIGNED_FILE_PREFIX:()=>Ef,bucketTTLConfig:()=>ic,budibaseTempDir:()=>Yn,clientLibraryCDNUrl:()=>CN,clientLibraryPath:()=>$A,clientLibraryUrl:()=>NN,createBucketIfNotExists:()=>$o,deleteFile:()=>IN,deleteFiles:()=>xN,deleteFolder:()=>FA,downloadTarball:()=>wN,downloadTarballDirect:()=>RN,enrichPluginURLs:()=>LN,extractBucketAndPath:()=>Zp,getAppFileUrl:()=>PN,getGlobalFileS3Key:()=>VA,getGlobalFileUrl:()=>UN,getObjectMetadata:()=>bN,getPluginIconKey:()=>QA,getPluginJSKey:()=>WA,getPluginS3Dir:()=>HA,getPresignedUrl:()=>Qr,getReadStream:()=>sc,listAllObjects:()=>kA,processAutomationAttachment:()=>eN,processObjectStoreAttachment:()=>ZT,retrieve:()=>MA,retrieveDirectory:()=>ON,retrieveToTmp:()=>SN,sanitizeBucket:()=>Ke,sanitizeKey:()=>Pe,streamUpload:()=>LA,upload:()=>_N,uploadDirectory:()=>Tf});var pc=require("@aws-sdk/client-s3"),ff=require("@aws-sdk/lib-storage"),CA=require("@aws-sdk/s3-request-presigner"),Go=j(require("stream")),mf=j(require("node-fetch")),hf=j(require("tar-fs")),gf=j(require("zlib")),NA=require("util"),Wr=require("path"),pr=j(require("fs"));var Uo=j(require("path")),YT=require("os"),KT=j(require("fs"));var zT=j(require("stream")),ZC={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},JT=(0,Uo.join)((0,YT.tmpdir)(),".budibase");try{KT.default.mkdirSync(JT)}catch(t){if(t.code!=="EEXIST")throw t}function Yn(){return JT}var ic=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function XC(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Uo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:zT.default.Readable.fromWeb(e.body)}}async function ZT(t){let e=Zp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await sc(r,n),s=Uo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function eN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await XC(t):await ZT(t)}var yf=require("uuid");var Vr={};v(Vr,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>yp,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>_p,DEFAULT_EXPENSES_TABLE_ID:()=>Ap,DEFAULT_INVENTORY_TABLE_ID:()=>Tp,DEFAULT_JOBS_TABLE_ID:()=>Ep,DatabaseImpl:()=>Ki,DatabaseWithConnection:()=>CC,DeprecatedViews:()=>Wi,DocumentType:()=>Te,InternalTable:()=>Ir,QueryBuilder:()=>dr,Replication:()=>RA,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>gp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>kr,baseGlobalDBName:()=>No,checkErrorCode:()=>vA,closePouchDB:()=>vo,createApiKeyView:()=>_A,createNewUserEmailView:()=>TA,createPlatformAccountEmailView:()=>OA,createPlatformUserView:()=>IA,createUserAppView:()=>AA,createView:()=>ns,dbExists:()=>dN,directCouchAllDbs:()=>Gp,directCouchCall:()=>CT,directCouchFind:()=>$p,directCouchQuery:()=>Ju,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>gC,fullSearch:()=>hN,generateAppID:()=>eA,generateAppUserID:()=>cc,generateDevInfoID:()=>aA,generateGlobalUserID:()=>ts,generatePluginID:()=>uA,generateRoleID:()=>rf,generateRowID:()=>tf,generateTableID:()=>tA,generateTemplateID:()=>oA,generateUserMetadataID:()=>iA,generateWorkspaceID:()=>rA,getAllApps:()=>Mo,getAllDbs:()=>EA,getAppsByIDs:()=>aN,getCouchInfo:()=>Ct,getDB:()=>He,getDevAppID:()=>hC,getDevAppIDs:()=>cN,getDevelopmentAppID:()=>Ku,getDocParams:()=>rs,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>sA,getGlobalUserParams:()=>Kn,getPluginParams:()=>yA,getPouch:()=>Np,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>uN,getQueryIndex:()=>cA,getRoleParams:()=>dc,getRowParams:()=>nf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>gA,getUrlInfo:()=>Cp,getUserMetadataParams:()=>hA,getUsersByAppParams:()=>lc,getWorkspaceParams:()=>mA,init:()=>Zu,isDatasourceId:()=>pA,isDevApp:()=>bo,isDevAppID:()=>Fr,isDocumentConflictError:()=>yN,isExternalTableId:()=>sf,isGlobalUserID:()=>nA,isProdAppID:()=>mC,isQueryId:()=>fA,isSameAppID:()=>lN,isTableId:()=>lA,isViewId:()=>dA,paginatedSearch:()=>mN,pagination:()=>af,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>lf,queryPlatformView:()=>Fo,queryView:()=>cf,queryViewRaw:()=>ko,removeKeyNumbering:()=>Bo,searchIndexes:()=>pf});var ef={};v(ef,{AppState:()=>Xp,getAppMetadata:()=>ac,invalidateAppMetadata:()=>iN});var Xp=(e=>(e.INVALID="invalid",e))(Xp||{}),XT=3600,tN=60;async function rN(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function nN(t){return!t||t.state==="invalid"}async function ac(t){let e=await uc(),r=await e.get(t);if(!r){let n=XT;try{r=await rN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=tN;else throw i}if(nN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function iN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await uc();await r.delete(t),e&&await r.store(t,e,XT)}var of={};v(of,{generateAppID:()=>eA,generateAppUserID:()=>cc,generateDevInfoID:()=>aA,generateGlobalUserID:()=>ts,generatePluginID:()=>uA,generateRoleID:()=>rf,generateRowID:()=>tf,generateTableID:()=>tA,generateTemplateID:()=>oA,generateUserMetadataID:()=>iA,generateWorkspaceID:()=>rA,getDocParams:()=>rs,getGlobalIDFromUserMetadataID:()=>sA,getGlobalUserParams:()=>Kn,getPluginParams:()=>yA,getQueryIndex:()=>cA,getRoleParams:()=>dc,getRowParams:()=>nf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>gA,getUserMetadataParams:()=>hA,getUsersByAppParams:()=>lc,getWorkspaceParams:()=>mA,isDatasourceId:()=>pA,isExternalTableId:()=>sf,isGlobalUserID:()=>nA,isQueryId:()=>fA,isTableId:()=>lA,isViewId:()=>dA,prefixRoleID:()=>cr});var eA=t=>{let e=gt;return t&&(e+=`${t}${C}`),`${e}${Oe()}`};function tA(){return`ta${C}${Oe()}`}function tf(t,e){return e=e||Oe(),`ro${C}${t}${C}${e}`}function rA(){return`workspace${C}${Oe()}`}function ts(t){return`us${C}${t||Oe()}`}var sN=new RegExp(`^us${C}.+`);function nA(t){return sN.test(t)}function iA(t){return tf("ta_users",t)}function sA(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}function oA(t){return`template${C}${t}${C}${Oe()}`}function cc(t,e){return`${t}${C}${e}`}function rf(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return rf(t)}var aA=t=>`devinfo${C}${t}`,uA=t=>`plg${C}${t}`;var oN=new RegExp("^datasource_plus_(.+)__(.+)$");function rs(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${C}${e}`,endkey:`${t}${C}${e}${ke}`}}function nf(t,e,r={}){if(t==null)return rs("ro",null,r);let n=e??`${t}${C}`;return rs("ro",n,r)}function cA(t){return`database/${t}`}var sf=t=>{let e=t.match(oN);return!!t&&e!==null},lA=t=>!!t&&(t.startsWith(`ta${C}`)||sf(t));function dA(t){return!!t&&t.startsWith(`view${C}`)}function pA(t){return!!t&&t.startsWith(`datasource${C}`)}function fA(t){return!!t&&t.startsWith(`query${C}`)}function mA(t="",e={}){return{...e,startkey:`workspace${C}${t}`,endkey:`workspace${C}${t}${ke}`}}function Kn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${ke}`}}function hA(t,e={}){return nf("ta_users",t,e)}function lc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function gA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${ke}`}}function dc(t,e={}){return rs("role",t,e)}function Lo(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var yA=(t,e={})=>rs("plg",t,e);async function EA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Gp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ge?await n():(await n(Lo("app",i)),await n(Lo("app_dev",i)),r.push(ur(i))),r}async function Mo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ge);let o=(await EA({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=>ac(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 aN(t){return(await Promise.allSettled(t.map(r=>ac(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function uN(){return(await Mo({idsOnly:!0})).filter(e=>!Fr(e))}async function cN(){return(await Mo({idsOnly:!0})).filter(e=>Fr(e))}function lN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function dN(t){return at(t,async e=>await e.exists(),{skip_setup:!0})}function af(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 uf="_design/database";function pN(){return{_id:uf,views:{}}}async function fN(t,e){if(Wi[e])try{let r=await t.get(uf);for(let n of Wi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(uf)}catch{n=pN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var TA=async()=>{let t=se(),e=`function(doc) {
6
- if (doc._id.startsWith("us${C}")) {
4
+ `+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let p={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Lg.default)({args:p,value:l,path:s,sync:i,tests:m,endEarly:c},d=>{if(d)return void n(d,l);(0,Lg.default)({tests:this.tests,args:p,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(kg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(kg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ug.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,fu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,gR.default)(e).map(s=>new mR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new fR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Di.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,fu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Di.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,fu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};mu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,hR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var Gg=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Bg;Ks.default=void 0;var yR=ER(er());function ER(t){return t&&t.__esModule?t:{default:t}}var sd=yR.default,TR=sd;Ks.default=TR;function Bg(){return new sd}Bg.prototype=sd.prototype});var Ci=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var AR=t=>t==null;hu.default=AR});var Qg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Wg;Js.default=void 0;var _R=qg(er()),$g=Zt(),Vg=qg(Ci());function qg(t){return t&&t.__esModule?t:{default:t}}function Wg(){return new zs}var zs=class extends _R.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=$g.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Vg.default)(r)||r===!0}})}isFalse(e=$g.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Vg.default)(r)||r===!1}})}};Js.default=zs;Wg.prototype=zs.prototype});var Yg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Hg;Xs.default=void 0;var Vt=Zt(),tr=jg(Ci()),SR=jg(er());function jg(t){return t&&t.__esModule?t:{default:t}}var OR=/^((([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,IR=/^((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,xR=/^(?:[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,RR=t=>(0,tr.default)(t)||t===t.trim(),wR={}.toString();function Hg(){return new Zs}var Zs=class extends SR.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===wR?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,tr.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,tr.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,tr.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,tr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(OR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(IR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(xR,{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:RR})}lowercase(e=Vt.string.lowercase){return this.transform(r=>(0,tr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toLowerCase()})}uppercase(e=Vt.string.uppercase){return this.transform(r=>(0,tr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;Hg.prototype=Zs.prototype});var Jg=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=zg;to.default=void 0;var Cn=Zt(),vn=Kg(Ci()),bR=Kg(er());function Kg(t){return t&&t.__esModule?t:{default:t}}var DR=t=>t!=+t;function zg(){return new eo}var eo=class extends bR.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"&&!DR(e)}min(e,r=Cn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,vn.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,vn.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,vn.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,vn.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,vn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,vn.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,vn.default)(i)?i:Math[e](i))}};to.default=eo;zg.prototype=eo.prototype});var Zg=H(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=vR;var CR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function vR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=CR.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 ty=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ud;ro.default=void 0;var NR=gu(Zg()),Xg=Zt(),ey=gu(Ci()),PR=gu(Dn()),UR=gu(er());function gu(t){return t&&t.__esModule?t:{default:t}}var ad=new Date(""),LR=t=>Object.prototype.toString.call(t)==="[object Date]";function ud(){return new vi}var vi=class extends UR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,NR.default)(e),isNaN(e)?ad:new Date(e))})})}_typeCheck(e){return LR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(PR.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=Xg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,ey.default)(i)||i>=this.resolve(n)}})}max(e,r=Xg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,ey.default)(i)||i<=this.resolve(n)}})}};ro.default=vi;vi.INVALID_DATE=ad;ud.prototype=vi.prototype;ud.INVALID_DATE=ad});var ny=H((SW,cd)=>{"use strict";cd.exports=function(t){return ry(MR(t),t)};cd.exports.array=ry;function ry(t,e){var r=t.length,n=new Array(r),i={},s=r,o=kR(e),a=FR(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,p){if(p.has(c)){var 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 d=o.get(c)||new Set;if(d=Array.from(d),l=d.length){p.add(c);do{var f=d[--l];u(f,a.get(f),p)}while(l);p.delete(c)}n[--r]=c}}}function MR(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}function kR(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function FR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var iy=H(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=WR;var BR=yu(require("lodash/has")),GR=yu(ny()),$R=Qs(),VR=yu(Dn()),qR=yu(bi());function yu(t){return t&&t.__esModule?t:{default:t}}function WR(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,$R.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,BR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),VR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,qR.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return GR.default.array(n,r).reverse()}});var oy=H(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=QR;function sy(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 QR(t){return(e,r)=>sy(t,e)-sy(t,r)}});var fy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=py;io.default=void 0;var ay=qt(require("lodash/has")),uy=qt(require("lodash/snakeCase")),jR=qt(require("lodash/camelCase")),HR=qt(require("lodash/mapKeys")),YR=qt(require("lodash/mapValues")),KR=Qs(),cy=Zt(),zR=qt(iy()),dy=qt(oy()),JR=qt(uu()),ZR=qt(wn()),pd=qt(er());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 ly=t=>Object.prototype.toString.call(t)==="[object Object]";function XR(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var ew=(0,dy.default)([]),no=class extends pd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=ew,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return ly(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(p=>this._nodes.indexOf(p)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let p of a){let m=s[p],d=(0,ay.default)(i,p);if(m){let f,g=i[p];c.path=(r.path?`${r.path}.`:"")+p,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||p in i;continue}f=!r.__validating||!y?m.cast(i[p],c):i[p],f!==void 0&&(u[p]=f)}else d&&!o&&(u[p]=i[p]);u[p]!==i[p]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,p)=>{if(l){if(!ZR.default.isError(l)||u)return void n(l,p);i.push(l)}if(!c||!ly(p)){n(i[0]||null,p);return}a=a||p;let m=this._nodes.map(d=>(f,g)=>{let E=d.indexOf(".")===-1?(r.path?`${r.path}.`:"")+d:`${r.path||""}["${d}"]`,y=this.fields[d];if(y&&"validate"in y){y.validate(p[d],Ni({},r,{path:E,from:o,strict:!0,parent:p,originalValue:a[d]}),g);return}g(null)});(0,JR.default)({sync:s,tests:m,value:p,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 pd.default&&s instanceof pd.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,dy.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,zR.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,KR.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,ay.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=cy.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=XR(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=cy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,HR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(jR.default)}snakeCase(){return this.transformKeys(uy.default)}constantCase(){return this.transformKeys(e=>(0,uy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,YR.default)(this.fields,r=>r.describe()),e}};io.default=no;function py(t){return new no(t)}py.prototype=no.prototype});var hy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=my;oo.default=void 0;var fd=Pi(Ci()),tw=Pi(bi()),rw=Pi(Ws()),md=Zt(),nw=Pi(uu()),iw=Pi(wn()),sw=Pi(er());function Pi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Eu.apply(this,arguments)}function my(t){return new so(t)}var so=class extends sw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,p=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(d,f)=>{if(d){if(!iw.default.isError(d)||l)return void n(d,f);o.push(d)}if(!p||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],S=`${r.path||""}[${E}]`,_=Eu({},r,{path:S,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,_,T)}(0,nw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,tw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,rw.default)(e));return r.innerType=e,r}length(e,r=md.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,fd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||md.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,fd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||md.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,fd.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;my.prototype=so.prototype});var gy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=uw;ao.default=void 0;var ow=aw(bi());function aw(t){return t&&t.__esModule?t:{default:t}}function uw(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,ow.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},cw=Tu;ao.default=cw});var yy=H(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=pw;var lw=dw(Zt());function dw(t){return t&&t.__esModule?t:{default:t}}function pw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{lw.default[e][r]=t[e][r]})})}});var yd=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Tw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Ey.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Ey.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return gd.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return gd.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return gd.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return _y.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Sy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Sy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return fw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return mw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return hw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return gw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return yw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return Ew.default}});var Ey=Nn(Gg()),gd=Nn(Qg()),Ty=Nn(Yg()),Ay=Nn(Jg()),_y=Nn(ty()),Sy=Nn(fy()),Oy=Nn(hy()),fw=Dn(),mw=gy(),hw=uo(wn()),gw=uo(nd()),Iy=uo(bi()),yw=uo(yy()),Ew=uo(er());function uo(t){return t&&t.__esModule?t:{default:t}}function xy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return xy=function(){return t},t}function Nn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=xy();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 Tw(t,e,r){if(!t||!(0,Iy.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 Ry=H(Td=>{"use strict";Object.defineProperty(Td,"__esModule",{value:!0});var Ed=Ad();Td.default=()=>{(0,Ed.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,Ed.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,Ed.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 Ad=H(Ce=>{"use strict";var Aw=Ce&&Ce.__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]}),_w=Ce&&Ce.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Sw=Ce&&Ce.__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)&&Aw(e,t,r);return _w(e,t),e},Ow=Ce&&Ce.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.validateOptions=Ce.registerOptionPreset=Ce.getOptionPresets=Ce.getOptionPreset=void 0;var R=Sw(yd());yd();var co=It(),Iw=Ow(Ry());xt();var Pn={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}}},wy=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),xw=t=>Pn[t]?(0,co.valid)(Pn[t]):(0,co.err)(`Option preset '${t}' not found.`);Ce.getOptionPreset=xw;var Rw=()=>Pn;Ce.getOptionPresets=Rw;var ww=(t,e)=>{Pn[t]=wy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Ce.registerOptionPreset=ww;var bw=t=>{var e,r,n,i,s,o,a,u,c,l,p,m,d,f,g,E,y,S,_,M;try{(0,Iw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Pn[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Pn[t.preset]}else T=t.preset;else T=Pn.default;let O=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(p=T.hours.lowerLimit)!==null&&p!==void 0?p:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(d=T.daysOfMonth.lowerLimit)!==null&&d!==void 0?d:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(_=T.years.lowerLimit)!==null&&_!==void 0?_:T.years.minValue,upperLimit:(M=T.years.upperLimit)!==null&&M!==void 0?M:T.years.maxValue}}),t.override),w=R.object({presetId:R.string().required(),preset:wy.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(O,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(T){return(0,co.err)(T.errors)}};Ce.validateOptions=bw});var $t=H((lo,Sd)=>{"use strict";var Ln=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Un=It(),Dw=Ln(rg()),Cw=Ln(ng()),vw=Ln(ig()),Nw=Ln(sg()),Pw=Ln(og()),Uw=Ln(ag()),Lw=Ln(ug()),Mw=Ad();xt();var kw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Un.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Un.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Un.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,Un.valid)(n)},_d=(t,e={})=>{let r=(0,Mw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=kw(t,n);if(i.isError())return(0,Un.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Dw.default)(s,n)),o.push((0,Cw.default)(s,n)),o.push((0,vw.default)(s,n)),o.push((0,Nw.default)(s,n)),o.push((0,Pw.default)(s,n)),o.push((0,Uw.default)(s,n)),n.useYears&&o.push((0,Lw.default)(s,n)),o.every(u=>u.isValid()))return(0,Un.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,Un.err)(a)};lo.default=_d;Sd.exports=_d;Sd.exports.default=_d});var JE=H(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var nr=class extends Error{},vd=class extends nr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Nd=class extends nr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Pd=class extends nr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Fn=class extends nr{},Ru=class extends nr{constructor(e){super(`Invalid unit ${e}`)}},je=class extends nr{},Wt=class extends nr{constructor(){super("Zone is an abstract class")}},b="numeric",Dt="short",rt="long",wu={year:b,month:b,day:b},Xy={year:b,month:Dt,day:b},Fw={year:b,month:Dt,day:b,weekday:Dt},eE={year:b,month:rt,day:b},tE={year:b,month:rt,day:b,weekday:rt},rE={hour:b,minute:b},nE={hour:b,minute:b,second:b},iE={hour:b,minute:b,second:b,timeZoneName:Dt},sE={hour:b,minute:b,second:b,timeZoneName:rt},oE={hour:b,minute:b,hourCycle:"h23"},aE={hour:b,minute:b,second:b,hourCycle:"h23"},uE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Dt},cE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:rt},lE={year:b,month:b,day:b,hour:b,minute:b},dE={year:b,month:b,day:b,hour:b,minute:b,second:b},pE={year:b,month:Dt,day:b,hour:b,minute:b},fE={year:b,month:Dt,day:b,hour:b,minute:b,second:b},Bw={year:b,month:Dt,day:b,weekday:Dt,hour:b,minute:b},mE={year:b,month:rt,day:b,hour:b,minute:b,timeZoneName:Dt},hE={year:b,month:rt,day:b,hour:b,minute:b,second:b,timeZoneName:Dt},gE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,timeZoneName:rt},yE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,second:b,timeZoneName:rt},Nr=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}},Od=null,Eo=class t extends Nr{static get instance(){return Od===null&&(Od=new t),Od}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return TE(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}},Iu={};function Gw(t){return Iu[t]||(Iu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Iu[t]}var $w={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Vw(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 qw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=$w[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Au={},ir=class t extends Nr{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},Iu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return TE(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=Gw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?qw(n,r):Vw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Qd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),d=+r,f=d%1e3;return d-=f>=0?f:1e3+f,(m-d)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},by={};function Ww(t,e={}){let r=JSON.stringify([t,e]),n=by[r];return n||(n=new Intl.ListFormat(t,e),by[r]=n),n}var Ud={};function Ld(t,e={}){let r=JSON.stringify([t,e]),n=Ud[r];return n||(n=new Intl.DateTimeFormat(t,e),Ud[r]=n),n}var Md={};function Qw(t,e={}){let r=JSON.stringify([t,e]),n=Md[r];return n||(n=new Intl.NumberFormat(t,e),Md[r]=n),n}var kd={};function jw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=kd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),kd[i]=s),s}var ho=null;function Hw(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function Yw(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=Ld(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Ld(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Kw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function zw(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Jw(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function _u(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Zw(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 Fd=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=Qw(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):Wd(e,3);return xe(r,this.padTo)}}},Bd=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&&ir.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Ld(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Gd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&EE()&&(this.rtf=jw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):mb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||ge.defaultLocale,o=s||(i?"en-US":Hw()),a=r||ge.defaultNumberingSystem,u=n||ge.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Ud={},Md={},kd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Yw(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Kw(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=Zw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return _u(this,e,n,SE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=zw(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return _u(this,e,n,xE,()=>{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]=Jw(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return _u(this,void 0,e,()=>RE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return _u(this,e,r,wE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Fd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Bd(e,this.intl,r)}relFormatter(e={}){return new Gd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ww(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}},Id=null,nt=class t extends Nr{static get utcInstance(){return Id===null&&(Id=new t(0)),Id}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${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}},bu=class extends Nr{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 vr(t,e){if(ne(t)||t===null)return e;if(t instanceof Nr)return t;if(Xw(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||ir.create(t)}else return Gn(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new bu(t)}var Dy=()=>Date.now(),Cy="system",vy=null,Ny=null,Py=null,Uy=60,Ly,ge=class{static get now(){return Dy}static set now(e){Dy=e}static set defaultZone(e){Cy=e}static get defaultZone(){return vr(Cy,Eo.instance)}static get defaultLocale(){return vy}static set defaultLocale(e){vy=e}static get defaultNumberingSystem(){return Ny}static set defaultNumberingSystem(e){Ny=e}static get defaultOutputCalendar(){return Py}static set defaultOutputCalendar(e){Py=e}static get twoDigitCutoffYear(){return Uy}static set twoDigitCutoffYear(e){Uy=e%100}static get throwOnInvalid(){return Ly}static set throwOnInvalid(e){Ly=e}static resetCaches(){Ae.resetCache(),ir.resetCache()}};function ne(t){return typeof t>"u"}function Gn(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function Xw(t){return typeof t=="string"}function eb(t){return Object.prototype.toString.call(t)==="[object Date]"}function EE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function tb(t){return Array.isArray(t)?t:[t]}function My(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function rb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function rr(t,e,r){return Nu(t)&&t>=e&&t<=r}function nb(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 Mn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function qd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Wd(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 Du(t,e){let r=nb(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 Qd(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 $d(t){return t>99?t:t>ge.twoDigitCutoffYear?1900+t:2e3+t}function TE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Pu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function AE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new je(`Invalid unit value ${t}`);return e}function vu(t,e){let r={};for(let n in t)if(ki(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=AE(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 Uu(t){return rb(t,["hour","minute","second","millisecond"])}var ib=["January","February","March","April","May","June","July","August","September","October","November","December"],_E=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],sb=["J","F","M","A","M","J","J","A","S","O","N","D"];function SE(t){switch(t){case"narrow":return[...sb];case"short":return[..._E];case"long":return[...ib];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 OE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],IE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ob=["M","T","W","T","F","S","S"];function xE(t){switch(t){case"narrow":return[...ob];case"short":return[...IE];case"long":return[...OE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var RE=["AM","PM"],ab=["Before Christ","Anno Domini"],ub=["BC","AD"],cb=["B","A"];function wE(t){switch(t){case"narrow":return[...cb];case"short":return[...ub];case"long":return[...ab];default:return null}}function lb(t){return RE[t.hour<12?0:1]}function db(t,e){return xE(e)[t.weekday-1]}function pb(t,e){return SE(e)[t.month-1]}function fb(t,e){return wE(e)[t.year<0?0:1]}function mb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let p=t==="days";switch(e){case 1:return p?"tomorrow":`next ${i[t][0]}`;case-1:return p?"yesterday":`last ${i[t][0]}`;case 0:return p?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function ky(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var hb={D:wu,DD:Xy,DDD:eE,DDDD:tE,t:rE,tt:nE,ttt:iE,tttt:sE,T:oE,TT:aE,TTT:uE,TTTT:cE,f:lE,ff:pE,fff:mE,ffff:gE,F:dE,FF:fE,FFF:hE,FFFF:yE},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 hb[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=(d,f)=>this.loc.extract(e,d,f),o=d=>e.isOffsetFixed&&e.offset===0&&d.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,d.format):"",a=()=>n?lb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(d,f)=>n?pb(e,d):s(f?{month:d}:{month:d,day:"numeric"},"month"),c=(d,f)=>n?db(e,d):s(f?{weekday:d}:{weekday:d,month:"long",day:"numeric"},"weekday"),l=d=>{let f=t.macroTokenToFormatOpts(d);return f?this.formatWithSystemDefault(e,f):d},p=d=>n?fb(e,d):s({era:d},"era"),m=d=>{switch(d){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return p("short");case"GG":return p("long");case"GGGGG":return p("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(d)}};return ky(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 ky(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},bE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function 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 DE(...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 CE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,gb=`(?:${CE.source}?(?:\\[(${bE.source})\\])?)?`,jd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,vE=RegExp(`${jd.source}${gb}`),Hd=RegExp(`(?:T${vE.source})?`),yb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Eb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Tb=/(\d{4})-?(\d{3})/,Ab=DE("weekYear","weekNumber","weekDay"),_b=DE("year","ordinal"),Sb=/(\d{4})-(\d\d)-(\d\d)/,NE=RegExp(`${jd.source} ?(?:${CE.source}|(${bE.source}))?`),Ob=RegExp(`(?: ${NE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function Ib(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:qd(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Pu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?ir.create(t[e]):null;return[{},r,e+1]}var xb=RegExp(`^T?${jd.source}$`),Rb=/^-?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 wb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",p=u&&u[0]==="-",m=(d,f=!1)=>d!==void 0&&(f||d&&l)?-d:d;return[{years:m(Mn(r)),months:m(Mn(n)),weeks:m(Mn(i)),days:m(Mn(s)),hours:m(Mn(o)),minutes:m(Mn(a)),seconds:m(Mn(u),u==="-0"),milliseconds:m(qd(c),p)}]}var bb={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 Yd(t,e,r,n,i,s,o){let a={year:e.length===2?$d(Cr(e)):Cr(e),month:_E.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?OE.indexOf(t)+1:IE.indexOf(t)+1),a}var Db=/^(?:(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 Cb(t){let[,e,r,n,i,s,o,a,u,c,l,p]=t,m=Yd(e,i,n,r,s,o,a),d;return u?d=bb[u]:c?d=0:d=Pu(l,p),[m,new nt(d)]}function vb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Nb=/^(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$/,Pb=/^(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$/,Ub=/^(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 Fy(t){let[,e,r,n,i,s,o,a]=t;return[Yd(e,i,n,r,s,o,a),nt.utcInstance]}function Lb(t){let[,e,r,n,i,s,o,a]=t;return[Yd(e,a,r,n,i,s,o),nt.utcInstance]}var Mb=Fi(yb,Hd),kb=Fi(Eb,Hd),Fb=Fi(Tb,Hd),Bb=Fi(vE),PE=Bi(Ib,$i,Ao,_o),Gb=Bi(Ab,$i,Ao,_o),$b=Bi(_b,$i,Ao,_o),Vb=Bi($i,Ao,_o);function qb(t){return Gi(t,[Mb,PE],[kb,Gb],[Fb,$b],[Bb,Vb])}function Wb(t){return Gi(vb(t),[Db,Cb])}function Qb(t){return Gi(t,[Nb,Fy],[Pb,Fy],[Ub,Lb])}function jb(t){return Gi(t,[Rb,wb])}var Hb=Bi($i);function Yb(t){return Gi(t,[xb,Hb])}var Kb=Fi(Sb,Ob),zb=Fi(NE),Jb=Bi($i,Ao,_o);function Zb(t){return Gi(t,[Kb,PE],[zb,Jb])}var Xb="Invalid Duration",UE={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},eD={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...UE},mt=146097/400,Ui=146097/4800,tD={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},...UE},kn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],rD=kn.slice(0).reverse();function Dr(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 nD(t){return t<0?Math.floor(t):Math.ceil(t)}function LE(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?nD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function iD(t,e){rD.reduce((r,n)=>ne(e[n])?r:(r&&LE(t,e,r,e,n),n),null)}function sD(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?tD:eD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new je(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:vu(e,t.normalizeUnit),loc:Ae.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Gn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new je(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=jb(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]=Yb(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 je("need to specify a reason the Duration is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Pd(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):Xb}toHuman(e={}){let r=kn.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+=Wd(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 kn)(ki(r.values,i)||ki(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Dr(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]=AE(e(this.values[n],n));return Dr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...vu(e,t.normalizeUnit)};return Dr(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 Dr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return iD(this.matrix,e),Dr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=sD(this.normalize().shiftToAll().toObject());return Dr(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 kn)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;Gn(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)kn.indexOf(c)>kn.indexOf(o)&&LE(this.matrix,i,c,r,o)}else Gn(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 Dr(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 Dr(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 kn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function oD(t,e){return!t||!t.isValid?$n.invalid("missing or invalid start"):!e||!e.isValid?$n.invalid("missing or invalid end"):e<t?$n.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 $n=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 je("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Nd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=oD(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=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=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=wu,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))}},Bn=class{static hasDST(e=ge.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ir.isValidZone(e)}static normalizeZone(e){return vr(e,ge.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.create(r,null,"gregory").eras(e)}static features(){return{relative:EE()}}};function By(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 aD(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=By(u,c);return(l-l%7)/7}],["days",By]],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 uD(t,e,r,n){let[i,s,o,a]=aD(t,e,r),u=e-i,c=r.filter(p=>["hours","minutes","seconds","milliseconds"].indexOf(p)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=we.fromObject(s,n);return c.length>0?we.fromMillis(u,n).shiftTo(...c).plus(l):l}var Kd={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"},Gy={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]},cD=Kd.hanidec.replace(/[\[|\]]/g,"").split("");function lD(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(Kd.hanidec)!==-1)e+=cD.indexOf(t[r]);else for(let i in Gy){let[s,o]=Gy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Kd[t||"latn"]}${e}`)}var dD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(lD(r))}}var pD=String.fromCharCode(160),ME=`[ ${pD}]`,kE=new RegExp(ME,"g");function fD(t){return t.replace(/\./g,"\\.?").replace(kE,ME)}function $y(t){return t.replace(/\./g,"").replace(kE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(fD).join("|")),deser:([r])=>t.findIndex(n=>$y(r)===$y(n))+e}}function Vy(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function xd(t){return{regex:t,deser:([e])=>e}}function mD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function hD(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}"),p=wt(e,"{2,4}"),m=wt(e,"{4,6}"),d=E=>({regex:RegExp(mD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return d(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ce(c);case"yy":return ce(p,$d);case"yyyy":return ce(s);case"yyyyy":return ce(m);case"yyyyyy":return ce(o);case"M":return ce(a);case"MM":return ce(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ce(a);case"LL":return ce(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ce(a);case"dd":return ce(n);case"o":return ce(u);case"ooo":return ce(i);case"HH":return ce(n);case"H":return ce(a);case"hh":return ce(n);case"h":return ce(a);case"mm":return ce(n);case"m":return ce(a);case"q":return ce(a);case"qq":return ce(n);case"s":return ce(a);case"ss":return ce(n);case"S":return ce(u);case"SSS":return ce(i);case"u":return xd(l);case"uu":return xd(a);case"uuu":return ce(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(p,$d);case"W":return ce(a);case"WW":return ce(n);case"E":case"c":return ce(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Vy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Vy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return xd(/[a-z_+-/]{1,256}?/i);default:return d(E)}})(t)||{invalidReason:dD};return g.token=t,g}var gD={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function yD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=gD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function ED(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function TD(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 AD(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=ir.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=qd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Rd=null;function _D(){return Rd||(Rd=_e.fromMillis(1555555555555)),Rd}function SD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=GE(r,e);return n==null||n.includes(void 0)?t:n}function FE(t,e){return Array.prototype.concat(...t.map(r=>SD(r,e)))}function BE(t,e,r){let n=FE(et.parseFormat(r),t),i=n.map(o=>hD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=ED(i),u=RegExp(o,"i"),[c,l]=TD(e,u,a),[p,m,d]=l?AD(l):[null,null,void 0];if(ki(l,"a")&&ki(l,"H"))throw new Fn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:p,zone:m,specificOffset:d}}}function OD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=BE(t,e,r);return[n,i,s,o]}function GE(t,e){return t?et.create(e,t).formatDateTimeParts(_D()).map(i=>yD(i,t)):null}var $E=[0,31,59,90,120,151,181,212,243,273,304,334],VE=[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 qE(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}function WE(t,e,r){return r+(To(t)?VE:$E)[e-1]}function QE(t,e){let r=To(t)?VE:$E,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Vd(t){let{year:e,month:r,day:n}=t,i=WE(e,r,n),s=qE(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,...Uu(t)}}function qy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=qE(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}=QE(a,o);return{year:a,month:u,day:c,...Uu(t)}}function wd(t){let{year:e,month:r,day:n}=t,i=WE(e,r,n);return{year:e,ordinal:i,...Uu(t)}}function Wy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=QE(e,r);return{year:e,month:n,day:i,...Uu(t)}}function ID(t){let e=Nu(t.weekYear),r=rr(t.weekNumber,1,Cu(t.weekYear)),n=rr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function xD(t){let e=Nu(t.year),r=rr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function jE(t){let e=Nu(t.year),r=rr(t.month,1,12),n=rr(t.day,1,Du(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function HE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=rr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=rr(r,0,59),a=rr(n,0,59),u=rr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var bd="Invalid DateTime",Qy=864e13;function Su(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function Dd(t){return t.weekData===null&&(t.weekData=Vd(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 _e({...r,...e,old:r})}function YE(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 jy(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function xu(t,e,r){return YE(Qd(t),e,r)}function Hy(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Du(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=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=Qd(s),[u,c]=YE(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=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ou(t,e,r=!0){return t.isValid?et.create(Ae.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Cd(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 Yy(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 KE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},RD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},wD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},zE=["year","month","day","hour","minute","second","millisecond"],bD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],DD=["year","ordinal","hour","minute","second","millisecond"];function Ky(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 zy(t,e){let r=vr(e.zone,ge.defaultZone),n=Ae.fromObject(e),i=ge.now(),s,o;if(ne(t.year))s=i;else{for(let c of zE)ne(t[c])&&(t[c]=KE[c]);let a=jE(t)||HE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function Jy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Wd(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 Zy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||ge.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Su(r));this.ts=ne(e.ts)?ge.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=jy(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||Ae.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Zy(arguments),[n,i,s,o,a,u,c]=r;return zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Zy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=eb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=vr(r.zone,ge.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if(Gn(e))return e<-Qy||e>Qy?t.invalid("Timestamp out of range"):new t({ts:e,zone:vr(r.zone,ge.defaultZone),loc:Ae.fromObject(r)});throw new je(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Gn(e))return new t({ts:e*1e3,zone:vr(r.zone,ge.defaultZone),loc:Ae.fromObject(r)});throw new je("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=vr(r.zone,ge.defaultZone);if(!n.isValid)return t.invalid(Su(n));let i=ge.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=vu(e,Ky),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,p=o.weekYear||o.weekNumber,m=Ae.fromObject(r);if((l||a)&&p)throw new Fn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Fn("Can't mix ordinal dates with month/day");let d=p||o.weekday&&!l,f,g,E=jy(i,s);d?(f=bD,g=RD,E=Vd(E)):a?(f=DD,g=wD,E=wd(E)):(f=zE,g=KE);let y=!1;for(let w of f){let B=o[w];ne(B)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let S=d?ID(o):a?xD(o):jE(o),_=S||HE(o);if(_)return t.invalid(_);let M=d?qy(o):a?Wy(o):o,[T,O]=xu(M,s,n),x=new t({ts:T,zone:n,o:O,loc:m});return o.weekday&&l&&e.weekday!==x.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${x.toISO()}`):x}static fromISO(e,r={}){let[n,i]=qb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Wb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=Qb(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new je("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=OD(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]=Zb(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new je("need to specify a reason the DateTime is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new vd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=GE(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return FE(et.parseFormat(e),Ae.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Dd(this).weekYear:NaN}get weekNumber(){return this.isValid?Dd(this).weekNumber:NaN}get weekday(){return this.isValid?Dd(this).weekday:NaN}get ordinal(){return this.isValid?wd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Bn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Bn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Bn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Bn.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 Du(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(ge.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=vr(e,ge.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=xu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Su(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=vu(e,Ky),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 Fn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Fn("Can't mix ordinal dates with month/day");let c;n?c=qy({...Vd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=Wy({...wd(this.c),...r});let[l,p]=xu(c,this.o,this.zone);return po(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e);return po(this,Hy(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,Hy(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):bd}toLocaleString(e=wu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):bd}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=Cd(this,o);return a+="T",a+=Yy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Cd(this,e==="extended"):null}toISOWeekDate(){return Ou(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Yy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ou(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ou(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Cd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ou(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():bd}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=tb(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=uD(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?$n.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),Jy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Jy(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 je("min requires all arguments be DateTimes");return My(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new je("max requires all arguments be DateTimes");return My(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return BE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return Xy}static get DATE_MED_WITH_WEEKDAY(){return Fw}static get DATE_FULL(){return eE}static get DATE_HUGE(){return tE}static get TIME_SIMPLE(){return rE}static get TIME_WITH_SECONDS(){return nE}static get TIME_WITH_SHORT_OFFSET(){return iE}static get TIME_WITH_LONG_OFFSET(){return sE}static get TIME_24_SIMPLE(){return oE}static get TIME_24_WITH_SECONDS(){return aE}static get TIME_24_WITH_SHORT_OFFSET(){return uE}static get TIME_24_WITH_LONG_OFFSET(){return cE}static get DATETIME_SHORT(){return lE}static get DATETIME_SHORT_WITH_SECONDS(){return dE}static get DATETIME_MED(){return pE}static get DATETIME_MED_WITH_SECONDS(){return fE}static get DATETIME_MED_WITH_WEEKDAY(){return Bw}static get DATETIME_FULL(){return mE}static get DATETIME_FULL_WITH_SECONDS(){return hE}static get DATETIME_HUGE(){return gE}static get DATETIME_HUGE_WITH_SECONDS(){return yE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&Gn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new je(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var CD="3.2.1";it.DateTime=_e;it.Duration=we;it.FixedOffsetZone=nt;it.IANAZone=ir;it.Info=Bn;it.Interval=$n;it.InvalidZone=bu;it.Settings=ge;it.SystemZone=Eo;it.VERSION=CD;it.Zone=Nr});var XE=H((PW,ZE)=>{"use strict";var Vn=JE();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=Vn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Vn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Vn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Vn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Vn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Vn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Vn.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))}ZE.exports=J});var rT=H((UW,tT)=>{"use strict";function qn(t){return{start:t,count:1}}function eT(t,e){t.end=e,t.step=e-t.start,t.count=2}function zd(t,e,r){e&&(e.count===2?(t.push(qn(e.start)),t.push(qn(e.end))):t.push(e)),r&&t.push(r)}function vD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(zd(e,r,qn(i)),r=void 0):r?r.count===1?eT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(qn(r.start)),r=qn(r.end),eT(r,i)):(zd(e,r),r=qn(i)):r=qn(i)}return zd(e,r),e}tT.exports=vD});var iT=H((LW,nT)=>{"use strict";var ND=rT();function PD(t,e,r){var n=ND(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,d){var f=c.start+d;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(",")}nT.exports=PD});var aT=H((MW,oT)=>{"use strict";var Wn=XE(),UD=iT(),sT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Wn(e.currentDate,this._tz),this._startDate=e.startDate?new Wn(e.startDate,this._tz):null,this._endDate=e.endDate?new Wn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(U._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(U._isValidConstraintChar(n,f)){c.push(f);return}var S=+f;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var p=u.split(",");if(!p.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(p.length>1)for(var m=0,d=p.length;m<d;m++)l(o(p[m]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],p=u.split("-");if(p.length>1){if(p.length<2)return+u;if(!p[0].length){if(!p[1].length)throw new Error("Invalid range: "+u);return+u}var m=+p[0],d=+p[1];if(Number.isNaN(m)||Number.isNaN(d)||m<n.min||d>n.max)throw new Error("Constraint error, got range "+m+"-"+d+" expected range "+n.min+"-"+n.max);if(m>d)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"&&d%7===0&&l.push(0);for(var g=m,E=d;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(y,S){for(var _=0,M=S.length;_<M;_++)if(S[_]>=y)return S[_]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var _=y.getDate()%7?1:0,M=y.getDate()-y.getDate()%7,T=Math.floor(M/7)+_;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Wn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function p(y){return y.some(function(S){if(!i([S]))return!1;var _=Number.parseInt(S[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===_&&o.isLastWeekdayOfMonth()})}for(;l<sT;){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 d=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(d=d||p(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,E=o.getHours();if(!m&&(!d||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!d){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>=sT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Wn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new Wn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(UD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Wn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,p=U.map.length;l<p;++l){var m=U.map[l],d=u[u.length>p?l:l-c];if(l<c||!d)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?S(d):d;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,p=U.map.length;l<p;l++){var E=U.map[l];g[E]=a[l]}var y=U._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new U(g,o);function S(_){var M=_.split("#");if(M.length>1){var T=+M[M.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(M.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,M[0]}return _}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,d,f){if(!d)throw new Error("Validation error, Field "+m+" is missing");if(d.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=d.length;g<E;g++){var y=d[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(m,d,f){return!d||m!==f[d-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var p=U._handleMaxDaysInMonth(i);return i.dayOfMonth=p||i.dayOfMonth,new U(i,r||{})};oT.exports=U});var cT=H((kW,uT)=>{"use strict";var Lu=aT();function Pr(){}Pr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Lu.parse(e)};if(r.length>6)return{interval:Lu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Pr.parseExpression=function(e,r){return Lu.parse(e,r)};Pr.fieldsToExpression=function(e,r){return Lu.fieldsToExpression(e,r)};Pr.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=Pr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Pr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Pr.parseString(i.toString()))})};uT.exports=Pr});var lF={};v(lF,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>Ep,BadRequestError:()=>Ic,BudibaseError:()=>ms,Config:()=>Ip,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Sp,DEFAULT_EXPENSES_TABLE_ID:()=>_p,DEFAULT_INVENTORY_TABLE_ID:()=>Ap,DEFAULT_JOBS_TABLE_ID:()=>Tp,DEFAULT_TENANT_ID:()=>ye,DeprecatedViews:()=>Wi,DocumentType:()=>Te,Duration:()=>Re,DurationType:()=>Hf,EmailUnavailableError:()=>mr,ErrorCode:()=>wc,FeatureDisabledError:()=>Rc,GlobalRole:()=>Op,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Or,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>ST,NotFoundError:()=>Oc,RedisClient:()=>$e,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>yp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>xc,UserStatus:()=>Wu,ViewName:()=>Mr,accounts:()=>oi,auth:()=>ch,blacklist:()=>fh,cache:()=>ba,configs:()=>tn,constants:()=>xp,context:()=>Ee,db:()=>$r,docIds:()=>af,docUpdates:()=>hh,encryption:()=>oh,env:()=>h,errors:()=>Dc,events:()=>Ts,features:()=>Jm,getPublicError:()=>bc,init:()=>cF,installation:()=>Gc,locks:()=>si,logging:()=>gc,middleware:()=>uh,objectStore:()=>Of,permissions:()=>Ym,platform:()=>ca,plugins:()=>dh,queue:()=>hm,redis:()=>ph,roles:()=>lm,security:()=>Nm,sessions:()=>Hc,setEnv:()=>wo,sql:()=>Ih,tenancy:()=>uF,timers:()=>jo,userUtils:()=>dm,users:()=>As,utils:()=>cs,withEnv:()=>bT});module.exports=SO(lF);var tn={};v(tn,{analyticsEnabled:()=>kc,generateConfigID:()=>Wm,getAIConfig:()=>UM,getConfig:()=>Ft,getDefaultGoogleConfig:()=>Vm,getGoogleConfig:()=>Zc,getGoogleDatasourceConfig:()=>jm,getOIDCConfig:()=>vM,getOIDCConfigById:()=>Hm,getOIDCLogosDoc:()=>DM,getPlatformUrl:()=>Pa,getSCIMConfig:()=>PM,getSMTPConfig:()=>NM,getSMTPConfigDoc:()=>xS,getSettingsConfig:()=>Qm,getSettingsConfigDoc:()=>Vc,save:()=>wM});var OO=["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"],Rh=[...OO],wh={"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 _l=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(_l||{}),Sl=(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))(Sl||{}),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 Ol=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ol||{});var IO=j(require("lodash")),_r=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(_r||{}),Yt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Yt||{}),cn=(e=>(e.RANGE="range",e))(cn||{}),gi=(r=>(r.AND="$and",r.OR="$or",r))(gi||{});function Ga(t){return Object.values(gi).includes(t)}function bh(t){return Object.values(_r).includes(t)}function Dh(t){return Object.values(Yt).includes(t)}function Il(t){return Object.values(cn).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var Ch=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var vh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var dB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var $a=(p=>(p.APP="app",p.TABLE="table",p.USER="user",p.AUTOMATION="automation",p.WEBHOOK="webhook",p.BUILDER="builder",p.CREATOR="creator",p.GLOBAL_BUILDER="globalBuilder",p.QUERY="query",p.VIEW="view",p.LEGACY_VIEW="legacy_view",p))($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||{}),he=(_=>(_.TABLE="table",_.ROW="row",_.ROWS="rows",_.WIDE="wide",_.QUERY="query",_.QUERY_PARAMS="queryParams",_.QUERY_LIMIT="queryLimit",_.LOOP_OPTION="loopOption",_.ITEM="item",_.CODE="code",_.FILTERS="filters",_.COLUMN="column",_.TRIGGER_SCHEMA="triggerSchema",_.CRON="cron",_.WEBHOOK_URL="webhookUrl",_.AUTOMATION="automation",_.AUTOMATION_FIELDS="automationFields",_.MULTI_ATTACHMENTS="multi_attachments",_.TRIGGER_FILTER="trigger_filter",_))(he||{}),St=(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))(St||{});var de=(x=>(x.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",x.CREATE_ROW="CREATE_ROW",x.UPDATE_ROW="UPDATE_ROW",x.DELETE_ROW="DELETE_ROW",x.EXECUTE_BASH="EXECUTE_BASH",x.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",x.EXECUTE_SCRIPT="EXECUTE_SCRIPT",x.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",x.EXECUTE_QUERY="EXECUTE_QUERY",x.SERVER_LOG="SERVER_LOG",x.DELAY="DELAY",x.FILTER="FILTER",x.QUERY_ROWS="QUERY_ROWS",x.LOOP="LOOP",x.COLLECT="COLLECT",x.OPENAI="OPENAI",x.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",x.BRANCH="BRANCH",x.discord="discord",x.slack="slack",x.zapier="zapier",x.integromat="integromat",x.n8n="n8n",x))(de||{}),Nh=[...Object.values(de),...Object.values(St)];var xl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(xl||{});var Rl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Rl||{});var wl="bb_internal";var Ph=["attachment_single","attachment","bb_reference","json","array"];var N="_",ke="\uFFF0",Sr=t=>`${t}${N}`,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||{}),DG=Object.values(Te).sort((t,e)=>e.length-t.length);var Or=(e=>(e.USER_METADATA="ta_users",e))(Or||{}),bl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(bl||{}),CG=Object.values(bl).sort((t,e)=>e.length-t.length);function Wa(t){return!!t.providerType}var Dl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Dl||{});var c$=Object.values(Dl);var m$=["rows","queries","automations"],h$=["queries","automations"];var dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(dn||{});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 vl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(vl||(vl={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ir=t=>{switch(typeof t){case"undefined":return k.undefined;case"string":return k.string;case"number":return isNaN(t)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(t)?k.array:t===null?k.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?k.promise:typeof Map<"u"&&t instanceof Map?k.map:typeof Set<"u"&&t instanceof Set?k.set:typeof Date<"u"&&t instanceof Date?k.date:k.object;default:return k.unknown}},I=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),wO=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 Ai=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===k.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Mh=Ai;function bO(t){Mh=t}function Qa(){return Mh}var ja=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},DO=[];function P(t,e){let r=Qa(),n=ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ai?void 0:Ai].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}),Nl=t=>t.status==="aborted",Pl=t=>t.status==="dirty",Cs=t=>t.status==="valid",vs=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 kh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var $;(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}},Uh=(t,e)=>{if(Cs(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 Ir(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Ir(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:Ir(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(vs(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:Ir(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Uh(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:Ir(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(vs(i)?i:Promise.resolve(i));return Uh(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:Y.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 Jt.create(this,this._def)}promise(){return wr.create(this,this._def)}or(e){return En.create([this,e],this._def)}and(e){return Tn.create(this,e,this._def)}transform(e){return new Je({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new In({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},CO=/^c[^\s-]{8,}$/i,vO=/^[0-9a-z]+$/,NO=/^[0-9A-HJKMNP-TV-Z]{26}$/,PO=/^[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,UO=/^[a-z0-9_-]{21}$/i,LO=/^[-+]?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)?)??$/,MO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,kO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Cl,FO=/^(?:(?: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])$/,BO=/^(([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})))$/,GO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Fh="((\\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])))",$O=new RegExp(`^${Fh}$`);function Bh(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 VO(t){return new RegExp(`^${Bh(t)}$`)}function Gh(t){let e=`${Fh}T${Bh(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 qO(t,e){return!!((e==="v4"||!e)&&FO.test(t)||(e==="v6"||!e)&&BO.test(t))}var xr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.string,received:s.parsedType}),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),P(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")MO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Cl||(Cl=new RegExp(kO,"u")),Cl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")PO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")UO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")CO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")vO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")NO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:I.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:I.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Gh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?$O.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?VO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?LO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?qO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?GO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:I.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:I.invalid_string,...$.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}};xr.create=t=>{var e;return new xr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function WO(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 pn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==k.number){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.number,received:s.parsedType}),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),P(n,{code:I.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?WO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.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)}};pn.create=t=>new pn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==k.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.bigint,received:s.parsedType}),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),P(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.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}};fn.create=t=>{var e;return new fn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var mn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.boolean,received:n.parsedType}),z}return Fe(e.data)}};mn.create=t=>new mn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var hn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(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),P(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:$.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}};hn.create=t=>new hn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var _i=class extends X{_parse(e){if(this._getType(e)!==k.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.symbol,received:n.parsedType}),z}return Fe(e.data)}};_i.create=t=>new _i({typeName:Y.ZodSymbol,...Z(t)});var gn=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.undefined,received:n.parsedType}),z}return Fe(e.data)}};gn.create=t=>new gn({typeName:Y.ZodUndefined,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==k.null){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.null,received:n.parsedType}),z}return Fe(e.data)}};yn.create=t=>new yn({typeName:Y.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:Y.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:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:I.invalid_type,expected:k.never,received:r.parsedType}),z}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.void,received:n.parsedType}),z}return Fe(e.data)}};Si.create=t=>new Si({typeName:Y.ZodVoid,...Z(t)});var Jt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==k.array)return P(r,{code:I.invalid_type,expected:k.array,received:r.parsedType}),z;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new 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)}};Jt.create=(t,e)=>new Jt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Ei(t){if(t instanceof We){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ei(n))}return new We({...t._def,shape:()=>e})}else return t instanceof Jt?new Jt({...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 We=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==k.object){let c=this._getOrReturnCtx(e);return P(c,{code:I.invalid_type,expected:k.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],p=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,p,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code: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 p=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,p,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let p=await l.key,m=await l.value;c.push({key:p,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:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return 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 $h(te.objectKeys(this.shape))}};We.create=(t,e)=>new We({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});We.strictCreate=(t,e)=>new We({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});We.lazycreate=(t,e)=>new We({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var En=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return P(r,{code:I.invalid_union,unionErrors:o}),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 P(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};En.create=(t,e)=>new En({options:t,typeName:Y.ZodUnion,...Z(e)});var Kt=t=>t instanceof An?Kt(t.schema):t instanceof Je?Kt(t.innerType()):t instanceof _n?[t.value]:t instanceof Sn?t.options:t instanceof On?te.objectValues(t.enum):t instanceof In?Kt(t._def.innerType):t instanceof gn?[void 0]:t instanceof yn?[null]:t instanceof dt?[void 0,...Kt(t.unwrap())]:t instanceof Gt?[null,...Kt(t.unwrap())]:t instanceof Ns||t instanceof Rn?Kt(t.unwrap()):t instanceof xn?Kt(t._def.innerType):[],Ya=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.object)return P(r,{code:I.invalid_type,expected:k.object,received:r.parsedType}),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}):(P(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=Kt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Ul(t,e){let r=Ir(t),n=Ir(e);if(t===e)return{valid:!0,data:t};if(r===k.object&&n===k.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Ul(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===k.array&&n===k.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Ul(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===k.date&&n===k.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var Tn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Nl(s)||Nl(o))return z;let a=Ul(s.value,o.value);return a.valid?((Pl(s)||Pl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(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}))}};Tn.create=(t,e,r)=>new Tn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.array)return P(n,{code:I.invalid_type,expected:k.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return P(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),z;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new 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:Y.ZodTuple,rest:null,...Z(e)})};var Ka=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.object)return P(n,{code:I.invalid_type,expected:k.object,received:n.parsedType}),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:Y.ZodRecord,...Z(n)}):new t({keyType:xr.create(),valueType:e,typeName:Y.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!==k.map)return P(n,{code:I.invalid_type,expected:k.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:Y.ZodMap,...Z(r)});var Ii=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.set)return P(n,{code:I.invalid_type,expected:k.set,received:n.parsedType}),z;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return 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:Y.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!==k.function)return P(r,{code:I.invalid_type,expected:k.function,received:r.parsedType}),z;function n(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].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 wr){let a=this;return Fe(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(d=>{throw c.addIssue(n(u,d)),c}),p=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(p,s).catch(d=>{throw c.addIssue(i(p,d)),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),p=a._def.returns.safeParse(l,s);if(!p.success)throw new ze([i(l,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args: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:Y.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:Y.ZodLazy,...Z(e)});var _n=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),z}return{status:"valid",value:e.data}}get value(){return this._def.value}};_n.create=(t,e)=>new _n({value:t,typeName:Y.ZodLiteral,...Z(e)});function $h(t,e){return new Sn({values:t,typeName:Y.ZodEnum,...Z(e)})}var Sn=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 P(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Ha(this,bs,"f")||kh(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 P(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;Sn.create=$h;var On=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!==k.string&&n.parsedType!==k.number){let i=te.objectValues(r);return P(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),z}if(Ha(this,Ds,"f")||kh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ha(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return P(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;On.create=(t,e)=>new On({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var wr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:I.invalid_type,expected:k.promise,received:r.parsedType}),z;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};wr.create=(t,e)=>new wr({type:t,typeName:Y.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return 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(!Cs(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=>Cs(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:Y.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===k.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===k.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var In=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===k.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};In.create=(t,e)=>new In({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var xn=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 vs(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}};xn.create=(t,e)=>new xn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var xi=class extends X{_parse(e){if(this._getType(e)!==k.nan){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.nan,received:n.parsedType}),z}return{status:"valid",value:e.data}}};xi.create=t=>new xi({typeName:Y.ZodNaN,...Z(t)});var QO=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:Y.ZodPipeline})}},Rn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Cs(i)&&(i.value=Object.freeze(i.value)),i);return vs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Vh(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 jO={object:We.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var HO=(t,e={message:`Input not instance of ${t.name}`})=>Vh(r=>r instanceof t,e),qh=xr.create,Wh=pn.create,YO=xi.create,KO=fn.create,Qh=mn.create,zO=hn.create,JO=_i.create,ZO=gn.create,XO=yn.create,eI=Rr.create,tI=zt.create,rI=Ot.create,nI=Si.create,iI=Jt.create,sI=We.create,oI=We.strictCreate,aI=En.create,uI=Ya.create,cI=Tn.create,lI=Bt.create,dI=Ka.create,pI=Oi.create,fI=Ii.create,mI=za.create,hI=An.create,gI=_n.create,yI=Sn.create,EI=On.create,TI=wr.create,Lh=Je.create,AI=dt.create,_I=Gt.create,SI=Je.createWithPreprocess,OI=Ps.create,II=()=>qh().optional(),xI=()=>Wh().optional(),RI=()=>Qh().optional(),wI={string:t=>xr.create({...t,coerce:!0}),number:t=>pn.create({...t,coerce:!0}),boolean:t=>mn.create({...t,coerce:!0}),bigint:t=>fn.create({...t,coerce:!0}),date:t=>hn.create({...t,coerce:!0})},bI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:Ai,setErrorMap:bO,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:DO,addIssueToContext:P,ParseStatus:Me,INVALID:z,DIRTY:Ti,OK:Fe,isAborted:Nl,isDirty:Pl,isValid:Cs,isAsync:vs,get util(){return te},get objectUtil(){return vl},ZodParsedType:k,getParsedType:Ir,ZodType:X,datetimeRegex:Gh,ZodString:xr,ZodNumber:pn,ZodBigInt:fn,ZodBoolean:mn,ZodDate:hn,ZodSymbol:_i,ZodUndefined:gn,ZodNull:yn,ZodAny:Rr,ZodUnknown:zt,ZodNever:Ot,ZodVoid:Si,ZodArray:Jt,ZodObject:We,ZodUnion:En,ZodDiscriminatedUnion:Ya,ZodIntersection:Tn,ZodTuple:Bt,ZodRecord:Ka,ZodMap:Oi,ZodSet:Ii,ZodFunction:za,ZodLazy:An,ZodLiteral:_n,ZodEnum:Sn,ZodNativeEnum:On,ZodPromise:wr,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Gt,ZodDefault:In,ZodCatch:xn,ZodNaN:xi,BRAND:QO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Rn,custom:Vh,Schema:X,ZodSchema:X,late:jO,get ZodFirstPartyTypeKind(){return Y},coerce:wI,any:eI,array:iI,bigint:KO,boolean:Qh,date:zO,discriminatedUnion:uI,effect:Lh,enum:yI,function:mI,instanceof:HO,intersection:cI,lazy:hI,literal:gI,map:pI,nan:YO,nativeEnum:EI,never:rI,null:XO,nullable:_I,number:Wh,object:sI,oboolean:RI,onumber:xI,optional:AI,ostring:II,pipeline:OI,preprocess:SI,promise:TI,record:dI,set:fI,strictObject:oI,string:qh,symbol:JO,transformer:Lh,tuple:lI,undefined:ZO,union:aI,unknown:tI,void:nI,NEVER:bI,ZodIssueCode:I,quotelessJson:wO,ZodError:ze});var eu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),jh=ee.record(eu,ee.string()),Ja=ee.record(eu,ee.any()),Za=ee.record(eu,ee.union([ee.any().array(),ee.string()])),Hh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Yh))})),Xa=ee.union([ee.string(),ee.number()]),Yh={string:jh.optional(),fuzzy:jh.optional(),range:ee.record(eu,ee.union([ee.object({high:Xa,low:Xa}),ee.object({high:Xa}),ee.object({low:Xa})])).optional(),equal:Ja.optional(),notEqual:Ja.optional(),empty:Ja.optional(),notEmpty:Ja.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:Hh.optional(),$or:Hh.optional()},oV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Yh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(dn).optional(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var xp={};v(xp,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>Ep,Config:()=>Ip,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Sp,DEFAULT_EXPENSES_TABLE_ID:()=>_p,DEFAULT_INVENTORY_TABLE_ID:()=>Ap,DEFAULT_JOBS_TABLE_ID:()=>Tp,DEFAULT_TENANT_ID:()=>ye,DeprecatedViews:()=>Wi,DocumentType:()=>Te,GlobalRole:()=>Op,Header:()=>Ze,InternalTable:()=>Or,MAX_VALID_DATE:()=>Qu,MIN_VALID_DATE:()=>ST,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>yp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>Wu,ViewName:()=>Mr});var fq={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=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Ze||{});var yq={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",Iq="light",vI=[{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"}},Kh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Ri="datasource_internal_bb_default";var Ur={};v(Ur,{ColumnSplitter:()=>np,NoEmptyFilterStrings:()=>gT,buildQuery:()=>nC,cleanupQuery:()=>op,fixupFilterArrays:()=>up,getKeyNumbering:()=>ap,getValidOperatorsForType:()=>eC,hasFilters:()=>ip,limit:()=>ET,recurseLogicalOperators:()=>sp,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>iC,sort:()=>yT,splitFiltersArray:()=>ru});var Vi=j(zh());var wi={};v(wi,{filterValueToLabel:()=>kI,hasSchema:()=>FI,isSupportedUserSearch:()=>Zh,parallelForeach:()=>MI,processSearchFilters:()=>kl,trimOtherProps:()=>BI,unreachable:()=>LI});var Jh=j(require("lodash")),UI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function LI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function MI(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 kI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function FI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function BI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Zh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(Ga(s)){for(let c of t[s].conditions)if(!Zh(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function kl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Jh.default.pick(i,UI);return s.field=tu(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>Xh,cron:()=>Jd,deepGet:()=>Fl,getUserColor:()=>$I,getUserInitials:()=>GI,getUserLabel:()=>VI,isGoogleSheets:()=>WI,isSQL:()=>QI,lists:()=>rp,retry:()=>jI,roles:()=>tp,schema:()=>So,views:()=>ep,wait:()=>Bl,withTimeout:()=>qI});var Fl=(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},GI=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"},$I=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%)`},VI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Xh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function qI(t,e){let[r,n]=Xh(t),i=await Promise.race([e(),r]);return n(),i}function WI(t){return t==="GOOGLE_SHEETS"}function QI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Bl(t){return new Promise(e=>setTimeout(e,t))}async function jI(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 Bl(s);try{return await t()}catch(o){n=o}}throw n}var Jd={};v(Jd,{getNextExecutionDates:()=>kD,validate:()=>FD});var dT=j($t()),pT=j(cT()),lT="(Input cron: ",LD={"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 MD(t){let e=[];for(let r of t){r.includes(lT)&&(r=r.split(lT)[0].trim());for(let[n,i]of Object.entries(LD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function kD(t,e=4){let r=pT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function FD(t){let e=(0,dT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:MD(e.getError())}}var So={};v(So,{decodeNonAscii:()=>Zd,encodeNonAscii:()=>$D,isDeprecatedSingleUserColumn:()=>BD,isNumeric:()=>VD,isRequired:()=>GD});function BD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function GD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function $D(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Zd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function VD(t){return t.type==="number"||t.type==="bigint"}var ep={};v(ep,{basicFields:()=>HD,calculationFields:()=>jD,hasCalculationFields:()=>QD,isBasicViewField:()=>qD,isCalculationField:()=>Oo,isCalculationView:()=>WD,isV2:()=>YD,isVisible:()=>fT});var Xd=require("lodash");function Oo(t){return"calculationType"in t}function qD(t){return!Oo(t)}function WD(t){return t.type==="calculation"}function QD(t){return Object.values(t.schema||{}).some(Oo)}function jD(t){return(0,Xd.pickBy)(t.schema||{},Oo)}function fT(t){return t.visible!==!1}function HD(t,e){let{visible:r=!0}=e||{};return(0,Xd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||fT(n)))}function YD(t){return t.version===2}var tp={};v(tp,{checkForRoleInheritanceLoops:()=>zD});function KD(t){return`role${N}${t}`}function zD(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=KD(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 rp={};v(rp,{punctuateList:()=>JD});function JD(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}var Qn=require("lodash");var ZD=/{{([^{].*?)}}/g,hT=Object.values(gi),XD=[...Object.values(_r),...Object.values(Yt),...Object.values(cn)],eC=(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},gT=[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 sp(t,e){for(let r of hT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var op=t=>{for(let e of gT)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===""||tC(s))&&delete t[e][i]}return t=sp(t,op),t};function tC(t){return Array.isArray(t)&&t.length===0}var tu=t=>ap(t).key,ap=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}},np=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}=ap(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=Zd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function rC(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(ZD)||[]).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(Il(r)){let c=Kh[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(bh(r)||Dh(r)||Il(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function ru(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function nC(t){if(!t)return{};if(Array.isArray(t)&&(t=kl(t),!t))return{};let e=mT(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}=ru(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=mT(n.logicalOperator)),{[a]:{conditions:o.map(rC).filter(u=>u)}}})},r}function mT(t){return t==="all"?"$and":"$or"}function up(t){if(!t)return t;for(let e of Object.values(Yt)){let r=t[e];if(!(r==null||!(0,Qn.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 sp(t,up),t}function iC(t,e){let r=Mu(t,e.query);e.sort&&(r=yT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=ET(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=op(e),e=up(e),!ip(e)&&e.onEmptyFilter==="none")return[];let r=(T,O)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Ga(T)?x:Fl(x,tu(w)),on=O(le,B);if(e.allOr&&on)return!0;if(!e.allOr&&!on)return!1}return!e.allOr},n=r("string",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().startsWith(O.toLowerCase())),i=r("fuzzy",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().includes(O.toLowerCase())),s=r("range",(T,O)=>{if(T==null||T===""||((0,Qn.isPlainObject)(O.low)&&(0,Qn.isEmpty)(O.low)&&(O.low=void 0),(0,Qn.isPlainObject)(O.high)&&(0,Qn.isEmpty)(O.high)&&(O.high=void 0),O.low==null&&O.high==null))return!1;let x=+T;if(!isNaN(x)){let B=+O.low,le=+O.high;if(!isNaN(B)&&!isNaN(le))return x>=B&&x<=le;if(isNaN(B)){if(!isNaN(le))return x<=le}else return x>=B}let w=(0,Vi.default)(T);if(w.isValid()){let B=(0,Vi.default)(O.low||"0000-00-00T00:00:00.000Z"),le=(0,Vi.default)(O.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&le.isValid())return w.isAfter(B)&&w.isBefore(le)||w.isSame(B)||w.isSame(le);if(B.isValid())return w.isAfter(B)||w.isSame(B);if(le.isValid())return w.isBefore(le)||w.isSame(le)}return O.low!=null&&O.high!=null?T>=O.low&&T<=O.high:O.low!=null?T>=O.low:O.high!=null?T<=O.high:!1}),o=(T,O)=>{if(Array.isArray(T)){for(let w of T)if(o(w,O))return!0;return!1}if(T&&typeof T=="object"&&typeof O=="string")return T._id===O;if(T===O)return!0;if(T==null&&O!=null||T!=null&&O==null)return!1;let x=(0,Vi.default)(T);if(x.isValid()){let w=(0,Vi.default)(O);if(w.isValid())return x.isSame(w)}return!1},a=T=>(...O)=>!T(...O),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,p=r("empty",l),m=r("notEmpty",a(l)),d=r("oneOf",(T,O)=>(typeof O=="string"&&(O=O.split(",")),typeof T=="number"&&(O=O.map(x=>parseFloat(x))),Array.isArray(O)?O.some(x=>o(T,x)):!1)),f=T=>(O,x)=>!Array.isArray(O)||(typeof x=="string"&&(x=x.split(","),typeof O[0]=="number"&&(x=x.map(w=>parseFloat(w)))),!Array.isArray(x))?!1:x.length===0?!0:x[T](w=>o(O,w)),g=r("contains",(T,O)=>Array.isArray(O)&&O.length===0?!0:f("every")(T,O)),E=r("notContains",(T,O)=>Array.isArray(O)&&O.length===0?!0:a(f("every"))(T,O)),y=r("containsAny",f("some")),S=r("$and",(T,O)=>{if(!O.length)return!1;for(let x of O)if(!Mu([T],x).length)return!1;return!0}),_=r("$or",(T,O)=>{if(!O.length)return!1;for(let x of O)if(Mu([T],{...x,allOr:!0}).length)return!0;return!1}),M=T=>{let O={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:p,notEmpty:m,oneOf:d,contains:g,containsAny:y,notContains:E,$and:S,$or:_},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>O[w]?.(T)??!1);return ip(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function yT(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 ET(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var ip=t=>{if(!t)return!1;let e=r=>{for(let n of hT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of XD){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:()=>lp,automations:()=>dp,screens:()=>gp,users:()=>hp});var lp={};v(lp,{getDevAppID:()=>sC,getProdAppID:()=>ku});var cp=Sr("app"),Io=Sr("app_dev");function sC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(cp);e.shift();let r=e.join(cp);return`${Io}${r}`}function ku(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`${cp}${r}`}var dp={};v(dp,{isAppAction:()=>uC,isRowAction:()=>oC,isWebhookAction:()=>aC});function oC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function aC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function uC(t){return t.definition.trigger?.stepId==="APP"}var hp={};v(hp,{canCreateApps:()=>cC,containsUserID:()=>hC,getGlobalUserID:()=>mC,getUserAppGroups:()=>gC,getUserGroups:()=>mp,hasAdminPermissions:()=>fp,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>TT,hasBuilderPermissions:()=>pC,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>lC,isAdminOrGlobalBuilder:()=>dC,isBuilder:()=>pp,isCreator:()=>fC,isGlobalBuilder:()=>Fu,userAppAccessList:()=>yC});var Lr=j(require("lodash/fp"));function pp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ku(e))):!1}function Fu(t){return pp(t)&&!Gu(t)||Bu(t)}function cC(t){return Fu(t)||$u(t)}function Bu(t){return t?fp(t):!1}function lC(t,e){return pp(t,e)||Bu(t)}function dC(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 TT(t){return t?Lr.flow(Lr.get("roles"),Lr.values,Lr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function pC(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function fp(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function fC(t){return t?Fu(t)||fp(t)||$u(t)||Gu(t)||TT(t):!1}function mC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function hC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function mp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function gC(t,e,r){let n=ku(t);return mp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function yC(t,e){let n=mp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var gp={};v(gp,{findInSettings:()=>EC});function EC(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 LQ={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},MQ={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},kQ={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 QQ={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 YQ={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 JQ={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 ej={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 nj={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 oj={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 cj={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 pj={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 hj={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var Ej={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!0,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var DC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},_j={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(xl),pretty:Object.values(DC)},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 Ij={name:"Looping",icon:"Reuse",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var wj={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var Cj={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(Rl)},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 AT=(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))(AT||{}),Pj={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(AT)}},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 _T=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(_T||{}),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(_T),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 MC={ascending:"Ascending",descending:"Descending"},Bj={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(dn),pretty:Object.values(MC)},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 Vj={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 Qj={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 Yj={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 Jj={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 eH={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 nH={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 QC={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 HC={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 KC={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 JC={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 XC={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 tv={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 nv={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||{}),Mr=(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))(Mr||{}),Wi={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=Sr("app"),qu=Sr("app_dev"),yt=qu,yp="internal",Ep="budibase",sr="_design/sqlite",Tp="ta_bb_jobs",Ap="ta_bb_inventory",_p="ta_bb_expenses",Sp="ta_bb_employee";var Wu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Wu||{}),Qi=(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))(Qi||{}),Op=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Op||{}),Ip=(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))(Ip||{}),ST=new Date(-2147483647e3),Qu=new Date(2147483647e3),ye="default";var ba={};v(ba,{CacheKey:()=>pr,TTL:()=>ti,app:()=>tf,bustCache:()=>as,destroy:()=>ia,docWritethrough:()=>$m,generic:()=>sa,get:()=>ri,invite:()=>em,keys:()=>yc,passwordReset:()=>Bm,store:()=>fr,user:()=>rn,withCache:()=>Yr,writethrough:()=>Fm});var sa={};v(sa,{CacheKey:()=>pr,TTL:()=>ti,bustCache:()=>as,destroy:()=>ia,get:()=>ri,keys:()=>yc,store:()=>fr,withCache:()=>Yr});var Ee={};v(Ee,{DEFAULT_TENANT_ID:()=>ye,baseGlobalDBName:()=>No,doInAppContext:()=>Fv,doInAppMigrationContext:()=>Gv,doInAutomationContext:()=>kv,doInContext:()=>Wp,doInEnvironmentContext:()=>Vv,doInIPContext:()=>Hp,doInIdentityContext:()=>Ro,doInScimContext:()=>qv,doInTenant:()=>Ge,ensureSnippetContext:()=>jT,getAppDB:()=>Ji,getAppId:()=>Ne,getAuditLogDBName:()=>WT,getAuditLogsDB:()=>Qv,getAutomationId:()=>Qp,getCurrentContext:()=>Zi,getDevAppDB:()=>Hv,getEnvironmentVariables:()=>Wv,getFeatureFlags:()=>Yp,getGlobalDB:()=>ie,getGlobalDBName:()=>ar,getIP:()=>jp,getIdentity:()=>or,getPlatformURL:()=>qp,getProdAppDB:()=>jv,getProdAppId:()=>$v,getScimDBName:()=>Pv,getTableForView:()=>Yv,getTenantIDFromAppID:()=>zi,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Br,isScim:()=>Nt,isTenancyEnabled:()=>Lv,isTenantIdSet:()=>Uv,setFeatureFlags:()=>Kp,setTableForView:()=>Kv});var xo={};v(xo,{doInAccountContext:()=>av,doInIdentityContext:()=>wp,doInUserContext:()=>bp,getAccountUserId:()=>OT,getIdentity:()=>Rp});function Rp(){return or()}function wp(t,e){return Ro(t,e)}function bp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return wp(n,r)}function av(t,e){let r=OT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return wp(i,e)}function OT(t){let e;return Va(t)?e=t.budibaseUserId:e=t.accountId,e}var Yu=require("fs");var RT=require("lodash"),Dp=require("crypto");function Cp(){return wT()}function wT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Hu(){return process.env.NODE_ENV!=="production"}function uv(t){if(t)return parseInt(t)}var IT=!1;!IT&&Hu()&&!Cp()&&(require("dotenv").config(),IT=!0);var ji={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},xT=!!parseInt(process.env.SELF_HOSTED||"");function cv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function lv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function dv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Yu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Yu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Hu()&&!Cp())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 pv(){return Ct.SERVICE_TYPE==="worker"}function fv(){return Ct.SERVICE_TYPE==="apps"}function mv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}var Ct={isTest:Cp,isJest:wT,isDev:Hu,isWorker:pv,isApps:fv,isQA:mv,isProd:()=>!Hu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Dp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Dp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:cv(),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:xT,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||ji.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||ji.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||ji.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||ji.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||ji.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||ji.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:lv(),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:xT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...dv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Ct[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:uv(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,RT.cloneDeep)(Ct),r;for(r in t)Ct._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Ct._set(n,i)}}function bT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var DT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Ct))e==="0"&&(Ct[t]=0),e==="false"&&(Ct[t]=0);var h=Ct;var CT=require("async_hooks"),ve=class t{static{this.storage=new CT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var vp="No app provided";function kr(t){if(!t)throw vp;return t.startsWith(yt)}function hv(t){if(!t)throw vp;return t.startsWith(gt)&&!kr(t)}function bo(t){if(!t)throw vp;return kr(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 gv=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 yv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Np(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:Np(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Np=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let p=l.split(":");r=p[0],n=p.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var VT=j(require("@budibase/nano"));var vT=j(require("node-fetch"));function zu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function NT(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,vT.default)(zu(encodeURI(t)),i)}async function Ju(t,e="GET",r){let n=await NT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var jn=j(require("pouchdb"));var PT,UT=!1,Pp=(t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),jn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");jn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");jn.default.plugin(i.plugin),jn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");jn.default.plugin(i)}return jn.default.defaults(n)};function Zu(t){PT=Pp(t),UT=!0}var Tv=()=>{if(!UT)throw new Error("init has not been called")};function Et(t,e){Tv();let r=new PT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Co(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var LT=require("uuid");function Oe(){return(0,LT.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||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return 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 Gp={};v(Gp,{breakExternalTableId:()=>Mp,breakRowIdField:()=>Dv,buildExternalTableId:()=>Ov,convertRowId:()=>bv,encodeTableId:()=>Iv,encodeViewId:()=>xv,generateRowIdField:()=>Rv,getNativeSql:()=>Yi,isExternalTable:()=>Lp,isExternalTableID:()=>Xu,isInternalTableID:()=>Sv,isInvalidISODateString:()=>kp,isRowId:()=>wv,isValidFilter:()=>ec,isValidISODateString:()=>Fp,isValidTime:()=>Cv,sqlLog:()=>vo,validateManyToMany:()=>Bp});var Up=`${N}${N}`,kT=/^\[.*]$/g,Av=encodeURIComponent(" "),FT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,_v=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Xu(t){return t.startsWith("datasource"+N)}function Sv(t){return!Xu(t)}function Yi(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 Lp(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==Ri||t?.sourceType==="external"?!0:!!(t?._id&&Xu(t._id))}function Ov(t,e){return`${t}${Up}${encodeURIComponent(e)}`}function Iv(t){return Xu(t)?encodeURIComponent(t):t}function xv(t){return encodeURIComponent(t)}function Mp(t){let e=t.split(Up),r=e.shift(),n=e.join(Up);if(n.includes(Av)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Rv(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}function wv(t){return Array.isArray(t)||typeof t=="string"&&t.match(kT)!=null}function bv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(kT)!=null?t.substring(1,t.length-1):t}function Dv(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 kp(t){let e=t.trim();if(!FT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Fp(t){return FT.test(t.trim())}function ec(t){return t!=null&&t!==""}function Cv(t){return _v.test(t)}function vo(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function vv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Bp(t){if(vv(t))return t}var BT="Database does not exist.";function GT(t){return(0,VT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Fr=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 Nv(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Ki(t,r,e);return new Hi(n)}var Ki=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=GT(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=GT(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 Fr(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===BT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Fr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Fr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Ch(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 Fr(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===BT)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 Fr("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}/${sr}`;return vo("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(sr)){let e=await this.get(sr);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 Fr(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 He(t,e){return new Hi(new Ki(t,e))}async function at(t,e,r){let n=He(t,r);return await e(n)}async function $p(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Ju(e)}async function Vp(t,e){let r=await Ju(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var qT=null;function ar(t){return t||(t=Q()),No(t)}function WT(t){return t||(t=Q()),t===ye?Se.AUDIT_LOGS.name:`${t}${N}${Se.AUDIT_LOGS.name}`}function Pv(t){return t||(t=Q()),t===ye?Se.SCIM_LOGS.name:`${t}${N}${Se.SCIM_LOGS.name}`}function No(t){return!t||t===ye?Se.GLOBAL.name:`${t}${N}${Se.GLOBAL.name}`}function qp(){return h.PLATFORM_URL}function Br(){return!!h.MULTI_TENANCY}function Uv(){return!!ve.get()?.tenantId}function Lv(){return h.MULTI_TENANCY}function zi(t){if(!t)return;if(!Br())return ye;let e=t.split(N),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Mv(t){let e;try{e=ve.get()}catch{e={}}return e={...e,...t},e}async function Gr(t,e){Bv();let r=Mv(t);return ve.run(r,e)}async function kv(t){return await jT(),await Gr({tenantId:zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Wp(t,e){let r=zi(t);return Gr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||ye),Gr(t?{tenantId:t}:{},e)}async function Fv(t,e){return QT(t,e)}async function QT(t,e,r){if(!t)throw new Error("appId is required");let n=zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Gr(i,e)}async function Ro(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Gr(r,e)}function Bv(){if(ve.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function Gv(t,e){return QT(t,e,{isMigrating:!0})}function or(){try{return ve.get()?.identity}catch{}}function Q(){if(!Br())return ye;let e=ve.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Qp(){return ve.get()?.automationId}function Ne(){let e=ve.get()?.appId;return!e&&h.isTest()&&qT?qT:e}function jp(){return ve.get()?.ip}var $v=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function Vv(t,e){if(!t)throw new Error("Must supply environment variables.");return Gr({environmentVariables:t},e)}function qv(t){return Gr({isScim:!0},t)}function Hp(t,e){return Gr({ip:t},e)}async function jT(t=!h.isTest()){let e=Zi();if(!e||e.snippets)return;let r,n=Ji();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function Wv(){let t=ve.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=ve.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return He(No(t?.tenantId))}function Qv(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return He(WT())}function Ji(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return He(e,t)}function jv(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return He(ot(e),t)}function Hv(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return He(Ku(e),t)}function Nt(){return!!ve.get()?.isScim}function Zi(){try{return ve.get()}catch{return}}function Yp(t){let e=Zi();if(e)return e.featureFlagCache?.[t]}function Kp(t,e){let r=Zi();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function Yv(t){let e=Zi();if(e)return e.viewToTableCache?.[t]}function Kv(t,e){let r=Zi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Hr={};v(Hr,{getAppClient:()=>uc,getCacheClient:()=>Mf,getDocWritethroughClient:()=>ZN,getInviteClient:()=>Xn,getLockClient:()=>Ff,getPasswordResetClient:()=>na,getSessionClient:()=>jr,getSocketClient:()=>JN,getUserClient:()=>ra,getWritethroughClient:()=>kf,init:()=>Ut,shutdown:()=>s_});var n_=j(require("ioredis"));var nc={};v(nc,{Databases:()=>zp,SEPARATOR:()=>Xi,SelectableDatabase:()=>tc,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>rc,getRedisOptions:()=>es,removeDbPrefix:()=>Jp});var zv=2e3,HT=1e4,Xi="-",zp=(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))(zp||{}),tc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(tc||{});function rc(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function es(){let{host:t,password:e,port:r}=rc(),n={connectTimeout:HT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:HT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:zv,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Xi}${e}`}function Jp(t){let e=t.split(Xi);return e.length>=2?(e.shift(),e.join(Xi)):e[0]}var gc={};v(gc,{correlation:()=>Po,logAlert:()=>zn,logAlertWithInfo:()=>QN,logWarn:()=>ss,logger:()=>hc,system:()=>Rf});var Po={};v(Po,{getId:()=>Zp,setHeader:()=>Jv});var YT=require("correlation-id"),Jv=t=>{let e=YT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Zp(){return YT.getId()}var mc=j(require("pino")),t_=j(require("pino-pretty"));var wf=j(require("dd-trace")),r_=require("dd-trace/ext");var Rf={};v(Rf,{getLogReadStream:()=>BN,getSingleFileMaxSizeInfo:()=>e_,localFileDestination:()=>xf});var Vo=j(require("fs")),If=j(require("path")),zA=j(require("rotating-file-stream"));var Of={};v(Of,{ObjectStore:()=>Pt,ObjectStoreBuckets:()=>Xv,SIGNED_FILE_PREFIX:()=>Tf,bucketTTLConfig:()=>ic,budibaseTempDir:()=>Hn,clientLibraryCDNUrl:()=>NN,clientLibraryPath:()=>VA,clientLibraryUrl:()=>PN,createBucketIfNotExists:()=>$o,deleteFile:()=>xN,deleteFiles:()=>RN,deleteFolder:()=>BA,downloadTarball:()=>bN,downloadTarballDirect:()=>wN,enrichPluginURLs:()=>MN,extractBucketAndPath:()=>Xp,getAppFileUrl:()=>UN,getGlobalFileS3Key:()=>qA,getGlobalFileUrl:()=>LN,getObjectMetadata:()=>DN,getPluginIconKey:()=>jA,getPluginJSKey:()=>QA,getPluginS3Dir:()=>YA,getPresignedUrl:()=>Wr,getReadStream:()=>sc,listAllObjects:()=>FA,processAutomationAttachment:()=>tN,processObjectStoreAttachment:()=>XT,retrieve:()=>kA,retrieveDirectory:()=>IN,retrieveToTmp:()=>ON,sanitizeBucket:()=>Ke,sanitizeKey:()=>Pe,streamUpload:()=>MA,upload:()=>SN,uploadDirectory:()=>Af});var pc=require("@aws-sdk/client-s3"),mf=require("@aws-sdk/lib-storage"),NA=require("@aws-sdk/s3-request-presigner"),Go=j(require("stream")),hf=j(require("node-fetch")),gf=j(require("tar-fs")),yf=j(require("zlib")),PA=require("util"),qr=require("path"),dr=j(require("fs"));var Uo=j(require("path")),KT=require("os"),zT=j(require("fs"));var JT=j(require("stream")),Xv={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},ZT=(0,Uo.join)((0,KT.tmpdir)(),".budibase");try{zT.default.mkdirSync(ZT)}catch(t){if(t.code!=="EEXIST")throw t}function Hn(){return ZT}var ic=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function eN(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Uo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:JT.default.Readable.fromWeb(e.body)}}async function XT(t){let e=Xp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await sc(r,n),s=Uo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function tN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await eN(t):await XT(t)}var Ef=require("uuid");var $r={};v($r,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>Ep,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Sp,DEFAULT_EXPENSES_TABLE_ID:()=>_p,DEFAULT_INVENTORY_TABLE_ID:()=>Ap,DEFAULT_JOBS_TABLE_ID:()=>Tp,DatabaseImpl:()=>Ki,DatabaseWithConnection:()=>Nv,DeprecatedViews:()=>Wi,DocumentType:()=>Te,InternalTable:()=>Or,QueryBuilder:()=>lr,Replication:()=>wA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>yp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>Mr,baseGlobalDBName:()=>No,checkErrorCode:()=>vA,closePouchDB:()=>Co,createApiKeyView:()=>SA,createNewUserEmailView:()=>AA,createPlatformAccountEmailView:()=>IA,createPlatformUserView:()=>xA,createUserAppView:()=>_A,createView:()=>ns,dbExists:()=>pN,directCouchAllDbs:()=>$p,directCouchCall:()=>NT,directCouchFind:()=>Vp,directCouchQuery:()=>Ju,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>yv,fullSearch:()=>gN,generateAppID:()=>tA,generateAppUserID:()=>cc,generateDevInfoID:()=>uA,generateGlobalUserID:()=>ts,generatePluginID:()=>cA,generateRoleID:()=>nf,generateRowID:()=>rf,generateTableID:()=>rA,generateTemplateID:()=>aA,generateUserMetadataID:()=>sA,generateWorkspaceID:()=>nA,getAllApps:()=>Mo,getAllDbs:()=>TA,getAppsByIDs:()=>uN,getCouchInfo:()=>vt,getDB:()=>He,getDevAppID:()=>gv,getDevAppIDs:()=>lN,getDevelopmentAppID:()=>Ku,getDocParams:()=>rs,getGlobalDBName:()=>ar,getGlobalIDFromUserMetadataID:()=>oA,getGlobalUserParams:()=>Yn,getPluginParams:()=>EA,getPouch:()=>Pp,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>cN,getQueryIndex:()=>lA,getRoleParams:()=>dc,getRowParams:()=>sf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>yA,getUrlInfo:()=>Np,getUserMetadataParams:()=>gA,getUsersByAppParams:()=>lc,getWorkspaceParams:()=>hA,init:()=>Zu,isDatasourceId:()=>fA,isDevApp:()=>bo,isDevAppID:()=>kr,isDocumentConflictError:()=>EN,isExternalTableId:()=>of,isGlobalUserID:()=>iA,isProdAppID:()=>hv,isQueryId:()=>mA,isSameAppID:()=>dN,isTableId:()=>dA,isViewId:()=>pA,paginatedSearch:()=>hN,pagination:()=>uf,prefixRoleID:()=>ur,queryGlobalView:()=>cr,queryGlobalViewRaw:()=>df,queryPlatformView:()=>Fo,queryView:()=>lf,queryViewRaw:()=>ko,removeKeyNumbering:()=>Bo,searchIndexes:()=>ff});var tf={};v(tf,{AppState:()=>ef,getAppMetadata:()=>ac,invalidateAppMetadata:()=>sN});var ef=(e=>(e.INVALID="invalid",e))(ef||{}),eA=3600,rN=60;async function nN(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function iN(t){return!t||t.state==="invalid"}async function ac(t){let e=await uc(),r=await e.get(t);if(!r){let n=eA;try{r=await nN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=rN;else throw i}if(iN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function sN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await uc();await r.delete(t),e&&await r.store(t,e,eA)}var af={};v(af,{generateAppID:()=>tA,generateAppUserID:()=>cc,generateDevInfoID:()=>uA,generateGlobalUserID:()=>ts,generatePluginID:()=>cA,generateRoleID:()=>nf,generateRowID:()=>rf,generateTableID:()=>rA,generateTemplateID:()=>aA,generateUserMetadataID:()=>sA,generateWorkspaceID:()=>nA,getDocParams:()=>rs,getGlobalIDFromUserMetadataID:()=>oA,getGlobalUserParams:()=>Yn,getPluginParams:()=>EA,getQueryIndex:()=>lA,getRoleParams:()=>dc,getRowParams:()=>sf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>yA,getUserMetadataParams:()=>gA,getUsersByAppParams:()=>lc,getWorkspaceParams:()=>hA,isDatasourceId:()=>fA,isExternalTableId:()=>of,isGlobalUserID:()=>iA,isQueryId:()=>mA,isTableId:()=>dA,isViewId:()=>pA,prefixRoleID:()=>ur});var tA=t=>{let e=gt;return t&&(e+=`${t}${N}`),`${e}${Oe()}`};function rA(){return`ta${N}${Oe()}`}function rf(t,e){return e=e||Oe(),`ro${N}${t}${N}${e}`}function nA(){return`workspace${N}${Oe()}`}function ts(t){return`us${N}${t||Oe()}`}var oN=new RegExp(`^us${N}.+`);function iA(t){return oN.test(t)}function sA(t){return rf("ta_users",t)}function oA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function aA(t){return`template${N}${t}${N}${Oe()}`}function cc(t,e){return`${t}${N}${e}`}function nf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function ur(t){return nf(t)}var uA=t=>`devinfo${N}${t}`,cA=t=>`plg${N}${t}`;var aN=new RegExp("^datasource_plus_(.+)__(.+)$");function rs(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${ke}`}}function sf(t,e,r={}){if(t==null)return rs("ro",null,r);let n=e??`${t}${N}`;return rs("ro",n,r)}function lA(t){return`database/${t}`}var of=t=>{let e=t.match(aN);return!!t&&e!==null},dA=t=>!!t&&(t.startsWith(`ta${N}`)||of(t));function pA(t){return!!t&&t.startsWith(`view${N}`)}function fA(t){return!!t&&t.startsWith(`datasource${N}`)}function mA(t){return!!t&&t.startsWith(`query${N}`)}function hA(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${ke}`}}function Yn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${ke}`}}function gA(t,e={}){return sf("ta_users",t,e)}function lc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function yA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${ke}`}}function dc(t,e={}){return rs("role",t,e)}function Lo(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var EA=(t,e={})=>rs("plg",t,e);async function TA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await $p(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ye?await n():(await n(Lo("app",i)),await n(Lo("app_dev",i)),r.push(ar(i))),r}async function Mo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ye);let o=(await TA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(N);if(c[0]==="app"){let l=c[c.length-2],p=c.length===2||l==="dev";return i===ye&&p||l===i}return!1});if(r){let u=o.filter(l=>kr(l)),c=o.filter(l=>!kr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>ac(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 uN(t){return(await Promise.allSettled(t.map(r=>ac(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function cN(){return(await Mo({idsOnly:!0})).filter(e=>!kr(e))}async function lN(){return(await Mo({idsOnly:!0})).filter(e=>kr(e))}function dN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function pN(t){return at(t,async e=>await e.exists(),{skip_setup:!0})}function uf(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 cf="_design/database";function fN(){return{_id:cf,views:{}}}async function mN(t,e){if(Wi[e])try{let r=await t.get(cf);for(let n of Wi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(cf)}catch{n=fN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var AA=async()=>{let t=ie(),e=`function(doc) {
6
+ if (doc._id.startsWith("us${N}")) {
7
7
  emit(doc.email.toLowerCase(), doc._id)
8
8
  }
9
- }`;await ns(t,e,"by_email2")},AA=async()=>{let t=se(),e=`function(doc) {
10
- if (doc._id.startsWith("us${C}") && doc.roles) {
9
+ }`;await ns(t,e,"by_email2")},_A=async()=>{let t=ie(),e=`function(doc) {
10
+ if (doc._id.startsWith("us${N}") && doc.roles) {
11
11
  for (let prodAppId of Object.keys(doc.roles)) {
12
- let emitted = prodAppId + "${C}" + doc._id
12
+ let emitted = prodAppId + "${N}" + doc._id
13
13
  emit(emitted, null)
14
14
  }
15
15
  }
16
- }`;await ns(t,e,"by_app")},_A=async()=>{let t=se(),e=`function(doc) {
16
+ }`;await ns(t,e,"by_app")},SA=async()=>{let t=ie(),e=`function(doc) {
17
17
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
18
18
  emit(doc.apiKey, doc.userId)
19
19
  }
20
- }`;await ns(t,e,"by_api_key")};async function ko(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await fN(r,t),await n(),ko(t,e,r,n,i);if(s.status===409)return ko(t,e,r,n,i);throw s}}var cf=async(t,e,r,n,i)=>{let a=(await ko(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function SA(t,e){try{await at(Se.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var OA=async()=>{let t=`function(doc) {
21
- if (doc._id.startsWith("acc_metadata${C}")) {
20
+ }`;await ns(t,e,"by_api_key")};async function ko(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await mN(r,t),await n(),ko(t,e,r,n,i);if(s.status===409)return ko(t,e,r,n,i);throw s}}var lf=async(t,e,r,n,i)=>{let a=(await ko(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function OA(t,e){try{await at(Se.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var IA=async()=>{let t=`function(doc) {
21
+ if (doc._id.startsWith("acc_metadata${N}")) {
22
22
  emit(doc.email.toLowerCase(), doc._id)
23
23
  }
24
- }`;await SA(t,"account_by_email")},IA=async()=>{await SA(`function(doc) {
24
+ }`;await OA(t,"account_by_email")},xA=async()=>{await OA(`function(doc) {
25
25
  if (doc.tenantId) {
26
26
  emit(doc._id.toLowerCase(), doc._id)
27
27
  }
@@ -29,10 +29,10 @@ attempted value: ${s}
29
29
  if (doc.ssoId) {
30
30
  emit(doc.ssoId, doc._id)
31
31
  }
32
- }`,"platform_users_lowercase_2")},Fo=async(t,e)=>{let r={account_by_email:OA,platform_users_lowercase_2:IA};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return cf(t,e,n,i,{arrayResponse:!0})})},xA={by_email2:TA,by_api_key:_A,by_app:AA},lr=async(t,e,r,n)=>{r||(r=se());let i=xA[t];return cf(t,e,r,i,n)};async function lf(t,e,r){let n=se(),i=xA[t];return ko(t,e,n,i,r)}var df=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()}},RA=df;var bA=j(require("node-fetch"));var Bo=Lr.removeKeyNumbering;function zn(t){return t==null||t===""}var dr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Bo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>zn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(zn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${E} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(zn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function p(f,g,E){let y="";for(let[O,S]of Object.entries(f)){O=Bo(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)=>zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(zn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>zn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Ct(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await wA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await wA(n,i,r);throw s}}};async function wA(t,e,r){let n=await(0,bA.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 DA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=dr.maxLimit;n.limit&&s.length>n.limit-dr.maxLimit&&(o=n.limit-s.length);let a=new dr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<dr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await DA(t,e,r,c)}async function mN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,dr.maxLimit);let s=new dr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function hN(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 DA(t,e,r,n)}}var pf={};v(pf,{createUserIndex:()=>gN});async function gN(){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 vA(t,e){let r=e.toString();if(typeof t=="object")return t.status===e||t.message?.includes(r);if(typeof t=="number")return t===e;if(typeof t=="string")return t.includes(r)}function yN(t){return vA(t,409)}var PA=j(require("fs/promises")),EN=require("sanitize-s3-objectkey"),UA=(0,NA.promisify)(Go.default.pipeline),TN={bucketCreationPromises:{}},Ef="/files/signed",qr={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"},AN=[qr.html,qr.css,qr.js,qr.json];function Pe(t){return EN(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(yt,"g"),gt)}function Pt(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 pc.S3(e)}async function $o(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=TN.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 _N({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await PA.default.open(r)).createReadStream():s,c=Pt(),l=await $o(c,t);if(o&&l.created){let g=ic(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?qr[a.toLowerCase()]:qr.txt),p={Bucket:Ke(t),Key:Pe(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 ff.Upload({client:c,params:p}).done()}async function LA({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=Pt(),u=await $o(a,t);if(s&&u.created){let E=ic(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?qr[o.toLowerCase()]:qr.txt);let l=Ke(t),d=Pe(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new ff.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function MA(t,e){let r=Pt(),n={Bucket:Ke(t),Key:Pe(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(AN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Go.default.Readable.fromWeb(s)}}async function kA(t,e){let r=Pt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Pe(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 Qr(t,e,r=3600){let n=Pt({presigning:!0}),i={Bucket:Ke(t),Key:Pe(e)},s=await(0,CA.getSignedUrl)(n,new pc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Ef}${a}${u}`}else return s}async function SN(t,e){t=Ke(t),e=Pe(e);let r=await MA(t,e),n=(0,Wr.join)(Yn(),(0,yf.v4)());return r instanceof Go.default.Readable?r.pipe(pr.default.createWriteStream(n)):pr.default.writeFileSync(n,r),n}async function ON(t,e){let r=(0,Wr.join)(Yn(),(0,yf.v4)());pr.default.mkdirSync(r);let n=await kA(t,e),i=await Promise.all(n.map(a=>sc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,Wr.join)(r,...d);l.length>1&&!pr.default.existsSync(m)&&pr.default.mkdirSync(m,{recursive:!0});let p=pr.default.createWriteStream((0,Wr.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 IN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Key:Pe(e)};return r.deleteObject(n)}async function xN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Pe(i)}))}};return r.deleteObjects(n)}async function FA(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return FA(t,e)}async function Tf(t,e,r){t=Ke(t);let n=[],i=pr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Pe((0,Wr.join)(r,s.name)),a=(0,Wr.join)(e,s.name);s.isDirectory()?n.push(Tf(t,a,o)):n.push(LA({bucket:t,filename:o,stream:pr.default.createReadStream(a)}))}return await Promise.all(n),i}async function RN(t,e,r={}){e=Pe(e);let n=await(0,mf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await UA(n.body,gf.default.createUnzip(),hf.default.extract(e))}async function wN(t,e,r){e=Ke(e),r=Pe(r);let n=await(0,mf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Wr.join)(Yn(),r);return await UA(n.body,gf.default.createUnzip(),hf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Tf(e,i,r),i}async function sc(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof Go.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function bN(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Zp(t){let e=t.split("?")[0],r=new RegExp(`^${Ef}/(?<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 BA=j(require("aws-cloudfront-sign")),fc;function DN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return fc||(fc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),fc)}var vN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:DN(),expireTime:new Date().getTime()+1e3*60*60*24}),is=t=>{let e=Af(t);return BA.getSignedUrl(e,vN())},Af=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var GA=j(require("querystring"));function $A(t){return`${Pe(t)}/budibase-client.js`}async function CN(t,e){let r=$A(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Af(r)):await Qr(h.APPS_BUCKET_NAME,r)}function NN(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ge&&(n.tenantId=r),`/api/assets/client?${GA.default.encode(n)}`}async function PN(t){return h.CLOUDFRONT_CDN?is(t):await Qr(h.APPS_BUCKET_NAME,t)}var UN=async(t,e,r)=>{let n=VA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),is(n)):await Qr(h.GLOBAL_BUCKET_NAME,n)},VA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function LN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await MN(e),n=await kN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function MN(t){let e=WA(t);return qA(e)}async function kN(t){let e=QA(t);if(e)return qA(e)}async function qA(t){return h.CLOUDFRONT_CDN?is(t):await Qr(h.PLUGIN_BUCKET_NAME,t)}function WA(t){return jA(t,"plugin.min.js")}function QA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return jA(t,e)}function jA(t,e){return`${HA(t.name)}/${e}`}function HA(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var zA="budibase.log",JA="budibase-logs-history.txt",ZA=Of.default.join(Yn(),"systemlogs");function YA(t){return Of.default.join(ZA,t)}function XA(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 If(){let t=XA(h.ROLLING_LOG_MAX_SIZE);return KA.createStream(zA,{size:t?.size,path:ZA,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:JA,initialRotation:!1})}function FN(){let t=[],e=YA(JA);if(Vo.default.existsSync(e)){let i=Vo.default.readFileSync(e,"utf-8").split(`
33
- `);for(let s of i.filter(o=>o))t.push(Vo.default.readFileSync(s))}return t.push(Vo.default.readFileSync(YA(zA))),Buffer.concat(t)}function BN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function GN(t){return t instanceof Error}function $N(t){return typeof t=="string"}var jr;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,e_.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:If(),level:t}),jr=r.length?(0,mc.default)(e,mc.default.multistream(r)):(0,mc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{$N(E)&&(d=`${d} ${E}`.trimStart()),BN(E)&&l.push(E),GN(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Jp()};let f=Rf.default.scope().active();f&&Rf.default.inject(f.context(),t_.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);jr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);jr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);jr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);jr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),jr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);jr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ne()}catch{}return u},o=()=>{let u;try{u=Wp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var hc=jr;var VN=["AccountError"];function qN(t){return t&&t.suppressAlert}function Jn(t,e){e&&VN.includes(e.name)&&qN(e)||console.error(`bb-alert: ${t}`,e)}function WN(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Jn(t,n)}function ss(t,e){console.warn(`bb-warn: ${t}`,e)}var jo={};v(jo,{cleanup:()=>QN,clear:()=>Qo,set:()=>Wo});var qo=[];function Wo(t,e){let r=setInterval(t,e);return qo.push(r),r}function Qo(t){let e=qo.indexOf(t);e!==-1&&qo.splice(e,1),clearInterval(t)}function QN(){for(let t of qo)clearInterval(t);qo=[]}var bf;if(h.MOCK_REDIS)try{bf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var jN=2e3,HN=5e3,n_=h.REDIS_CLUSTERED,Cf=0,Ho=!1,Df={},Zn=!1;h.MOCK_REDIS&&(Zn=!0);function Nf(t){return Df[t]}function wf(t,e){Ho||(Ho=!0,clearTimeout(t),Zn=!1,Jn("Redis connection failed",e),setTimeout(()=>{Pf()},jN))}function Pf(t=Cf){let e=h.MOCK_REDIS&&bf?bf:r_.default,r;Ho=!1;let n=Nf(t);if(n&&Zn)return;h.MOCK_REDIS&&(Df[t]=new e(es())),r=setTimeout(()=>{Zn||wf(r,"Did not successfully connect in timeout")},HN),n&&n.disconnect();let{host:i,port:s}=rc(),o=es();n_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||wf(r,a)}),n.on("error",a=>{wf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),Zn=!0}),Df[t]=n}function YN(t=Cf){return new Promise(e=>{if(Nf(t)==null)Pf();else if(Zn){e("");return}let r=Wo(()=>{Zn&&(Qo(r),e(""))},500)})}function KN(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",s=>{s.forEach(o=>{i.add(o)})}),t.on("error",s=>{n(s)}),t.on("end",async()=>{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:zp(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var vf=class{constructor(e,r=null){this._db=e,this._select=r||Cf}getClient(){return Nf(this._select)}async init(){return Ho=!1,Pf(this._select),await YN(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Ho=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${Xi}${e}`;let n;return n_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),KN(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=`
32
+ }`,"platform_users_lowercase_2")},Fo=async(t,e)=>{let r={account_by_email:IA,platform_users_lowercase_2:xA};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return lf(t,e,n,i,{arrayResponse:!0})})},RA={by_email2:AA,by_api_key:SA,by_app:_A},cr=async(t,e,r,n)=>{r||(r=ie());let i=RA[t];return lf(t,e,r,i,n)};async function df(t,e,r){let n=ie(),i=RA[t];return ko(t,e,n,i,r)}var pf=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([Co(this.source),Co(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||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()}},wA=pf;var DA=j(require("node-fetch"));var Bo=Ur.removeKeyNumbering;function Kn(t){return t==null||t===""}var lr=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=Bo(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)=>Kn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(Kn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>Kn(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)},p=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(Kn(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 d(f,g,E){let y="";for(let[S,_]of Object.entries(f)){S=Bo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let M=g(S,_);if(M!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=M,(typeof _!="string"&&_!=null||typeof _=="string"&&_!==o&&_!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&d(this.#e.string,(f,g)=>Kn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&d(this.#e.range,(f,g)=>{if(Kn(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&&d(this.#e.fuzzy,c),this.#e.equal&&d(this.#e.equal,a),this.#e.notEqual&&d(this.#e.notEqual,(f,g)=>Kn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&d(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&d(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&d(this.#e.oneOf,m),this.#e.contains&&d(this.#e.contains,u),this.#e.notContains&&d(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&d(this.#e.containsAny,p),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,d({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 bA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await bA(n,i,r);throw s}}};async function bA(t,e,r){let n=await(0,DA.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 CA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=lr.maxLimit;n.limit&&s.length>n.limit-lr.maxLimit&&(o=n.limit-s.length);let a=new lr(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<lr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await CA(t,e,r,c)}async function hN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,lr.maxLimit);let s=new lr(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 gN(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 CA(t,e,r,n)}}var ff={};v(ff,{createUserIndex:()=>yN});async function yN(){let t=ie(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function vA(t,e){let r=e.toString();if(typeof t=="object")return t.status===e||t.message?.includes(r);if(typeof t=="number")return t===e;if(typeof t=="string")return t.includes(r)}function EN(t){return vA(t,409)}var UA=j(require("fs/promises")),TN=require("sanitize-s3-objectkey"),LA=(0,PA.promisify)(Go.default.pipeline),AN={bucketCreationPromises:{}},Tf="/files/signed",Vr={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"},_N=[Vr.html,Vr.css,Vr.js,Vr.json];function Pe(t){return TN(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(yt,"g"),gt)}function Pt(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 pc.S3(e)}async function $o(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=AN.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 SN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await UA.default.open(r)).createReadStream():s,c=Pt(),l=await $o(c,t);if(o&&l.created){let g=ic(t,o);await c.putBucketLifecycleConfiguration(g)}let p=n,m=p||(a?Vr[a.toLowerCase()]:Vr.txt),d={Bucket:Ke(t),Key:Pe(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];d.Metadata=i}return new mf.Upload({client:c,params:d}).done()}async function MA({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=Pt(),u=await $o(a,t);if(s&&u.created){let E=ic(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?Vr[o.toLowerCase()]:Vr.txt);let l=Ke(t),p=Pe(r),m={Bucket:l,Key:p,Body:e,ContentType:c,...i},f=await new mf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:p});return{...f,ContentLength:g.ContentLength}}async function kA(t,e){let r=Pt(),n={Bucket:Ke(t),Key:Pe(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(_N.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Go.default.Readable.fromWeb(s)}}async function FA(t,e){let r=Pt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Pe(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 Wr(t,e,r=3600){let n=Pt({presigning:!0}),i={Bucket:Ke(t),Key:Pe(e)},s=await(0,NA.getSignedUrl)(n,new pc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Tf}${a}${u}`}else return s}async function ON(t,e){t=Ke(t),e=Pe(e);let r=await kA(t,e),n=(0,qr.join)(Hn(),(0,Ef.v4)());return r instanceof Go.default.Readable?r.pipe(dr.default.createWriteStream(n)):dr.default.writeFileSync(n,r),n}async function IN(t,e){let r=(0,qr.join)(Hn(),(0,Ef.v4)());dr.default.mkdirSync(r);let n=await FA(t,e),i=await Promise.all(n.map(a=>sc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),p=l.slice(0,l.length-1),m=(0,qr.join)(r,...p);l.length>1&&!dr.default.existsSync(m)&&dr.default.mkdirSync(m,{recursive:!0});let d=dr.default.createWriteStream((0,qr.join)(r,...l),{mode:420});c.pipe(d),o.push(new Promise((f,g)=>{d.on("finish",f),c.on("error",g),d.on("error",g)}))}return await Promise.all(o),r}async function xN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Key:Pe(e)};return r.deleteObject(n)}async function RN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Pe(i)}))}};return r.deleteObjects(n)}async function BA(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return BA(t,e)}async function Af(t,e,r){t=Ke(t);let n=[],i=dr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Pe((0,qr.join)(r,s.name)),a=(0,qr.join)(e,s.name);s.isDirectory()?n.push(Af(t,a,o)):n.push(MA({bucket:t,filename:o,stream:dr.default.createReadStream(a)}))}return await Promise.all(n),i}async function wN(t,e,r={}){e=Pe(e);let n=await(0,hf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await LA(n.body,yf.default.createUnzip(),gf.default.extract(e))}async function bN(t,e,r){e=Ke(e),r=Pe(r);let n=await(0,hf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,qr.join)(Hn(),r);return await LA(n.body,yf.default.createUnzip(),gf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Af(e,i,r),i}async function sc(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof Go.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function DN(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Xp(t){let e=t.split("?")[0],r=new RegExp(`^${Tf}/(?<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 GA=j(require("aws-cloudfront-sign")),fc;function CN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return fc||(fc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),fc)}var vN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:CN(),expireTime:new Date().getTime()+1e3*60*60*24}),is=t=>{let e=_f(t);return GA.getSignedUrl(e,vN())},_f=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var $A=j(require("querystring"));function VA(t){return`${Pe(t)}/budibase-client.js`}async function NN(t,e){let r=VA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),_f(r)):await Wr(h.APPS_BUCKET_NAME,r)}function PN(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ye&&(n.tenantId=r),`/api/assets/client?${$A.default.encode(n)}`}async function UN(t){return h.CLOUDFRONT_CDN?is(t):await Wr(h.APPS_BUCKET_NAME,t)}var LN=async(t,e,r)=>{let n=qA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),is(n)):await Wr(h.GLOBAL_BUCKET_NAME,n)},qA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function MN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await kN(e),n=await FN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function kN(t){let e=QA(t);return WA(e)}async function FN(t){let e=jA(t);if(e)return WA(e)}async function WA(t){return h.CLOUDFRONT_CDN?is(t):await Wr(h.PLUGIN_BUCKET_NAME,t)}function QA(t){return HA(t,"plugin.min.js")}function jA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return HA(t,e)}function HA(t,e){return`${YA(t.name)}/${e}`}function YA(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var JA="budibase.log",ZA="budibase-logs-history.txt",XA=If.default.join(Hn(),"systemlogs");function KA(t){return If.default.join(XA,t)}function e_(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}function xf(){let t=e_(h.ROLLING_LOG_MAX_SIZE);return zA.createStream(JA,{size:t?.size,path:XA,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:ZA,initialRotation:!1})}function BN(){let t=[],e=KA(ZA);if(Vo.default.existsSync(e)){let i=Vo.default.readFileSync(e,"utf-8").split(`
33
+ `);for(let s of i.filter(o=>o))t.push(Vo.default.readFileSync(s))}return t.push(Vo.default.readFileSync(KA(JA))),Buffer.concat(t)}function GN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function $N(t){return t instanceof Error}function VN(t){return typeof t=="string"}var Qr;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,t_.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:xf(),level:t}),Qr=r.length?(0,mc.default)(e,mc.default.multistream(r)):(0,mc.default)(e);let n=u=>{let c,l=[],p="";u.forEach(E=>{VN(E)&&(p=`${p} ${E}`.trimStart()),GN(E)&&l.push(E),$N(E)&&(c=E)});let m=a(),d={};d={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Zp()};let f=wf.default.scope().active();f&&wf.default.inject(f.context(),r_.formats.LOG,d);let g={err:c,pid:process.pid,...d};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let _=l[S],M=_._logKey;M?(delete _._logKey,g[M]=_):(E[y]=_,y++)}Object.keys(E).length&&(g.data=E)}return[g,p]};console.log=(...u)=>{let[c,l]=n(u);Qr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Qr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Qr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Qr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Qr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Qr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ne()}catch{}return u},o=()=>{let u;try{u=Qp()}catch{}return u},a=()=>{let u;try{u=or()}catch{}return u}}var hc=Qr;var qN=["AccountError"];function WN(t){return t&&t.suppressAlert}function zn(t,e){e&&qN.includes(e.name)&&WN(e)||console.error(`bb-alert: ${t}`,e)}function QN(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,zn(t,n)}function ss(t,e){console.warn(`bb-warn: ${t}`,e)}var jo={};v(jo,{cleanup:()=>jN,clear:()=>Qo,set:()=>Wo});var qo=[];function Wo(t,e){let r=setInterval(t,e);return qo.push(r),r}function Qo(t){let e=qo.indexOf(t);e!==-1&&qo.splice(e,1),clearInterval(t)}function jN(){for(let t of qo)clearInterval(t);qo=[]}var Df;if(h.MOCK_REDIS)try{Df=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var HN=2e3,YN=5e3,i_=h.REDIS_CLUSTERED,Nf=0,Ho=!1,Cf={},Jn=!1;h.MOCK_REDIS&&(Jn=!0);function Pf(t){return Cf[t]}function bf(t,e){Ho||(Ho=!0,clearTimeout(t),Jn=!1,zn("Redis connection failed",e),setTimeout(()=>{Uf()},HN))}function Uf(t=Nf){let e=h.MOCK_REDIS&&Df?Df:n_.default,r;Ho=!1;let n=Pf(t);if(n&&Jn)return;h.MOCK_REDIS&&(Cf[t]=new e(es())),r=setTimeout(()=>{Jn||bf(r,"Did not successfully connect in timeout")},YN),n&&n.disconnect();let{host:i,port:s}=rc(),o=es();i_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||bf(r,a)}),n.on("error",a=>{bf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),Jn=!0}),Cf[t]=n}function KN(t=Nf){return new Promise(e=>{if(Pf(t)==null)Uf();else if(Jn){e("");return}let r=Wo(()=>{Jn&&(Qo(r),e(""))},500)})}function zN(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:Jp(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var vf=class{constructor(e,r=null){this._db=e,this._select=r||Nf}getClient(){return Pf(this._select)}async init(){return Ho=!1,Uf(this._select),await KN(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Ho=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${Xi}${e}`;let n;return i_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),zN(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=`
34
34
  if redis.call('GET', KEYS[1]) == ARGV[1] then
35
35
  redis.call('DEL', KEYS[1])
36
36
  end
37
- `;await n.eval(i,1,Ye(this._db,e),r)}},Ge=vf;var Yo,Ko,zo,Jo,Xn,Zo,Xo,ea,ta,Uf;async function Ut(){Yo=await new Ge("users").init(),Ko=await new Ge("session").init(),zo=await new Ge("appMetadata").init(),Jo=await new Ge("data_cache").init(),Zo=await new Ge("locks").init(),Xn=await new Ge("writeThrough").init(),ea=await new Ge("invitation").init(),ta=await new Ge("pwReset").init(),Xo=await new Ge("socket_io",1).init(),Uf=await new Ge("docWriteThrough").init()}async function i_(){Yo&&await Yo.finish(),Ko&&await Ko.finish(),zo&&await zo.finish(),Jo&&await Jo.finish(),Xn&&await Xn.finish(),Zo&&await Zo.finish(),ea&&await ea.finish(),ta&&await ta.finish(),Xo&&await Xo.finish(),Uf&&await Uf.finish()}process.on("exit",async()=>{await i_()});async function ra(){return Yo||await Ut(),Yo}async function Hr(){return Ko||await Ut(),Ko}async function uc(){return zo||await Ut(),zo}async function Lf(){return Jo||await Ut(),Jo}async function Mf(){return Xn||await Ut(),Xn}async function kf(){return Zo||await Ut(),Zo}async function zN(){return Xo||await Ut(),Xo}async function ei(){return ea||await Ut(),ea}async function na(){return ta||await Ut(),ta}async function JN(){return Xn||await Ut(),Xn}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 Lf()}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 os=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)=>os.keys(...t),ni=(...t)=>os.get(...t),mr=(...t)=>os.store(...t),ia=(...t)=>os.delete(...t),Kr=(...t)=>os.withCache(...t),as=(...t)=>os.bustCache(...t);var nn={};v(nn,{getUser:()=>Da,getUsers:()=>gM,invalidateUser:()=>va});var aa={};v(aa,{addTenantToUrl:()=>ZN,getTenantDB:()=>Ff,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>XN});function Ff(t){return He(ur(t))}function ZN(t){let e=Q();if(Gr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var XN=(t,e)=>{let r;return e?r=e.tenantId||ge:r=Q(),(zi(t)||ge)===r},eP=Object.values(Rs),oa=(t,e)=>{if(!Gr())return ge;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=eP),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(Vp()).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 ca={};v(ca,{getPlatformDB:()=>ut,tenants:()=>Kf,users:()=>Lt});var Lt={};v(Lt,{addSsoUser:()=>o_,addUser:()=>oP,getUserDoc:()=>s_,lookupTenantId:()=>tP,removeUser:()=>aP,updateUserDoc:()=>rP});function ut(){return He(Se.PLATFORM_INFO.name)}async function tP(t){return h.MULTI_TENANCY?(await s_(t)).tenantId:ge}async function s_(t){return ut().get(t)}async function rP(t){await ut().put(t)}function nP(t,e){return{_id:t,tenantId:e}}function iP(t,e,r){return{_id:e,userId:t,tenantId:r}}function sP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Bf(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 o_(t,e,r,n){return Bf(t,()=>sP(t,e,r,n))}async function oP(t,e,r,n){let i=[Bf(e,()=>nP(e,t)),Bf(r,()=>iP(e,r,t))];n&&i.push(o_(n,r,e,t)),await Promise.all(i)}async function aP(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 Kf={};v(Kf,{addTenant:()=>bP,exists:()=>xP,getTenantIds:()=>IP,removeTenant:()=>DP,tenacyLockOptions:()=>Yf});var oi={};v(oi,{AUTO_EXTEND_POLLING_MS:()=>h_,doWithLock:()=>ds,newRedlock:()=>si});var m_=j(require("redlock"));var cs={};v(cs,{Duration:()=>Re,DurationType:()=>jf,clearCookie:()=>zr,compare:()=>Vf,getAppIdFromCtx:()=>hP,getCookie:()=>ii,hasCircularStructure:()=>EP,hash:()=>$f,isAudited:()=>Wf,isClient:()=>gP,isPublicApiRequest:()=>mP,isServingApp:()=>dP,isServingBuilder:()=>pP,isServingBuilderPreview:()=>fP,isValidInternalAPIKey:()=>ua,newid:()=>Oe,openJwt:()=>Tc,resolveAppUrl:()=>d_,setCookie:()=>p_,time:()=>AP,timeout:()=>yP,urlHasProtocol:()=>TP,validEmail:()=>Qf});var Gf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),uP=h.SALT_ROUNDS||10;async function $f(t){let e=await Gf.genSalt(uP);return Gf.hash(t,e)}async function Vf(t,e){return Gf.compare(t,e)}var Ec=j(require("jsonwebtoken")),qf="app"+C,u_="/app/",c_="/app/preview",cP="/builder",l_=`${cP}/app/`,lP="/api/public/v";function us(t){return t&&t.startsWith(qf)?t:void 0}async function d_(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=oa(t,{includeStrategies:["subdomain"]}));let s=(await Be(n,()=>Mo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function dP(t){return t.path.startsWith(`/${qf}`)?!0:t.path.startsWith(u_)}function pP(t){return t.path.startsWith(l_)}function fP(t){return t.path.startsWith(c_)}function mP(t){return t.path.startsWith(lP)}async function hP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=us(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=us(t.request.body.appId));let n=a_(t.path);!r&&n&&(r=us(n)),!r&&t.query?.appId&&(r=us(t.query?.appId));let i=t.path.startsWith(c_),s=t.path.startsWith(u_)&&!i;!r&&s&&(r=us(await d_(t)));let o=t.request.headers.referer;if(!r&&o?.includes(l_)){let a=a_(t.request.headers.referer);r=us(a)}return r}function a_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(qf))}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 ua(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 p_(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){p_(t,null,e)}function gP(t){return t.headers["x-budibase-type"]==="client"}function yP(t){return new Promise(e=>setTimeout(e,t))}function Wf(t){return!!Rh[t]}function EP(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 TP(t){return!!t.match(/^.+:\/\/.+$/)}function Qf(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 jf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(jf||{}),Ac={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},Re=class t{constructor(e){this.ms=e}to(e){return this.ms/Ac[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Ac[e]/Ac[r]}static from(e,r){return new t(r*Ac[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function AP(t){let e=performance.now();return[await t(),Re.fromMilliseconds(performance.now()-e)]}async function _P(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 wi.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 kf()).getClient();return new m_.default([n],e)}function SP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var h_=Re.fromSeconds(10).toMs();async function ds(t,e){let r=await _P(t.type,t.customOptions),n,i;try{let s=SP(t),o=t.type==="auto_extend"?h_: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 Hf=Se.PLATFORM_INFO.docs.tenants,Yf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function IP(){return(await _c()).tenantIds}async function _c(){let t=ut(),e;try{e=await t.get(Hf)}catch(r){if(r.status===404)e=await wP();else throw r}return e}async function xP(t){return(await _c()).tenantIds.indexOf(t)!==-1}function RP(){return{_id:Hf,tenantIds:[]}}async function wP(){let t=ut(),e=RP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Hf);throw r}return e}async function bP(t){let e=ut();await ds(Yf,async()=>{let r=await _c();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function DP(t){try{await ds(Yf,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:()=>vP});var g_=j(require("node-fetch"));var la=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";Po.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,g_.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var zf=new la(h.ACCOUNT_PORTAL_URL),Jf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(Jf)return;let e={email:t},r=await zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ps=async t=>{if(Jf)return;let e={tenantId:t},r=await zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},vP=async()=>{if(Jf)return;let t=await zf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var As={};v(As,{UserDB:()=>Yt,addAppBuilder:()=>pM,bulkGetGlobalUsersById:()=>Hc,bulkUpdateGlobalUsers:()=>Ra,cleanseUserObject:()=>Pm,doesUserExist:()=>aM,getAccountHolderFromUsers:()=>Pc,getAllUserIds:()=>sM,getAllUsers:()=>oM,getById:()=>pi,getCreatorCount:()=>lM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>A_,getExistingTenantUsers:()=>T_,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>ES,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>Sc,getUserCount:()=>cM,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>D_,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>b_,isBuilder:()=>gs,isCreator:()=>Ht,isGlobalBuilder:()=>w_,paginatedUsers:()=>AS,removeAppBuilder:()=>fM,removePortalUserPermissions:()=>dM,searchExistingEmails:()=>em,searchGlobalUsersByApp:()=>Yc,searchGlobalUsersByAppAccess:()=>Nm,searchGlobalUsersByEmail:()=>TS,validateUniqueUser:()=>Nc});var lm={};v(lm,{getAccountHolderFromUsers:()=>Pc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>D_,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>b_,isBuilder:()=>gs,isCreator:()=>Ht,isGlobalBuilder:()=>w_,validateUniqueUser:()=>Nc});var Xf={};v(Xf,{createCode:()=>NP,deleteCode:()=>UP,getCode:()=>PP,getExistingInvites:()=>Zf,getInviteCodes:()=>E_,updateCode:()=>CP});var y_=Re.fromDays(7).toSeconds();async function CP(t,e){await(await ei()).store(t,e,y_)}async function NP(t,e){let r=Oe();return await(await ei()).store(r,{email:t,info:e},y_),r}async function PP(t){let r=await(await ei()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function UP(t){await(await ei()).delete(t)}async function E_(){let r=(await(await ei()).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 Zf(t){return(await E_()).filter(e=>t.includes(e.email))}async function em(t){let e=[],r=await T_(t);e.push(...r.map(o=>o.email));let n=await A_(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await Zf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Sc(t){return await Fo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Sc(t))[0]??null}async function T_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await lr("by_email2",r,void 0,n)}async function A_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("account_by_email",r)}var Dc={};v(Dc,{BadRequestError:()=>Ic,BudibaseError:()=>ms,EmailUnavailableError:()=>hr,ErrorCode:()=>wc,FeatureDisabledError:()=>Rc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Oc,UsageLimitError:()=>xc,getPublicError:()=>bc});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||{}),bc=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}},Oc=class extends ct{constructor(e){super(e,404)}},Ic=class extends ct{constructor(e){super(e,400)}},xc=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Rc=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 cm={};v(cm,{AccessController:()=>nm,BUILTIN_ROLE_IDS:()=>ma,Role:()=>Zr,RoleHierarchyTraversal:()=>vc,RoleIDVersion:()=>im,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>I_,externalRole:()=>GP,findRole:()=>fa,getAllRoleIds:()=>WP,getAllRoles:()=>um,getBuiltinRole:()=>S_,getBuiltinRoles:()=>om,getDBRoleID:()=>x_,getExternalRoleID:()=>Xr,getExternalRoleIDs:()=>R_,getRole:()=>$P,getUserRoleHierarchy:()=>am,getUserRoleIdHierarchy:()=>O_,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>BP,prefixRoleIDNoBuiltin:()=>rm,roleIDsAreEqual:()=>Tt,roleToNumber:()=>FP,saveRoles:()=>VP,validInherits:()=>kP});var tm=j(require("semver"));var Cc=j(require("lodash/fp/cloneDeep"));var __=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ma,BUILDER:"BUILDER"},im={UUID:void 0,NAME:"name"};function MP(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=im.NAME}addInheritance(e){return e&&typeof e=="string"?e=rm(e):e&&Array.isArray(e)&&(e=e.map(rm)),this.inherits=e,this}},vc=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=fa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!MP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=fa(o.inherits,n,r),o&&i.push(o),Qt.roles.checkForRoleInheritanceLoops(i))break}}return(0,__.uniqBy)(i,s=>s._id)}},sm={ADMIN:new Zr(fe.ADMIN,fe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(fe.POWER),POWER:new Zr(fe.POWER,fe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(fe.BASIC),BASIC:new Zr(fe.BASIC,fe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(fe.PUBLIC),PUBLIC:new Zr(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Zr(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function om(){return(0,Cc.default)(sm)}function ui(t){return Object.values(ma).includes(t)}function rm(t){return ui(t)?t:cr(t)}function S_(t){let e=Object.values(sm).find(r=>t.includes(r._id));if(e)return(0,Cc.default)(e)}function kP(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 pa(t){let e=om(),r=Object.values(e).length+1;if(Tt(t,fe.ADMIN)||Tt(t,fe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function FP(t){if(ui(t))return pa(t);let e=await am(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 pa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function BP(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return cr(t)===cr(e)}function GP(t){let e;return t._id&&(e=Xr(t._id)),{...t,_id:e,inherits:R_(t.inherits,t.version)}}function fa(t,e,r){let n=S_(t);n||(t=cr(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,Cc.default)(sm.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 $P(t,e){let r=Ji(),n=[];if(!ui(t)){let i=await r.tryGet(x_(t));i&&n.push(i)}return fa(t,n,e)}async function VP(t){await Ji().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function qP(t,e){let r=await um();if(Tt(t,fe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new vc(r,e).walk(n)),i}async function O_(t){return(await am(t)).map(r=>r._id)}async function am(t,e){return qP(t,e)}function I_(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 WP(t){return(await um(t)).map(r=>r._id)}async function um(t){if(t)return at(t,e);{let r;try{r=Ji()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(dc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Xr(a._id,a.version)));let i=om(),s=[];!r||await QP(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>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=I_(o.permissions,a);return n}}async function QP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!tm.default.valid(r)?!0:!tm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var nm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,fe.BUILDER)||Tt(r,e)||Tt(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await O_(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 x_(t){return t?.startsWith("role")?t:cr(t)}function Xr(t,e){if(t.startsWith(`role${C}`)&&(ui(t)||e===im.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function R_(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,w_=st.users.isGlobalBuilder,b_=st.users.isAdminOrBuilder,tn=st.users.hasAdminPermissions,At=st.users.hasBuilderPermissions,D_=st.users.hasAppBuilderPermissions;async function Ht(t){let e=st.users.isCreator(t);return!e&&t?await jP(t):e}async function jP(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(ma.ADMIN))}return!1}async function Nc(t,e){if(h.MULTI_TENANCY){let r=await da(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 Pc(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:()=>j_,ai:()=>J_,analytics:()=>Lc,app:()=>H_,auditLog:()=>pS,auth:()=>Wc,automation:()=>Y_,backfill:()=>aS,backfillCache:()=>Vc,backup:()=>lS,datasource:()=>K_,email:()=>z_,environmentVariable:()=>dS,group:()=>uS,identification:()=>Mt,initAsyncEvents:()=>W0,installation:()=>Aa,layout:()=>X_,license:()=>Z_,org:()=>eS,plugin:()=>cS,processors:()=>hm,publishEvent:()=>A,query:()=>tS,role:()=>xa,rowAction:()=>fS,rows:()=>nS,screen:()=>rS,serve:()=>sS,shutdown:()=>Q0,table:()=>iS,user:()=>$e,view:()=>oS});var hm={};v(hm,{analyticsProcessor:()=>$_,init:()=>cU,processors:()=>gr});var Lc={};v(Lc,{enabled:()=>Uc});var Uc=async()=>Mc();var U_=require("posthog-node");var HP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",YP=t=>t==="served:app:preview"||t==="served:app";var C_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},N_=async t=>{if(!HP(t))return!1;let e=await KP(t);if(e){let r=new Date(e.timestamp);switch(C_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await v_(t,{timestamp:Date.now()}),!1):!0}}else return await v_(t,{timestamp:Date.now()}),!1},P_=t=>{let e=`eventsRateLimit:${t}`;return YP(t)&&(e=e+":"+Ne()),e},KP=async t=>{let e=P_(t);return await ni(e)},v_=async(t,e)=>{let r=P_(t),n=C_[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var JP=["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"],ha=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new U_.PostHog(e)}async processEvent(e,r,n,i){if(JP.includes(e)||await N_(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Ne();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 L_=ha;var ZP=["installation:version:upgraded","installation:version:downgraded"],XP=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new L_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!ZP.includes(e)&&!await Uc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!XP.includes(e.type)&&!await Uc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var dm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){dm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){dm||console.log("[audit] identified",e)}async identifyGroup(e){dm||console.log("[audit] group identified",e)}shutdown(){}};var mm={};v(mm,{InMemoryQueue:()=>kc,JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>oU});var M_=j(require("events"));var k_=require("lodash");function eU(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var kc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new M_.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=(0,k_.cloneDeep)(n);if(!i.manualTrigger&&i.opts?.repeat!=null)return;let s=r(i);async function o(u){try{await u}catch{await Qt.wait(50),await o(r(i))}}if(s.then!=null)try{await o(s),this._emitter.emit("completed",i)}catch(u){console.error(u)}this._runCount++;let a=i.opts?.jobId?.toString();a&&i.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>eU(e))}},F_=kc;var pm=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 B_(t,e,r){nU(t,e),r&&tU(t,r)}function tU(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function _t(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var rU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function nU(t,e){let r=rU[e];function n(i,s){let o=i.data.event?.appId;if(o)return qp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(..._t(r,"stalled",{job:i}))})}).on("error",i=>{console.error(..._t(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(..._t(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(..._t(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(..._t(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(..._t(r,"paused"))}).on("resumed",()=>{console.info(..._t(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(..._t(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(..._t(r,"drained"))}).on("removed",i=>{console.info(..._t(r,"removed",{job:i}))})}var iU=Re.fromMinutes(5).toMs(),sU=Re.fromSeconds(30).toMs(),fm=Re.fromSeconds(60).toMs(),Ea=[],Fc;async function G_(){for(let t of Ea)await t.clean(fm,"completed"),await t.clean(fm,"failed")}function ci(t,e={}){let n={redis:es(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:iU,lockRenewTime:sU}};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 pm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new F_(t,n):i=new pm.default(t,n),B_(i,t,e?.removeStalledCb),Ea.push(i),!Fc&&!h.isTest()&&(Fc=Wo(G_,fm),G_().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function oU(){if(Fc&&Qo(Fc),Ea.length){for(let t of Ea)await t.close();Ea=[]}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=>Be(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&&Wf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ne(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Ta=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 $_=new ga,aU=new ya,uU=new Es;function cU(t){return Es.init(t)}var gr=new Ta([$_,aU,uU]);var Bc={};v(Bc,{checkInstallVersion:()=>pU,getInstall:()=>_a,getInstallFromDB:()=>ym});var gm=j(require("semver"));var _a=async()=>Kr("installation",86400,ym,{useTenancy:!1});async function lU(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 ym();throw r}}var ym=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 lU(t);else throw r}return e}),dU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await _a();r.version=t,await e.put(r),await as("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},pU=async()=>{let t=await _a(),e=t.version,r=h.VERSION;try{if(e!==r){let n=gm.default.gt(r,e),i=gm.default.lt(r,e);await dU(r)&&(await Ro({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Mt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Jn(`Invalid version "${r}" - is it semver?`):Jn("Failed to retrieve version",n)}};var fU=async()=>{let t=xp(),e=Ia(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Sa();return{id:V_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Gc(Q()),s=Sa();return{id:V_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Gc(Q()),s=await li(),o=n.account,a;return o?a=o.hosting:a=Sa(),{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")},mU=async(t,e)=>{let r=t,n="installation",i=Sa(),s=h.VERSION,o=Ia(),a={id:r,type:n,hosting:i,version:s,environment:o};await Em(a,e),await Oa({...a,id:`$${n}_${r}`},e)},hU=async(t,e,r)=>{let n=await Gc(t),i="tenant",s=await li(),o=Ia(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Em(a,r),await Oa({...a,id:`$${i}_${n}`},r)},gU=async(t,e,r)=>{let n=t._id,i=await Gc(t.tenantId),s="user",o=At(t),a=tn(t),u;qa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,d=!!e&&l&&e.verified,m=await li(),p=e?e.hosting:Sa(),f=Ia();await Oa({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},yU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await li(),c=Ia();if($a(t)){let d=await kt(t.email);d?._id&&(e=d._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await gr.identify(t,e)},Em=async(t,e)=>{await gr.identifyGroup(t,e)},Ia=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Sa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>EU()?"account-portal":(await _a()).installId,Gc=async t=>h.SELF_HOSTED?q_(t):t,q_=async t=>Be(t,()=>Kr("uniqueTenantId",86400,async()=>{let e=se(),r=await $c(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),EU=()=>h.SERVICE==="account-portal",V_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Mt={getCurrentIdentity:fU,identifyInstallationGroup:mU,identifyTenantGroup:hU,identifyUser:gU,identifyAccount:yU,identify:Oa,identifyGroup:Em,getInstallationId:li,getUniqueTenantId:q_};var Vc={};v(Vc,{end:()=>AU,isAlreadySent:()=>_m,isBackfillingEvent:()=>Am,recordEvent:()=>Tm,start:()=>TU});var TU=async t=>SU({eventWhitelist:t}),Tm=async(t,e)=>{let r=Sm(t,e);await mr(r,e,void 0,{useTenancy:!1})},AU=async()=>{await OU(),await IU()},_U=async()=>ni("backfillMetadata"),SU=async t=>mr("backfillMetadata",t),OU=async()=>{await ia("backfillMetadata")},IU=async()=>{let t=Sm(),e=await yc(t);for(let r of e)await ia(r,{useTenancy:!1})},Am=async t=>{let r=(await _U())?.eventWhitelist;return!!(r&&r.includes(t))},_m=async(t,e)=>{let r=Sm(t,e);return!!await ni(r,{useTenancy:!1})},xU={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Sm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=xU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var yr;function qc(){yr=ci("systemEventQueue")}async function W_(){yr&&await yr.close()}async function Q_(t){yr||qc();let{event:e,identity:r}=t;xh.indexOf(e)!==-1&&r.tenantId&&await yr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Mt.getCurrentIdentity();if(!(n?!1:await Am(t))){await Q_({event:t,identity:i,properties:e,timestamp:r}),await gr.processEvent(t,i,e,r);return}await _m(t,e)||(await gr.processEvent(t,i,e,r),await Tm(t,e))};async function RU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function wU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function bU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var j_={created:RU,deleted:wU,verified:bU};var DU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function vU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function CU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function NU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function PU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function UU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function LU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function MU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function kU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function FU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function BU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function GU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var H_={created:DU,updated:vU,deleted:CU,published:NU,unpublished:PU,fileImported:UU,duplicated:LU,templateImported:MU,versionUpdated:kU,versionReverted:FU,reverted:BU,exported:GU};async function $U(t,e){let n={userId:(await Mt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function VU(t){let r={userId:(await Mt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function qU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function WU(t){let e={type:t};await A("auth:sso:updated",e)}async function QU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function jU(t){let e={type:t};await A("auth:sso:deactivated",e)}var Wc={login:$U,logout:VU,SSOCreated:qU,SSOUpdated:WU,SSOActivated:QU,SSODeactivated:jU};async function HU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}async function YU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}async function KU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function zU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var JU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function ZU(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}async function XU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var Y_={created:HU,triggerUpdated:YU,deleted:KU,tested:zU,run:JU,stepCreated:ZU,stepDeleted:XU};function Om(t){return!Object.values(Fa).includes(t.source)}async function eL(t,e){let r={datasourceId:t._id,source:t.source,custom:Om(t)};await A("datasource:created",r,e)}async function tL(t){let e={datasourceId:t._id,source:t.source,custom:Om(t)};await A("datasource:updated",e)}async function rL(t){let e={datasourceId:t._id,source:t.source,custom:Om(t)};await A("datasource:deleted",e)}var K_={created:eL,updated:tL,deleted:rL};async function nL(t){let e={};await A("email:smtp:created",e,t)}async function iL(){let t={};await A("email:smtp:updated",t)}var z_={SMTPCreated:nL,SMTPUpdated:iL};async function sL(t){let e={};await A("ai:config:created",e,t)}async function oL(){let t={};await A("ai:config:updated",t)}var J_={AIConfigCreated:sL,AIConfigUpdated:oL};async function aL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function uL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function cL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function lL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function dL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function pL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function fL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var Z_={planChanged:aL,activated:uL,checkoutOpened:cL,checkoutSuccess:lL,portalOpened:dL,paymentFailed:pL,paymentRecovered:fL};async function mL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function hL(t){let e={layoutId:t};await A("layout:deleted",e)}var X_={created:mL,deleted:hL};async function gL(t){let e={};await A("org:info:name:updated",e,t)}async function yL(t){let e={};await A("org:info:logo:updated",e,t)}async function EL(t){let e={};await A("org:platformurl:updated",e,t)}async function TL(){let t={};await A("analytics:opt:out",t)}async function AL(){let t={};await A("analytics:opt:out",t)}var eS={nameUpdated:gL,logoUpdated:yL,platformURLUpdated:EL,analyticsOptOut:TL,analyticsOptIn:AL};var _L=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},SL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},OL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},IL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},xL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},RL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},tS={created:_L,updated:SL,deleted:OL,imported:IL,run:xL,previewed:RL};async function wL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function bL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function DL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function vL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function CL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var xa={created:wL,updated:bL,deleted:DL,assigned:vL,unassigned:CL};async function NL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}async function PL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var rS={created:NL,deleted:PL};var UL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},LL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},nS={created:UL,imported:LL};async function ML(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function kL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function FL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function BL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function GL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var iS={created:ML,updated:kL,deleted:FL,exported:BL,imported:GL};async function $L(t){let e={timezone:t};await A("served:builder",e)}async function VL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function qL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var sS={servedBuilder:$L,servedApp:VL,servedAppPreview:qL};async function WL(t,e){let r={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:created",r,e)}async function QL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:updated",e)}async function jL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:deleted",e)}async function HL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function YL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function KL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function zL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function JL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function ZL(t){let e={audited:{email:t}};await A("user:invited",e)}async function XL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function e0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function t0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function r0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function n0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function i0(t){let e={users:t};await A("user:data:collaboration",e)}var $e={created:WL,updated:QL,deleted:jL,permissionAdminAssigned:YL,permissionAdminRemoved:KL,permissionBuilderAssigned:zL,permissionBuilderRemoved:JL,onboardingComplete:HL,invited:ZL,inviteAccepted:XL,passwordForceReset:e0,passwordUpdated:t0,passwordResetRequested:r0,passwordReset:n0,dataCollaboration:i0};async function s0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function o0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function a0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function u0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function c0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function l0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function d0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function p0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function f0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function m0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function h0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var oS={created:s0,updated:o0,deleted:a0,exported:u0,filterCreated:c0,filterUpdated:l0,filterDeleted:d0,calculationCreated:p0,calculationUpdated:f0,calculationDeleted:m0,viewJoinCreated:h0};async function g0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function y0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function E0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function T0(){let t={};await A("installation:firstStartup",t)}var Aa={versionChecked:g0,upgraded:y0,downgraded:E0,firstStartup:T0};var _s=!h.SELF_HOSTED&&!h.isDev();async function A0(t){_s||await A("app:backfill:succeeded",t)}async function _0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function S0(t){_s||await A("tenant:backfill:succeeded",t)}async function O0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function I0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function x0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var aS={appSucceeded:A0,appFailed:_0,tenantSucceeded:S0,tenantFailed:O0,installationSucceeded:I0,installationFailed:x0};async function R0(t,e){let r={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function w0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:updated",e)}async function b0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function D0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function v0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function C0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function N0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var uS={created:R0,updated:w0,deleted:b0,usersAdded:D0,usersDeleted:v0,createdOnboarding:C0,permissionsEdited:N0};async function P0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function U0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}async function L0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var cS={init:P0,imported:U0,deleted:L0};async function M0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function k0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var lS={appBackupRestored:M0,appBackupTriggered:k0};async function F0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function B0(t){let e={name:t};await A("environment_variable:deleted",e)}async function G0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var dS={created:F0,deleted:B0,upgradePanelOpened:G0};async function $0(t){let e={filters:t};await A("audit_log:filtered",e)}async function V0(t){let e={filters:t};await A("audit_log:downloaded",e)}var pS={filtered:$0,downloaded:V0};async function q0(t,e){await A("row_action:created",t,e)}var fS={created:q0};function W0(){}var Q0=()=>{gr.shutdown(),console.log("Events shutdown")};var Im=async t=>{await $e.deleted(t),At(t)&&await $e.permissionBuilderRemoved(t),tn(t)&&await $e.permissionAdminRemoved(t)},j0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},H0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},Y0=async(t,e)=>{let r=t.roles,n=e?.roles;await j0(t,r,n),await H0(t,r,n)},xm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Mt.identifyUser(t,n),e?(await $e.updated(t),z0(t,e)&&await $e.permissionBuilderRemoved(t),Z0(t,e)&&await $e.permissionAdminRemoved(t),X0(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),K0(t,e)&&await $e.permissionBuilderAssigned(t),J0(t,e)&&await $e.permissionAdminAssigned(t),await Y0(t,e)},K0=(t,e)=>mS(t,e,At),z0=(t,e)=>hS(t,e,At),J0=(t,e)=>mS(t,e,tn),Z0=(t,e)=>hS(t,e,tn),X0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",mS=(t,e,r)=>!(!r(t)||e&&r(e)),hS=(t,e,r)=>!(r(t)||!e||!r(e));var jc={};v(jc,{createASession:()=>tM,endSession:()=>rM,getSession:()=>wm,getSessionsForUser:()=>Qc,invalidateSessions:()=>di,updateSessionTTL:()=>Rm});var gS=require("uuid");var yS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):Re.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function Qc(t){return t?(await(await Hr()).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 Hr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ss(`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 tM(t,e){await di(t,{reason:"creation"});let r=await Hr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,gS.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,yS),o}async function Rm(t){let e=await Hr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,yS)}async function rM(t,e){await(await Hr()).delete(Ss(t,e))}async function wm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Hr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Cm={};v(Cm,{PASSWORD_MAX_LENGTH:()=>Dm,PASSWORD_MIN_LENGTH:()=>bm,validatePassword:()=>vm});var bm=+(h.PASSWORD_MIN_LENGTH||12),Dm=+(h.PASSWORD_MAX_LENGTH||512);function vm(t){return!t||t.length<bm?{valid:!1,error:`Password invalid. Minimum ${bm} characters.`}:t.length>Dm?{valid:!1,error:`Password invalid. Maximum ${Dm} characters.`}:{valid:!0}}var nM=async t=>{let e=t._id;await Lt.removeUser(t),await Im(t),await nn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Yt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||qa(e)?!0:(r||(r=await ps(Q())),!!(r&&r.email===e.email&&Va(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new ct("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=vm(o);if(!d.valid)throw new ct(d.error,400)}u=r.hashPassword?await $f(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||ts();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(Kn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Yc(e,{})).length}}static async getUsersByAppAccess(e){return await Nm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await pi(e);return r&&delete r.password,r}static async bulkGet(e){return await Hc(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 kt(s),c&&c._id!==o))throw new hr(s);let l=c?0:1,d=await Ht(c)!==await Ht(e)?1:0;return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Nc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Pm(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 xm(m,c),c&&m.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.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 em(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 Ht(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 Lt.addUser(n,p._id,p.email),await xm(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 Pc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await Ra(a),l=(await Promise.all(o.map(Ht))).filter(p=>!!p).length,d=[];for(let p of o){let g=(await da(p._id)).ssoId;g&&(await Sc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await nM(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 Lt.removeUser(n),await r.remove(i,n._rev);let s=await Ht(n)?1:0;await t.quotas.removeUsers(1,s),await Im(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 as("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 ba(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Hc(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=ba(n)),n}async function sM(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function oM(){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=ba(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await lr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=ba(n)),n}async function aM(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Yc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=lc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=ba(s)),s}async function Nm(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 $p(ur(),i)).rows}function ES(t,e){if(e)return cc(ot(t),e._id)}async function TS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await lr("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=ba(o)),o}var uM=8;async function AS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??uM,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 Yc(r,a),l=d=>ES(r,d)):e?.string?.email?(u=await TS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Hc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Kn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Lr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Kn(null,a))).rows.map(m=>m.doc),af(u,s,{paginate:!0,property:c,getKey:l})}async function cM(){return(await lf("by_email2",{limit:0,include_docs:!1})).total_rows}async function lM(){let t=0;async function e(r){let n=await AS({bookmark:r}),i=await Promise.all(n.data.map(Ht));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function dM(t){return delete t.admin,delete t.builder,t}function Pm(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 pM(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Yt.save(t,{hashPassword:!1})}async function fM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Yt.save(t,{hashPassword:!1})}var _S=3600;async function mM(t,e){let n=await Ff(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 hM(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Da({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=mM),!e)try{e=Q()}catch{e=await Lt.lookupTenantId(t)}let i=await ra(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,_S)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Be(e,async()=>{let o=await Yt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function gM(t){let e=await ra(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await hM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,_S);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ra()).delete(t)}var km={};v(km,{Writethrough:()=>Lm});var SS=1e4,Um=null;async function Mm(){if(!Um){let t=await Mf();Um=new ti(t)}return Um}function Kc(t,e){return t.name+e}function OS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function yM(t,e,r=SS){let n=await Mm(),i=e._id,s;i&&(s=await n.get(Kc(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;ss("Ignoring conflict in write-through cache")}})).executed||ss("Ignoring redlock conflict in write-through cache")),s=OS(a,o?null:s?.lastWrite),a._id&&await n.store(Kc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function EM(t,e){let r=await Mm(),n=Kc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=OS(s),await r.store(n,i)}return i.doc}async function TM(t,e,r){let n=await Mm();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(Kc(t,i))}finally{await t.remove(i,r)}}var Lm=class{constructor(e,r=SS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return yM(this.db,e,r)}async get(e){return EM(this.db,e)}async remove(e,r){return TM(this.db,e,r)}};var Fm={};v(Fm,{createCode:()=>_M,getCode:()=>SM,invalidateCode:()=>OM});var AM=Re.fromHours(1).toSeconds();async function _M(t,e){let r=Oe();return await(await na()).store(r,{userId:t,info:e},AM),r}async function SM(t){let r=await(await na()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function OM(t){await(await na()).delete(t)}var Gm={};v(Gm,{DocWritethrough:()=>Bm,DocWritethroughProcessor:()=>Ca,getProcessor:()=>xM,init:()=>IS});var IM=100,zc,Ca=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:IM}})),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=He(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Bm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ca.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function IS(){return zc=new Ca().init(),zc}function xM(){return zc||IS()}function qm(t){return`config${C}${t}`}async function Ft(t){let e=se();try{return await e.get(qm(t))}catch(r){if(r.status===404)return;throw r}}async function RM(t){return se().put(t)}async function $c(){let t=await Ft("settings");return t||(t={_id:qm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Na({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Mc({config:t.config}),t}async function Wm(){return(await $c()).config}async function Na(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 Ft("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Mc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Kr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await Ft("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 wM(){return await Ft("google")}async function Jc(){return(await wM())?.config}async function Qm(){if(!h.SELF_HOSTED)return $m();let t=await Jc();return(!t||!t.activated)&&(t=$m()),t}function $m(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function bM(){return Ft("logos_oidc")}async function DM(){return Ft("oidc")}async function vM(){let t=(await DM())?.config;return t?.configs&&t.configs[0]}async function jm(t){let e=(await Ft("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function xS(){return Ft("smtp")}async function CM(t){let e=await xS();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 NM(){return(await Ft("scim"))?.config}async function PM(){return Ft("ai")}var Hm={};v(Hm,{BUILDER:()=>FM,BUILTIN_PERMISSIONS:()=>Zc,CREATOR:()=>BM,GLOBAL_BUILDER:()=>GM,PermissionImpl:()=>me,PermissionLevel:()=>ws,PermissionType:()=>Ga,doesHaveBasePermission:()=>MM,getAllowedLevels:()=>DS,getBuiltinPermissionByID:()=>LM,getBuiltinPermissions:()=>UM,isPermissionLevelHigherThanRead:()=>kM,levelToNumber:()=>bS});var RS=j(require("lodash/flatten")),wS=j(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function bS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function DS(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 me("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new me("query","read"),new me("table","read"),new me("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new me("query","write"),new me("table","write"),new me("automation","execute"),new me("legacy_view","read"),new me("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new me("table","write"),new me("user","read"),new me("automation","execute"),new me("webhook","read"),new me("legacy_view","read"),new me("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new me("table","admin"),new me("user","admin"),new me("automation","admin"),new me("webhook","read"),new me("query","admin"),new me("legacy_view","read"),new me("app","read")]}};function UM(){return(0,wS.default)(Zc)}function LM(t){return Object.values(Zc).find(r=>r._id===t)}function MM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Zc),s=(0,RS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&DS(o.level).indexOf(e)!==-1)return!0;return!1}function kM(t){return bS(t)>1}var FM="builder",BM="creator",GM="globalBuilder";var zm={};v(zm,{FlagSet:()=>el,all:()=>WM,flags:()=>Ym,init:()=>$M,isEnabled:()=>qM,parseEnvFlags:()=>rl,shutdown:()=>VM,testutils:()=>Km});var tl=j(require("crypto"));var vS=require("posthog-node"),CS=j(require("dd-trace"));var NS=require("lodash");var Xc;function $M(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Xc=new vS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Re.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function VM(){Xc?.shutdown()}function rl(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 el=class{constructor(e){this.flagSchema=e;this.setId=tl.randomUUID()}defaults(){return(0,NS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await CS.default.trace("features.fetch",async e=>{let r=Hp(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 rl(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=Qp();l&&(u=tl.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,Xc&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await Xc.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)}}}Yp(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},Ym=new el(vh);async function qM(t){return await Ym.isEnabled(t)}async function WM(){return await Ym.fetch()}var Km={};v(Km,{setFeatureFlags:()=>PS,withFeatureFlags:()=>HM});function QM(){let t={};for(let{tenantId:e,key:r,value:n}of rl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function jM(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 PS(t,e){let r=QM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=jM(r);return wo({TENANT_FEATURE_FLAGS:n})}function HM(t,e,r){let n=PS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var uh={};v(uh,{adminOnly:()=>fl,auditLog:()=>cl,authError:()=>Ue,buildAuthMiddleware:()=>Uk,buildCsrfMiddleware:()=>Mk,buildTenancyMiddleware:()=>Lk,builderOnly:()=>hl,builderOrAdmin:()=>ml,google:()=>Er,internalApi:()=>dl,joiValidator:()=>Ua,oidc:()=>Tr,passport:()=>kk,platformLogout:()=>Vk,refreshOAuthToken:()=>Gk,ssoCallbackUrl:()=>sn,updateUserOAuth:()=>$k});var ah={};v(ah,{adminOnly:()=>fl,auditLog:()=>cl,authError:()=>Ue,authenticated:()=>ul,builderOnly:()=>hl,builderOrAdmin:()=>ml,correlation:()=>HS,csp:()=>XS,csrf:()=>pl,datasource:()=>Nk,errorHandling:()=>KS,google:()=>Er,internalApi:()=>dl,ip:()=>tO,joiValidator:()=>Ua,local:()=>Os,oidc:()=>Tr,pino:()=>QS,querystringToBody:()=>zS,ssoCallbackUrl:()=>sn,tenancy:()=>ll});var Os={};v(Os,{authenticate:()=>zM,options:()=>KM});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 Wm(),n="/api/global/auth";return Gr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Jm="Invalid credentials",YM="This account has expired. Please reset your password",KM={passReqToCallback:!0};async function zM(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await kt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,Jm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Jm)):i.password?await Vf(r,i.password)?(delete i.password,n(null,i)):Ue(n,Jm):(console.info(`user=${e} has no password set`,i),Ue(n,YM))}var Er={};v(Er,{buildVerifyFn:()=>MS,getCallbackUrl:()=>XM,strategyFactory:()=>Zm});var Pa=t=>Promise.resolve(t);async function nl(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=ts(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 kt(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 JM(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 JM(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 ZM=require("passport-google-oauth").OAuth2Strategy;function MS(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 nl(s,!0,i,t)}}async function Zm(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=MS(r);return new ZM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function XM(t){return sn("google",t)}var Tr={};v(Tr,{buildVerifyFn:()=>FS,fetchStrategyConfig:()=>nk,getCallbackUrl:()=>ik,strategyFactory:()=>rk});var kS=j(require("node-fetch"));var ek=require("@techpass/passport-openidconnect").Strategy;function FS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:tk(n,i),oauth2:{accessToken:s,refreshToken:o}};return nl(l,!1,c,t)}}function tk(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Qf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function rk(t,e){try{let r=FS(e),n=new ek(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function nk(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,kS.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 ik(){return sn("oidc")}var Xm={};v(Xm,{postAuth:()=>ak,preAuth:()=>ok});var sk=require("passport-google-oauth").OAuth2Strategy;async function BS(){let t=await Qm();if(!t)throw new Error("No google configuration found");return t}async function ok(t,e,r){let n=await BS(),s=`${await Na({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Zm(n,s,Pa);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function ak(t,e,r){let n=await BS(),s=`${await Na({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 sk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var uk=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(uk);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 sh={};v(sh,{SecretOption:()=>VS,decrypt:()=>ih,decryptFile:()=>mk,encrypt:()=>dk,encryptFile:()=>pk,getSecret:()=>nh});var Ar=j(require("crypto")),on=j(require("fs")),th=j(require("zlib"));var eh=require("path"),il="aes-256-ctr",$S="-",ck=1e4,lk=32,sl=16,rh=16,VS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(VS||{});function nh(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 ol(t,e){return Ar.default.pbkdf2Sync(t,e,ck,lk,"sha512")}function dk(t,e="api"){let r=Ar.default.randomBytes(sl),n=ol(nh(e),r),i=Ar.default.createCipheriv(il,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${$S}${a}`}function ih(t,e="api"){let[r,n]=t.split($S),i=Buffer.from(r,"hex"),s=ol(nh(e),i),o=Ar.default.createDecipheriv(il,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function pk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,eh.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,eh.join)(t,n)),a=Ar.default.randomBytes(sl),u=Ar.default.randomBytes(rh),c=ol(r,a),l=Ar.default.createCipheriv(il,c,u);return o.write(a),o.write(u),s.pipe(th.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function fk(t){let e=on.default.createReadStream(t),r=await GS(e,sl),n=await GS(e,rh);return e.close(),{salt:r,iv:n}}async function mk(t,e,r){if(on.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await fk(t),s=on.default.createReadStream(t,{start:sl+rh}),o=on.default.createWriteStream(e),a=ol(r,n),u=Ar.default.createDecipheriv(il,a,i),c=th.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 GS(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 WS=j(require("dd-trace")),hk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function gk(){return new Date(Date.now()-hk).toISOString()}function qS(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 yk(t,e){if(ua(t))return{valid:!0,user:void 0};let n=ih(t).split(C)[0];return Be(n,async()=>{let i;try{let s=se();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Da({userId:i,tenantId:n,populateUser:e})};throw new hs})}function al(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ul(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=al(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=al(n,"x-budibase-token"),c=ii(n,"budibase:auth")||Tc(u),l=al(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=al(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 wm(O,y),e&&e.populateUser?p=await Da({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Da({userId:O,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<gk()&&await Rm(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 yk(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)&&WS.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),qS(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?wp(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 qS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Ek=async(t,e)=>e(),cl=Ek;function ll(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),Be(l,o)}}var dl=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"),ua(r)||t.throw(403,"Unauthorized"),e()};var Tk=["GET","HEAD","OPTIONS"],Ak=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function pl(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||Tk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!Ak.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var fl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var ml=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At: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 hl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At: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 _k=require("koa-pino-logger"),Sk=require("correlation-id");function Ok(){return{logger:hc,genReqId:Sk.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 Ik(){return h.HTTP_LOGGING?_k(Ok()):(t,e)=>e()}var xk=Ik(),QS=xk;var jS=require("uuid"),Rk=require("correlation-id"),wk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,jS.v4)()),Rk.withId(r,()=>e())},HS=wk;function YS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of bT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function bk(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:bc(r)};if(YS(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 KS=bk;function zS(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 ZS=j(require("crypto")),JS={"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 Dk(t,e){try{let r=ZS.default.randomBytes(16).toString("base64"),n={...JS};n["script-src"]=[...JS["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 XS=Dk;var Ua={};v(Ua,{body:()=>vk,params:()=>Ck});var oh=j(require("joi"));function eO(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:oh.default.any().optional(),updatedAt:oh.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 vk(t,e){return eO(t,"body",e)}function Ck(t,e){return eO(t,"params",e)}var tO=async(t,e)=>t.ip?await jp(t.ip,()=>e()):e();var Nk={google:Xm};var rO=require("koa-passport"),Pk=require("passport-local").Strategy,gl=require("passport-oauth2-refresh"),Uk=ul,Lk=ll,Mk=pl,kk=rO;rO.use(new Pk(Os.options,Os.authenticate));async function Fk(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,Pa)}catch{throw new Error("Could not refresh OAuth Token")}return gl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{gl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Bk(t,e){let r=await Er.getCallbackUrl(t),n;try{n=await Er.strategyFactory(t,r,Pa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return gl.use(n),new Promise(i=>{gl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Gk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await jm(r);return n?Fk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Jc();return n?Bk(n,t):{err:{data:"Google configuration not found"}}}}}async function $k(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 va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Vk(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 Wc.logout(e.user?.email),await va(r)}var lh={};v(lh,{validate:()=>Hk});var b=j(require("joi")),qk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function ch(t,e){let{error:r}=t.validate(e);if(r)throw r}function Wk(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)});ch(e,t)}function Qk(t){let e=b.default.object({type:b.default.string().allow(...Object.values(_l)).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(Al)),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(Sl).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(...qk),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()}))})});ch(n,t)}function jk(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(...Ch).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});ch(n,t)}function Hk(t){switch(t?.type){case"component":Wk(t);break;case"datasource":Qk(t);break;case"automation":jk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var dh={};v(dh,{Client:()=>Ge,clients:()=>Yr,locks:()=>oi,utils:()=>nc});var ph={};v(ph,{isBlacklisted:()=>Kk,refreshBlacklist:()=>oO});var nO=j(require("dns")),El=j(require("net"));var iO=require("util"),yl,Yk=(0,iO.promisify)(nO.default.lookup);async function sO(t){return El.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Yk(t,{all:!0})).map(r=>r.address)}async function oO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(El.default.isIP(i))r.push(i);else{let s=await sO(i);r=r.concat(s)}}yl=r}async function Kk(t){if(yl||await oO(),yl?.length===0)return!1;let e;return El.default.isIP(t)?e=[t]:e=await sO(t),!!yl?.find(r=>e.includes(r))}var mh={};v(mh,{init:()=>Jk});var zk={"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 aO(t,e){let r=zk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var La=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=aO(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Be(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return W_()}};var uO,fh;function Jk(t){yr||qc(),fh||(fh=new La(t)),uO||(uO=yr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await fh.processEvent(r,n,i)}))}var Oh={};v(Oh,{COUNT_FIELD_NAME:()=>_h,Sql:()=>gO,SqlTable:()=>Tl,designDoc:()=>Sh,utils:()=>Bp});var pO=require("knex");var Zk=require("knex");function hh(t){return["link","formula","ai"].indexOf(t)!==-1}function cO(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}=Lp(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:wi.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!hh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!hh(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||hh(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function eF(t,e,r){return t.createTable(e.name,n=>{cO(n,e,r)})}function tF(t,e,r,n,i){return t.alterTable(e.name,s=>{cO(s,e,r,n,i)})}function rF(t,e){return t.dropTable(e.name)}var gh=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,Zk.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=eF(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=tF(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=Yi(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=rF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Yi(n)}},Tl=gh;var fO=require("lodash"),_h="__bb_total";function lO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function yh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function nF(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 mO(t){return Array.isArray(t)?t.map(e=>mO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function dO(t){return t.sourceType==="internal"||t.sourceId===Rl}function iF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function hO(t,e='"'){return`${e}${iF(t,e)}${e}`}function Eh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=hO(t[r],e));return`[${t.join(",")}]`}var sF={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Th=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(Mp(e))return null;if(kp(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,fO.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=Fp(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(_=>{_.whereExists(i(S,y)),r&&_.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(_=>{_.whereExists(i(S,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let O=(S,L,T)=>{let[_,...B]=L.split("."),R=B.join("."),F=c(_);return S.andWhere(ce=>E(ce,F?`${F}.${R}`:R,T))};for(let S in f){let L=f[S],T=Bo(S),_=T.includes("."),B=n?.relationship&&_,R;if(S==="_complexIdOperator"&&(R=f[S])&&y){let F=c(u);e=y(e,R.id.map(ce=>F?`${F}.${ce}`:ce),R.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,sF[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(Eh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(Eh(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(hO(Eh(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 _ of S){f===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;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=R=>R&&Object.keys(R).length===0&&Object.getPrototypeOf(R)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let O=ec(E.low),S=ec(E.high),L=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),O&&S?f.whereBetween(T,[B,_]):O?f.where(T,">=",B):S?f.where(T,"<=",_):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let 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&&!Up(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Or(r.documentType)}%`),e}isSqs(){return dO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;dO(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 ${_h}`)}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,_=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),R=nF(l.filter(q=>q.split(".")[0]===S),B);R=R.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=R.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(_).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(R.map(ie=>this.rawQuotedIdentifier(ie))).limit(yh()),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 ${yh()})`));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(yh())});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())}},Ah=class extends Tl{constructor(r,n=lO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Yi(r);return i==="sqlite3"&&(s=mO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,pO.knex)(s),a,u=new Th(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:lO()}});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===Rl){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 Nh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){Co(this.getSqlClient(),r,n)}},gO=Ah;var Sh={};v(Sh,{base:()=>oF});function oF(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var aF={...aa,...ye},uF=(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
+ `;await n.eval(i,1,Ye(this._db,e),r)}},$e=vf;var Yo,Ko,zo,Jo,Zn,Zo,Xo,ea,ta,Lf;async function Ut(){Yo=await new $e("users").init(),Ko=await new $e("session").init(),zo=await new $e("appMetadata").init(),Jo=await new $e("data_cache").init(),Zo=await new $e("locks").init(),Zn=await new $e("writeThrough").init(),ea=await new $e("invitation").init(),ta=await new $e("pwReset").init(),Xo=await new $e("socket_io",1).init(),Lf=await new $e("docWriteThrough").init()}async function s_(){Yo&&await Yo.finish(),Ko&&await Ko.finish(),zo&&await zo.finish(),Jo&&await Jo.finish(),Zn&&await Zn.finish(),Zo&&await Zo.finish(),ea&&await ea.finish(),ta&&await ta.finish(),Xo&&await Xo.finish(),Lf&&await Lf.finish()}process.on("exit",async()=>{await s_()});async function ra(){return Yo||await Ut(),Yo}async function jr(){return Ko||await Ut(),Ko}async function uc(){return zo||await Ut(),zo}async function Mf(){return Jo||await Ut(),Jo}async function kf(){return Zn||await Ut(),Zn}async function Ff(){return Zo||await Ut(),Zo}async function JN(){return Xo||await Ut(),Xo}async function Xn(){return ea||await Ut(),ea}async function na(){return ta||await Ut(),ta}async function ZN(){return Zn||await Ut(),Zn}function jt(t){let e=Q();return`${t}:${e}`}var ei=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Mf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?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 os=new ei,pr=(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))(pr||{}),ti=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ti||{}),yc=(...t)=>os.keys(...t),ri=(...t)=>os.get(...t),fr=(...t)=>os.store(...t),ia=(...t)=>os.delete(...t),Yr=(...t)=>os.withCache(...t),as=(...t)=>os.bustCache(...t);var rn={};v(rn,{getUser:()=>Ca,getUsers:()=>yM,invalidateUser:()=>va});var aa={};v(aa,{addTenantToUrl:()=>XN,getTenantDB:()=>Bf,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>eP});function Bf(t){return He(ar(t))}function XN(t){let e=Q();if(Br()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var eP=(t,e)=>{let r;return e?r=e.tenantId||ye:r=Q(),(zi(t)||ye)===r},tP=Object.values(Rs),oa=(t,e)=>{if(!Br())return ye;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=tP),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(qp()).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 ca={};v(ca,{getPlatformDB:()=>ut,tenants:()=>zf,users:()=>Lt});var Lt={};v(Lt,{addSsoUser:()=>a_,addUser:()=>aP,getUserDoc:()=>o_,lookupTenantId:()=>rP,removeUser:()=>uP,updateUserDoc:()=>nP});function ut(){return He(Se.PLATFORM_INFO.name)}async function rP(t){return h.MULTI_TENANCY?(await o_(t)).tenantId:ye}async function o_(t){return ut().get(t)}async function nP(t){await ut().put(t)}function iP(t,e){return{_id:t,tenantId:e}}function sP(t,e,r){return{_id:e,userId:t,tenantId:r}}function oP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Gf(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 a_(t,e,r,n){return Gf(t,()=>oP(t,e,r,n))}async function aP(t,e,r,n){let i=[Gf(e,()=>iP(e,t)),Gf(r,()=>sP(e,r,t))];n&&i.push(a_(n,r,e,t)),await Promise.all(i)}async function uP(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 zf={};v(zf,{addTenant:()=>DP,exists:()=>RP,getTenantIds:()=>xP,removeTenant:()=>CP,tenacyLockOptions:()=>Kf});var si={};v(si,{AUTO_EXTEND_POLLING_MS:()=>g_,doWithLock:()=>ds,newRedlock:()=>ii});var h_=j(require("redlock"));var cs={};v(cs,{Duration:()=>Re,DurationType:()=>Hf,clearCookie:()=>Kr,compare:()=>qf,getAppIdFromCtx:()=>gP,getCookie:()=>ni,hasCircularStructure:()=>TP,hash:()=>Vf,isAudited:()=>Qf,isClient:()=>yP,isPublicApiRequest:()=>hP,isServingApp:()=>pP,isServingBuilder:()=>fP,isServingBuilderPreview:()=>mP,isValidInternalAPIKey:()=>ua,newid:()=>Oe,openJwt:()=>Tc,resolveAppUrl:()=>p_,setCookie:()=>f_,time:()=>_P,timeout:()=>EP,urlHasProtocol:()=>AP,validEmail:()=>jf});var $f=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),cP=h.SALT_ROUNDS||10;async function Vf(t){let e=await $f.genSalt(cP);return $f.hash(t,e)}async function qf(t,e){return $f.compare(t,e)}var Ec=j(require("jsonwebtoken")),Wf="app"+N,c_="/app/",l_="/app/preview",lP="/builder",d_=`${lP}/app/`,dP="/api/public/v";function us(t){return t&&t.startsWith(Wf)?t:void 0}async function p_(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,()=>Mo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function pP(t){return t.path.startsWith(`/${Wf}`)?!0:t.path.startsWith(c_)}function fP(t){return t.path.startsWith(d_)}function mP(t){return t.path.startsWith(l_)}function hP(t){return t.path.startsWith(dP)}async function gP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=us(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=us(t.request.body.appId));let n=u_(t.path);!r&&n&&(r=us(n)),!r&&t.query?.appId&&(r=us(t.query?.appId));let i=t.path.startsWith(l_),s=t.path.startsWith(c_)&&!i;!r&&s&&(r=us(await p_(t)));let o=t.request.headers.referer;if(!r&&o?.includes(d_)){let a=u_(t.request.headers.referer);r=us(a)}return r}function u_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Wf))}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 ua(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function ni(t,e){let r=t.cookies.get(e);if(r)return Tc(r)}function f_(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 Kr(t,e){f_(t,null,e)}function yP(t){return t.headers["x-budibase-type"]==="client"}function EP(t){return new Promise(e=>setTimeout(e,t))}function Qf(t){return!!wh[t]}function TP(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 AP(t){return!!t.match(/^.+:\/\/.+$/)}function jf(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 Hf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Hf||{}),Ac={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},Re=class t{constructor(e){this.ms=e}to(e){return this.ms/Ac[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Ac[e]/Ac[r]}static from(e,r){return new t(r*Ac[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function _P(t){let e=performance.now();return[await t(),Re.fromMilliseconds(performance.now()-e)]}async function SP(t,e){if(t==="custom")return ii(e);switch(t){case"try_once":return ii(ls.TRY_ONCE);case"try_twice":return ii(ls.TRY_TWICE);case"default":return ii(ls.DEFAULT);case"delay_500":return ii(ls.DELAY_500);case"auto_extend":return ii(ls.AUTO_EXTEND);default:throw wi.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 ii(t={}){let e={...ls.DEFAULT,...t},n=(await Ff()).getClient();return new h_.default([n],e)}function OP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var g_=Re.fromSeconds(10).toMs();async function ds(t,e){let r=await SP(t.type,t.customOptions),n,i;try{let s=OP(t),o=t.type==="auto_extend"?g_: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 Yf=Se.PLATFORM_INFO.docs.tenants,Kf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function xP(){return(await _c()).tenantIds}async function _c(){let t=ut(),e;try{e=await t.get(Yf)}catch(r){if(r.status===404)e=await bP();else throw r}return e}async function RP(t){return(await _c()).tenantIds.indexOf(t)!==-1}function wP(){return{_id:Yf,tenantIds:[]}}async function bP(){let t=ut(),e=wP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Yf);throw r}return e}async function DP(t){let e=ut();await ds(Kf,async()=>{let r=await _c();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function CP(t){try{await ds(Kf,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 oi={};v(oi,{getAccount:()=>zr,getAccountByTenantId:()=>ps,getStatus:()=>vP});var y_=j(require("node-fetch"));var la=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";Po.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,y_.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 la(h.ACCOUNT_PORTAL_URL),Zf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,zr=async t=>{if(Zf)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(Zf)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]},vP=async()=>{if(Zf)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 As={};v(As,{UserDB:()=>Ht,addAppBuilder:()=>fM,bulkGetGlobalUsersById:()=>Yc,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>Um,creatorsInList:()=>ui,doesUserExist:()=>uM,getAccountHolderFromUsers:()=>Uc,getAllUserIds:()=>oM,getAllUsers:()=>aM,getById:()=>pi,getCreatorCount:()=>dM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>__,getExistingTenantUsers:()=>A_,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>ES,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>Sc,getUserCount:()=>lM,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>C_,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>D_,isBuilder:()=>gs,isCreatorAsync:()=>ha,isCreatorSync:()=>Nc,isGlobalBuilder:()=>b_,paginatedUsers:()=>AS,removeAppBuilder:()=>mM,removePortalUserPermissions:()=>pM,searchExistingEmails:()=>tm,searchGlobalUsersByApp:()=>Kc,searchGlobalUsersByAppAccess:()=>Pm,searchGlobalUsersByEmail:()=>TS,validateUniqueUser:()=>Pc});var dm={};v(dm,{creatorsInList:()=>ui,getAccountHolderFromUsers:()=>Uc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>C_,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>D_,isBuilder:()=>gs,isCreatorAsync:()=>ha,isCreatorSync:()=>Nc,isGlobalBuilder:()=>b_,validateUniqueUser:()=>Pc});var em={};v(em,{createCode:()=>PP,deleteCode:()=>LP,getCode:()=>UP,getExistingInvites:()=>Xf,getInviteCodes:()=>T_,updateCode:()=>NP});var E_=Re.fromDays(7).toSeconds();async function NP(t,e){await(await Xn()).store(t,e,E_)}async function PP(t,e){let r=Oe();return await(await Xn()).store(r,{email:t,info:e},E_),r}async function UP(t){let r=await(await Xn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function LP(t){await(await Xn()).delete(t)}async function T_(){let r=(await(await Xn()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function Xf(t){return(await T_()).filter(e=>t.includes(e.email))}async function tm(t){let e=[],r=await A_(t);e.push(...r.map(o=>o.email));let n=await __(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await Xf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Sc(t){return await Fo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Sc(t))[0]??null}async function A_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await cr("by_email2",r,void 0,n)}async function __(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("account_by_email",r)}var Dc={};v(Dc,{BadRequestError:()=>Ic,BudibaseError:()=>ms,EmailUnavailableError:()=>mr,ErrorCode:()=>wc,FeatureDisabledError:()=>Rc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Oc,UsageLimitError:()=>xc,getPublicError:()=>bc});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||{}),bc=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}},Oc=class extends ct{constructor(e){super(e,404)}},Ic=class extends ct{constructor(e){super(e,400)}},xc=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Rc=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")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var lm={};v(lm,{AccessController:()=>im,BUILTIN_ROLE_IDS:()=>ma,Role:()=>Jr,RoleHierarchyTraversal:()=>Cc,RoleIDVersion:()=>sm,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>x_,externalRole:()=>$P,findRole:()=>fa,getAllRoleIds:()=>QP,getAllRoles:()=>cm,getBuiltinRole:()=>O_,getBuiltinRoles:()=>am,getDBRoleID:()=>R_,getExternalRoleID:()=>Zr,getExternalRoleIDs:()=>w_,getRole:()=>VP,getUserRoleHierarchy:()=>um,getUserRoleIdHierarchy:()=>I_,isBuiltin:()=>ai,lowerBuiltinRoleID:()=>GP,prefixRoleIDNoBuiltin:()=>nm,roleIDsAreEqual:()=>Tt,roleToNumber:()=>BP,saveRoles:()=>qP,validInherits:()=>FP});var rm=j(require("semver"));var vc=j(require("lodash/fp/cloneDeep"));var S_=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ma,BUILDER:"BUILDER"},sm={UUID:void 0,NAME:"name"};function kP(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var Jr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=sm.NAME}addInheritance(e){return e&&typeof e=="string"?e=nm(e):e&&Array.isArray(e)&&(e=e.map(nm)),this.inherits=e,this}},Cc=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=fa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!kP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=fa(o.inherits,n,r),o&&i.push(o),Qt.roles.checkForRoleInheritanceLoops(i))break}}return(0,S_.uniqBy)(i,s=>s._id)}},om={ADMIN:new Jr(fe.ADMIN,fe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(fe.POWER),POWER:new Jr(fe.POWER,fe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(fe.BASIC),BASIC:new Jr(fe.BASIC,fe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(fe.PUBLIC),PUBLIC:new Jr(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Jr(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function am(){return(0,vc.default)(om)}function ai(t){return Object.values(ma).includes(t)}function nm(t){return ai(t)?t:ur(t)}function O_(t){let e=Object.values(om).find(r=>t.includes(r._id));if(e)return(0,vc.default)(e)}function FP(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 pa(t){let e=am(),r=Object.values(e).length+1;if(Tt(t,fe.ADMIN)||Tt(t,fe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function BP(t){if(ai(t))return pa(t);let e=await um(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(ai(n.inherits))return pa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function GP(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return ur(t)===ur(e)}function $P(t){let e;return t._id&&(e=Zr(t._id)),{...t,_id:e,inherits:w_(t.inherits,t.version)}}function fa(t,e,r){let n=O_(t);n||(t=ur(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ai(t)&&r?.defaultPublic?(0,vc.default)(om.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Zr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function VP(t,e){let r=Ji(),n=[];if(!ai(t)){let i=await r.tryGet(R_(t));i&&n.push(i)}return fa(t,n,e)}async function qP(t){await Ji().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:ur(r._id)})))}async function WP(t,e){let r=await cm();if(Tt(t,fe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new Cc(r,e).walk(n)),i}async function I_(t){return(await um(t)).map(r=>r._id)}async function um(t,e){return WP(t,e)}function x_(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 QP(t){return(await cm(t)).map(r=>r._id)}async function cm(t){if(t)return at(t,e);{let r;try{r=Ji()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(dc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Zr(a._id,a.version)));let i=am(),s=[];!r||await jP(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Zr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Zr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=x_(o.permissions,a);return n}}async function jP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!rm.default.valid(r)?!0:!rm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var im=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,fe.BUILDER)||Tt(r,e)||Tt(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await I_(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 R_(t){return t?.startsWith("role")?t:ur(t)}function Zr(t,e){if(t.startsWith(`role${N}`)&&(ai(t)||e===sm.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function w_(t,e){return t&&(typeof t=="string"?Zr(t,e):t.map(r=>Zr(r,e)))}var gs=st.users.isBuilder,Xr=st.users.isAdmin,b_=st.users.isGlobalBuilder,D_=st.users.isAdminOrBuilder,en=st.users.hasAdminPermissions,At=st.users.hasBuilderPermissions,C_=st.users.hasAppBuilderPermissions;async function ui(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>Nc(i,e))}async function ha(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Nc(t,e)}function Nc(t,e){let r=st.users.isCreator(t);return!r&&t?HP(t,e):r}function HP(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes(ma.ADMIN)):!1}async function Pc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await zr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function Uc(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:()=>j_,ai:()=>J_,analytics:()=>Mc,app:()=>H_,auditLog:()=>pS,auth:()=>Qc,automation:()=>Y_,backfill:()=>aS,backfillCache:()=>qc,backup:()=>lS,datasource:()=>K_,email:()=>z_,environmentVariable:()=>dS,group:()=>uS,identification:()=>Mt,initAsyncEvents:()=>Q0,installation:()=>_a,layout:()=>X_,license:()=>Z_,org:()=>eS,plugin:()=>cS,processors:()=>gm,publishEvent:()=>A,query:()=>tS,role:()=>Ra,rowAction:()=>fS,rows:()=>nS,screen:()=>rS,serve:()=>sS,shutdown:()=>j0,table:()=>iS,user:()=>Ve,view:()=>oS});var gm={};v(gm,{analyticsProcessor:()=>$_,init:()=>lU,processors:()=>hr});var Mc={};v(Mc,{enabled:()=>Lc});var Lc=async()=>kc();var L_=require("posthog-node");var YP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",KP=t=>t==="served:app:preview"||t==="served:app";var N_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},P_=async t=>{if(!YP(t))return!1;let e=await zP(t);if(e){let r=new Date(e.timestamp);switch(N_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await v_(t,{timestamp:Date.now()}),!1):!0}}else return await v_(t,{timestamp:Date.now()}),!1},U_=t=>{let e=`eventsRateLimit:${t}`;return KP(t)&&(e=e+":"+Ne()),e},zP=async t=>{let e=U_(t);return await ri(e)},v_=async(t,e)=>{let r=U_(t),n=N_[t],i;switch(n){case"calendarDay":i=86400}await fr(r,e,i)};var ZP=["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 L_.PostHog(e)}async processEvent(e,r,n,i){if(ZP.includes(e)||await P_(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Ne();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 M_=ga;var XP=["installation:version:upgraded","installation:version:downgraded"],eU=["installation","tenant"],ya=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new M_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!XP.includes(e)&&!await Lc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!eU.includes(e.type)&&!await Lc()||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 pm=h.SELF_HOSTED&&!h.isDev(),Ea=class{async processEvent(e,r,n){pm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){pm||console.log("[audit] identified",e)}async identifyGroup(e){pm||console.log("[audit] group identified",e)}shutdown(){}};var hm={};v(hm,{InMemoryQueue:()=>Fc,JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>aU});var k_=j(require("events"));function tU(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 Fc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new k_.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a){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){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>tU(e))}},F_=Fc;var fm=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 B_(t,e,r){iU(t,e),r&&rU(t,r)}function rU(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function _t(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var nU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function iU(t,e){let r=nU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Wp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(..._t(r,"stalled",{job:i}))})}).on("error",i=>{console.error(..._t(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(..._t(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(..._t(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(..._t(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(..._t(r,"paused"))}).on("resumed",()=>{console.info(..._t(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(..._t(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(..._t(r,"drained"))}).on("removed",i=>{console.info(..._t(r,"removed",{job:i}))})}var sU=Re.fromMinutes(5).toMs(),oU=Re.fromSeconds(30).toMs(),mm=Re.fromSeconds(60).toMs(),Ta=[],Bc;async function G_(){for(let t of Ta)await t.clean(mm,"completed"),await t.clean(mm,"failed")}function ci(t,e={}){let n={redis:es(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:sU,lockRenewTime:oU}};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 fm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new F_(t,n):i=new fm.default(t,n),B_(i,t,e?.removeStalledCb),Ta.push(i),!Bc&&!h.isTest()&&(Bc=Wo(G_,mm),G_().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function aU(){if(Bc&&Qo(Bc),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&&Qf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ne(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Aa=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 $_=new ya,uU=new Ea,cU=new Es;function lU(t){return Es.init(t)}var hr=new Aa([$_,uU,cU]);var Gc={};v(Gc,{checkInstallVersion:()=>fU,getInstall:()=>Sa,getInstallFromDB:()=>Em});var ym=j(require("semver"));var Sa=async()=>Yr("installation",86400,Em,{useTenancy:!1});async function dU(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 Em();throw r}}var Em=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 dU(t);else throw r}return e}),pU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await as("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},fU=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=ym.default.gt(r,e),i=ym.default.lt(r,e);await pU(r)&&(await Ro({_id:t.installId,type:"installation"},async()=>{n?await _a.upgraded(e,r):i&&await _a.downgraded(e,r)}),await Mt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?zn(`Invalid version "${r}" - is it semver?`):zn("Failed to retrieve version",n)}};var mU=async()=>{let t=Rp(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Oa();return{id:V_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await $c(Q()),s=Oa();return{id:V_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await $c(Q()),s=await 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")},hU=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 Tm(a,e),await Ia({...a,id:`$${n}_${r}`},e)},gU=async(t,e,r)=>{let n=await $c(t),i="tenant",s=await li(),o=xa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Tm(a,r),await Ia({...a,id:`$${i}_${n}`},r)},yU=async(t,e,r)=>{let n=t._id,i=await $c(t.tenantId),s="user",o=At(t),a=en(t),u;Wa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,p=!!e&&l&&e.verified,m=await li(),d=e?e.hosting:Oa(),f=xa();await Ia({id:n,type:s,hosting:d,installationId:m,tenantId:i,verified:p,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},EU=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 p=await kt(t.email);p?._id&&(e=p._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 hr.identify(t,e)},Tm=async(t,e)=>{await hr.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Oa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>TU()?"account-portal":(await Sa()).installId,$c=async t=>h.SELF_HOSTED?q_(t):t,q_=async t=>Ge(t,()=>Yr("uniqueTenantId",86400,async()=>{let e=ie(),r=await Vc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),TU=()=>h.SERVICE==="account-portal",V_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Mt={getCurrentIdentity:mU,identifyInstallationGroup:hU,identifyTenantGroup:gU,identifyUser:yU,identifyAccount:EU,identify:Ia,identifyGroup:Tm,getInstallationId:li,getUniqueTenantId:q_};var qc={};v(qc,{end:()=>_U,isAlreadySent:()=>Sm,isBackfillingEvent:()=>_m,recordEvent:()=>Am,start:()=>AU});var AU=async t=>OU({eventWhitelist:t}),Am=async(t,e)=>{let r=Om(t,e);await fr(r,e,void 0,{useTenancy:!1})},_U=async()=>{await IU(),await xU()},SU=async()=>ri("backfillMetadata"),OU=async t=>fr("backfillMetadata",t),IU=async()=>{await ia("backfillMetadata")},xU=async()=>{let t=Om(),e=await yc(t);for(let r of e)await ia(r,{useTenancy:!1})},_m=async t=>{let r=(await SU())?.eventWhitelist;return!!(r&&r.includes(t))},Sm=async(t,e)=>{let r=Om(t,e);return!!await ri(r,{useTenancy:!1})},RU={"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}`},Om=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=RU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var gr;function Wc(){gr=ci("systemEventQueue")}async function W_(){gr&&await gr.close()}async function Q_(t){gr||Wc();let{event:e,identity:r}=t;Rh.indexOf(e)!==-1&&r.tenantId&&await gr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Mt.getCurrentIdentity();if(!(n?!1:await _m(t))){await Q_({event:t,identity:i,properties:e,timestamp:r}),await hr.processEvent(t,i,e,r);return}await Sm(t,e)||(await hr.processEvent(t,i,e,r),await Am(t,e))};async function wU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function bU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function DU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var j_={created:wU,deleted:bU,verified:DU};var CU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function vU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function NU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function PU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function UU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function LU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function MU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function kU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function FU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function BU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function GU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function $U(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var H_={created:CU,updated:vU,deleted:NU,published:PU,unpublished:UU,fileImported:LU,duplicated:MU,templateImported:kU,versionUpdated:FU,versionReverted:BU,reverted:GU,exported:$U};async function VU(t,e){let n={userId:(await Mt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function qU(t){let r={userId:(await Mt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function WU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function QU(t){let e={type:t};await A("auth:sso:updated",e)}async function jU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function HU(t){let e={type:t};await A("auth:sso:deactivated",e)}var Qc={login:VU,logout:qU,SSOCreated:WU,SSOUpdated:QU,SSOActivated:jU,SSODeactivated:HU};async function YU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}async function KU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}async function zU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function JU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var ZU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function XU(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}async function eL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var Y_={created:YU,triggerUpdated:KU,deleted:zU,tested:JU,run:ZU,stepCreated:XU,stepDeleted:eL};function Im(t){return!Object.values(Ba).includes(t.source)}async function tL(t,e){let r={datasourceId:t._id,source:t.source,custom:Im(t)};await A("datasource:created",r,e)}async function rL(t){let e={datasourceId:t._id,source:t.source,custom:Im(t)};await A("datasource:updated",e)}async function nL(t){let e={datasourceId:t._id,source:t.source,custom:Im(t)};await A("datasource:deleted",e)}var K_={created:tL,updated:rL,deleted:nL};async function iL(t){let e={};await A("email:smtp:created",e,t)}async function sL(){let t={};await A("email:smtp:updated",t)}var z_={SMTPCreated:iL,SMTPUpdated:sL};async function oL(t){let e={};await A("ai:config:created",e,t)}async function aL(){let t={};await A("ai:config:updated",t)}var J_={AIConfigCreated:oL,AIConfigUpdated:aL};async function uL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function cL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function lL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function dL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function pL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function fL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function mL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var Z_={planChanged:uL,activated:cL,checkoutOpened:lL,checkoutSuccess:dL,portalOpened:pL,paymentFailed:fL,paymentRecovered:mL};async function hL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function gL(t){let e={layoutId:t};await A("layout:deleted",e)}var X_={created:hL,deleted:gL};async function yL(t){let e={};await A("org:info:name:updated",e,t)}async function EL(t){let e={};await A("org:info:logo:updated",e,t)}async function TL(t){let e={};await A("org:platformurl:updated",e,t)}async function AL(){let t={};await A("analytics:opt:out",t)}async function _L(){let t={};await A("analytics:opt:out",t)}var eS={nameUpdated:yL,logoUpdated:EL,platformURLUpdated:TL,analyticsOptOut:AL,analyticsOptIn:_L};var SL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},OL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},IL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},xL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},RL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},wL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},tS={created:SL,updated:OL,deleted:IL,imported:xL,run:RL,previewed:wL};async function bL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function DL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function CL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function vL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function NL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Ra={created:bL,updated:DL,deleted:CL,assigned:vL,unassigned:NL};async function PL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}async function UL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var rS={created:PL,deleted:UL};var LL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},ML=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},nS={created:LL,imported:ML};async function kL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function FL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function BL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function GL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function $L(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var iS={created:kL,updated:FL,deleted:BL,exported:GL,imported:$L};async function VL(t){let e={timezone:t};await A("served:builder",e)}async function qL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function WL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var sS={servedBuilder:VL,servedApp:qL,servedAppPreview:WL};async function QL(t,e){let r={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:created",r,e)}async function jL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:updated",e)}async function HL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:deleted",e)}async function YL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function KL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function zL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function JL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function ZL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function XL(t){let e={audited:{email:t}};await A("user:invited",e)}async function e0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function t0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function r0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function n0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function i0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function s0(t){let e={users:t};await A("user:data:collaboration",e)}var Ve={created:QL,updated:jL,deleted:HL,permissionAdminAssigned:KL,permissionAdminRemoved:zL,permissionBuilderAssigned:JL,permissionBuilderRemoved:ZL,onboardingComplete:YL,invited:XL,inviteAccepted:e0,passwordForceReset:t0,passwordUpdated:r0,passwordResetRequested:n0,passwordReset:i0,dataCollaboration:s0};async function o0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function a0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function u0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function c0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function l0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function d0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function p0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function f0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function m0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function h0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function g0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var oS={created:o0,updated:a0,deleted:u0,exported:c0,filterCreated:l0,filterUpdated:d0,filterDeleted:p0,calculationCreated:f0,calculationUpdated:m0,calculationDeleted:h0,viewJoinCreated:g0};async function y0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function E0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function T0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function A0(){let t={};await A("installation:firstStartup",t)}var _a={versionChecked:y0,upgraded:E0,downgraded:T0,firstStartup:A0};var _s=!h.SELF_HOSTED&&!h.isDev();async function _0(t){_s||await A("app:backfill:succeeded",t)}async function S0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function O0(t){_s||await A("tenant:backfill:succeeded",t)}async function I0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function x0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function R0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var aS={appSucceeded:_0,appFailed:S0,tenantSucceeded:O0,tenantFailed:I0,installationSucceeded:x0,installationFailed:R0};async function w0(t,e){let r={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function b0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:updated",e)}async function D0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function C0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function v0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function N0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function P0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var uS={created:w0,updated:b0,deleted:D0,usersAdded:C0,usersDeleted:v0,createdOnboarding:N0,permissionsEdited:P0};async function U0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function L0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}async function M0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var cS={init:U0,imported:L0,deleted:M0};async function k0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function F0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var lS={appBackupRestored:k0,appBackupTriggered:F0};async function B0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function G0(t){let e={name:t};await A("environment_variable:deleted",e)}async function $0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var dS={created:B0,deleted:G0,upgradePanelOpened:$0};async function V0(t){let e={filters:t};await A("audit_log:filtered",e)}async function q0(t){let e={filters:t};await A("audit_log:downloaded",e)}var pS={filtered:V0,downloaded:q0};async function W0(t,e){await A("row_action:created",t,e)}var fS={created:W0};function Q0(){}var j0=()=>{hr.shutdown(),console.log("Events shutdown")};var xm=async t=>{await Ve.deleted(t),At(t)&&await Ve.permissionBuilderRemoved(t),en(t)&&await Ve.permissionAdminRemoved(t)},H0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ra.assigned(t,i)},Y0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ra.unassigned(t,i)},K0=async(t,e)=>{let r=t.roles,n=e?.roles;await H0(t,r,n),await Y0(t,r,n)},Rm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Mt.identifyUser(t,n),e?(await Ve.updated(t),J0(t,e)&&await Ve.permissionBuilderRemoved(t),X0(t,e)&&await Ve.permissionAdminRemoved(t),eM(t,e)&&await Ve.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ve.passwordForceReset(t),t.password!==e.password&&await Ve.passwordUpdated(t)):await Ve.created(t),z0(t,e)&&await Ve.permissionBuilderAssigned(t),Z0(t,e)&&await Ve.permissionAdminAssigned(t),await K0(t,e)},z0=(t,e)=>mS(t,e,At),J0=(t,e)=>hS(t,e,At),Z0=(t,e)=>mS(t,e,en),X0=(t,e)=>hS(t,e,en),eM=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",mS=(t,e,r)=>!(!r(t)||e&&r(e)),hS=(t,e,r)=>!(r(t)||!e||!r(e));var Hc={};v(Hc,{createASession:()=>rM,endSession:()=>nM,getSession:()=>bm,getSessionsForUser:()=>jc,invalidateSessions:()=>di,updateSessionTTL:()=>wm});var gS=require("uuid");var yS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):Re.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function jc(t){return t?(await(await jr()).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 jc(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 jr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ss(`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 rM(t,e){await di(t,{reason:"creation"});let r=await jr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,gS.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,yS),o}async function wm(t){let e=await jr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,yS)}async function nM(t,e){await(await jr()).delete(Ss(t,e))}async function bm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await jr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Nm={};v(Nm,{PASSWORD_MAX_LENGTH:()=>Cm,PASSWORD_MIN_LENGTH:()=>Dm,validatePassword:()=>vm});var Dm=+(h.PASSWORD_MIN_LENGTH||12),Cm=+(h.PASSWORD_MAX_LENGTH||512);function vm(t){return!t||t.length<Dm?{valid:!1,error:`Password invalid. Minimum ${Dm} characters.`}:t.length>Cm?{valid:!1,error:`Password invalid. Maximum ${Cm} characters.`}:{valid:!0}}var iM=async t=>{let e=t._id;await Lt.removeUser(t),await xm(t),await rn.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&&Xr(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 p=vm(o);if(!p.valid)throw new ct(p.error,400)}u=r.hashPassword?await Vf(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||ts();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ie().allDocs(Yn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Kc(e,{})).length}}static async getUsersByAppAccess(e){return await Pm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await pi(e);return r&&delete r.password,r}static async bulkGet(e){return await Yc(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ie(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await 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 kt(s),c&&c._id!==o))throw new mr(s);let l=c?0:1,p=0;if(c){let[m,d]=await ui([c,e]);p=m!==d?1:0}return t.quotas.addUsers(l,p,async()=>{r.isAccountHolder||await Pc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Um(m,c)),!c&&u?.length&&(m.roles={...u});let d=[];if(!o&&a.length>0)for(let f of a)d.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Rm(m,c),c&&m.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.addUser(n,m._id,m.email,m.ssoId),await rn.invalidateUser(f.id),await Promise.all(d),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(p=>p.email),u=await tm(a),c=[];for(let p of e){if(s.find(m=>m.email.toLowerCase()===p.email.toLowerCase())||u.includes(p.email.toLowerCase())){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await ha(p)&&o.push(p)}let l=await ps(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(d=>{i.push(t.buildUser(d,{hashPassword:!0,requirePassword:d.requirePassword},n,void 0,l))});let p=await Promise.all(i);await wa(p);for(let d of p)await Lt.addUser(n,d._id,d.email),await Rm(d,void 0);let m=p.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(m)&&r){let d=[],f=m.map(g=>g._id);for(let g of r)d.push(t.groups.addUsers(g,f));await Promise.all(d)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Uc(e);i&&(e=e.filter(d=>d.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(d=>d.userId)})).rows.map(d=>d.doc),a=o.map(d=>({...d,_deleted:!0})),u=await wa(a),l=(await ui(o)).filter(d=>d).length,p=[];for(let d of o){let g=(await da(d._id)).ssoId;g&&(await Sc(g)).filter(y=>y.ssoId==null).forEach(y=>{p.push({...y,_deleted:!0})}),await iM(d)}await ut().bulkDocs(p),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((d,f)=>(d[f._id]=f,d),m),u.forEach(d=>{let f=m[d.id].email;d.ok?n.successful.push({_id:d.id,email:f}):n.unsuccessful.push({_id:d.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await zr(o))throw n.userId===or()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Lt.removeUser(n),await r.remove(i,n._rev);let s=await ha(n)?1:0;await t.quotas.removeUsers(1,s),await xm(n),await rn.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 as("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 Yc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function oM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function aM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(t){return await ie().bulkDocs(t)}async function pi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Da(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await cr("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 uM(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Kc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=lc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await cr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Da(s)),s}async function Pm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Vp(ar(),i)).rows}function ES(t,e){if(e)return cc(ot(t),e._id)}async function TS(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 cr("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 cM=8;async function AS({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??cM,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 Kc(r,a),l=p=>ES(r,p)):e?.string?.email?(u=await TS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Yc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Yn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Ur.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Yn(null,a))).rows.map(m=>m.doc),uf(u,s,{paginate:!0,property:c,getKey:l})}async function lM(){return(await df("by_email2",{limit:0,include_docs:!1})).total_rows}async function dM(){let t=0;async function e(r){let n=await AS({bookmark:r}),i=await ui(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function pM(t){return delete t.admin,delete t.builder,t}function Um(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}async function fM(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 mM(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 _S=3600;async function hM(t,e){let n=await Bf(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 gM(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 Ca({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=hM),!e)try{e=Q()}catch{e=await Lt.lookupTenantId(t)}let i=await ra(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,_S)),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 yM(t){let e=await ra(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await gM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,_S);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ra()).delete(t)}var Fm={};v(Fm,{Writethrough:()=>Mm});var SS=1e4,Lm=null;async function km(){if(!Lm){let t=await kf();Lm=new ei(t)}return Lm}function zc(t,e){return t.name+e}function OS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function EM(t,e,r=SS){let n=await km(),i=e._id,s;i&&(s=await n.get(zc(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 p=await t.put(l,{force:!0});a._id=p.id,a._rev=p.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;ss("Ignoring conflict in write-through cache")}})).executed||ss("Ignoring redlock conflict in write-through cache")),s=OS(a,o?null:s?.lastWrite),a._id&&await n.store(zc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function TM(t,e){let r=await km(),n=zc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=OS(s),await r.store(n,i)}return i.doc}async function AM(t,e,r){let n=await km();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(zc(t,i))}finally{await t.remove(i,r)}}var Mm=class{constructor(e,r=SS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return EM(this.db,e,r)}async get(e){return TM(this.db,e)}async remove(e,r){return AM(this.db,e,r)}};var Bm={};v(Bm,{createCode:()=>SM,getCode:()=>OM,invalidateCode:()=>IM});var _M=Re.fromHours(1).toSeconds();async function SM(t,e){let r=Oe();return await(await na()).store(r,{userId:t,info:e},_M),r}async function OM(t){let r=await(await na()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function IM(t){await(await na()).delete(t)}var $m={};v($m,{DocWritethrough:()=>Gm,DocWritethroughProcessor:()=>Na,getProcessor:()=>RM,init:()=>IS});var xM=100,Jc,Na=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:xM}})),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=He(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Gm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Na.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function IS(){return Jc=new Na().init(),Jc}function RM(){return Jc||IS()}function Wm(t){return`config${N}${t}`}async function Ft(t){let e=ie();try{return await e.get(Wm(t))}catch(r){if(r.status===404)return;throw r}}async function wM(t){return ie().put(t)}async function Vc(){let t=await Ft("settings");return t||(t={_id:Wm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Pa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await kc({config:t.config}),t}async function Qm(){return(await Vc()).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 Ft("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var kc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Yr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await Ft("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 bM(){return await Ft("google")}async function Zc(){return(await bM())?.config}async function jm(){if(!h.SELF_HOSTED)return Vm();let t=await Zc();return(!t||!t.activated)&&(t=Vm()),t}function Vm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function DM(){return Ft("logos_oidc")}async function CM(){return Ft("oidc")}async function vM(){let t=(await CM())?.config;return t?.configs&&t.configs[0]}async function Hm(t){let e=(await Ft("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function xS(){return Ft("smtp")}async function NM(t){let e=await xS();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 PM(){return(await Ft("scim"))?.config}async function UM(){return Ft("ai")}var Ym={};v(Ym,{BUILDER:()=>BM,BUILTIN_PERMISSIONS:()=>Xc,CREATOR:()=>GM,GLOBAL_BUILDER:()=>$M,PermissionImpl:()=>me,PermissionLevel:()=>ws,PermissionType:()=>$a,doesHaveBasePermission:()=>kM,getAllowedLevels:()=>DS,getBuiltinPermissionByID:()=>MM,getBuiltinPermissions:()=>LM,isPermissionLevelHigherThanRead:()=>FM,levelToNumber:()=>bS});var RS=j(require("lodash/flatten")),wS=j(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function bS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function DS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Xc={PUBLIC:{_id:"public",name:"Public",permissions:[new me("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new me("query","read"),new me("table","read"),new me("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new me("query","write"),new me("table","write"),new me("automation","execute"),new me("legacy_view","read"),new me("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new me("table","write"),new me("user","read"),new me("automation","execute"),new me("webhook","read"),new me("legacy_view","read"),new me("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new me("table","admin"),new me("user","admin"),new me("automation","admin"),new me("webhook","read"),new me("query","admin"),new me("legacy_view","read"),new me("app","read")]}};function LM(){return(0,wS.default)(Xc)}function MM(t){return Object.values(Xc).find(r=>r._id===t)}function kM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Xc),s=(0,RS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&DS(o.level).indexOf(e)!==-1)return!0;return!1}function FM(t){return bS(t)>1}var BM="builder",GM="creator",$M="globalBuilder";var Jm={};v(Jm,{FlagSet:()=>tl,all:()=>QM,flags:()=>Km,init:()=>VM,isEnabled:()=>WM,parseEnvFlags:()=>nl,shutdown:()=>qM,testutils:()=>zm});var rl=j(require("crypto"));var CS=require("posthog-node"),vS=j(require("dd-trace"));var NS=require("lodash");var el;function VM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),el=new CS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Re.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function qM(){el?.shutdown()}function nl(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 tl=class{constructor(e){this.flagSchema=e;this.setId=rl.randomUUID()}defaults(){return(0,NS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await vS.default.trace("features.fetch",async e=>{let r=Yp(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:p,value:m}of nl(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=m,n[`flags.${p}.source`]="environment"}let a=or(),u=a?._id;if(!u){let l=jp();l&&(u=rl.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,el&&u){n.readFromPostHog=!0;let l={tenantId:c},p=await el.getAllFlags(u,{personProperties:l});for(let[m,d]of Object.entries(p)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${d}`);continue}if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${d}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=d,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${d}`,f)}}}Kp(this.setId,i);for(let[l,p]of Object.entries(i))n[`flags.${l}.value`]=p;return e?.addTags(n),i})}},Km=new tl(vh);async function WM(t){return await Km.isEnabled(t)}async function QM(){return await Km.fetch()}var zm={};v(zm,{setFeatureFlags:()=>PS,withFeatureFlags:()=>YM});function jM(){let t={};for(let{tenantId:e,key:r,value:n}of nl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function HM(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 PS(t,e){let r=jM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=HM(r);return wo({TENANT_FEATURE_FLAGS:n})}function YM(t,e,r){let n=PS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var ch={};v(ch,{adminOnly:()=>ml,auditLog:()=>ll,authError:()=>Ue,buildAuthMiddleware:()=>Lk,buildCsrfMiddleware:()=>kk,buildTenancyMiddleware:()=>Mk,builderOnly:()=>gl,builderOrAdmin:()=>hl,google:()=>yr,internalApi:()=>pl,joiValidator:()=>La,oidc:()=>Er,passport:()=>Fk,platformLogout:()=>qk,refreshOAuthToken:()=>$k,ssoCallbackUrl:()=>nn,updateUserOAuth:()=>Vk});var uh={};v(uh,{adminOnly:()=>ml,auditLog:()=>ll,authError:()=>Ue,authenticated:()=>cl,builderOnly:()=>gl,builderOrAdmin:()=>hl,correlation:()=>HS,csp:()=>XS,csrf:()=>fl,datasource:()=>Pk,errorHandling:()=>KS,google:()=>yr,internalApi:()=>pl,ip:()=>tO,joiValidator:()=>La,local:()=>Os,oidc:()=>Er,pino:()=>QS,querystringToBody:()=>zS,ssoCallbackUrl:()=>nn,tenancy:()=>dl});var Os={};v(Os,{authenticate:()=>JM,options:()=>zM});function Ue(t,e,r){return t(r,null,{message:e})}async function nn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Qm(),n="/api/global/auth";return Br()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Zm="Invalid credentials",KM="This account has expired. Please reset your password",zM={passReqToCallback:!0};async function JM(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await kt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,Zm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Zm)):i.password?await qf(r,i.password)?(delete i.password,n(null,i)):Ue(n,Zm):(console.info(`user=${e} has no password set`,i),Ue(n,KM))}var yr={};v(yr,{buildVerifyFn:()=>MS,getCallbackUrl:()=>ek,strategyFactory:()=>Xm});var Ua=t=>Promise.resolve(t);async function il(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=ts(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 kt(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 ZM(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 ZM(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 XM=require("passport-google-oauth").OAuth2Strategy;function MS(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 il(s,!0,i,t)}}async function Xm(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=MS(r);return new XM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function ek(t){return nn("google",t)}var Er={};v(Er,{buildVerifyFn:()=>FS,fetchStrategyConfig:()=>ik,getCallbackUrl:()=>sk,strategyFactory:()=>nk});var kS=j(require("node-fetch"));var tk=require("@techpass/passport-openidconnect").Strategy;function FS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:rk(n,i),oauth2:{accessToken:s,refreshToken:o}};return il(l,!1,c,t)}}function rk(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&jf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function nk(t,e){try{let r=FS(e),n=new tk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function ik(t,e){try{let{clientID:r,clientSecret:n,configUrl:i}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let s=await(0,kS.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 sk(){return nn("oidc")}var eh={};v(eh,{postAuth:()=>uk,preAuth:()=>ak});var ok=require("passport-google-oauth").OAuth2Strategy;async function BS(){let t=await jm();if(!t)throw new Error("No google configuration found");return t}async function ak(t,e,r){let n=await BS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Xm(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 uk(t,e,r){let n=await BS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ni(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new ok({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Kr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await fr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var ck=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(ck);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 oh={};v(oh,{SecretOption:()=>VS,decrypt:()=>sh,decryptFile:()=>hk,encrypt:()=>pk,encryptFile:()=>fk,getSecret:()=>ih});var Tr=j(require("crypto")),sn=j(require("fs")),rh=j(require("zlib"));var th=require("path"),sl="aes-256-ctr",$S="-",lk=1e4,dk=32,ol=16,nh=16,VS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(VS||{});function ih(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 al(t,e){return Tr.default.pbkdf2Sync(t,e,lk,dk,"sha512")}function pk(t,e="api"){let r=Tr.default.randomBytes(ol),n=al(ih(e),r),i=Tr.default.createCipheriv(sl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${$S}${a}`}function sh(t,e="api"){let[r,n]=t.split($S),i=Buffer.from(r,"hex"),s=al(ih(e),i),o=Tr.default.createDecipheriv(sl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function fk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,th.join)(t,e);if(sn.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=sn.default.createReadStream(i),o=sn.default.createWriteStream((0,th.join)(t,n)),a=Tr.default.randomBytes(ol),u=Tr.default.randomBytes(nh),c=al(r,a),l=Tr.default.createCipheriv(sl,c,u);return o.write(a),o.write(u),s.pipe(rh.default.createGzip()).pipe(l).pipe(o),new Promise(p=>{o.on("finish",()=>{p({filename:n,dir:t})})})}async function mk(t){let e=sn.default.createReadStream(t),r=await GS(e,ol),n=await GS(e,nh);return e.close(),{salt:r,iv:n}}async function hk(t,e,r){if(sn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await mk(t),s=sn.default.createReadStream(t,{start:ol+nh}),o=sn.default.createWriteStream(e),a=al(r,n),u=Tr.default.createDecipheriv(sl,a,i),c=rh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,p)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),p(m)}),u.on("error",m=>{o.close(),p(m)}),c.on("error",m=>{o.close(),p(m)}),o.on("error",m=>{o.close(),p(m)})})}function GS(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 WS=j(require("dd-trace")),gk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function yk(){return new Date(Date.now()-gk).toISOString()}function qS(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 Ek(t,e){if(ua(t))return{valid:!0,user:void 0};let n=sh(t).split(N)[0];return Ge(n,async()=>{let i;try{let s=ie();i=await cr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ca({userId:i,tenantId:n,populateUser:e})};throw new hs})}function ul(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function cl(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=ul(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=ul(n,"x-budibase-token"),c=ni(n,"budibase:auth")||Tc(u),l=ul(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let p=ul(n,"x-budibase-tenant-id"),m=!1,d,f=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,_;try{_=await bm(S,y),e&&e.populateUser?d=await Ca({userId:S,tenantId:_.tenantId,email:_.email,populateUser:e.populateUser(n)}):d=await Ca({userId:S,tenantId:_.tenantId,email:_.email}),d.csrfToken=_.csrfToken,g="cookie",_?.lastAccessedAt<yk()&&await wm(_),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:_}=await Ek(l,y);S&&(m=!0,g="api_key",d=_,f=!_)}!d&&p?d={tenantId:p}:d&&"password"in d&&delete d.password,m||(m=!1);let E=y=>y&&y.email;return E(d)&&WS.default.setUser({id:d._id,tenantId:d.tenantId,budibaseAccess:d.budibaseAccess,status:d.status}),qS(n,{authenticated:m,user:d,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(d)?bp(d,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Kr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return qS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Tk=async(t,e)=>e(),ll=Tk;function dl(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 pl=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"),ua(r)||t.throw(403,"Unauthorized"),e()};var Ak=["GET","HEAD","OPTIONS"],_k=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function fl(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||Ak.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!_k.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 ml=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var hl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Xr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var gl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At: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 Sk=require("koa-pino-logger"),Ok=require("correlation-id");function Ik(){return{logger:hc,genReqId:Ok.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 xk(){return h.HTTP_LOGGING?Sk(Ik()):(t,e)=>e()}var Rk=xk(),QS=Rk;var jS=require("uuid"),wk=require("correlation-id"),bk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,jS.v4)()),wk.withId(r,()=>e())},HS=bk;function YS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of DT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Dk(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:bc(r)};if(YS(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 KS=Dk;function zS(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 ZS=j(require("crypto")),JS={"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 Ck(t,e){try{let r=ZS.default.randomBytes(16).toString("base64"),n={...JS};n["script-src"]=[...JS["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 XS=Ck;var La={};v(La,{body:()=>vk,params:()=>Nk});var ah=j(require("joi"));function eO(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:ah.default.any().optional(),updatedAt:ah.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 vk(t,e){return eO(t,"body",e)}function Nk(t,e){return eO(t,"params",e)}var tO=async(t,e)=>t.ip?await Hp(t.ip,()=>e()):e();var Pk={google:eh};var rO=require("koa-passport"),Uk=require("passport-local").Strategy,yl=require("passport-oauth2-refresh"),Lk=cl,Mk=dl,kk=fl,Fk=rO;rO.use(new Uk(Os.options,Os.authenticate));async function Bk(t,e){let r=await Er.getCallbackUrl(),n,i;try{if(n=await Er.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Er.strategyFactory(n,Ua)}catch{throw new Error("Could not refresh OAuth Token")}return yl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{yl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Gk(t,e){let r=await yr.getCallbackUrl(t),n;try{n=await yr.strategyFactory(t,r,Ua)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return yl.use(n),new Promise(i=>{yl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function $k(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Hm(r);return n?Bk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Zc();return n?Gk(n,t):{err:{data:"Google configuration not found"}}}}}async function Vk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function qk(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=ni(e,"budibase:auth"),s=await jc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await di(r,{sessionIds:o,reason:"logout"}),await Qc.logout(e.user?.email),await va(r)}var dh={};v(dh,{validate:()=>Yk});var D=j(require("joi")),Wk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function lh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Qk(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});lh(e,t)}function jk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Sl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(_l)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(Ol).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...Wk),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});lh(n,t)}function Hk(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(oe)).required(),customType:D.default.string().allow(...Object.values(he)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...Nh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});lh(n,t)}function Yk(t){switch(t?.type){case"component":Qk(t);break;case"datasource":jk(t);break;case"automation":Hk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var ph={};v(ph,{Client:()=>$e,clients:()=>Hr,locks:()=>si,utils:()=>nc});var fh={};v(fh,{isBlacklisted:()=>zk,refreshBlacklist:()=>oO});var nO=j(require("dns")),Tl=j(require("net"));var iO=require("util"),El,Kk=(0,iO.promisify)(nO.default.lookup);async function sO(t){return Tl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Kk(t,{all:!0})).map(r=>r.address)}async function oO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Tl.default.isIP(i))r.push(i);else{let s=await sO(i);r=r.concat(s)}}El=r}async function zk(t){if(El||await oO(),El?.length===0)return!1;let e;return Tl.default.isIP(t)?e=[t]:e=await sO(t),!!El?.find(r=>e.includes(r))}var hh={};v(hh,{init:()=>Zk});var Jk={"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 aO(t,e){let r=Jk[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=aO(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 W_()}};var uO,mh;function Zk(t){gr||Wc(),mh||(mh=new Ma(t)),uO||(uO=gr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await mh.processEvent(r,n,i)}))}var Ih={};v(Ih,{COUNT_FIELD_NAME:()=>Sh,Sql:()=>gO,SqlTable:()=>Al,designDoc:()=>Oh,utils:()=>Gp});var pO=require("knex");var Xk=require("knex");function gh(t){return["link","formula","ai"].indexOf(t)!==-1}function cO(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,d]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=d.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(d.meta&&d.meta.toKey&&d.meta.toTable){let{toKey:E,toTable:y}=d.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":d.timeOnly?t.time(m):t.datetime(m,{useTz:!d.ignoreTimezones});break;case"array":case"bb_reference":Qt.schema.isDeprecatedSingleUserColumn(d)?t.text(m):t.json(m);break;case"link":if(d.relationshipType!=="many-to-one"&&d.relationshipType!=="many-to-many"){if(!d.foreignKey||!d.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Mp(d.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],_=y.schema[S].externalType;_?t.specificType(d.foreignKey,_):t.integer(d.foreignKey).unsigned(),t.foreign(d.foreignKey).references(`${E}.${S}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${d.type} is not a valid SQL type`;default:wi.unreachable(g)}}let p=i?n?.schema[i.old].type:void 0;return i&&p&&!gh(p)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([d,f])=>!gh(f.type)&&e.schema[d]==null).forEach(([d,f])=>{i?.old===d||gh(f.type)||(n.constrained&&n.constrained.indexOf(d)!==-1&&t.dropForeign(d),t.dropColumn(d))}),t}function tF(t,e,r){return t.createTable(e.name,n=>{cO(n,e,r)})}function rF(t,e,r,n,i){return t.alterTable(e.name,s=>{cO(s,e,r,n,i)})}function nF(t,e){return t.dropTable(e.name)}var yh=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,Xk.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=tF(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=rF(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=Yi(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=nF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Yi(n)}},Al=yh;var fO=require("lodash"),Sh="__bb_total";function lO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Eh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function iF(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 mO(t){return Array.isArray(t)?t.map(e=>mO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function dO(t){return t.sourceType==="internal"||t.sourceId===wl}function sF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function hO(t,e='"'){return`${e}${sF(t,e)}${e}`}function Th(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=hO(t[r],e));return`[${t.join(",")}]`}var oF={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},Ah=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 Ur.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(kp(e))return null;if(Fp(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,fO.cloneDeep)(e);for(let r of Object.values(_r)){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(Yt)){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(cn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=p=>n.match(new RegExp(`^${p}\\.`));if(!s)return e;for(let p of s){let m=p.tableName,d=a?.[m]||m,f=l(m)||l(d),g=l(p.column);if((f||g)&&p.to&&p.tableName){let E=this.knex.select(this.knex.raw(1)).from({[d]:m}),y=E.clone(),S=Bp(p),_;if(f?_=n:_=n.replace(new RegExp(`^${p.column}.`),`${a?.[p.tableName]||p.tableName}.`),S){let M=a?.[S.through]||p.through,T=this.tableNameWithSchema(S.through,{alias:M,schema:o});y=y.innerJoin(T,function(){this.on(`${d}.${S.toPrimary}`,"=",`${M}.${S.to}`)}).where(`${M}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(O=>{O.whereExists(i(_,y)),r&&O.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${M}.${S.from}`)}))})}else{let M=`${d}.${p.to}`,T=`${c}.${p.from}`;y=y.where(M,"=",this.rawQuotedIdentifier(T)),e=e.where(O=>{O.whereExists(i(_,y.clone())),r&&O.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let S=(_,M,T)=>{let[O,...x]=M.split("."),w=x.join("."),B=c(O);return _.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let _ in f){let M=f[_],T=Bo(_),O=T.includes("."),x=n?.relationship&&O,w;if(_==="_complexIdOperator"&&(w=f[_])&&y){let B=c(u);e=y(e,w.id.map(le=>B?`${B}.${le}`:le),w.values)}else if(O)x&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,oF[g],T,(B,le)=>S(le,B,M)));else{let B=c(u);e=E(e,B?`${B}.${T}`:T,M)}}}let p=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,S,_)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Th(_,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Th(_))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,S,_)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(hO(Th(_)))])):l(f,"contains",(y,S,_)=>(_.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let O of _){f===r?.containsAny?T=T.or:T=T.and;let x=typeof O=="string"?`"${O.toLowerCase()}"`:O;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${x}%`)}}),f===r?.notContains&&(M=M.or.whereNull(this.rawQuotedIdentifier(S))),M))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let _ of S)_!=null?f=f.or.whereLike(g,`${_.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,S)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",p),r.range&&l(r.range,"range",(f,g,E)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=ec(E.low),_=ec(E.high),M=this.getFieldSchema(g),T=g,O=E.high,x=E.low;return this.client==="sqlite3"&&M?.type==="datetime"&&M.dateOnly&&(O!=null&&(O=`${O.toISOString().slice(0,10)}T23:59:59.999Z`),x!=null&&(x=x.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&M?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),O=this.knex.raw("CAST(? AS INTEGER)",[E.high]),x=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),S&&_?f.whereBetween(T,[x,O]):S?f.where(T,">=",x):_?f.where(T,"<=",O):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(_=>_.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(_=>_.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let d=s?.[this.table._id]||this.table._id;return r.documentType&&!Lp(this.table)&&d&&e.andWhereLike(`${d}._id`,`${Sr(r.documentType)}%`),e}isSqs(){return dO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;dO(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 ${Sh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let p=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(p):m=this.rawQuotedIdentifier(p),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 p of n){let{tableName:m,through:d,to:f,from:g,fromPrimary:E,toPrimary:y}=p;if(!m||!r)continue;let S=c[m];if(!S)throw new Error(`related table "${m}" not found in datasource`);let _=a?.[m]||m,M=a?.[r]||r,T=d&&a?.[d]||d,O=this.tableNameWithSchema(m,{alias:_,schema:u}),x=[...S?.primary||[],S?.primaryDisplay].filter(q=>q),w=iF(l.filter(q=>q.split(".")[0]===_),x);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map(q=>this.buildJsonField(S,q));if(!B.length)continue;let le=B.map(q=>{let se=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${se}??`,[q[0],q[1]]).toString()}).join(","),on=`${_}.${y||f}`,V=s.from(O).orderBy(on),F=d&&y&&E,C=F?`${T}.${g}`:`${_}.${f}`,W=F?`${M}.${E}`:`${M}.${g}`;if(F){let q=this.tableNameWithSchema(d,{alias:T,schema:u});V=V.join(q,function(){this.on(`${_}.${y}`,"=",`${T}.${f}`)})}V=V.where(this.rawQuotedIdentifier(C),"=",this.rawQuotedIdentifier(W));let L=q=>(V=V.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Eh()),s.select(q).from({[_]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,p),K=L(this.knex.raw(`json_group_array(json_object(${le}))`));break;case"pg":K=L(this.knex.raw(`json_agg(json_build_object(${le}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${le}) LIMIT ${Eh()})`));break;case"mysql2":case"oracledb":K=L(this.knex.raw(`json_arrayagg(json_object(${le}))`));break;case"mssql":{let q=s.select("*").from({[M]:V.select(B.map(se=>s.ref(se[1]).as(se[0]))).limit(Eh())});K=s.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[p.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,p=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),d=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(d,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${p}.${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(`${p}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let d=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=d}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let p=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):p.length>0?u=this.addAggregations(u,p):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&p.length===0){let m=this.query.tableAliases?.[o.name]||o.name,d=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(d,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())}},_h=class extends Al{constructor(r,n=lO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Yi(r);return i==="sqlite3"&&(s=mO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,pO.knex)(s),a,u=new Ah(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:lO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let p=[];for(let m of a)p.push(await n(m,o));return p}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let p;s==="mssql"?p=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(p=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(p,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===wl){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 Ph.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){vo(this.getSqlClient(),r,n)}},gO=_h;var Oh={};v(Oh,{base:()=>aF});function aF(t){return{_id:sr,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var uF={...aa,...Ee},cF=(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