@budibase/backend-core 3.3.0 → 3.3.2
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 +7 -7
- package/dist/index.js.map +2 -2
- package/dist/package.json +2 -2
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +1 -1
- package/dist/src/features/features.d.ts +2 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";var uO=Object.create;var La=Object.defineProperty;var cO=Object.getOwnPropertyDescriptor;var lO=Object.getOwnPropertyNames;var dO=Object.getPrototypeOf,fO=Object.prototype.hasOwnProperty;var Y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)La(t,r,{get:e[r],enumerable:!0})},hh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of lO(e))!fO.call(t,i)&&i!==r&&La(t,i,{get:()=>e[i],enumerable:!(n=cO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?uO(dO(t)):{},hh(e||!t||!t.__esModule?La(r,"default",{value:t,enumerable:!0}):r,t)),pO=t=>hh(La({},"__esModule",{value:!0}),t);var Gh=Y((Rl,Dl)=>{"use strict";(function(t,e){typeof Rl=="object"&&typeof Dl<"u"?Dl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Rl,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",f="year",m="date",d="Invalid Date",p=/^(\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,T={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:f,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]=T;var E="$isDayjsObject",A=function(V){return V instanceof ue||!(!V||!V[E])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},w=function(V,k){if(A(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ue(D)},F=O;F.l=B,F.i=A,F.w=function(V,k){return w(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ue=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[E]=!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(p);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()!==d},k.isSame=function(D,W){var U=w(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return w(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<w(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(un,Ve){var Er=F.w(U.$u?Date.UTC(U.$y,Ve,un):new Date(U.$y,Ve,un),U);return K?Er:Er.endOf(a)},G=function(un,Ve){return F.w(U.toDate()[un].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Ve)),U)},we=this.$W,Ue=this.$M,lt=this.$D,mi="set"+(this.$u?"UTC":"");switch(q){case f:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Ue):ie(0,Ue+1);case u:var an=this.$locale().weekStart||0,Ss=(we<an?we+7:we)-an;return ie(K?lt-Ss:lt+(6-Ss),Ue);case a:case m:return G(mi+"Hours",0);case o:return G(mi+"Minutes",1);case s:return G(mi+"Seconds",2);case i:return G(mi+"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[f]=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===f){var we=this.clone().set(m,1);we.$d[ie](G),we.init(),this.$d=we.set(m,Math.min(this.$D,we.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(Ue){var lt=w(K);return F.w(lt.date(lt.date()+Math.round(Ue*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===f)return this.set(f,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,we=this.$d.getTime()+D*G;return F.w(we,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||d;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,we=this.$M,Ue=U.weekdays,lt=U.months,mi=U.meridiem,an=function(Ve,Er,Os,Ua){return Ve&&(Ve[Er]||Ve(W,K))||Os[Er].slice(0,Ua)},Ss=function(Ve){return F.s(ie%12||12,Ve,"0")},un=mi||function(Ve,Er,Os){var Ua=Ve<12?"AM":"PM";return Os?Ua.toLowerCase():Ua};return K.replace(g,function(Ve,Er){return Er||function(Os){switch(Os){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return we+1;case"MM":return F.s(we+1,2,"0");case"MMM":return an(U.monthsShort,we,lt,3);case"MMMM":return an(lt,we);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return an(U.weekdaysMin,W.$W,Ue,2);case"ddd":return an(U.weekdaysShort,W.$W,Ue,3);case"dddd":return Ue[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Ss(1);case"hh":return Ss(2);case"a":return un(ie,G,!0);case"A":return un(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=w(D),we=(G.utcOffset()-this.utcOffset())*e,Ue=this-G,lt=function(){return F.m(q,G)};switch(ie){case f:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Ue-we)/6048e5;break;case a:K=(Ue-we)/864e5;break;case o:K=Ue/r;break;case s:K=Ue/e;break;case i:K=Ue/t;break;default:K=Ue}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}(),on=ue.prototype;return w.prototype=on,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",f],["$D",m]].forEach(function(V){on[V[1]]=function(k){return this.$g(k,V[0],V[1])}}),w.extend=function(V,k){return V.$i||(V(k,ue,w),V.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(V){return w(1e3*V)},w.en=L[S],w.Ls=L,w.p={},w})});var Ot=Y(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var kI=t=>new tu(t);We.valid=kI;var FI=t=>new ru(t);We.err=FI;var tu=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=tu;var ru=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=ru});var It=Y(Wh=>{"use strict";Object.defineProperty(Wh,"__esModule",{value:!0})});var wr=Y(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});Gt();var re=Ot();It();var BI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],GI=["sun","mon","tue","wed","thu","fri","sat"],$I=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ns=(t,e,r)=>{if(e==="months"&&r.useAliases&&BI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&GI.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)},VI=(t,e,r)=>{if(t==="*")return $I(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Ns(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},Qh=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Ns(t,e,r),qI=(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 VI(n[0],e,r);if(n.length===2){let i=Qh(n[0],e,r,0),s=Qh(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)")},WI=(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=qI(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)},QI=(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(WI(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)};Pl.default=QI});var jh=Y(Ps=>{"use strict";var jI=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Gt();var YI=Ot(),HI=jI(wr());It();var KI=(t,e)=>{if(!t.seconds)return(0,YI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,HI.default)(r,"seconds",e)};Ps.default=KI});var Yh=Y(Us=>{"use strict";var zI=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Gt();var JI=Ot(),ZI=zI(wr());It();var XI=(t,e)=>{if(!t.minutes)return(0,JI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ZI.default)(r,"minutes",e)};Us.default=XI});var Hh=Y(Ls=>{"use strict";var ex=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Gt();var tx=Ot(),rx=ex(wr());It();var nx=(t,e)=>{if(!t.hours)return(0,tx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,rx.default)(r,"hours",e)};Ls.default=nx});var Kh=Y(ks=>{"use strict";var ix=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Gt();var Ms=Ot(),sx=ix(wr());It();var ox=(t,e)=>{if(!t.daysOfMonth)return(0,Ms.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ms.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ms.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ms.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ms.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,sx.default)(r,"daysOfMonth",e)};ks.default=ox});var zh=Y(Fs=>{"use strict";var ax=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Gt();var ux=Ot(),cx=ax(wr());It();var lx=(t,e)=>{if(!t.months)return(0,ux.err)(["months field is undefined."]);let{months:r}=t;return(0,cx.default)(r,"months",e)};Fs.default=lx});var Jh=Y(Gs=>{"use strict";var dx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Gt();var Bs=Ot(),fx=dx(wr());It();var px=(t,e)=>{if(!t.daysOfWeek)return(0,Bs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Bs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Bs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,fx.default)(r,"daysOfWeek",e)};Gs.default=px});var Zh=Y($s=>{"use strict";var mx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Gt();var hx=Ot(),gx=mx(wr());It();var yx=(t,e)=>{if(!t.years)return(0,hx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,gx.default)(r,"years",e)};$s.default=yx});var rg=Y((dq,tg)=>{"use strict";var Ul;try{Ul=Map}catch{}var Ll;try{Ll=Set}catch{}function Xh(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(eg);if(Ul&&t instanceof Ul)return new Map(Array.from(t.entries()));if(Ll&&t instanceof Ll)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]:Xh(t[i],e,r)}return n}return t}function eg(t){return Xh(t,[],[])}tg.exports=eg});var Vs=Y(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});Ml.default=Ix;var Ex=Object.prototype.toString,Tx=Error.prototype.toString,_x=RegExp.prototype.toString,Ax=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Sx=/^Symbol\((.*)\)(.*)$/;function Ox(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function ng(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Ox(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Ax.call(t).replace(Sx,"Symbol($1)");let n=Ex.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Tx.call(t)+"]":n==="RegExp"?_x.call(t):null}function Ix(t,e){let r=ng(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=ng(this[n],e);return s!==null?s:i},2)}});var Jt=Y(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.default=be.array=be.object=be.boolean=be.date=be.number=be.string=be.mixed=void 0;var ig=xx(Vs());function xx(t){return t&&t.__esModule?t:{default:t}}var sg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,ig.default)(r,!0)}\``+(i?` (cast from the value \`${(0,ig.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};be.mixed=sg;var og={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};be.string=og;var ag={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};be.number=ag;var ug={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};be.date=ug;var cg={isValue:"${path} field must be ${value}"};be.boolean=cg;var lg={noUnknown:"${path} field has unspecified keys: ${unknown}"};be.object=lg;var dg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};be.array=dg;var wx=Object.assign(Object.create(null),{mixed:sg,string:og,number:ag,date:ug,object:lg,array:dg,boolean:cg});be.default=wx});var bi=Y(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.default=void 0;var bx=t=>t&&t.__isYupSchema__;nu.default=bx});var pg=Y(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.default=void 0;var Rx=fg(require("lodash/has")),Dx=fg(bi());function fg(t){return t&&t.__esModule?t:{default:t}}var kl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Rx.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,Dx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},vx=kl;iu.default=vx});var Bl=Y(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});Fl.default=Cx;function Cx(t){return t==null?[]:[].concat(t)}});var bn=Y(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Nx=mg(Vs()),Px=mg(Bl());function mg(t){return t&&t.__esModule?t:{default:t}}function Gl(){return Gl=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},Gl.apply(this,arguments)}var Ux=/\$\{\s*(\w+)\s*\}/g,$l=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Gl({},r,{path:n})),typeof e=="string"?e.replace(Ux,(i,s)=>(0,Nx.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,Px.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)}};su.default=$l});var ou=Y(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.default=kx;var Vl=Lx(bn());function Lx(t){return t&&t.__esModule?t:{default:t}}var Mx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function kx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Mx(e),l=n.length,f=[];if(o=o||[],!l)return o.length?c(new Vl.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(!Vl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);f.push(g)}if(--l<=0){if(f.length&&(a&&f.sort(a),o.length&&f.push(...o),o=f),o.length){c(new Vl.default(o,s,u),s);return}c(null,s)}})}}});var qs=Y((Tq,Tg)=>{"use strict";function Rn(t){this._maxSize=t,this.clear()}Rn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Rn.prototype.get=function(t){return this._values[t]};Rn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Fx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Eg=/^\d+$/,Bx=/^\d/,Gx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,$x=/^\s*(['"]?)(.*?)(\1)\s*$/,jl=512,hg=new Rn(jl),gg=new Rn(jl),yg=new Rn(jl);Tg.exports={Cache:Rn,split:Ql,normalizePath:Wl,setter:function(t){var e=Wl(t);return gg.get(t)||gg.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=Wl(t);return yg.get(t)||yg.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+(Yl(r)||Eg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Vx(Array.isArray(t)?t:Ql(t),e,r)}};function Wl(t){return hg.get(t)||hg.set(t,Ql(t).map(function(e){return e.replace($x,"$2")}))}function Ql(t){return t.match(Fx)||[""]}function Vx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Qx(i)&&(i='"'+i+'"'),a=Yl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Yl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function qx(t){return t.match(Bx)&&!t.match(Eg)}function Wx(t){return Gx.test(t)}function Qx(t){return!Yl(t)&&(qx(t)||Wx(t))}});var Dn=Y(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=Yx;Qs.default=void 0;var jx=qs(),au={context:"$",value:"."};function Yx(t,e){return new Ws(t,e)}var Ws=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===au.context,this.isValue=this.key[0]===au.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?au.context:this.isValue?au.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,jx.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Qs.default=Ws;Ws.prototype.__isYupRef=!0});var _g=Y(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=Jx;var Hx=Hl(require("lodash/mapValues")),uu=Hl(bn()),Kx=Hl(Dn());function Hl(t){return t&&t.__esModule?t:{default:t}}function cu(){return cu=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},cu.apply(this,arguments)}function zx(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 Jx(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=zx(r,["value","path","label","options","originalValue","sync"]),{name:f,test:m,params:d,message:p}=t,{parent:g,context:T}=a;function y(A){return Kx.default.isRef(A)?A.getValue(i,g,T):A}function O(A={}){let B=(0,Hx.default)(cu({value:i,originalValue:u,label:o,path:A.path||s},d,A.params),y),w=new uu.default(uu.default.formatError(A.message||p,B),i,B.path,A.type||f);return w.params=B,w}let S=cu({path:s,parent:g,type:f,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(A=>{uu.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var E;if(L=m.call(S,i,S),typeof((E=L)==null?void 0:E.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(A){n(A);return}uu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var zl=Y(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Ag;js.default=void 0;var Zx=qs(),Xx=t=>t.substr(0,t.length-1).substr(1);function Ag(t,e,r,n=r){let i,s,o;return e?((0,Zx.forEach)(e,(a,u,c)=>{let l=u?Xx(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=c?parseInt(l,10):0;if(r&&f>=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[f],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 ew=(t,e,r,n)=>Ag(t,e,r,n).schema,tw=ew;js.default=tw});var Og=Y(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var Sg=rw(Dn());function rw(t){return t&&t.__esModule?t:{default:t}}var Jl=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){Sg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Sg.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}};lu.default=Jl});var Xt=Y(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var Ig=Zt(rg()),Ri=Jt(),nw=Zt(pg()),xg=Zt(ou()),du=Zt(_g()),wg=Zt(Vs()),iw=Zt(Dn()),sw=zl(),ow=Zt(Bl()),bg=Zt(bn()),Rg=Zt(Og());function Zt(t){return t&&t.__esModule?t:{default:t}}function pt(){return pt=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},pt.apply(this,arguments)}var xt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Rg.default,this._blacklist=new Rg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ri.mixed.notType)}),this.type=e?.type||"mixed",this.spec=pt({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=pt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Ig.default)(pt({},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=pt({},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(pt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,wg.default)(e),o=(0,wg.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 uO=Object.create;var La=Object.defineProperty;var cO=Object.getOwnPropertyDescriptor;var lO=Object.getOwnPropertyNames;var dO=Object.getPrototypeOf,pO=Object.prototype.hasOwnProperty;var Y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)La(t,r,{get:e[r],enumerable:!0})},hh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of lO(e))!pO.call(t,i)&&i!==r&&La(t,i,{get:()=>e[i],enumerable:!(n=cO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?uO(dO(t)):{},hh(e||!t||!t.__esModule?La(r,"default",{value:t,enumerable:!0}):r,t)),fO=t=>hh(La({},"__esModule",{value:!0}),t);var Gh=Y((Rl,Dl)=>{"use strict";(function(t,e){typeof Rl=="object"&&typeof Dl<"u"?Dl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Rl,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,T={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: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}},S="en",L={};L[S]=T;var E="$isDayjsObject",A=function(V){return V instanceof ue||!(!V||!V[E])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},w=function(V,k){if(A(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ue(D)},F=O;F.l=B,F.i=A,F.w=function(V,k){return w(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ue=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[E]=!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()!==d},k.isSame=function(D,W){var U=w(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return w(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<w(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(un,Ve){var Er=F.w(U.$u?Date.UTC(U.$y,Ve,un):new Date(U.$y,Ve,un),U);return K?Er:Er.endOf(a)},G=function(un,Ve){return F.w(U.toDate()[un].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Ve)),U)},we=this.$W,Ue=this.$M,lt=this.$D,mi="set"+(this.$u?"UTC":"");switch(q){case p:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Ue):ie(0,Ue+1);case u:var an=this.$locale().weekStart||0,Ss=(we<an?we+7:we)-an;return ie(K?lt-Ss:lt+(6-Ss),Ue);case a:case m:return G(mi+"Hours",0);case o:return G(mi+"Minutes",1);case s:return G(mi+"Seconds",2);case i:return G(mi+"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[p]=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===p){var we=this.clone().set(m,1);we.$d[ie](G),we.init(),this.$d=we.set(m,Math.min(this.$D,we.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(Ue){var lt=w(K);return F.w(lt.date(lt.date()+Math.round(Ue*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===p)return this.set(p,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,we=this.$d.getTime()+D*G;return F.w(we,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||d;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,we=this.$M,Ue=U.weekdays,lt=U.months,mi=U.meridiem,an=function(Ve,Er,Os,Ua){return Ve&&(Ve[Er]||Ve(W,K))||Os[Er].slice(0,Ua)},Ss=function(Ve){return F.s(ie%12||12,Ve,"0")},un=mi||function(Ve,Er,Os){var Ua=Ve<12?"AM":"PM";return Os?Ua.toLowerCase():Ua};return K.replace(g,function(Ve,Er){return Er||function(Os){switch(Os){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return we+1;case"MM":return F.s(we+1,2,"0");case"MMM":return an(U.monthsShort,we,lt,3);case"MMMM":return an(lt,we);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return an(U.weekdaysMin,W.$W,Ue,2);case"ddd":return an(U.weekdaysShort,W.$W,Ue,3);case"dddd":return Ue[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Ss(1);case"hh":return Ss(2);case"a":return un(ie,G,!0);case"A":return un(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=w(D),we=(G.utcOffset()-this.utcOffset())*e,Ue=this-G,lt=function(){return F.m(q,G)};switch(ie){case p:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Ue-we)/6048e5;break;case a:K=(Ue-we)/864e5;break;case o:K=Ue/r;break;case s:K=Ue/e;break;case i:K=Ue/t;break;default:K=Ue}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}(),on=ue.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(k){return this.$g(k,V[0],V[1])}}),w.extend=function(V,k){return V.$i||(V(k,ue,w),V.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(V){return w(1e3*V)},w.en=L[S],w.Ls=L,w.p={},w})});var Ot=Y(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var kI=t=>new tu(t);We.valid=kI;var FI=t=>new ru(t);We.err=FI;var tu=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=tu;var ru=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=ru});var It=Y(Wh=>{"use strict";Object.defineProperty(Wh,"__esModule",{value:!0})});var wr=Y(Pl=>{"use strict";Object.defineProperty(Pl,"__esModule",{value:!0});Gt();var re=Ot();It();var BI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],GI=["sun","mon","tue","wed","thu","fri","sat"],$I=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ns=(t,e,r)=>{if(e==="months"&&r.useAliases&&BI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&GI.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)},VI=(t,e,r)=>{if(t==="*")return $I(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Ns(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},Qh=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Ns(t,e,r),qI=(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 VI(n[0],e,r);if(n.length===2){let i=Qh(n[0],e,r,0),s=Qh(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)")},WI=(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=qI(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)},QI=(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(WI(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)};Pl.default=QI});var jh=Y(Ps=>{"use strict";var jI=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Gt();var YI=Ot(),HI=jI(wr());It();var KI=(t,e)=>{if(!t.seconds)return(0,YI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,HI.default)(r,"seconds",e)};Ps.default=KI});var Yh=Y(Us=>{"use strict";var zI=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Gt();var JI=Ot(),ZI=zI(wr());It();var XI=(t,e)=>{if(!t.minutes)return(0,JI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ZI.default)(r,"minutes",e)};Us.default=XI});var Hh=Y(Ls=>{"use strict";var ex=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Gt();var tx=Ot(),rx=ex(wr());It();var nx=(t,e)=>{if(!t.hours)return(0,tx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,rx.default)(r,"hours",e)};Ls.default=nx});var Kh=Y(ks=>{"use strict";var ix=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Gt();var Ms=Ot(),sx=ix(wr());It();var ox=(t,e)=>{if(!t.daysOfMonth)return(0,Ms.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ms.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ms.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ms.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ms.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,sx.default)(r,"daysOfMonth",e)};ks.default=ox});var zh=Y(Fs=>{"use strict";var ax=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Gt();var ux=Ot(),cx=ax(wr());It();var lx=(t,e)=>{if(!t.months)return(0,ux.err)(["months field is undefined."]);let{months:r}=t;return(0,cx.default)(r,"months",e)};Fs.default=lx});var Jh=Y(Gs=>{"use strict";var dx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Gt();var Bs=Ot(),px=dx(wr());It();var fx=(t,e)=>{if(!t.daysOfWeek)return(0,Bs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Bs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Bs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,px.default)(r,"daysOfWeek",e)};Gs.default=fx});var Zh=Y($s=>{"use strict";var mx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Gt();var hx=Ot(),gx=mx(wr());It();var yx=(t,e)=>{if(!t.years)return(0,hx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,gx.default)(r,"years",e)};$s.default=yx});var rg=Y((fq,tg)=>{"use strict";var Ul;try{Ul=Map}catch{}var Ll;try{Ll=Set}catch{}function Xh(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(eg);if(Ul&&t instanceof Ul)return new Map(Array.from(t.entries()));if(Ll&&t instanceof Ll)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]:Xh(t[i],e,r)}return n}return t}function eg(t){return Xh(t,[],[])}tg.exports=eg});var Vs=Y(Ml=>{"use strict";Object.defineProperty(Ml,"__esModule",{value:!0});Ml.default=Ix;var Ex=Object.prototype.toString,Tx=Error.prototype.toString,_x=RegExp.prototype.toString,Ax=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Sx=/^Symbol\((.*)\)(.*)$/;function Ox(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function ng(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Ox(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Ax.call(t).replace(Sx,"Symbol($1)");let n=Ex.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Tx.call(t)+"]":n==="RegExp"?_x.call(t):null}function Ix(t,e){let r=ng(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=ng(this[n],e);return s!==null?s:i},2)}});var Jt=Y(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.default=be.array=be.object=be.boolean=be.date=be.number=be.string=be.mixed=void 0;var ig=xx(Vs());function xx(t){return t&&t.__esModule?t:{default:t}}var sg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,ig.default)(r,!0)}\``+(i?` (cast from the value \`${(0,ig.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};be.mixed=sg;var og={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};be.string=og;var ag={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};be.number=ag;var ug={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};be.date=ug;var cg={isValue:"${path} field must be ${value}"};be.boolean=cg;var lg={noUnknown:"${path} field has unspecified keys: ${unknown}"};be.object=lg;var dg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};be.array=dg;var wx=Object.assign(Object.create(null),{mixed:sg,string:og,number:ag,date:ug,object:lg,array:dg,boolean:cg});be.default=wx});var bi=Y(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.default=void 0;var bx=t=>t&&t.__isYupSchema__;nu.default=bx});var fg=Y(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.default=void 0;var Rx=pg(require("lodash/has")),Dx=pg(bi());function pg(t){return t&&t.__esModule?t:{default:t}}var kl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Rx.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,Dx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},vx=kl;iu.default=vx});var Bl=Y(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});Fl.default=Cx;function Cx(t){return t==null?[]:[].concat(t)}});var bn=Y(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Nx=mg(Vs()),Px=mg(Bl());function mg(t){return t&&t.__esModule?t:{default:t}}function Gl(){return Gl=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},Gl.apply(this,arguments)}var Ux=/\$\{\s*(\w+)\s*\}/g,$l=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Gl({},r,{path:n})),typeof e=="string"?e.replace(Ux,(i,s)=>(0,Nx.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,Px.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)}};su.default=$l});var ou=Y(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.default=kx;var Vl=Lx(bn());function Lx(t){return t&&t.__esModule?t:{default:t}}var Mx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function kx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Mx(e),l=n.length,p=[];if(o=o||[],!l)return o.length?c(new Vl.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(!Vl.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 Vl.default(o,s,u),s);return}c(null,s)}})}}});var qs=Y((Aq,Tg)=>{"use strict";function Rn(t){this._maxSize=t,this.clear()}Rn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Rn.prototype.get=function(t){return this._values[t]};Rn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Fx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Eg=/^\d+$/,Bx=/^\d/,Gx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,$x=/^\s*(['"]?)(.*?)(\1)\s*$/,jl=512,hg=new Rn(jl),gg=new Rn(jl),yg=new Rn(jl);Tg.exports={Cache:Rn,split:Ql,normalizePath:Wl,setter:function(t){var e=Wl(t);return gg.get(t)||gg.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=Wl(t);return yg.get(t)||yg.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+(Yl(r)||Eg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Vx(Array.isArray(t)?t:Ql(t),e,r)}};function Wl(t){return hg.get(t)||hg.set(t,Ql(t).map(function(e){return e.replace($x,"$2")}))}function Ql(t){return t.match(Fx)||[""]}function Vx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Qx(i)&&(i='"'+i+'"'),a=Yl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Yl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function qx(t){return t.match(Bx)&&!t.match(Eg)}function Wx(t){return Gx.test(t)}function Qx(t){return!Yl(t)&&(qx(t)||Wx(t))}});var Dn=Y(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=Yx;Qs.default=void 0;var jx=qs(),au={context:"$",value:"."};function Yx(t,e){return new Ws(t,e)}var Ws=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===au.context,this.isValue=this.key[0]===au.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?au.context:this.isValue?au.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,jx.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Qs.default=Ws;Ws.prototype.__isYupRef=!0});var _g=Y(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=Jx;var Hx=Hl(require("lodash/mapValues")),uu=Hl(bn()),Kx=Hl(Dn());function Hl(t){return t&&t.__esModule?t:{default:t}}function cu(){return cu=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},cu.apply(this,arguments)}function zx(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 Jx(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=zx(r,["value","path","label","options","originalValue","sync"]),{name:p,test:m,params:d,message:f}=t,{parent:g,context:T}=a;function y(A){return Kx.default.isRef(A)?A.getValue(i,g,T):A}function O(A={}){let B=(0,Hx.default)(cu({value:i,originalValue:u,label:o,path:A.path||s},d,A.params),y),w=new uu.default(uu.default.formatError(A.message||f,B),i,B.path,A.type||p);return w.params=B,w}let S=cu({path:s,parent:g,type:p,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(A=>{uu.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var E;if(L=m.call(S,i,S),typeof((E=L)==null?void 0:E.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(A){n(A);return}uu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var zl=Y(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Ag;js.default=void 0;var Zx=qs(),Xx=t=>t.substr(0,t.length-1).substr(1);function Ag(t,e,r,n=r){let i,s,o;return e?((0,Zx.forEach)(e,(a,u,c)=>{let l=u?Xx(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 ew=(t,e,r,n)=>Ag(t,e,r,n).schema,tw=ew;js.default=tw});var Og=Y(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var Sg=rw(Dn());function rw(t){return t&&t.__esModule?t:{default:t}}var Jl=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){Sg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Sg.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}};lu.default=Jl});var Xt=Y(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Ig=Zt(rg()),Ri=Jt(),nw=Zt(fg()),xg=Zt(ou()),du=Zt(_g()),wg=Zt(Vs()),iw=Zt(Dn()),sw=zl(),ow=Zt(Bl()),bg=Zt(bn()),Rg=Zt(Og());function Zt(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var xt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Rg.default,this._blacklist=new Rg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ri.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,Ig.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,wg.default)(e),o=(0,wg.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,pt({assert:!1},r)));let f={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,xg.default)({args:f,value:l,path:s,sync:i,tests:m,endEarly:c},d=>{if(d)return void n(d,l);(0,xg.default)({tests:this.tests,args:f,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(pt({},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(pt({},r,{value:e})),i;return n._validate(e,pt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(bg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(bg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ig.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=Ri.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ri.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=Ri.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,du.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,ow.default)(e).map(s=>new iw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new nw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,du.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=Ri.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,du.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=Ri.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,du.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};fu.default=xt;xt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])xt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,sw.getIn)(this,e,r,n.context);return o[t](i&&i[s],pt({},n,{parent:i,path:e}))};for(let t of["equals","is"])xt.prototype[t]=xt.prototype.oneOf;for(let t of["not","nope"])xt.prototype[t]=xt.prototype.notOneOf;xt.prototype.optional=xt.prototype.notRequired});var vg=Y(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Dg;Ys.default=void 0;var aw=uw(Xt());function uw(t){return t&&t.__esModule?t:{default:t}}var Zl=aw.default,cw=Zl;Ys.default=cw;function Dg(){return new Zl}Dg.prototype=Zl.prototype});var Di=Y(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var lw=t=>t==null;pu.default=lw});var Lg=Y(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Ug;Ks.default=void 0;var dw=Pg(Xt()),Cg=Jt(),Ng=Pg(Di());function Pg(t){return t&&t.__esModule?t:{default:t}}function Ug(){return new Hs}var Hs=class extends dw.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=Cg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Ng.default)(r)||r===!0}})}isFalse(e=Cg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Ng.default)(r)||r===!1}})}};Ks.default=Hs;Ug.prototype=Hs.prototype});var Fg=Y(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=kg;Js.default=void 0;var $t=Jt(),er=Mg(Di()),fw=Mg(Xt());function Mg(t){return t&&t.__esModule?t:{default:t}}var pw=/^((([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,mw=/^((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,hw=/^(?:[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,gw=t=>(0,er.default)(t)||t===t.trim(),yw={}.toString();function kg(){return new zs}var zs=class extends fw.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===yw?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=$t.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,er.default)(n)||n.length===this.resolve(e)}})}min(e,r=$t.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,er.default)(n)||n.length>=this.resolve(e)}})}max(e,r=$t.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,er.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||$t.string.matches,params:{regex:e},test:o=>(0,er.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=$t.string.email){return this.matches(pw,{name:"email",message:e,excludeEmptyString:!0})}url(e=$t.string.url){return this.matches(mw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=$t.string.uuid){return this.matches(hw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=$t.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:gw})}lowercase(e=$t.string.lowercase){return this.transform(r=>(0,er.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,er.default)(r)||r===r.toLowerCase()})}uppercase(e=$t.string.uppercase){return this.transform(r=>(0,er.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,er.default)(r)||r===r.toUpperCase()})}};Js.default=zs;kg.prototype=zs.prototype});var $g=Y(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Gg;Xs.default=void 0;var vn=Jt(),Cn=Bg(Di()),Ew=Bg(Xt());function Bg(t){return t&&t.__esModule?t:{default:t}}var Tw=t=>t!=+t;function Gg(){return new Zs}var Zs=class extends Ew.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"&&!Tw(e)}min(e,r=vn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Cn.default)(n)||n>=this.resolve(e)}})}max(e,r=vn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Cn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=vn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Cn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=vn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Cn.default)(n)||n>this.resolve(e)}})}positive(e=vn.number.positive){return this.moreThan(0,e)}negative(e=vn.number.negative){return this.lessThan(0,e)}integer(e=vn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Cn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Cn.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,Cn.default)(i)?i:Math[e](i))}};Xs.default=Zs;Gg.prototype=Zs.prototype});var Vg=Y(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=Aw;var _w=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Aw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=_w.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 Qg=Y(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=td;eo.default=void 0;var Sw=mu(Vg()),qg=Jt(),Wg=mu(Di()),Ow=mu(Dn()),Iw=mu(Xt());function mu(t){return t&&t.__esModule?t:{default:t}}var ed=new Date(""),xw=t=>Object.prototype.toString.call(t)==="[object Date]";function td(){return new vi}var vi=class extends Iw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Sw.default)(e),isNaN(e)?ed:new Date(e))})})}_typeCheck(e){return xw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Ow.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=qg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Wg.default)(i)||i>=this.resolve(n)}})}max(e,r=qg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Wg.default)(i)||i<=this.resolve(n)}})}};eo.default=vi;vi.INVALID_DATE=ed;td.prototype=vi.prototype;td.INVALID_DATE=ed});var Yg=Y((Nq,rd)=>{"use strict";rd.exports=function(t){return jg(ww(t),t)};rd.exports.array=jg;function jg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=bw(e),a=Rw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,f){if(f.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){f.add(c);do{var p=d[--l];u(p,a.get(p),f)}while(l);f.delete(c)}n[--r]=c}}}function ww(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 bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function Rw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Hg=Y(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=Uw;var Dw=hu(require("lodash/has")),vw=hu(Yg()),Cw=qs(),Nw=hu(Dn()),Pw=hu(bi());function hu(t){return t&&t.__esModule?t:{default:t}}function Uw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Cw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Dw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Nw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Pw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return vw.default.array(n,r).reverse()}});var zg=Y(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=Lw;function Kg(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 Lw(t){return(e,r)=>Kg(t,e)-Kg(t,r)}});var ny=Y(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ry;ro.default=void 0;var Jg=Vt(require("lodash/has")),Zg=Vt(require("lodash/snakeCase")),Mw=Vt(require("lodash/camelCase")),kw=Vt(require("lodash/mapKeys")),Fw=Vt(require("lodash/mapValues")),Bw=qs(),Xg=Jt(),Gw=Vt(Hg()),ty=Vt(zg()),$w=Vt(ou()),Vw=Vt(bn()),sd=Vt(Xt());function Vt(t){return t&&t.__esModule?t:{default:t}}function Ci(){return Ci=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},Ci.apply(this,arguments)}var ey=t=>Object.prototype.toString.call(t)==="[object Object]";function qw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Ww=(0,ty.default)([]),to=class extends sd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Ww,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 ey(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(f=>this._nodes.indexOf(f)===-1)),u={},c=Ci({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let f of a){let m=s[f],d=(0,Jg.default)(i,f);if(m){let p,g=i[f];c.path=(r.path?`${r.path}.`:"")+f,m=m.resolve({value:g,context:r.context,parent:u});let T="spec"in m?m.spec:void 0,y=T?.strict;if(T?.strip){l=l||f in i;continue}p=!r.__validating||!y?m.cast(i[f],c):i[f],p!==void 0&&(u[f]=p)}else d&&!o&&(u[f]=i[f]);u[f]!==i[f]&&(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,f)=>{if(l){if(!Vw.default.isError(l)||u)return void n(l,f);i.push(l)}if(!c||!ey(f)){n(i[0]||null,f);return}a=a||f;let m=this._nodes.map(d=>(p,g)=>{let T=d.indexOf(".")===-1?(r.path?`${r.path}.`:"")+d:`${r.path||""}["${d}"]`,y=this.fields[d];if(y&&"validate"in y){y.validate(f[d],Ci({},r,{path:T,from:o,strict:!0,parent:f,originalValue:a[d]}),g);return}g(null)});(0,$w.default)({sync:s,tests:m,value:f,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ci({},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 sd.default&&s instanceof sd.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,ty.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,Gw.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,Bw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Jg.default)(s,e)&&(o=Ci({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Xg.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=qw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Xg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Mw.default)}snakeCase(){return this.transformKeys(Zg.default)}constantCase(){return this.transformKeys(e=>(0,Zg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Fw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function ry(t){return new to(t)}ry.prototype=to.prototype});var sy=Y(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=iy;io.default=void 0;var od=Ni(Di()),Qw=Ni(bi()),jw=Ni(Vs()),ad=Jt(),Yw=Ni(ou()),Hw=Ni(bn()),Kw=Ni(Xt());function Ni(t){return t&&t.__esModule?t:{default:t}}function gu(){return gu=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},gu.apply(this,arguments)}function iy(t){return new no(t)}var no=class extends Kw.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,gu({},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,f=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(d,p)=>{if(d){if(!Hw.default.isError(d)||l)return void n(d,p);o.push(d)}if(!f||!c||!this._typeCheck(p)){n(o[0]||null,p);return}m=m||p;let g=new Array(p.length);for(let T=0;T<p.length;T++){let y=p[T],O=`${r.path||""}[${T}]`,S=gu({},r,{path:O,strict:!0,parent:p,index:T,originalValue:m[T]});g[T]=(L,E)=>c.validate(y,S,E)}(0,Yw.default)({sync:a,path:u,value:p,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,Qw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,jw.default)(e));return r.innerType=e,r}length(e,r=ad.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,od.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ad.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,od.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ad.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,od.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};io.default=no;iy.prototype=no.prototype});var oy=Y(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Zw;so.default=void 0;var zw=Jw(bi());function Jw(t){return t&&t.__esModule?t:{default:t}}function Zw(t){return new yu(t)}var yu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,zw.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)}},Xw=yu;so.default=Xw});var ay=Y(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=rb;var eb=tb(Jt());function tb(t){return t&&t.__esModule?t:{default:t}}function rb(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{eb.default[e][r]=t[e][r]})})}});var ld=Y(le=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});le.addMethod=cb;Object.defineProperty(le,"MixedSchema",{enumerable:!0,get:function(){return uy.default}});Object.defineProperty(le,"mixed",{enumerable:!0,get:function(){return uy.create}});Object.defineProperty(le,"BooleanSchema",{enumerable:!0,get:function(){return cd.default}});Object.defineProperty(le,"bool",{enumerable:!0,get:function(){return cd.create}});Object.defineProperty(le,"boolean",{enumerable:!0,get:function(){return cd.create}});Object.defineProperty(le,"StringSchema",{enumerable:!0,get:function(){return cy.default}});Object.defineProperty(le,"string",{enumerable:!0,get:function(){return cy.create}});Object.defineProperty(le,"NumberSchema",{enumerable:!0,get:function(){return ly.default}});Object.defineProperty(le,"number",{enumerable:!0,get:function(){return ly.create}});Object.defineProperty(le,"DateSchema",{enumerable:!0,get:function(){return dy.default}});Object.defineProperty(le,"date",{enumerable:!0,get:function(){return dy.create}});Object.defineProperty(le,"ObjectSchema",{enumerable:!0,get:function(){return fy.default}});Object.defineProperty(le,"object",{enumerable:!0,get:function(){return fy.create}});Object.defineProperty(le,"ArraySchema",{enumerable:!0,get:function(){return py.default}});Object.defineProperty(le,"array",{enumerable:!0,get:function(){return py.create}});Object.defineProperty(le,"ref",{enumerable:!0,get:function(){return nb.create}});Object.defineProperty(le,"lazy",{enumerable:!0,get:function(){return ib.create}});Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return sb.default}});Object.defineProperty(le,"reach",{enumerable:!0,get:function(){return ob.default}});Object.defineProperty(le,"isSchema",{enumerable:!0,get:function(){return my.default}});Object.defineProperty(le,"setLocale",{enumerable:!0,get:function(){return ab.default}});Object.defineProperty(le,"BaseSchema",{enumerable:!0,get:function(){return ub.default}});var uy=Nn(vg()),cd=Nn(Lg()),cy=Nn(Fg()),ly=Nn($g()),dy=Nn(Qg()),fy=Nn(ny()),py=Nn(sy()),nb=Dn(),ib=oy(),sb=oo(bn()),ob=oo(zl()),my=oo(bi()),ab=oo(ay()),ub=oo(Xt());function oo(t){return t&&t.__esModule?t:{default:t}}function hy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return hy=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=hy();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 cb(t,e,r){if(!t||!(0,my.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 gy=Y(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});var dd=pd();fd.default=()=>{(0,dd.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,dd.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,dd.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 pd=Y(Re=>{"use strict";var lb=Re&&Re.__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]}),db=Re&&Re.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),fb=Re&&Re.__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)&&lb(e,t,r);return db(e,t),e},pb=Re&&Re.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Re,"__esModule",{value:!0});Re.validateOptions=Re.registerOptionPreset=Re.getOptionPresets=Re.getOptionPreset=void 0;var x=fb(ld());ld();var ao=Ot(),mb=pb(gy());It();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}}},yy=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(),hb=t=>Pn[t]?(0,ao.valid)(Pn[t]):(0,ao.err)(`Option preset '${t}' not found.`);Re.getOptionPreset=hb;var gb=()=>Pn;Re.getOptionPresets=gb;var yb=(t,e)=>{Pn[t]=yy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Re.registerOptionPreset=yb;var Eb=t=>{var e,r,n,i,s,o,a,u,c,l,f,m,d,p,g,T,y,O,S,L;try{(0,mb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Pn[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);E=Pn[t.preset]}else E=t.preset;else E=Pn.default;let A=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(f=E.hours.lowerLimit)!==null&&f!==void 0?f:E.hours.minValue,upperLimit:(m=E.hours.upperLimit)!==null&&m!==void 0?m:E.hours.maxValue},daysOfMonth:{lowerLimit:(d=E.daysOfMonth.lowerLimit)!==null&&d!==void 0?d:E.daysOfMonth.minValue,upperLimit:(p=E.daysOfMonth.upperLimit)!==null&&p!==void 0?p:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(T=E.months.upperLimit)!==null&&T!==void 0?T:E.months.maxValue},daysOfWeek:{lowerLimit:(y=E.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:E.daysOfWeek.minValue,upperLimit:(O=E.daysOfWeek.upperLimit)!==null&&O!==void 0?O:E.daysOfWeek.maxValue},years:{lowerLimit:(S=E.years.lowerLimit)!==null&&S!==void 0?S:E.years.minValue,upperLimit:(L=E.years.upperLimit)!==null&&L!==void 0?L:E.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:yy.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(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:x.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:x.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:x.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(A,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ao.valid)(w)}catch(E){return(0,ao.err)(E.errors)}};Re.validateOptions=Eb});var Gt=Y((uo,hd)=>{"use strict";var Ln=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var Un=Ot(),Tb=Ln(jh()),_b=Ln(Yh()),Ab=Ln(Hh()),Sb=Ln(Kh()),Ob=Ln(zh()),Ib=Ln(Jh()),xb=Ln(Zh()),wb=pd();It();var bb=(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)},md=(t,e={})=>{let r=(0,wb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=bb(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,Tb.default)(s,n)),o.push((0,_b.default)(s,n)),o.push((0,Ab.default)(s,n)),o.push((0,Sb.default)(s,n)),o.push((0,Ob.default)(s,n)),o.push((0,Ib.default)(s,n)),n.useYears&&o.push((0,xb.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)};uo.default=md;hd.exports=md;hd.exports.default=md});var $E=Y(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var rr=class extends Error{},Id=class extends rr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},xd=class extends rr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},wd=class extends rr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Fn=class extends rr{},Iu=class extends rr{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends rr{},qt=class extends rr{constructor(){super("Zone is an abstract class")}},b="numeric",Rt="short",rt="long",xu={year:b,month:b,day:b},qy={year:b,month:Rt,day:b},Rb={year:b,month:Rt,day:b,weekday:Rt},Wy={year:b,month:rt,day:b},Qy={year:b,month:rt,day:b,weekday:rt},jy={hour:b,minute:b},Yy={hour:b,minute:b,second:b},Hy={hour:b,minute:b,second:b,timeZoneName:Rt},Ky={hour:b,minute:b,second:b,timeZoneName:rt},zy={hour:b,minute:b,hourCycle:"h23"},Jy={hour:b,minute:b,second:b,hourCycle:"h23"},Zy={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Rt},Xy={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:rt},eE={year:b,month:b,day:b,hour:b,minute:b},tE={year:b,month:b,day:b,hour:b,minute:b,second:b},rE={year:b,month:Rt,day:b,hour:b,minute:b},nE={year:b,month:Rt,day:b,hour:b,minute:b,second:b},Db={year:b,month:Rt,day:b,weekday:Rt,hour:b,minute:b},iE={year:b,month:rt,day:b,hour:b,minute:b,timeZoneName:Rt},sE={year:b,month:rt,day:b,hour:b,minute:b,second:b,timeZoneName:Rt},oE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,timeZoneName:rt},aE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,second:b,timeZoneName:rt},vr=class{get type(){throw new qt}get name(){throw new qt}get ianaName(){return this.name}get isUniversal(){throw new qt}offsetName(e,r){throw new qt}formatOffset(e,r){throw new qt}offset(e){throw new qt}equals(e){throw new qt}get isValid(){throw new qt}},gd=null,go=class t extends vr{static get instance(){return gd===null&&(gd=new t),gd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return cE(e,r,n)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Su={};function vb(t){return Su[t]||(Su[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"})),Su[t]}var Cb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Nb(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 Pb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Cb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Eu={},nr=class t extends vr{static create(e){return Eu[e]||(Eu[e]=new t(e)),Eu[e]}static resetCache(){Eu={},Su={}}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 cE(e,r,n,this.name)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=vb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Pb(n,r):Nb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Fd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),d=+r,p=d%1e3;return d-=p>=0?p:1e3+p,(m-d)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Ey={};function Ub(t,e={}){let r=JSON.stringify([t,e]),n=Ey[r];return n||(n=new Intl.ListFormat(t,e),Ey[r]=n),n}var bd={};function Rd(t,e={}){let r=JSON.stringify([t,e]),n=bd[r];return n||(n=new Intl.DateTimeFormat(t,e),bd[r]=n),n}var Dd={};function Lb(t,e={}){let r=JSON.stringify([t,e]),n=Dd[r];return n||(n=new Intl.NumberFormat(t,e),Dd[r]=n),n}var vd={};function Mb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=vd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),vd[i]=s),s}var po=null;function kb(){return po||(po=new Intl.DateTimeFormat().resolvedOptions().locale,po)}function Fb(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=Rd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Rd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Bb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Gb(t){let e=[];for(let r=1;r<=12;r++){let n=Te.utc(2016,r,1);e.push(t(n))}return e}function $b(t){let e=[];for(let r=1;r<=7;r++){let n=Te.utc(2016,11,13+r);e.push(t(n))}return e}function Tu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Vb(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 Cd=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=Lb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):kd(e,3);return Ie(r,this.padTo)}}},Nd=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&&nr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Te.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=Rd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Pd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&uE()&&(this.rtf=Mb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):iR(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ee=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||me.defaultLocale,o=s||(i?"en-US":kb()),a=r||me.defaultNumberingSystem,u=n||me.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){po=null,bd={},Dd={},vd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Fb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Bb(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=Vb(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 Tu(this,e,n,fE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Gb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Tu(this,e,n,hE,()=>{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]=$b(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Tu(this,void 0,e,()=>gE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Te.utc(2016,11,13,9),Te.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Tu(this,e,r,yE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Te.utc(-40,1,1),Te.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 Cd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Nd(e,this.intl,r)}relFormatter(e={}){return new Pd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ub(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},yd=null,nt=class t extends vr{static get utcInstance(){return yd===null&&(yd=new t(0)),yd}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(Cu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ho(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ho(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ho(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},wu=class extends vr{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 Dr(t,e){if(ne(t)||t===null)return e;if(t instanceof vr)return t;if(qb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||nr.create(t)}else return Gn(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new wu(t)}var Ty=()=>Date.now(),_y="system",Ay=null,Sy=null,Oy=null,Iy=60,xy,me=class{static get now(){return Ty}static set now(e){Ty=e}static set defaultZone(e){_y=e}static get defaultZone(){return Dr(_y,go.instance)}static get defaultLocale(){return Ay}static set defaultLocale(e){Ay=e}static get defaultNumberingSystem(){return Sy}static set defaultNumberingSystem(e){Sy=e}static get defaultOutputCalendar(){return Oy}static set defaultOutputCalendar(e){Oy=e}static get twoDigitCutoffYear(){return Iy}static set twoDigitCutoffYear(e){Iy=e%100}static get throwOnInvalid(){return xy}static set throwOnInvalid(e){xy=e}static resetCaches(){Ee.resetCache(),nr.resetCache()}};function ne(t){return typeof t>"u"}function Gn(t){return typeof t=="number"}function vu(t){return typeof t=="number"&&t%1===0}function qb(t){return typeof t=="string"}function Wb(t){return Object.prototype.toString.call(t)==="[object Date]"}function uE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Qb(t){return Array.isArray(t)?t:[t]}function wy(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 jb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Mi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function tr(t,e,r){return vu(t)&&t>=e&&t<=r}function Yb(t,e){return t-e*Math.floor(t/e)}function Ie(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Rr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Mn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Md(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function kd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function yo(t){return t%4===0&&(t%100!==0||t%400===0)}function mo(t){return yo(t)?366:365}function bu(t,e){let r=Yb(e-1,12)+1,n=t+(e-r)/12;return r===2?yo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Fd(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 Ru(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 Ud(t){return t>99?t:t>me.twoDigitCutoffYear?1900+t:2e3+t}function cE(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 Cu(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 lE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Qe(`Invalid unit value ${t}`);return e}function Du(t,e){let r={};for(let n in t)if(Mi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=lE(i)}return r}function ho(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Ie(r,2)}:${Ie(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Ie(r,2)}${Ie(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Nu(t){return jb(t,["hour","minute","second","millisecond"])}var Hb=["January","February","March","April","May","June","July","August","September","October","November","December"],dE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Kb=["J","F","M","A","M","J","J","A","S","O","N","D"];function fE(t){switch(t){case"narrow":return[...Kb];case"short":return[...dE];case"long":return[...Hb];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 pE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],mE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],zb=["M","T","W","T","F","S","S"];function hE(t){switch(t){case"narrow":return[...zb];case"short":return[...mE];case"long":return[...pE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var gE=["AM","PM"],Jb=["Before Christ","Anno Domini"],Zb=["BC","AD"],Xb=["B","A"];function yE(t){switch(t){case"narrow":return[...Xb];case"short":return[...Zb];case"long":return[...Jb];default:return null}}function eR(t){return gE[t.hour<12?0:1]}function tR(t,e){return hE(e)[t.weekday-1]}function rR(t,e){return fE(e)[t.month-1]}function nR(t,e){return yE(e)[t.year<0?0:1]}function iR(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 f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function by(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var sR={D:xu,DD:qy,DDD:Wy,DDDD:Qy,t:jy,tt:Yy,ttt:Hy,tttt:Ky,T:zy,TT:Jy,TTT:Zy,TTTT:Xy,f:eE,ff:rE,fff:iE,ffff:oE,F:tE,FF:nE,FFF:sE,FFFF:aE},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 sR[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 Ie(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,p)=>this.loc.extract(e,d,p),o=d=>e.isOffsetFixed&&e.offset===0&&d.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,d.format):"",a=()=>n?eR(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(d,p)=>n?rR(e,d):s(p?{month:d}:{month:d,day:"numeric"},"month"),c=(d,p)=>n?tR(e,d):s(p?{weekday:d}:{weekday:d,month:"long",day:"numeric"},"weekday"),l=d=>{let p=t.macroTokenToFormatOpts(d);return p?this.formatWithSystemDefault(e,p):d},f=d=>n?nR(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 f("short");case"GG":return f("long");case"GGGGG":return f("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 by(t.parseFormat(r),m)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return by(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},EE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function ki(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Fi(...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 Bi(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 TE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Rr(e[r+i]);return[n,null,r+i]}}var _E=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,oR=`(?:${_E.source}?(?:\\[(${EE.source})\\])?)?`,Bd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,AE=RegExp(`${Bd.source}${oR}`),Gd=RegExp(`(?:T${AE.source})?`),aR=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,uR=/(\d{4})-?W(\d\d)(?:-?(\d))?/,cR=/(\d{4})-?(\d{3})/,lR=TE("weekYear","weekNumber","weekDay"),dR=TE("year","ordinal"),fR=/(\d{4})-(\d\d)-(\d\d)/,SE=RegExp(`${Bd.source} ?(?:${_E.source}|(${EE.source}))?`),pR=RegExp(`(?: ${SE.source})?`);function Li(t,e,r){let n=t[e];return ne(n)?r:Rr(n)}function mR(t,e){return[{year:Li(t,e),month:Li(t,e+1,1),day:Li(t,e+2,1)},null,e+3]}function Gi(t,e){return[{hours:Li(t,e,0),minutes:Li(t,e+1,0),seconds:Li(t,e+2,0),milliseconds:Md(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Cu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?nr.create(t[e]):null;return[{},r,e+1]}var hR=RegExp(`^T?${Bd.source}$`),gR=/^-?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 yR(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",f=u&&u[0]==="-",m=(d,p=!1)=>d!==void 0&&(p||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(Md(c),f)}]}var ER={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 $d(t,e,r,n,i,s,o){let a={year:e.length===2?Ud(Rr(e)):Rr(e),month:dE.indexOf(r)+1,day:Rr(n),hour:Rr(i),minute:Rr(s)};return o&&(a.second=Rr(o)),t&&(a.weekday=t.length>3?pE.indexOf(t)+1:mE.indexOf(t)+1),a}var TR=/^(?:(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 _R(t){let[,e,r,n,i,s,o,a,u,c,l,f]=t,m=$d(e,i,n,r,s,o,a),d;return u?d=ER[u]:c?d=0:d=Cu(l,f),[m,new nt(d)]}function AR(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var SR=/^(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$/,OR=/^(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$/,IR=/^(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 Ry(t){let[,e,r,n,i,s,o,a]=t;return[$d(e,i,n,r,s,o,a),nt.utcInstance]}function xR(t){let[,e,r,n,i,s,o,a]=t;return[$d(e,a,r,n,i,s,o),nt.utcInstance]}var wR=ki(aR,Gd),bR=ki(uR,Gd),RR=ki(cR,Gd),DR=ki(AE),OE=Fi(mR,Gi,Eo,To),vR=Fi(lR,Gi,Eo,To),CR=Fi(dR,Gi,Eo,To),NR=Fi(Gi,Eo,To);function PR(t){return Bi(t,[wR,OE],[bR,vR],[RR,CR],[DR,NR])}function UR(t){return Bi(AR(t),[TR,_R])}function LR(t){return Bi(t,[SR,Ry],[OR,Ry],[IR,xR])}function MR(t){return Bi(t,[gR,yR])}var kR=Fi(Gi);function FR(t){return Bi(t,[hR,kR])}var BR=ki(fR,pR),GR=ki(SE),$R=Fi(Gi,Eo,To);function VR(t){return Bi(t,[BR,OE],[GR,$R])}var qR="Invalid Duration",IE={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}},WR={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},...IE},mt=146097/400,Pi=146097/4800,QR={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:Pi/7,days:Pi,hours:Pi*24,minutes:Pi*24*60,seconds:Pi*24*60*60,milliseconds:Pi*24*60*60*1e3},...IE},kn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],jR=kn.slice(0).reverse();function br(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 xe(n)}function YR(t){return t<0?Math.floor(t):Math.ceil(t)}function xE(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?YR(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function HR(t,e){jR.reduce((r,n)=>ne(e[n])?r:(r&&xE(t,e,r,e,n),n),null)}function KR(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var xe=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?QR:WR;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ee.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:Du(e,t.normalizeUnit),loc:Ee.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 Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=MR(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]=FR(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(me.throwOnInvalid)throw new wd(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 Iu(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):qR}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+=kd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of kn)(Mi(r.values,i)||Mi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return br(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]=lE(e(this.values[n],n));return br(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Du(e,t.normalizeUnit)};return br(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 br(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return HR(this.matrix,e),br(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=KR(this.normalize().shiftToAll().toObject());return br(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)&&xE(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 br(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 br(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}},Ui="Invalid Interval";function zR(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 Qe("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(me.throwOnInvalid)throw new xd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=fo(e),i=fo(r),s=zR(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=xe.fromDurationLike(r),i=fo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=xe.fromDurationLike(r),i=fo(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=Te.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Te.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=xe.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=xe.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(fo).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=xe.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()})`:Ui}toLocaleString(e=xu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Ui}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Ui}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ui}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Ui}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Ui}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):xe.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Bn=class{static hasDST(e=me.defaultZone){let r=Te.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return nr.isValidZone(e)}static normalizeZone(e){return Dr(e,me.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ee.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ee.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ee.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ee.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ee.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ee.create(r,null,"gregory").eras(e)}static features(){return{relative:uE()}}};function Dy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(xe.fromMillis(n).as("days"))}function JR(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=Dy(u,c);return(l-l%7)/7}],["days",Dy]],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 ZR(t,e,r,n){let[i,s,o,a]=JR(t,e,r),u=e-i,c=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=xe.fromObject(s,n);return c.length>0?xe.fromMillis(u,n).shiftTo(...c).plus(l):l}var Vd={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},vy={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},XR=Vd.hanidec.replace(/[\[|\]]/g,"").split("");function eD(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(Vd.hanidec)!==-1)e+=XR.indexOf(t[r]);else for(let i in vy){let[s,o]=vy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Vd[t||"latn"]}${e}`)}var tD="missing Intl.DateTimeFormat.formatToParts support";function ae(t,e=r=>r){return{regex:t,deser:([r])=>e(eD(r))}}var rD=String.fromCharCode(160),wE=`[ ${rD}]`,bE=new RegExp(wE,"g");function nD(t){return t.replace(/\./g,"\\.?").replace(bE,wE)}function Cy(t){return t.replace(/\./g,"").replace(bE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(nD).join("|")),deser:([r])=>t.findIndex(n=>Cy(r)===Cy(n))+e}}function Ny(t,e){return{regex:t,deser:([,r,n])=>Cu(r,n),groups:e}}function Ed(t){return{regex:t,deser:([e])=>e}}function iD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function sD(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}"),f=wt(e,"{2,4}"),m=wt(e,"{4,6}"),d=T=>({regex:RegExp(iD(T.val)),deser:([y])=>y,literal:!0}),g=(T=>{if(t.literal)return d(T);switch(T.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ae(c);case"yy":return ae(f,Ud);case"yyyy":return ae(s);case"yyyyy":return ae(m);case"yyyyyy":return ae(o);case"M":return ae(a);case"MM":return ae(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ae(a);case"LL":return ae(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ae(a);case"dd":return ae(n);case"o":return ae(u);case"ooo":return ae(i);case"HH":return ae(n);case"H":return ae(a);case"hh":return ae(n);case"h":return ae(a);case"mm":return ae(n);case"m":return ae(a);case"q":return ae(a);case"qq":return ae(n);case"s":return ae(a);case"ss":return ae(n);case"S":return ae(u);case"SSS":return ae(i);case"u":return Ed(l);case"uu":return Ed(a);case"uuu":return ae(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ae(s);case"kk":return ae(f,Ud);case"W":return ae(a);case"WW":return ae(n);case"E":case"c":return ae(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 Ny(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Ny(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Ed(/[a-z_+-/]{1,256}?/i);default:return d(T)}})(t)||{invalidReason:tD};return g.token=t,g}var oD={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 aD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=oD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function uD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function cD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Mi(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 lD(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=nr.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=Md(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Td=null;function dD(){return Td||(Td=Te.fromMillis(1555555555555)),Td}function fD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=vE(r,e);return n==null||n.includes(void 0)?t:n}function RE(t,e){return Array.prototype.concat(...t.map(r=>fD(r,e)))}function DE(t,e,r){let n=RE(et.parseFormat(r),t),i=n.map(o=>sD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=uD(i),u=RegExp(o,"i"),[c,l]=cD(e,u,a),[f,m,d]=l?lD(l):[null,null,void 0];if(Mi(l,"a")&&Mi(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:f,zone:m,specificOffset:d}}}function pD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=DE(t,e,r);return[n,i,s,o]}function vE(t,e){return t?et.create(e,t).formatDateTimeParts(dD()).map(i=>aD(i,t)):null}var CE=[0,31,59,90,120,151,181,212,243,273,304,334],NE=[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 PE(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 UE(t,e,r){return r+(yo(t)?NE:CE)[e-1]}function LE(t,e){let r=yo(t)?NE:CE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Ld(t){let{year:e,month:r,day:n}=t,i=UE(e,r,n),s=PE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Ru(a)):o>Ru(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Nu(t)}}function Py(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=PE(e,1,4),s=mo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=mo(a)):o>s?(a=e+1,o-=mo(e)):a=e;let{month:u,day:c}=LE(a,o);return{year:a,month:u,day:c,...Nu(t)}}function _d(t){let{year:e,month:r,day:n}=t,i=UE(e,r,n);return{year:e,ordinal:i,...Nu(t)}}function Uy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=LE(e,r);return{year:e,month:n,day:i,...Nu(t)}}function mD(t){let e=vu(t.weekYear),r=tr(t.weekNumber,1,Ru(t.weekYear)),n=tr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function hD(t){let e=vu(t.year),r=tr(t.ordinal,1,mo(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function ME(t){let e=vu(t.year),r=tr(t.month,1,12),n=tr(t.day,1,bu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function kE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=tr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=tr(r,0,59),a=tr(n,0,59),u=tr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Ad="Invalid DateTime",Ly=864e13;function _u(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function Sd(t){return t.weekData===null&&(t.weekData=Ld(t.c)),t.weekData}function co(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Te({...r,...e,old:r})}function FE(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 My(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function Ou(t,e,r){return FE(Fd(t),e,r)}function ky(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,bu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=xe.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=Fd(s),[u,c]=FE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function lo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Te.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Te.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Au(t,e,r=!0){return t.isValid?et.create(Ee.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Od(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Ie(t.c.year,r?6:4),e?(n+="-",n+=Ie(t.c.month),n+="-",n+=Ie(t.c.day)):(n+=Ie(t.c.month),n+=Ie(t.c.day)),n}function Fy(t,e,r,n,i,s){let o=Ie(t.c.hour);return e?(o+=":",o+=Ie(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Ie(t.c.minute),(t.c.second!==0||!r)&&(o+=Ie(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Ie(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Ie(Math.trunc(-t.o/60)),o+=":",o+=Ie(Math.trunc(-t.o%60))):(o+="+",o+=Ie(Math.trunc(t.o/60)),o+=":",o+=Ie(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var BE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},gD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},yD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},GE=["year","month","day","hour","minute","second","millisecond"],ED=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],TD=["year","ordinal","hour","minute","second","millisecond"];function By(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 Iu(t);return e}function Gy(t,e){let r=Dr(e.zone,me.defaultZone),n=Ee.fromObject(e),i=me.now(),s,o;if(ne(t.year))s=i;else{for(let c of GE)ne(t[c])&&(t[c]=BE[c]);let a=ME(t)||kE(t);if(a)return Te.invalid(a);let u=r.offset(i);[s,o]=Ou(t,u,r)}return new Te({ts:s,zone:r,loc:n,o})}function $y(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=kd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function Vy(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 Te=class t{constructor(e){let r=e.zone||me.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:_u(r));this.ts=ne(e.ts)?me.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=My(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||Ee.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]=Vy(arguments),[n,i,s,o,a,u,c]=r;return Gy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Vy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,Gy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Wb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Dr(r.zone,me.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ee.fromObject(r)}):t.invalid(_u(i))}static fromMillis(e,r={}){if(Gn(e))return e<-Ly||e>Ly?t.invalid("Timestamp out of range"):new t({ts:e,zone:Dr(r.zone,me.defaultZone),loc:Ee.fromObject(r)});throw new Qe(`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:Dr(r.zone,me.defaultZone),loc:Ee.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Dr(r.zone,me.defaultZone);if(!n.isValid)return t.invalid(_u(n));let i=me.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Du(e,By),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,f=o.weekYear||o.weekNumber,m=Ee.fromObject(r);if((l||a)&&f)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=f||o.weekday&&!l,p,g,T=My(i,s);d?(p=ED,g=gD,T=Ld(T)):a?(p=TD,g=yD,T=_d(T)):(p=GE,g=BE);let y=!1;for(let w of p){let F=o[w];ne(F)?y?o[w]=g[w]:o[w]=T[w]:y=!0}let O=d?mD(o):a?hD(o):ME(o),S=O||kE(o);if(S)return t.invalid(S);let L=d?Py(o):a?Uy(o):o,[E,A]=Ou(L,s,n),B=new t({ts:E,zone:n,o:A,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=PR(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=UR(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=LR(e);return lo(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=Ee.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=pD(o,e,r);return l?t.invalid(l):lo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=VR(e);return lo(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(me.throwOnInvalid)throw new Id(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=vE(e,Ee.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return RE(et.parseFormat(e),Ee.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?Sd(this).weekYear:NaN}get weekNumber(){return this.isValid?Sd(this).weekNumber:NaN}get weekday(){return this.isValid?Sd(this).weekday:NaN}get ordinal(){return this.isValid?_d(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 yo(this.year)}get daysInMonth(){return bu(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ru(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(me.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Dr(e,me.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=Ou(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(_u(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return co(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Du(e,By),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=Py({...Ld(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(bu(c.year,c.month),c.day))):c=Uy({..._d(this.c),...r});let[l,f]=Ou(c,this.o,this.zone);return co(this,{ts:l,o:f})}plus(e){if(!this.isValid)return this;let r=xe.fromDurationLike(e);return co(this,ky(this,r))}minus(e){if(!this.isValid)return this;let r=xe.fromDurationLike(e).negate();return co(this,ky(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=xe.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):Ad}toLocaleString(e=xu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Ad}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=Od(this,o);return a+="T",a+=Fy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Od(this,e==="extended"):null}toISOWeekDate(){return Au(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":"")+Fy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Au(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Au(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Od(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")),Au(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ad}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 xe.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Qb(r).map(xe.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=ZR(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),$y(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?$y(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 wy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return wy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Ee.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return DE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return xu}static get DATE_MED(){return qy}static get DATE_MED_WITH_WEEKDAY(){return Rb}static get DATE_FULL(){return Wy}static get DATE_HUGE(){return Qy}static get TIME_SIMPLE(){return jy}static get TIME_WITH_SECONDS(){return Yy}static get TIME_WITH_SHORT_OFFSET(){return Hy}static get TIME_WITH_LONG_OFFSET(){return Ky}static get TIME_24_SIMPLE(){return zy}static get TIME_24_WITH_SECONDS(){return Jy}static get TIME_24_WITH_SHORT_OFFSET(){return Zy}static get TIME_24_WITH_LONG_OFFSET(){return Xy}static get DATETIME_SHORT(){return eE}static get DATETIME_SHORT_WITH_SECONDS(){return tE}static get DATETIME_MED(){return rE}static get DATETIME_MED_WITH_SECONDS(){return nE}static get DATETIME_MED_WITH_WEEKDAY(){return Db}static get DATETIME_FULL(){return iE}static get DATETIME_FULL_WITH_SECONDS(){return sE}static get DATETIME_HUGE(){return oE}static get DATETIME_HUGE_WITH_SECONDS(){return aE}};function fo(t){if(Te.isDateTime(t))return t;if(t&&t.valueOf&&Gn(t.valueOf()))return Te.fromJSDate(t);if(t&&typeof t=="object")return Te.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var _D="3.2.1";it.DateTime=Te;it.Duration=xe;it.FixedOffsetZone=nt;it.IANAZone=nr;it.Info=Bn;it.Interval=$n;it.InvalidZone=wu;it.Settings=me;it.SystemZone=go;it.VERSION=_D;it.Zone=vr});var qE=Y((qq,VE)=>{"use strict";var Vn=$E();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))}VE.exports=J});var jE=Y((Wq,QE)=>{"use strict";function qn(t){return{start:t,count:1}}function WE(t,e){t.end=e,t.step=e-t.start,t.count=2}function qd(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 AD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(qd(e,r,qn(i)),r=void 0):r?r.count===1?WE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(qn(r.start)),r=qn(r.end),WE(r,i)):(qd(e,r),r=qn(i)):r=qn(i)}return qd(e,r),e}QE.exports=AD});var HE=Y((Qq,YE)=>{"use strict";var SD=jE();function OD(t,e,r){var n=SD(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 p=c.start+d;return(p-c.start)%c.step===0?p: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(",")}YE.exports=OD});var JE=Y((jq,zE)=>{"use strict";var Wn=qE(),ID=HE(),KE=1e4;function P(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=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(p){if(p instanceof Array)for(var g=0,T=p.length;g<T;g++){var y=p[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,p)){c.push(p);return}var O=+p;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+p+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}var f=u.split(",");if(!f.every(function(p){return p.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var m=0,d=f.length;m<d;m++)l(o(f[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=[],f=u.split("-");if(f.length>1){if(f.length<2)return+u;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+u);return+u}var m=+f[0],d=+f[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 p=+c;if(Number.isNaN(p)||p<=0)throw new Error("Constraint error, cannot repeat at every "+p+" time.");e==="dayOfWeek"&&d%7===0&&l.push(0);for(var g=m,T=d;g<=T;g++){var y=l.indexOf(g)!==-1;!y&&p>0&&p%c===0?(p=1,l.push(g)):p++}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,E=Math.floor(L/7)+S;return E===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 Wn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function f(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<KE;){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||f(this.fields.dayOfWeek));var p=this.fields.dayOfMonth.length>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,T=o.getHours();if(!m&&(!d||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!p&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(p&&!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(T,this.fields.hour)){if(this._dstEnd===T&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==T){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(T-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>=KE)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Wn(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 Wn(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(ID(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 Wn(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,f=P.map.length;l<f;++l){var m=P.map[l],d=u[u.length>f?l:l-c];if(l<c||!d)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var p=m==="dayOfWeek"?O(d):d;a.push(P._parseField(m,p,P.constraints[l]))}}for(var g={},l=0,f=P.map.length;l<f;l++){var T=P.map[l];g[T]=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 E=+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(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,L[0]}return S}}return i(e,r)};P.fieldsToExpression=function(e,r){function n(m,d,p){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,T=d.length;g<T;g++){var y=d[g];if(!P._isValidConstraintChar(p,y)&&(typeof y!="number"||Number.isNaN(y)||y<p.min||y>p.max))throw new Error("Constraint error, got value "+y+" expected range "+p.min+"-"+p.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,d,p){return!d||m!==p[d-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var f=P._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new P(i,r||{})};zE.exports=P});var XE=Y((Yq,ZE)=>{"use strict";var Pu=JE();function Cr(){}Cr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Pu.parse(e)};if(r.length>6)return{interval:Pu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Cr.parseExpression=function(e,r){return Pu.parse(e,r)};Cr.fieldsToExpression=function(e,r){return Pu.fieldsToExpression(e,r)};Cr.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=Cr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Cr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Cr.parseString(i.toString()))})};ZE.exports=Cr});var Ck={};N(Ck,{APP_DEV:()=>Gu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Bu,BUDIBASE_DATASOURCE_TYPE:()=>lf,BadRequestError:()=>Tc,BudibaseError:()=>fs,Config:()=>gf,Cookie:()=>Wi,DEFAULT_BB_DATASOURCE_ID:()=>xi,DEFAULT_EMPLOYEE_TABLE_ID:()=>mf,DEFAULT_EXPENSES_TABLE_ID:()=>pf,DEFAULT_INVENTORY_TABLE_ID:()=>ff,DEFAULT_JOBS_TABLE_ID:()=>df,DEFAULT_TENANT_ID:()=>he,DeprecatedViews:()=>qi,DocumentType:()=>ye,Duration:()=>De,DurationType:()=>Mp,EmailUnavailableError:()=>fr,ErrorCode:()=>Sc,FeatureDisabledError:()=>Ac,GlobalRole:()=>hf,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ar,InvalidAPIKeyError:()=>ps,MAX_VALID_DATE:()=>Vu,MIN_VALID_DATE:()=>fT,NotFoundError:()=>Ec,RedisClient:()=>Be,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>ir,SQS_DATASOURCE_INTERNAL:()=>cf,StaticDatabases:()=>Ae,UNICODE_MAX:()=>ke,UsageLimitError:()=>_c,UserStatus:()=>$u,ViewName:()=>Lr,accounts:()=>oi,auth:()=>Xm,blacklist:()=>nh,cache:()=>xa,configs:()=>tn,constants:()=>yf,context:()=>ge,db:()=>Wr,docIds:()=>op,docUpdates:()=>sh,encryption:()=>zm,env:()=>h,errors:()=>Ic,events:()=>ys,features:()=>$m,getPublicError:()=>Oc,init:()=>vk,installation:()=>Pc,locks:()=>si,logging:()=>sc,middleware:()=>Zm,objectStore:()=>Ff,permissions:()=>Fm,platform:()=>aa,plugins:()=>th,queue:()=>sm,redis:()=>rh,roles:()=>Xp,security:()=>Sm,sessions:()=>Gc,setEnv:()=>xo,sql:()=>mh,tenancy:()=>Dk,timers:()=>Mo,userUtils:()=>em,users:()=>Es,utils:()=>as,withEnv:()=>ET});module.exports=pO(Ck);var tn={};N(tn,{analyticsEnabled:()=>Cc,generateConfigID:()=>Um,getAIConfig:()=>tM,getConfig:()=>kt,getDefaultGoogleConfig:()=>Nm,getGoogleConfig:()=>Qc,getGoogleDatasourceConfig:()=>Mm,getOIDCConfig:()=>Z0,getOIDCConfigById:()=>km,getOIDCLogosDoc:()=>z0,getPlatformUrl:()=>va,getSCIMConfig:()=>eM,getSMTPConfig:()=>X0,getSMTPConfigDoc:()=>gS,getSettingsConfig:()=>Lm,getSettingsConfigDoc:()=>Lc,save:()=>H0});var mO=["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"],gh=[...mO],yh={"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 ml=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(ml||{}),hl=(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))(hl||{}),Ma=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Ma||{});var gl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(gl||{});var Tr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Tr||{}),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||{}),hi=(r=>(r.AND="$and",r.OR="$or",r))(hi||{});function ka(t){return Object.values(hi).includes(t)}function Eh(t){return Object.values(Tr).includes(t)}function Th(t){return Object.values(Yt).includes(t)}function yl(t){return Object.values(cn).includes(t)}var gi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(gi||{});var _h=t=>typeof t=="object"&&t._id&&t._rev;var Is=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Is||{});var Ah={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var NF={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(xs||{});var Fa=(f=>(f.APP="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Fa||{});var Ba=t=>t.hosting==="cloud";var Ga=t=>t.authType==="sso";var ce=(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))(ce||{}),Me=(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))(Me||{}),El=(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))(El||{});var pe=(A=>(A.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",A.CREATE_ROW="CREATE_ROW",A.UPDATE_ROW="UPDATE_ROW",A.DELETE_ROW="DELETE_ROW",A.EXECUTE_BASH="EXECUTE_BASH",A.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",A.EXECUTE_SCRIPT="EXECUTE_SCRIPT",A.EXECUTE_QUERY="EXECUTE_QUERY",A.SERVER_LOG="SERVER_LOG",A.DELAY="DELAY",A.FILTER="FILTER",A.QUERY_ROWS="QUERY_ROWS",A.LOOP="LOOP",A.COLLECT="COLLECT",A.OPENAI="OPENAI",A.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",A.BRANCH="BRANCH",A.discord="discord",A.slack="slack",A.zapier="zapier",A.integromat="integromat",A.n8n="n8n",A))(pe||{}),Sh=[...Object.values(pe),...Object.values(El)];var Tl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Tl||{});var _l="bb_internal";var Oh=["attachment_single","attachment","bb_reference","json","array"];var v="_",ke="\uFFF0",_r=t=>`${t}${v}`,ye=(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))(ye||{}),WB=Object.values(ye).sort((t,e)=>e.length-t.length);var Ar=(e=>(e.USER_METADATA="ta_users",e))(Ar||{}),Al=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Al||{}),QB=Object.values(Al).sort((t,e)=>e.length-t.length);function $a(t){return!!t.providerType}var Sl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Sl||{});var IG=Object.values(Sl);var DG=["rows","queries","automations"],vG=["queries","automations"];var dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(dn||{}),Va=(r=>(r.STRING="string",r.NUMBER="number",r))(Va||{});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 Il;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Il||(Il={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Sr=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"]),yO=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 Ti=(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}},wh=Ti;function EO(t){wh=t}function qa(){return wh}var Wa=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},TO=[];function C(t,e){let r=qa(),n=Wa({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ti?void 0:Ti].filter(i=>!!i)});t.common.issues.push(n)}var Le=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"}),Ei=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),xl=t=>t.status==="aborted",wl=t=>t.status==="dirty",Rs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function Qa(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function bh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var $;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})($||($={}));var ws,bs,ft=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ih=(t,e)=>{if(Rs(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 Sr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Sr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Le,ctx:{common:e.parent.common,data:e.data,parsedType:Sr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ds(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Sr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Ih(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:Sr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ds(i)?i:Promise.resolve(i));return Ih(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Je({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Bt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return zt.create(this,this._def)}promise(){return xr.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:H.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:H.ZodDefault})}brand(){return new vs({typeName:H.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:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Cs.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},_O=/^c[^\s-]{8,}$/i,AO=/^[0-9a-z]+$/,SO=/^[0-9A-HJKMNP-TV-Z]{26}$/,OO=/^[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,IO=/^[a-z0-9_-]{21}$/i,xO=/^[-+]?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)?)??$/,wO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,bO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ol,RO=/^(?:(?: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])$/,DO=/^(([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})))$/,vO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Rh="((\\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])))",CO=new RegExp(`^${Rh}$`);function Dh(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 NO(t){return new RegExp(`^${Dh(t)}$`)}function vh(t){let e=`${Rh}T${Dh(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 PO(t,e){return!!((e==="v4"||!e)&&RO.test(t)||(e==="v6"||!e)&&DO.test(t))}var Or=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 C(s,{code:I.invalid_type,expected:M.string,received:s.parsedType}),z}let n=new Le,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),C(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),C(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?C(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&C(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")wO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ol||(Ol=new RegExp(bO,"u")),Ol.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")OO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")IO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")_O.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")AO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")SO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(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),C(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),C(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),C(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),C(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),C(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?vh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?CO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?NO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?xO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?PO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?vO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(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}};Or.create=t=>{var e;return new Or({checks:[],typeName:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function UO(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 C(s,{code:I.invalid_type,expected:M.number,received:s.parsedType}),z}let n,i=new Le;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),C(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),C(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),C(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?UO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),C(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),C(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:$.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};fn.create=t=>new fn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var pn=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 C(s,{code:I.invalid_type,expected:M.bigint,received:s.parsedType}),z}let n,i=new Le;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),C(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),C(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),C(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}};pn.create=t=>{var e;return new pn({checks:[],typeName:H.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)!==M.boolean){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.boolean,received:n.parsedType}),z}return Fe(e.data)}};mn.create=t=>new mn({typeName:H.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)!==M.date){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_date}),z}let n=new Le,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),C(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),C(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:H.ZodDate,...Z(t)});var _i=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),z}return Fe(e.data)}};_i.create=t=>new _i({typeName:H.ZodSymbol,...Z(t)});var gn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),z}return Fe(e.data)}};gn.create=t=>new gn({typeName:H.ZodUndefined,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.null,received:n.parsedType}),z}return Fe(e.data)}};yn.create=t=>new yn({typeName:H.ZodNull,...Z(t)});var Ir=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};Ir.create=t=>new Ir({typeName:H.ZodAny,...Z(t)});var Kt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Kt.create=t=>new Kt({typeName:H.ZodUnknown,...Z(t)});var St=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return C(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};St.create=t=>new St({typeName:H.ZodNever,...Z(t)});var Ai=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),z}return Fe(e.data)}};Ai.create=t=>new Ai({typeName:H.ZodVoid,...Z(t)});var zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return C(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)&&(C(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&&(C(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&&(C(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new ft(r,o,r.path,a)))).then(o=>Le.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(r,o,r.path,a)));return Le.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};zt.create=(t,e)=>new zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...Z(e)});function yi(t){if(t instanceof qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(yi(n))}return new qe({...t._def,shape:()=>e})}else return t instanceof zt?new zt({...t._def,type:yi(t.element)}):t instanceof dt?dt.create(yi(t.unwrap())):t instanceof Bt?Bt.create(yi(t.unwrap())):t instanceof Ft?Ft.create(t.items.map(e=>yi(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 C(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof St&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ft(i,f,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof St){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(C(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 f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new ft(i,f,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let f=await l.key,m=await l.value;c.push({key:f,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Le.mergeObjectSync(n,c)):Le.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return $.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=$.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return yi(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 Ch(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});var 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 C(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 C(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};En.create=(t,e)=>new En({options:t,typeName:H.ZodUnion,...Z(e)});var Ht=t=>t instanceof _n?Ht(t.schema):t instanceof Je?Ht(t.innerType()):t instanceof An?[t.value]:t instanceof Sn?t.options:t instanceof On?te.objectValues(t.enum):t instanceof In?Ht(t._def.innerType):t instanceof gn?[void 0]:t instanceof yn?[null]:t instanceof dt?[void 0,...Ht(t.unwrap())]:t instanceof Bt?[null,...Ht(t.unwrap())]:t instanceof vs||t instanceof wn?Ht(t.unwrap()):t instanceof xn?Ht(t._def.innerType):[],ja=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return C(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}):(C(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=Ht(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function bl(t,e){let r=Sr(t),n=Sr(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=bl(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=bl(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 Tn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(xl(s)||xl(o))return z;let a=bl(s.value,o.value);return a.valid?((wl(s)||wl(o))&&r.dirty(),{status:r.value,value:a.data}):(C(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:H.ZodIntersection,...Z(r)});var Ft=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return C(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return C(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&&(C(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new ft(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Le.mergeArray(r,o)):Le.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Ft.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ft({items:t,typeName:H.ZodTuple,rest:null,...Z(e)})};var Ya=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return C(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 ft(n,a,n.path,a)),value:o._parse(new ft(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Le.mergeObjectAsync(r,i):Le.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:H.ZodRecord,...Z(n)}):new t({keyType:Or.create(),valueType:e,typeName:H.ZodRecord,...Z(r)})}},Si=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 C(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 ft(n,a,n.path,[c,"key"])),value:s._parse(new ft(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return 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}}}};Si.create=(t,e,r)=>new Si({valueType:e,keyType:t,typeName:H.ZodMap,...Z(r)});var Oi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return C(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&&(C(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&&(C(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 ft(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:$.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)}};Oi.create=(t,e)=>new Oi({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...Z(e)});var Ha=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 C(r,{code:I.invalid_type,expected:M.function,received:r.parsedType}),z;function n(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),Ti].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),Ti].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 xr){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}),f=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(f,s).catch(d=>{throw c.addIssue(i(f,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),f=a._def.returns.safeParse(l,s);if(!f.success)throw new ze([i(l,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Ft.create(e).rest(Kt.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||Ft.create([]).rest(Kt.create()),returns:r||Kt.create(),typeName:H.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:H.ZodLazy,...Z(e)});var An=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return C(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}};An.create=(t,e)=>new An({value:t,typeName:H.ZodLiteral,...Z(e)});function Ch(t,e){return new Sn({values:t,typeName:H.ZodEnum,...Z(e)})}var Sn=class t extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return C(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Qa(this,ws,"f")||bh(this,ws,new Set(this._def.values),"f"),!Qa(this,ws,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return C(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})}};ws=new WeakMap;Sn.create=Ch;var On=class extends X{constructor(){super(...arguments),bs.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 C(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),z}if(Qa(this,bs,"f")||bh(this,bs,new Set(te.getValidEnumValues(this._def.values)),"f"),!Qa(this,bs,"f").has(e.data)){let i=te.objectValues(r);return C(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Fe(e.data)}get enum(){return this._def.values}};bs=new WeakMap;On.create=(t,e)=>new On({values:t,typeName:H.ZodNativeEnum,...Z(e)});var xr=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 C(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})))}};xr.create=(t,e)=>new xr({type:t,typeName:H.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{C(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"?Ei(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"?Ei(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(!Rs(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=>Rs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};Je.create=(t,e,r)=>new Je({schema:t,typeName:H.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Bt=class extends X{_parse(e){return this._getType(e)===M.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Bt.create=(t,e)=>new Bt({innerType:t,typeName:H.ZodNullable,...Z(e)});var In=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}};In.create=(t,e)=>new In({innerType:t,typeName:H.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 Ds(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var Ii=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.nan,received:n.parsedType}),z}return{status:"valid",value:e.data}}};Ii.create=t=>new Ii({typeName:H.ZodNaN,...Z(t)});var LO=Symbol("zod_brand"),vs=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}},Cs=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(),Ei(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?z:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:H.ZodPipeline})}},wn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Rs(i)&&(i.value=Object.freeze(i.value)),i);return Ds(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Nh(t,e={},r){return t?Ir.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})}}):Ir.create()}var MO={object:qe.lazycreate},H;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(H||(H={}));var kO=(t,e={message:`Input not instance of ${t.name}`})=>Nh(r=>r instanceof t,e),Ph=Or.create,Uh=fn.create,FO=Ii.create,BO=pn.create,Lh=mn.create,GO=hn.create,$O=_i.create,VO=gn.create,qO=yn.create,WO=Ir.create,QO=Kt.create,jO=St.create,YO=Ai.create,HO=zt.create,KO=qe.create,zO=qe.strictCreate,JO=En.create,ZO=ja.create,XO=Tn.create,eI=Ft.create,tI=Ya.create,rI=Si.create,nI=Oi.create,iI=Ha.create,sI=_n.create,oI=An.create,aI=Sn.create,uI=On.create,cI=xr.create,xh=Je.create,lI=dt.create,dI=Bt.create,fI=Je.createWithPreprocess,pI=Cs.create,mI=()=>Ph().optional(),hI=()=>Uh().optional(),gI=()=>Lh().optional(),yI={string:t=>Or.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>mn.create({...t,coerce:!0}),bigint:t=>pn.create({...t,coerce:!0}),date:t=>hn.create({...t,coerce:!0})},EI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:Ti,setErrorMap:EO,getErrorMap:qa,makeIssue:Wa,EMPTY_PATH:TO,addIssueToContext:C,ParseStatus:Le,INVALID:z,DIRTY:Ei,OK:Fe,isAborted:xl,isDirty:wl,isValid:Rs,isAsync:Ds,get util(){return te},get objectUtil(){return Il},ZodParsedType:M,getParsedType:Sr,ZodType:X,datetimeRegex:vh,ZodString:Or,ZodNumber:fn,ZodBigInt:pn,ZodBoolean:mn,ZodDate:hn,ZodSymbol:_i,ZodUndefined:gn,ZodNull:yn,ZodAny:Ir,ZodUnknown:Kt,ZodNever:St,ZodVoid:Ai,ZodArray:zt,ZodObject:qe,ZodUnion:En,ZodDiscriminatedUnion:ja,ZodIntersection:Tn,ZodTuple:Ft,ZodRecord:Ya,ZodMap:Si,ZodSet:Oi,ZodFunction:Ha,ZodLazy:_n,ZodLiteral:An,ZodEnum:Sn,ZodNativeEnum:On,ZodPromise:xr,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Bt,ZodDefault:In,ZodCatch:xn,ZodNaN:Ii,BRAND:LO,ZodBranded:vs,ZodPipeline:Cs,ZodReadonly:wn,custom:Nh,Schema:X,ZodSchema:X,late:MO,get ZodFirstPartyTypeKind(){return H},coerce:yI,any:WO,array:HO,bigint:BO,boolean:Lh,date:GO,discriminatedUnion:ZO,effect:xh,enum:aI,function:iI,instanceof:kO,intersection:XO,lazy:sI,literal:oI,map:rI,nan:FO,nativeEnum:uI,never:jO,null:qO,nullable:dI,number:Uh,object:KO,oboolean:gI,onumber:hI,optional:lI,ostring:mI,pipeline:pI,preprocess:fI,promise:cI,record:tI,set:nI,strictObject:zO,string:Ph,symbol:$O,transformer:xh,tuple:eI,undefined:VO,union:JO,unknown:QO,void:YO,NEVER:EI,ZodIssueCode:I,quotelessJson:yO,ZodError:ze});var Za=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Mh=ee.record(Za,ee.string()),Ka=ee.record(Za,ee.any()),za=ee.record(Za,ee.union([ee.any().array(),ee.string()])),kh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Fh))})),Ja=ee.union([ee.string(),ee.number()]),Fh={string:Mh.optional(),fuzzy:Mh.optional(),range:ee.record(Za,ee.union([ee.object({high:Ja,low:Ja}),ee.object({high:Ja}),ee.object({low:Ja})])).optional(),equal:Ka.optional(),notEqual:Ka.optional(),empty:Ka.optional(),notEmpty:Ka.optional(),oneOf:za.optional(),contains:za.optional(),notContains:za.optional(),containsAny:za.optional(),$and:kh.optional(),$or:kh.optional()},A$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(gi).optional(),...Fh}).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(),sortType:ee.nativeEnum(Va).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var yf={};N(yf,{APP_DEV:()=>Gu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Bu,BUDIBASE_DATASOURCE_TYPE:()=>lf,Config:()=>gf,Cookie:()=>Wi,DEFAULT_BB_DATASOURCE_ID:()=>xi,DEFAULT_EMPLOYEE_TABLE_ID:()=>mf,DEFAULT_EXPENSES_TABLE_ID:()=>pf,DEFAULT_INVENTORY_TABLE_ID:()=>ff,DEFAULT_JOBS_TABLE_ID:()=>df,DEFAULT_TENANT_ID:()=>he,DeprecatedViews:()=>qi,DocumentType:()=>ye,GlobalRole:()=>hf,Header:()=>Ze,InternalTable:()=>Ar,MAX_VALID_DATE:()=>Vu,MIN_VALID_DATE:()=>fT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>ir,SQS_DATASOURCE_INTERNAL:()=>cf,StaticDatabases:()=>Ae,UNICODE_MAX:()=>ke,UserStatus:()=>$u,ViewName:()=>Lr});var O1={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 b1={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var P1="darkest",U1="light",AI=[{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"}},Bh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var xi="datasource_internal_bb_default";var Pr={};N(Pr,{ColumnSplitter:()=>Kd,NoEmptyFilterStrings:()=>oT,buildQuery:()=>jD,cleanupQuery:()=>Zd,fixupFilterArrays:()=>ef,getKeyNumbering:()=>Xd,getValidOperatorsForType:()=>qD,hasFilters:()=>zd,limit:()=>uT,recurseLogicalOperators:()=>Jd,removeKeyNumbering:()=>Xa,runQuery:()=>Uu,search:()=>YD,sort:()=>aT,splitFiltersArray:()=>eu});var $i=j(Gh());var wi={};N(wi,{filterValueToLabel:()=>bI,hasSchema:()=>RI,isSupportedUserSearch:()=>Vh,parallelForeach:()=>wI,processSearchFilters:()=>vl,trimOtherProps:()=>DI,unreachable:()=>xI});var $h=j(require("lodash")),II=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function xI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function wI(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 bI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function RI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function DI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Vh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(ka(r)){for(let o of t[r].conditions)if(!Vh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function vl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=eu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=$h.default.pick(i,II);return s.field=Xa(s.field),s})}]}}var Nr={};N(Nr,{cancelableTimeout:()=>qh,cron:()=>Wd,deepGet:()=>Cl,getUserColor:()=>CI,getUserInitials:()=>vI,getUserLabel:()=>NI,isGoogleSheets:()=>UI,isSQL:()=>LI,retry:()=>MI,roles:()=>Hd,schema:()=>_o,views:()=>Yd,wait:()=>Nl,withTimeout:()=>PI});var Cl=(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},vI=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"},CI=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%)`},NI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function qh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function PI(t,e){let[r,n]=qh(t),i=await Promise.race([e,r]);return n(),i}function UI(t){return t==="GOOGLE_SHEETS"}function LI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Nl(t){return new Promise(e=>setTimeout(e,t))}async function MI(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 Nl(s);try{return await t()}catch(o){n=o}}throw n}var Wd={};N(Wd,{getNextExecutionDates:()=>bD,validate:()=>RD});var tT=j(Gt()),rT=j(XE()),eT="(Input cron: ",xD={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function wD(t){let e=[];for(let r of t){r.includes(eT)&&(r=r.split(eT)[0].trim());for(let[n,i]of Object.entries(xD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function bD(t,e=4){let r=rT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function RD(t){let e=(0,tT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:wD(e.getError())}}var _o={};N(_o,{decodeNonAscii:()=>Qd,encodeNonAscii:()=>CD,isDeprecatedSingleUserColumn:()=>DD,isNumeric:()=>ND,isRequired:()=>vD});function DD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function vD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function CD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Qd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function ND(t){return t.type==="number"||t.type==="bigint"}var Yd={};N(Yd,{basicFields:()=>kD,calculationFields:()=>MD,hasCalculationFields:()=>LD,isBasicViewField:()=>PD,isCalculationField:()=>Ao,isCalculationView:()=>UD,isV2:()=>FD,isVisible:()=>nT});var jd=require("lodash");function Ao(t){return"calculationType"in t}function PD(t){return!Ao(t)}function UD(t){return t.type==="calculation"}function LD(t){return Object.values(t.schema||{}).some(Ao)}function MD(t){return(0,jd.pickBy)(t.schema||{},Ao)}function nT(t){return t.visible!==!1}function kD(t,e){let{visible:r=!0}=e||{};return(0,jd.pickBy)(t.schema||{},n=>!Ao(n)&&(!r||nT(n)))}function FD(t){return t.version===2}var Hd={};N(Hd,{checkForRoleInheritanceLoops:()=>GD});function BD(t){return`role${v}${t}`}function GD(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=BD(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 Qn=require("lodash");var $D=/{{([^{].*?)}}/g,sT=Object.values(hi),VD=[...Object.values(Tr),...Object.values(Yt),...Object.values(cn)],qD=(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"||_o.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},oT=[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 Jd(t,e){for(let r of sT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Zd=t=>{for(let e of oT)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===""||WD(s))&&delete t[e][i]}return t=Jd(t,Zd),t};function WD(t){return Array.isArray(t)&&t.length===0}var Xa=t=>Xd(t).key,Xd=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}},Kd=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}=Xd(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=Qd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function QD(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($D)||[]).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(yl(r)){let c=Bh[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(Eh(r)||Th(r)||yl(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 eu(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 jD(t){if(!t)return{};if(Array.isArray(t)&&(t=vl(t),!t))return{};let e=iT(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}=eu(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=iT(n.logicalOperator)),{[a]:{conditions:o.map(QD).filter(u=>u)}}})},r}function iT(t){return t==="all"?"$and":"$or"}function ef(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 Jd(t,ef),t}function YD(t,e){let r=Uu(t,e.query);e.sort&&(r=aT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=uT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Uu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Zd(e),e=ef(e),!zd(e)&&e.onEmptyFilter==="none")return[];let r=(E,A)=>B=>{for(let[w,F]of Object.entries(e[E]||{})){let ue=ka(E)?B:Cl(B,Xa(w)),on=A(ue,F);if(e.allOr&&on)return!0;if(!e.allOr&&!on)return!1}return!e.allOr},n=r("string",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().startsWith(A.toLowerCase())),i=r("fuzzy",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().includes(A.toLowerCase())),s=r("range",(E,A)=>{if(E==null||E===""||((0,Qn.isPlainObject)(A.low)&&(0,Qn.isEmpty)(A.low)&&(A.low=void 0),(0,Qn.isPlainObject)(A.high)&&(0,Qn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+E;if(!isNaN(B)){let F=+A.low,ue=+A.high;if(!isNaN(F)&&!isNaN(ue))return B>=F&&B<=ue;if(isNaN(F)){if(!isNaN(ue))return B<=ue}else return B>=F}let w=(0,$i.default)(E);if(w.isValid()){let F=(0,$i.default)(A.low||"0000-00-00T00:00:00.000Z"),ue=(0,$i.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ue.isValid())return w.isAfter(F)&&w.isBefore(ue)||w.isSame(F)||w.isSame(ue);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ue.isValid())return w.isBefore(ue)||w.isSame(ue)}return A.low!=null&&A.high!=null?E>=A.low&&E<=A.high:A.low!=null?E>=A.low:A.high!=null?E<=A.high:!1}),o=(E,A)=>{if(Array.isArray(E)){for(let w of E)if(o(w,A))return!0;return!1}if(E&&typeof E=="object"&&typeof A=="string")return E._id===A;if(E===A)return!0;if(E==null&&A!=null||E!=null&&A==null)return!1;let B=(0,$i.default)(E);if(B.isValid()){let w=(0,$i.default)(A);if(w.isValid())return B.isSame(w)}return!1},a=E=>(...A)=>!E(...A),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,f=r("empty",l),m=r("notEmpty",a(l)),d=r("oneOf",(E,A)=>(typeof A=="string"&&(A=A.split(",")),typeof E=="number"&&(A=A.map(B=>parseFloat(B))),Array.isArray(A)?A.some(B=>o(E,B)):!1)),p=E=>(A,B)=>!Array.isArray(A)||(typeof B=="string"&&(B=B.split(","),typeof A[0]=="number"&&(B=B.map(w=>parseFloat(w)))),!Array.isArray(B))?!1:B.length===0?!0:B[E](w=>o(A,w)),g=r("contains",(E,A)=>Array.isArray(A)&&A.length===0?!0:p("every")(E,A)),T=r("notContains",(E,A)=>Array.isArray(A)&&A.length===0?!0:a(p("every"))(E,A)),y=r("containsAny",p("some")),O=r("$and",(E,A)=>{if(!A.length)return!1;for(let B of A)if(!Uu([E],B).length)return!1;return!0}),S=r("$or",(E,A)=>{if(!A.length)return!1;for(let B of A)if(Uu([E],{...B,allOr:!0}).length)return!0;return!1}),L=E=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:f,notEmpty:m,oneOf:d,contains:g,containsAny:y,notContains:T,$and:O,$or:S},B=Object.entries(e||{}).filter(([w,F])=>!["allOr","onEmptyFilter"].includes(w)&&F&&Object.keys(F).length>0).map(([w])=>A[w]?.(E)??!1);return zd(e)?e.allOr?B.some(w=>w===!0):B.every(w=>w===!0):!0};return t.filter(L)}function aT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function uT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var zd=t=>{if(!t)return!1;let e=r=>{for(let n of sT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of VD){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={};N(st,{applications:()=>nf,automations:()=>sf,users:()=>uf});var nf={};N(nf,{getDevAppID:()=>HD,getProdAppID:()=>rf});var tf=_r("app"),So=_r("app_dev");function HD(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(So))return t;let e=t.split(tf);e.shift();let r=e.join(tf);return`${So}${r}`}function rf(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(So))return t;let e=t.split(So);e.shift();let r=e.join(So);return`${tf}${r}`}var sf={};N(sf,{isAppAction:()=>JD,isRowAction:()=>KD,isWebhookAction:()=>zD});function KD(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function zD(t){return t.definition.trigger?.stepId==="WEBHOOK"}function JD(t){return t.definition.trigger?.stepId==="APP"}var uf={};N(uf,{canCreateApps:()=>ZD,containsUserID:()=>iv,getGlobalUserID:()=>nv,hasAdminPermissions:()=>af,hasAppBuilderPermissions:()=>ku,hasAppCreatorPermissions:()=>cT,hasBuilderPermissions:()=>tv,hasCreatorPermissions:()=>Fu,isAdmin:()=>Mu,isAdminOrBuilder:()=>XD,isAdminOrGlobalBuilder:()=>ev,isBuilder:()=>of,isCreator:()=>rv,isGlobalBuilder:()=>Lu});var Ur=j(require("lodash/fp"));function of(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(rf(e))):!1}function Lu(t){return of(t)&&!ku(t)||Mu(t)}function ZD(t){return Lu(t)||Fu(t)}function Mu(t){return t?af(t):!1}function XD(t,e){return of(t,e)||Mu(t)}function ev(t){return Lu(t)||Mu(t)}function ku(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function cT(t){return t?Ur.flow(Ur.get("roles"),Ur.values,Ur.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function tv(t){return t?t.builder?.global||ku(t)||Fu(t):!1}function af(t){return t?!!t.admin?.global:!1}function Fu(t){return t?!!t.builder?.creator:!1}function rv(t){return t?Lu(t)||af(t)||Fu(t)||ku(t)||cT(t):!1}function nv(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function iv(t){return typeof t!="string"?!1:t.includes(`us${v}`)}var VW={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},qW={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},WW={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 ZW={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 tQ={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 iQ={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 aQ={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 lQ={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 pQ={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 gQ={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 TQ={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 SQ={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 Vi={EQUAL:"EQUAL",NOT_EQUAL:"NOT_EQUAL",GREATER_THAN:"GREATER_THAN",LESS_THAN:"LESS_THAN"},mv={[Vi.EQUAL]:"Equals",[Vi.NOT_EQUAL]:"Not equals",[Vi.GREATER_THAN]:"Greater than",[Vi.LESS_THAN]:"Less than"},xQ={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:Vi.EQUAL},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Vi),pretty:Object.values(mv)},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 RQ={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 CQ={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 UQ={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(Tl)},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 lT=(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))(lT||{}),kQ={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(lT)}},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 dT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(dT||{}),GQ={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(dT),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 Av={ascending:"Ascending",descending:"Descending"},qQ={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(Av)},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 jQ={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 KQ={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 ZQ={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 tj={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 ij={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 aj={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 Bu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Bu||{}),Lr=(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))(Lr||{}),qi={by_email2:["by_email"]},Ae={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=_r("app"),Gu=_r("app_dev"),yt=Gu,cf="internal",lf="budibase",ir="_design/sqlite",df="ta_bb_jobs",ff="ta_bb_inventory",pf="ta_bb_expenses",mf="ta_bb_employee";var $u=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))($u||{}),Wi=(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))(Wi||{}),hf=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(hf||{}),gf=(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))(gf||{}),fT=new Date(-2147483647e3),Vu=new Date(2147483647e3),he="default";var xa={};N(xa,{CacheKey:()=>lr,TTL:()=>ti,app:()=>rp,bustCache:()=>os,destroy:()=>ta,docWritethrough:()=>Cm,generic:()=>ra,get:()=>ri,invite:()=>qp,keys:()=>pc,passwordReset:()=>Dm,store:()=>dr,user:()=>rn,withCache:()=>Hr,writethrough:()=>Rm});var ra={};N(ra,{CacheKey:()=>lr,TTL:()=>ti,bustCache:()=>os,destroy:()=>ta,get:()=>ri,keys:()=>pc,store:()=>dr,withCache:()=>Hr});var ge={};N(ge,{DEFAULT_TENANT_ID:()=>he,baseGlobalDBName:()=>Xo,doInAppContext:()=>lN,doInAppMigrationContext:()=>fN,doInAutomationContext:()=>cN,doInContext:()=>Op,doInEnvironmentContext:()=>mN,doInIPContext:()=>xp,doInIdentityContext:()=>Io,doInScimContext:()=>hN,doInTenant:()=>Ge,ensureSnippetContext:()=>K_,getAppDB:()=>ns,getAppId:()=>Ne,getAuditLogDBName:()=>Y_,getAuditLogsDB:()=>yN,getAutomationId:()=>qf,getCurrentContext:()=>is,getDevAppDB:()=>TN,getEnvironmentVariables:()=>gN,getFeatureFlags:()=>wp,getGlobalDB:()=>se,getGlobalDBName:()=>ar,getIP:()=>Ip,getIdentity:()=>sr,getPlatformURL:()=>Sp,getProdAppDB:()=>EN,getProdAppId:()=>pN,getScimDBName:()=>sN,getTableForView:()=>_N,getTenantIDFromAppID:()=>rs,getTenantId:()=>Q,identity:()=>Oo,isMultiTenant:()=>jr,isScim:()=>Pt,isTenancyEnabled:()=>aN,isTenantIdSet:()=>oN,setFeatureFlags:()=>bp,setTableForView:()=>AN});var Oo={};N(Oo,{doInAccountContext:()=>Cv,doInIdentityContext:()=>Tf,doInUserContext:()=>_f,getAccountUserId:()=>pT,getIdentity:()=>Ef});function Ef(){return sr()}function Tf(t,e){return Io(t,e)}function _f(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Tf(n,r)}function Cv(t,e){let r=pT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Tf(i,e)}function pT(t){let e;return Ba(t)?e=t.budibaseUserId:e=t.accountId,e}var Qu=require("fs");var gT=require("lodash"),Af=require("crypto");function Sf(){return yT()}function yT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Wu(){return process.env.NODE_ENV!=="production"}function Nv(t){if(t)return parseInt(t)}var mT=!1;!mT&&Wu()&&!Sf()&&(require("dotenv").config(),mT=!0);var Qi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},hT=!!parseInt(process.env.SELF_HOSTED||"");function Pv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Uv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Lv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Qu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Qu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Wu()&&!Sf())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 Mv(){return Dt.SERVICE_TYPE==="worker"}function kv(){return Dt.SERVICE_TYPE==="apps"}function Fv(){return Dt.BUDIBASE_ENVIRONMENT==="QA"}var Dt={isTest:Sf,isJest:yT,isDev:Wu,isWorker:Mv,isApps:kv,isQA:Fv,isProd:()=>!Wu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Af.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Af.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Pv(),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,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:hT,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||Qi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Qi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Qi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Qi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Qi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Qi.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:Uv(),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:hT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Lv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Dt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Nv(process.env.BSON_BUFFER_SIZE)};function xo(t){let e=(0,gT.cloneDeep)(Dt),r;for(r in t)Dt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Dt._set(n,i)}}function ET(t,e){let r=xo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var TT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Dt))e==="0"&&(Dt[t]=0),e==="false"&&(Dt[t]=0);var h=Dt;var _T=require("async_hooks"),ve=class t{static{this.storage=new _T.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Of="No app provided";function Mr(t){if(!t)throw Of;return t.startsWith(yt)}function Bv(t){if(!t)throw Of;return t.startsWith(gt)&&!Mr(t)}function wo(t){if(!t)throw Of;return Mr(t.appId)}function ju(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=ju;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 $v(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=If(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:If(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},If=(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 f=l.split(":");r=f[0],n=f.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var Q_=j(require("@budibase/nano"));var AT=j(require("node-fetch"));function Yu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function ST(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await bo({url:s,cookie:i,method:e,body:r})}async function bo({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,AT.default)(Yu(encodeURI(t)),i)}async function Hu(t,e="GET",r){let n=await ST(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var jn=j(require("pouchdb"));var OT,IT=!1,xf=(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 Ku(t){OT=xf(t),IT=!0}var qv=()=>{if(!IT)throw new Error("init has not been called")};function Et(t,e){qv();let r=new OT(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 Ro(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var xT=require("uuid");function Se(){return(0,xT.v4)().replace(/-/g,"")}var Oe=j(require("dd-trace")),ji=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Oe.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 Oe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Oe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Oe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Oe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Oe.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 Oe.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 Oe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Ap={};N(Ap,{breakExternalTableId:()=>yp,breakRowIdField:()=>rN,buildExternalTableId:()=>zC,convertRowId:()=>tN,encodeTableId:()=>JC,encodeViewId:()=>ZC,generateRowIdField:()=>XC,getNativeSql:()=>ts,isExternalTable:()=>gp,isExternalTableID:()=>dc,isInternalTableID:()=>KC,isInvalidISODateString:()=>Ep,isRowId:()=>eN,isValidFilter:()=>fc,isValidISODateString:()=>Tp,isValidTime:()=>nN,sqlLog:()=>ea,validateManyToMany:()=>_p});var Wr={};N(Wr,{APP_DEV:()=>Gu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Bu,BUDIBASE_DATASOURCE_TYPE:()=>lf,DEFAULT_BB_DATASOURCE_ID:()=>xi,DEFAULT_EMPLOYEE_TABLE_ID:()=>mf,DEFAULT_EXPENSES_TABLE_ID:()=>pf,DEFAULT_INVENTORY_TABLE_ID:()=>ff,DEFAULT_JOBS_TABLE_ID:()=>df,DatabaseImpl:()=>es,DatabaseWithConnection:()=>jC,DeprecatedViews:()=>qi,DocumentType:()=>ye,InternalTable:()=>Ar,QueryBuilder:()=>cr,Replication:()=>U_,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>ir,SQS_DATASOURCE_INTERNAL:()=>cf,StaticDatabases:()=>Ae,UNICODE_MAX:()=>ke,ViewName:()=>Lr,baseGlobalDBName:()=>Xo,checkErrorCode:()=>F_,closePouchDB:()=>Ro,createApiKeyView:()=>D_,createNewUserEmailView:()=>b_,createPlatformAccountEmailView:()=>C_,createPlatformUserView:()=>N_,createUserAppView:()=>R_,createView:()=>Xi,dbExists:()=>BC,directCouchAllDbs:()=>up,directCouchCall:()=>ST,directCouchFind:()=>mp,directCouchQuery:()=>Hu,directCouchUrlCall:()=>bo,doWithDB:()=>at,extractAppUUID:()=>$v,fullSearch:()=>qC,generateAppID:()=>c_,generateAppUserID:()=>uc,generateDevInfoID:()=>g_,generateGlobalUserID:()=>Ji,generatePluginID:()=>y_,generateRoleID:()=>ip,generateRowID:()=>np,generateTableID:()=>l_,generateTemplateID:()=>h_,generateUserMetadataID:()=>p_,generateWorkspaceID:()=>d_,getAllApps:()=>Ko,getAllDbs:()=>w_,getAppsByIDs:()=>LC,getCouchInfo:()=>vt,getDB:()=>Ke,getDevAppID:()=>Gv,getDevAppIDs:()=>kC,getDevelopmentAppID:()=>ju,getDocParams:()=>Zi,getGlobalDBName:()=>ar,getGlobalIDFromUserMetadataID:()=>m_,getGlobalUserParams:()=>Zn,getPluginParams:()=>x_,getPouch:()=>xf,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>MC,getQueryIndex:()=>E_,getRoleParams:()=>lc,getRowParams:()=>sp,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>I_,getUrlInfo:()=>If,getUserMetadataParams:()=>O_,getUsersByAppParams:()=>cc,getWorkspaceParams:()=>S_,init:()=>Ku,isDatasourceId:()=>A_,isDevApp:()=>wo,isDevAppID:()=>Mr,isDocumentConflictError:()=>QC,isGlobalUserID:()=>f_,isProdAppID:()=>Bv,isSameAppID:()=>FC,isTableId:()=>T_,isViewId:()=>__,paginatedSearch:()=>VC,pagination:()=>ap,prefixRoleID:()=>or,queryGlobalView:()=>ur,queryGlobalViewRaw:()=>dp,queryPlatformView:()=>Jo,queryView:()=>lp,queryViewRaw:()=>zo,removeKeyNumbering:()=>Zo,searchIndexes:()=>pp});var rp={};N(rp,{AppState:()=>tp,getAppMetadata:()=>ac,invalidateAppMetadata:()=>PC});var qr={};N(qr,{getAppClient:()=>oc,getCacheClient:()=>Zf,getDocWritethroughClient:()=>DC,getInviteClient:()=>Jn,getLockClient:()=>ep,getPasswordResetClient:()=>Yo,getSessionClient:()=>Vr,getSocketClient:()=>RC,getUserClient:()=>jo,getWritethroughClient:()=>Xf,init:()=>Nt,shutdown:()=>a_});var s_=j(require("ioredis"));var Zu={};N(Zu,{Databases:()=>wf,SEPARATOR:()=>Yi,SelectableDatabase:()=>zu,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>Ju,getRedisOptions:()=>Hi,removeDbPrefix:()=>bf});var Wv=2e3,wT=1e4,Yi="-",wf=(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))(wf||{}),zu=(T=>(T[T.DEFAULT=0]="DEFAULT",T[T.SOCKET_IO=1]="SOCKET_IO",T[T.RATE_LIMITING=2]="RATE_LIMITING",T[T.UNUSED_2=3]="UNUSED_2",T[T.UNUSED_3=4]="UNUSED_3",T[T.UNUSED_4=5]="UNUSED_4",T[T.UNUSED_5=6]="UNUSED_5",T[T.UNUSED_6=7]="UNUSED_6",T[T.UNUSED_7=8]="UNUSED_7",T[T.UNUSED_8=9]="UNUSED_8",T[T.UNUSED_9=10]="UNUSED_9",T[T.UNUSED_10=11]="UNUSED_10",T[T.UNUSED_11=12]="UNUSED_11",T[T.UNUSED_12=13]="UNUSED_12",T[T.UNUSED_13=14]="UNUSED_13",T[T.UNUSED_14=15]="UNUSED_14",T))(zu||{});function Ju(){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 Hi(){let{host:t,password:e,port:r}=Ju(),n={connectTimeout:wT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:wT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:Wv,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Yi}${e}`}function bf(t){let e=t.split(Yi);return e.length>=2?(e.shift(),e.join(Yi)):e[0]}var sc={};N(sc,{correlation:()=>Do,logAlert:()=>Hn,logAlertWithInfo:()=>SC,logWarn:()=>zi,logger:()=>ic,system:()=>$f});var Do={};N(Do,{getId:()=>Rf,setHeader:()=>Qv});var bT=require("correlation-id"),Qv=t=>{let e=bT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Rf(){return bT.getId()}var nc=j(require("pino")),n_=j(require("pino-pretty"));var Vf=j(require("dd-trace")),i_=require("dd-trace/ext");var $f={};N($f,{getLogReadStream:()=>gC,getSingleFileMaxSizeInfo:()=>r_,localFileDestination:()=>Gf});var No=j(require("fs")),Bf=j(require("path")),ZT=j(require("rotating-file-stream"));var Ff={};N(Ff,{ObjectStore:()=>Ct,ObjectStoreBuckets:()=>Yv,SIGNED_FILE_PREFIX:()=>Uf,bucketTTLConfig:()=>Xu,budibaseTempDir:()=>Yn,clientLibraryCDNUrl:()=>cC,clientLibraryPath:()=>WT,clientLibraryUrl:()=>lC,createBucketIfNotExists:()=>Co,deleteFile:()=>rC,deleteFiles:()=>nC,deleteFolder:()=>$T,downloadTarball:()=>sC,downloadTarballDirect:()=>iC,enrichPluginURLs:()=>pC,extractBucketAndPath:()=>Df,getAppFileUrl:()=>dC,getGlobalFileS3Key:()=>QT,getGlobalFileUrl:()=>fC,getObjectMetadata:()=>oC,getPluginIconKey:()=>HT,getPluginJSKey:()=>YT,getPluginS3Dir:()=>zT,getPresignedUrl:()=>Gr,getReadStream:()=>ec,listAllObjects:()=>GT,processAutomationAttachment:()=>Kv,processObjectStoreAttachment:()=>NT,retrieve:()=>BT,retrieveDirectory:()=>tC,retrieveToTmp:()=>eC,sanitizeBucket:()=>He,sanitizeKey:()=>Ce,streamUpload:()=>FT,upload:()=>Xv,uploadDirectory:()=>Lf});var PT=j(require("aws-sdk")),UT=j(require("stream")),vf=j(require("node-fetch")),Cf=j(require("tar-fs")),Nf=j(require("zlib")),LT=require("util"),Br=require("path"),kr=j(require("fs"));var vo=j(require("path")),RT=require("os"),DT=j(require("fs"));var vT=j(require("stream")),Yv={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},CT=(0,vo.join)((0,RT.tmpdir)(),".budibase");try{DT.default.mkdirSync(CT)}catch(t){if(t.code!=="EEXIST")throw t}function Yn(){return CT}var Xu=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function Hv(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=vo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:vT.default.Readable.fromWeb(e.body)}}async function NT(t){let e=Df(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await ec(r,n),s=vo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function Kv(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await Hv(t):await NT(t)}var Pf=require("uuid");var MT=j(require("fs/promises")),zv=require("sanitize-s3-objectkey"),kT=(0,LT.promisify)(UT.default.pipeline),Jv={bucketCreationPromises:{}},Uf="/files/signed",Fr={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"},Zv=[Fr.html,Fr.css,Fr.js,Fr.json];function Ce(t){return zv(He(t)).replace(/\\/g,"/")}function He(t){return t.replace(new RegExp(yt,"g"),gt)}function Ct(t,e={presigning:!1}){let r={s3ForcePathStyle:!0,signatureVersion:"v4",apiVersion:"2006-03-01",accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,region:h.AWS_REGION};return t&&(r.params={Bucket:He(t)}),!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(r.sessionToken=h.AWS_SESSION_TOKEN),h.MINIO_URL&&(e.presigning&&h.MINIO_ENABLED?r.endpoint="minio-service":r.endpoint=h.MINIO_URL),new PT.default.S3(r)}async function Co(t,e){e=He(e);try{return await t.headBucket({Bucket:e}).promise(),{created:!1,exists:!0}}catch(r){let n=Jv.bucketCreationPromises,i=r.statusCode===404,s=r.statusCode===403;if(n[e])return await n[e],{created:!1,exists:!0};if(i||s){if(i)return n[e]=t.createBucket({Bucket:e}).promise(),await n[e],delete n[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 Xv({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await MT.default.open(r)).createReadStream():s,c=Ct(t),l=await Co(c,t);if(o&&l.created){let d=Xu(t,o);await c.putBucketLifecycleConfiguration(d).promise()}let f=n;f||(f=a?Fr[a.toLowerCase()]:Fr.txt);let m={Key:Ce(e),Body:u,ContentType:f};if(i&&typeof i=="object"){for(let d of Object.keys(i))(!i[d]||typeof i[d]!="string")&&delete i[d];m.Metadata=i}return c.upload(m).promise()}async function FT({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Ct(t),u=await Co(a,t);if(s&&u.created){let g=Xu(t,s);await a.putBucketLifecycleConfiguration(g).promise()}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Fr[o.toLowerCase()]:Fr.txt);let l=He(t),f=Ce(r),m={Bucket:l,Key:f,Body:e,ContentType:c,...i},d=await a.upload(m).promise(),p=await a.headObject({Bucket:l,Key:f}).promise();return{...d,ContentLength:p.ContentLength}}async function BT(t,e){let r=Ct(t),n={Bucket:He(t),Key:Ce(e)},i=await r.getObject(n).promise();return Zv.includes(i.ContentType)?i.Body.toString("utf8"):i.Body}async function GT(t,e){let r=Ct(t),n=(a={})=>r.listObjectsV2({...a,Bucket:He(t),Prefix:Ce(e)}).promise(),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}function Gr(t,e,r=3600){let n=Ct(t,{presigning:!0}),i={Bucket:He(t),Key:Ce(e),Expires:r},s=n.getSignedUrl("getObject",i);if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Uf}${a}${u}`}else return s}async function eC(t,e){t=He(t),e=Ce(e);let r=await BT(t,e),n=(0,Br.join)(Yn(),(0,Pf.v4)());return kr.default.writeFileSync(n,r),n}async function tC(t,e){let r=(0,Br.join)(Yn(),(0,Pf.v4)());kr.default.mkdirSync(r);let n=await GT(t,e),i=await Promise.all(n.map(a=>ec(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),f=l.slice(0,l.length-1),m=(0,Br.join)(r,...f);l.length>1&&!kr.default.existsSync(m)&&kr.default.mkdirSync(m,{recursive:!0});let d=kr.default.createWriteStream((0,Br.join)(r,...l),{mode:420});c.pipe(d),o.push(new Promise((p,g)=>{c.on("finish",p),c.on("error",g),d.on("error",g)}))}return await Promise.all(o),r}async function rC(t,e){let r=Ct(t);await Co(r,t);let n={Bucket:t,Key:Ce(e)};return r.deleteObject(n).promise()}async function nC(t,e){let r=Ct(t);await Co(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ce(i)}))}};return r.deleteObjects(n).promise()}async function $T(t,e){t=He(t),e=Ce(e);let r=Ct(t),n={Bucket:t,Prefix:e},i=await r.listObjects(n).promise();if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s).promise()).Deleted?.length===1e3)return $T(t,e)}async function Lf(t,e,r){t=He(t);let n=[],i=kr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ce((0,Br.join)(r,s.name)),a=(0,Br.join)(e,s.name);s.isDirectory()?n.push(Lf(t,a,o)):n.push(FT({bucket:t,filename:o,stream:kr.default.createReadStream(a)}))}return await Promise.all(n),i}async function iC(t,e,r={}){e=Ce(e);let n=await(0,vf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await kT(n.body,Nf.default.createUnzip(),Cf.default.extract(e))}async function sC(t,e,r){e=He(e),r=Ce(r);let n=await(0,vf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Br.join)(Yn(),r);return await kT(n.body,Nf.default.createUnzip(),Cf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Lf(e,i,r),i}async function ec(t,e){t=He(t),e=Ce(e);let r=Ct(t),n={Bucket:t,Key:e};return r.getObject(n).createReadStream()}async function oC(t,e){t=He(t),e=Ce(e);let r=Ct(t),n={Bucket:t,Key:e};try{return await r.headObject(n).promise()}catch{throw new Error("Unable to retrieve metadata from object")}}function Df(t){let e=t.split("?")[0],r=new RegExp(`^${Uf}/(?<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 VT=j(require("aws-cloudfront-sign")),rc;function aC(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return rc||(rc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),rc)}var uC=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:aC(),expireTime:new Date().getTime()+1e3*60*60*24}),Ki=t=>{let e=Mf(t);return VT.getSignedUrl(e,uC())},Mf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var qT=j(require("querystring"));function WT(t){return`${Ce(t)}/budibase-client.js`}function cC(t,e){let r=WT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Mf(r)):Gr(h.APPS_BUCKET_NAME,r)}function lC(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==he&&(n.tenantId=r),`/api/assets/client?${qT.default.encode(n)}`}function dC(t){return h.CLOUDFRONT_CDN?Ki(t):Gr(h.APPS_BUCKET_NAME,t)}var fC=(t,e,r)=>{let n=QT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),Ki(n)):Gr(h.GLOBAL_BUCKET_NAME,n)},QT=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};function pC(t){return!t||!t.length?[]:t.map(e=>{let r=mC(e),n=hC(e);return{...e,jsUrl:r,iconUrl:n}})}function mC(t){let e=YT(t);return jT(e)}function hC(t){let e=HT(t);if(e)return jT(e)}function jT(t){return h.CLOUDFRONT_CDN?Ki(t):Gr(h.PLUGIN_BUCKET_NAME,t)}function YT(t){return KT(t,"plugin.min.js")}function HT(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return KT(t,e)}function KT(t,e){return`${zT(t.name)}/${e}`}function zT(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var XT="budibase.log",e_="budibase-logs-history.txt",t_=Bf.default.join(Yn(),"systemlogs");function JT(t){return Bf.default.join(t_,t)}function r_(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 Gf(){let t=r_(h.ROLLING_LOG_MAX_SIZE);return ZT.createStream(XT,{size:t?.size,path:t_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:e_,initialRotation:!1})}function gC(){let t=[],e=JT(e_);if(No.default.existsSync(e)){let i=No.default.readFileSync(e,"utf-8").split(`
|
|
6
|
-
`);for(let s of i.filter(o=>o))t.push(No.default.readFileSync(s))}return t.push(No.default.readFileSync(JT(XT))),Buffer.concat(t)}function yC(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function EC(t){return t instanceof Error}function TC(t){return typeof t=="string"}var $r;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,n_.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:
|
|
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,xg.default)({args:p,value:l,path:s,sync:i,tests:m,endEarly:c},d=>{if(d)return void n(d,l);(0,xg.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(bg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(bg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ig.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=Ri.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ri.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=Ri.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,du.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,ow.default)(e).map(s=>new iw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new nw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,du.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=Ri.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,du.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=Ri.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,du.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)}}};pu.default=xt;xt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])xt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,sw.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])xt.prototype[t]=xt.prototype.oneOf;for(let t of["not","nope"])xt.prototype[t]=xt.prototype.notOneOf;xt.prototype.optional=xt.prototype.notRequired});var vg=Y(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Dg;Ys.default=void 0;var aw=uw(Xt());function uw(t){return t&&t.__esModule?t:{default:t}}var Zl=aw.default,cw=Zl;Ys.default=cw;function Dg(){return new Zl}Dg.prototype=Zl.prototype});var Di=Y(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var lw=t=>t==null;fu.default=lw});var Lg=Y(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Ug;Ks.default=void 0;var dw=Pg(Xt()),Cg=Jt(),Ng=Pg(Di());function Pg(t){return t&&t.__esModule?t:{default:t}}function Ug(){return new Hs}var Hs=class extends dw.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=Cg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Ng.default)(r)||r===!0}})}isFalse(e=Cg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Ng.default)(r)||r===!1}})}};Ks.default=Hs;Ug.prototype=Hs.prototype});var Fg=Y(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=kg;Js.default=void 0;var $t=Jt(),er=Mg(Di()),pw=Mg(Xt());function Mg(t){return t&&t.__esModule?t:{default:t}}var fw=/^((([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,mw=/^((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,hw=/^(?:[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,gw=t=>(0,er.default)(t)||t===t.trim(),yw={}.toString();function kg(){return new zs}var zs=class extends pw.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===yw?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=$t.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,er.default)(n)||n.length===this.resolve(e)}})}min(e,r=$t.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,er.default)(n)||n.length>=this.resolve(e)}})}max(e,r=$t.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,er.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||$t.string.matches,params:{regex:e},test:o=>(0,er.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=$t.string.email){return this.matches(fw,{name:"email",message:e,excludeEmptyString:!0})}url(e=$t.string.url){return this.matches(mw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=$t.string.uuid){return this.matches(hw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=$t.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:gw})}lowercase(e=$t.string.lowercase){return this.transform(r=>(0,er.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,er.default)(r)||r===r.toLowerCase()})}uppercase(e=$t.string.uppercase){return this.transform(r=>(0,er.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,er.default)(r)||r===r.toUpperCase()})}};Js.default=zs;kg.prototype=zs.prototype});var $g=Y(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Gg;Xs.default=void 0;var vn=Jt(),Cn=Bg(Di()),Ew=Bg(Xt());function Bg(t){return t&&t.__esModule?t:{default:t}}var Tw=t=>t!=+t;function Gg(){return new Zs}var Zs=class extends Ew.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"&&!Tw(e)}min(e,r=vn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Cn.default)(n)||n>=this.resolve(e)}})}max(e,r=vn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Cn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=vn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Cn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=vn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Cn.default)(n)||n>this.resolve(e)}})}positive(e=vn.number.positive){return this.moreThan(0,e)}negative(e=vn.number.negative){return this.lessThan(0,e)}integer(e=vn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Cn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Cn.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,Cn.default)(i)?i:Math[e](i))}};Xs.default=Zs;Gg.prototype=Zs.prototype});var Vg=Y(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=Aw;var _w=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Aw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=_w.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 Qg=Y(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=td;eo.default=void 0;var Sw=mu(Vg()),qg=Jt(),Wg=mu(Di()),Ow=mu(Dn()),Iw=mu(Xt());function mu(t){return t&&t.__esModule?t:{default:t}}var ed=new Date(""),xw=t=>Object.prototype.toString.call(t)==="[object Date]";function td(){return new vi}var vi=class extends Iw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Sw.default)(e),isNaN(e)?ed:new Date(e))})})}_typeCheck(e){return xw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Ow.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=qg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Wg.default)(i)||i>=this.resolve(n)}})}max(e,r=qg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Wg.default)(i)||i<=this.resolve(n)}})}};eo.default=vi;vi.INVALID_DATE=ed;td.prototype=vi.prototype;td.INVALID_DATE=ed});var Yg=Y((Uq,rd)=>{"use strict";rd.exports=function(t){return jg(ww(t),t)};rd.exports.array=jg;function jg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=bw(e),a=Rw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,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 ww(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 bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function Rw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Hg=Y(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=Uw;var Dw=hu(require("lodash/has")),vw=hu(Yg()),Cw=qs(),Nw=hu(Dn()),Pw=hu(bi());function hu(t){return t&&t.__esModule?t:{default:t}}function Uw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Cw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Dw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Nw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Pw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return vw.default.array(n,r).reverse()}});var zg=Y(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=Lw;function Kg(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 Lw(t){return(e,r)=>Kg(t,e)-Kg(t,r)}});var ny=Y(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ry;ro.default=void 0;var Jg=Vt(require("lodash/has")),Zg=Vt(require("lodash/snakeCase")),Mw=Vt(require("lodash/camelCase")),kw=Vt(require("lodash/mapKeys")),Fw=Vt(require("lodash/mapValues")),Bw=qs(),Xg=Jt(),Gw=Vt(Hg()),ty=Vt(zg()),$w=Vt(ou()),Vw=Vt(bn()),sd=Vt(Xt());function Vt(t){return t&&t.__esModule?t:{default:t}}function Ci(){return Ci=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},Ci.apply(this,arguments)}var ey=t=>Object.prototype.toString.call(t)==="[object Object]";function qw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Ww=(0,ty.default)([]),to=class extends sd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Ww,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 ey(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=Ci({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let p of a){let m=s[p],d=(0,Jg.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 T="spec"in m?m.spec:void 0,y=T?.strict;if(T?.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(!Vw.default.isError(l)||u)return void n(l,p);i.push(l)}if(!c||!ey(p)){n(i[0]||null,p);return}a=a||p;let m=this._nodes.map(d=>(f,g)=>{let T=d.indexOf(".")===-1?(r.path?`${r.path}.`:"")+d:`${r.path||""}["${d}"]`,y=this.fields[d];if(y&&"validate"in y){y.validate(p[d],Ci({},r,{path:T,from:o,strict:!0,parent:p,originalValue:a[d]}),g);return}g(null)});(0,$w.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=Ci({},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 sd.default&&s instanceof sd.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,ty.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,Gw.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,Bw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Jg.default)(s,e)&&(o=Ci({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Xg.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=qw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Xg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Mw.default)}snakeCase(){return this.transformKeys(Zg.default)}constantCase(){return this.transformKeys(e=>(0,Zg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Fw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function ry(t){return new to(t)}ry.prototype=to.prototype});var sy=Y(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=iy;io.default=void 0;var od=Ni(Di()),Qw=Ni(bi()),jw=Ni(Vs()),ad=Jt(),Yw=Ni(ou()),Hw=Ni(bn()),Kw=Ni(Xt());function Ni(t){return t&&t.__esModule?t:{default:t}}function gu(){return gu=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},gu.apply(this,arguments)}function iy(t){return new no(t)}var no=class extends Kw.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,gu({},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(!Hw.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 T=0;T<f.length;T++){let y=f[T],O=`${r.path||""}[${T}]`,S=gu({},r,{path:O,strict:!0,parent:f,index:T,originalValue:m[T]});g[T]=(L,E)=>c.validate(y,S,E)}(0,Yw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Qw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,jw.default)(e));return r.innerType=e,r}length(e,r=ad.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,od.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ad.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,od.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ad.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,od.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};io.default=no;iy.prototype=no.prototype});var oy=Y(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Zw;so.default=void 0;var zw=Jw(bi());function Jw(t){return t&&t.__esModule?t:{default:t}}function Zw(t){return new yu(t)}var yu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,zw.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)}},Xw=yu;so.default=Xw});var ay=Y(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=rb;var eb=tb(Jt());function tb(t){return t&&t.__esModule?t:{default:t}}function rb(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{eb.default[e][r]=t[e][r]})})}});var ld=Y(le=>{"use strict";Object.defineProperty(le,"__esModule",{value:!0});le.addMethod=cb;Object.defineProperty(le,"MixedSchema",{enumerable:!0,get:function(){return uy.default}});Object.defineProperty(le,"mixed",{enumerable:!0,get:function(){return uy.create}});Object.defineProperty(le,"BooleanSchema",{enumerable:!0,get:function(){return cd.default}});Object.defineProperty(le,"bool",{enumerable:!0,get:function(){return cd.create}});Object.defineProperty(le,"boolean",{enumerable:!0,get:function(){return cd.create}});Object.defineProperty(le,"StringSchema",{enumerable:!0,get:function(){return cy.default}});Object.defineProperty(le,"string",{enumerable:!0,get:function(){return cy.create}});Object.defineProperty(le,"NumberSchema",{enumerable:!0,get:function(){return ly.default}});Object.defineProperty(le,"number",{enumerable:!0,get:function(){return ly.create}});Object.defineProperty(le,"DateSchema",{enumerable:!0,get:function(){return dy.default}});Object.defineProperty(le,"date",{enumerable:!0,get:function(){return dy.create}});Object.defineProperty(le,"ObjectSchema",{enumerable:!0,get:function(){return py.default}});Object.defineProperty(le,"object",{enumerable:!0,get:function(){return py.create}});Object.defineProperty(le,"ArraySchema",{enumerable:!0,get:function(){return fy.default}});Object.defineProperty(le,"array",{enumerable:!0,get:function(){return fy.create}});Object.defineProperty(le,"ref",{enumerable:!0,get:function(){return nb.create}});Object.defineProperty(le,"lazy",{enumerable:!0,get:function(){return ib.create}});Object.defineProperty(le,"ValidationError",{enumerable:!0,get:function(){return sb.default}});Object.defineProperty(le,"reach",{enumerable:!0,get:function(){return ob.default}});Object.defineProperty(le,"isSchema",{enumerable:!0,get:function(){return my.default}});Object.defineProperty(le,"setLocale",{enumerable:!0,get:function(){return ab.default}});Object.defineProperty(le,"BaseSchema",{enumerable:!0,get:function(){return ub.default}});var uy=Nn(vg()),cd=Nn(Lg()),cy=Nn(Fg()),ly=Nn($g()),dy=Nn(Qg()),py=Nn(ny()),fy=Nn(sy()),nb=Dn(),ib=oy(),sb=oo(bn()),ob=oo(zl()),my=oo(bi()),ab=oo(ay()),ub=oo(Xt());function oo(t){return t&&t.__esModule?t:{default:t}}function hy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return hy=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=hy();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 cb(t,e,r){if(!t||!(0,my.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 gy=Y(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});var dd=fd();pd.default=()=>{(0,dd.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,dd.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,dd.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 fd=Y(Re=>{"use strict";var lb=Re&&Re.__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]}),db=Re&&Re.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),pb=Re&&Re.__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)&&lb(e,t,r);return db(e,t),e},fb=Re&&Re.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Re,"__esModule",{value:!0});Re.validateOptions=Re.registerOptionPreset=Re.getOptionPresets=Re.getOptionPreset=void 0;var x=pb(ld());ld();var ao=Ot(),mb=fb(gy());It();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}}},yy=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(),hb=t=>Pn[t]?(0,ao.valid)(Pn[t]):(0,ao.err)(`Option preset '${t}' not found.`);Re.getOptionPreset=hb;var gb=()=>Pn;Re.getOptionPresets=gb;var yb=(t,e)=>{Pn[t]=yy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Re.registerOptionPreset=yb;var Eb=t=>{var e,r,n,i,s,o,a,u,c,l,p,m,d,f,g,T,y,O,S,L;try{(0,mb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Pn[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);E=Pn[t.preset]}else E=t.preset;else E=Pn.default;let A=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(p=E.hours.lowerLimit)!==null&&p!==void 0?p:E.hours.minValue,upperLimit:(m=E.hours.upperLimit)!==null&&m!==void 0?m:E.hours.maxValue},daysOfMonth:{lowerLimit:(d=E.daysOfMonth.lowerLimit)!==null&&d!==void 0?d:E.daysOfMonth.minValue,upperLimit:(f=E.daysOfMonth.upperLimit)!==null&&f!==void 0?f:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(T=E.months.upperLimit)!==null&&T!==void 0?T:E.months.maxValue},daysOfWeek:{lowerLimit:(y=E.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:E.daysOfWeek.minValue,upperLimit:(O=E.daysOfWeek.upperLimit)!==null&&O!==void 0?O:E.daysOfWeek.maxValue},years:{lowerLimit:(S=E.years.lowerLimit)!==null&&S!==void 0?S:E.years.minValue,upperLimit:(L=E.years.upperLimit)!==null&&L!==void 0?L:E.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:yy.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(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:x.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:x.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:x.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(A,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ao.valid)(w)}catch(E){return(0,ao.err)(E.errors)}};Re.validateOptions=Eb});var Gt=Y((uo,hd)=>{"use strict";var Ln=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var Un=Ot(),Tb=Ln(jh()),_b=Ln(Yh()),Ab=Ln(Hh()),Sb=Ln(Kh()),Ob=Ln(zh()),Ib=Ln(Jh()),xb=Ln(Zh()),wb=fd();It();var bb=(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)},md=(t,e={})=>{let r=(0,wb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=bb(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,Tb.default)(s,n)),o.push((0,_b.default)(s,n)),o.push((0,Ab.default)(s,n)),o.push((0,Sb.default)(s,n)),o.push((0,Ob.default)(s,n)),o.push((0,Ib.default)(s,n)),n.useYears&&o.push((0,xb.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)};uo.default=md;hd.exports=md;hd.exports.default=md});var $E=Y(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var rr=class extends Error{},Id=class extends rr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},xd=class extends rr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},wd=class extends rr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Fn=class extends rr{},Iu=class extends rr{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends rr{},qt=class extends rr{constructor(){super("Zone is an abstract class")}},b="numeric",Rt="short",rt="long",xu={year:b,month:b,day:b},qy={year:b,month:Rt,day:b},Rb={year:b,month:Rt,day:b,weekday:Rt},Wy={year:b,month:rt,day:b},Qy={year:b,month:rt,day:b,weekday:rt},jy={hour:b,minute:b},Yy={hour:b,minute:b,second:b},Hy={hour:b,minute:b,second:b,timeZoneName:Rt},Ky={hour:b,minute:b,second:b,timeZoneName:rt},zy={hour:b,minute:b,hourCycle:"h23"},Jy={hour:b,minute:b,second:b,hourCycle:"h23"},Zy={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Rt},Xy={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:rt},eE={year:b,month:b,day:b,hour:b,minute:b},tE={year:b,month:b,day:b,hour:b,minute:b,second:b},rE={year:b,month:Rt,day:b,hour:b,minute:b},nE={year:b,month:Rt,day:b,hour:b,minute:b,second:b},Db={year:b,month:Rt,day:b,weekday:Rt,hour:b,minute:b},iE={year:b,month:rt,day:b,hour:b,minute:b,timeZoneName:Rt},sE={year:b,month:rt,day:b,hour:b,minute:b,second:b,timeZoneName:Rt},oE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,timeZoneName:rt},aE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,second:b,timeZoneName:rt},vr=class{get type(){throw new qt}get name(){throw new qt}get ianaName(){return this.name}get isUniversal(){throw new qt}offsetName(e,r){throw new qt}formatOffset(e,r){throw new qt}offset(e){throw new qt}equals(e){throw new qt}get isValid(){throw new qt}},gd=null,go=class t extends vr{static get instance(){return gd===null&&(gd=new t),gd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return cE(e,r,n)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Su={};function vb(t){return Su[t]||(Su[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"})),Su[t]}var Cb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Nb(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 Pb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Cb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Eu={},nr=class t extends vr{static create(e){return Eu[e]||(Eu[e]=new t(e)),Eu[e]}static resetCache(){Eu={},Su={}}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 cE(e,r,n,this.name)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=vb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Pb(n,r):Nb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Fd({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}},Ey={};function Ub(t,e={}){let r=JSON.stringify([t,e]),n=Ey[r];return n||(n=new Intl.ListFormat(t,e),Ey[r]=n),n}var bd={};function Rd(t,e={}){let r=JSON.stringify([t,e]),n=bd[r];return n||(n=new Intl.DateTimeFormat(t,e),bd[r]=n),n}var Dd={};function Lb(t,e={}){let r=JSON.stringify([t,e]),n=Dd[r];return n||(n=new Intl.NumberFormat(t,e),Dd[r]=n),n}var vd={};function Mb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=vd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),vd[i]=s),s}var fo=null;function kb(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function Fb(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=Rd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Rd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Bb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Gb(t){let e=[];for(let r=1;r<=12;r++){let n=Te.utc(2016,r,1);e.push(t(n))}return e}function $b(t){let e=[];for(let r=1;r<=7;r++){let n=Te.utc(2016,11,13+r);e.push(t(n))}return e}function Tu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Vb(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 Cd=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=Lb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):kd(e,3);return Ie(r,this.padTo)}}},Nd=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&&nr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Te.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=Rd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Pd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&uE()&&(this.rtf=Mb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):iR(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ee=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||me.defaultLocale,o=s||(i?"en-US":kb()),a=r||me.defaultNumberingSystem,u=n||me.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,bd={},Dd={},vd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Fb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Bb(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=Vb(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 Tu(this,e,n,pE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Gb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Tu(this,e,n,hE,()=>{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]=$b(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Tu(this,void 0,e,()=>gE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Te.utc(2016,11,13,9),Te.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Tu(this,e,r,yE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Te.utc(-40,1,1),Te.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 Cd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Nd(e,this.intl,r)}relFormatter(e={}){return new Pd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ub(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},yd=null,nt=class t extends vr{static get utcInstance(){return yd===null&&(yd=new t(0)),yd}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(Cu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ho(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ho(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ho(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},wu=class extends vr{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 Dr(t,e){if(ne(t)||t===null)return e;if(t instanceof vr)return t;if(qb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||nr.create(t)}else return Gn(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new wu(t)}var Ty=()=>Date.now(),_y="system",Ay=null,Sy=null,Oy=null,Iy=60,xy,me=class{static get now(){return Ty}static set now(e){Ty=e}static set defaultZone(e){_y=e}static get defaultZone(){return Dr(_y,go.instance)}static get defaultLocale(){return Ay}static set defaultLocale(e){Ay=e}static get defaultNumberingSystem(){return Sy}static set defaultNumberingSystem(e){Sy=e}static get defaultOutputCalendar(){return Oy}static set defaultOutputCalendar(e){Oy=e}static get twoDigitCutoffYear(){return Iy}static set twoDigitCutoffYear(e){Iy=e%100}static get throwOnInvalid(){return xy}static set throwOnInvalid(e){xy=e}static resetCaches(){Ee.resetCache(),nr.resetCache()}};function ne(t){return typeof t>"u"}function Gn(t){return typeof t=="number"}function vu(t){return typeof t=="number"&&t%1===0}function qb(t){return typeof t=="string"}function Wb(t){return Object.prototype.toString.call(t)==="[object Date]"}function uE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Qb(t){return Array.isArray(t)?t:[t]}function wy(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 jb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Mi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function tr(t,e,r){return vu(t)&&t>=e&&t<=r}function Yb(t,e){return t-e*Math.floor(t/e)}function Ie(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Rr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Mn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Md(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function kd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function yo(t){return t%4===0&&(t%100!==0||t%400===0)}function mo(t){return yo(t)?366:365}function bu(t,e){let r=Yb(e-1,12)+1,n=t+(e-r)/12;return r===2?yo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Fd(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 Ru(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 Ud(t){return t>99?t:t>me.twoDigitCutoffYear?1900+t:2e3+t}function cE(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 Cu(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 lE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Qe(`Invalid unit value ${t}`);return e}function Du(t,e){let r={};for(let n in t)if(Mi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=lE(i)}return r}function ho(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Ie(r,2)}:${Ie(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Ie(r,2)}${Ie(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Nu(t){return jb(t,["hour","minute","second","millisecond"])}var Hb=["January","February","March","April","May","June","July","August","September","October","November","December"],dE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Kb=["J","F","M","A","M","J","J","A","S","O","N","D"];function pE(t){switch(t){case"narrow":return[...Kb];case"short":return[...dE];case"long":return[...Hb];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 fE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],mE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],zb=["M","T","W","T","F","S","S"];function hE(t){switch(t){case"narrow":return[...zb];case"short":return[...mE];case"long":return[...fE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var gE=["AM","PM"],Jb=["Before Christ","Anno Domini"],Zb=["BC","AD"],Xb=["B","A"];function yE(t){switch(t){case"narrow":return[...Xb];case"short":return[...Zb];case"long":return[...Jb];default:return null}}function eR(t){return gE[t.hour<12?0:1]}function tR(t,e){return hE(e)[t.weekday-1]}function rR(t,e){return pE(e)[t.month-1]}function nR(t,e){return yE(e)[t.year<0?0:1]}function iR(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 by(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var sR={D:xu,DD:qy,DDD:Wy,DDDD:Qy,t:jy,tt:Yy,ttt:Hy,tttt:Ky,T:zy,TT:Jy,TTT:Zy,TTTT:Xy,f:eE,ff:rE,fff:iE,ffff:oE,F:tE,FF:nE,FFF:sE,FFFF:aE},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 sR[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 Ie(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?eR(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(d,f)=>n?rR(e,d):s(f?{month:d}:{month:d,day:"numeric"},"month"),c=(d,f)=>n?tR(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?nR(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 by(t.parseFormat(r),m)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return by(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},EE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function ki(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Fi(...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 Bi(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 TE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Rr(e[r+i]);return[n,null,r+i]}}var _E=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,oR=`(?:${_E.source}?(?:\\[(${EE.source})\\])?)?`,Bd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,AE=RegExp(`${Bd.source}${oR}`),Gd=RegExp(`(?:T${AE.source})?`),aR=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,uR=/(\d{4})-?W(\d\d)(?:-?(\d))?/,cR=/(\d{4})-?(\d{3})/,lR=TE("weekYear","weekNumber","weekDay"),dR=TE("year","ordinal"),pR=/(\d{4})-(\d\d)-(\d\d)/,SE=RegExp(`${Bd.source} ?(?:${_E.source}|(${EE.source}))?`),fR=RegExp(`(?: ${SE.source})?`);function Li(t,e,r){let n=t[e];return ne(n)?r:Rr(n)}function mR(t,e){return[{year:Li(t,e),month:Li(t,e+1,1),day:Li(t,e+2,1)},null,e+3]}function Gi(t,e){return[{hours:Li(t,e,0),minutes:Li(t,e+1,0),seconds:Li(t,e+2,0),milliseconds:Md(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Cu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?nr.create(t[e]):null;return[{},r,e+1]}var hR=RegExp(`^T?${Bd.source}$`),gR=/^-?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 yR(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(Md(c),p)}]}var ER={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 $d(t,e,r,n,i,s,o){let a={year:e.length===2?Ud(Rr(e)):Rr(e),month:dE.indexOf(r)+1,day:Rr(n),hour:Rr(i),minute:Rr(s)};return o&&(a.second=Rr(o)),t&&(a.weekday=t.length>3?fE.indexOf(t)+1:mE.indexOf(t)+1),a}var TR=/^(?:(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 _R(t){let[,e,r,n,i,s,o,a,u,c,l,p]=t,m=$d(e,i,n,r,s,o,a),d;return u?d=ER[u]:c?d=0:d=Cu(l,p),[m,new nt(d)]}function AR(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var SR=/^(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$/,OR=/^(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$/,IR=/^(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 Ry(t){let[,e,r,n,i,s,o,a]=t;return[$d(e,i,n,r,s,o,a),nt.utcInstance]}function xR(t){let[,e,r,n,i,s,o,a]=t;return[$d(e,a,r,n,i,s,o),nt.utcInstance]}var wR=ki(aR,Gd),bR=ki(uR,Gd),RR=ki(cR,Gd),DR=ki(AE),OE=Fi(mR,Gi,Eo,To),vR=Fi(lR,Gi,Eo,To),CR=Fi(dR,Gi,Eo,To),NR=Fi(Gi,Eo,To);function PR(t){return Bi(t,[wR,OE],[bR,vR],[RR,CR],[DR,NR])}function UR(t){return Bi(AR(t),[TR,_R])}function LR(t){return Bi(t,[SR,Ry],[OR,Ry],[IR,xR])}function MR(t){return Bi(t,[gR,yR])}var kR=Fi(Gi);function FR(t){return Bi(t,[hR,kR])}var BR=ki(pR,fR),GR=ki(SE),$R=Fi(Gi,Eo,To);function VR(t){return Bi(t,[BR,OE],[GR,$R])}var qR="Invalid Duration",IE={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}},WR={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},...IE},mt=146097/400,Pi=146097/4800,QR={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:Pi/7,days:Pi,hours:Pi*24,minutes:Pi*24*60,seconds:Pi*24*60*60,milliseconds:Pi*24*60*60*1e3},...IE},kn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],jR=kn.slice(0).reverse();function br(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 xe(n)}function YR(t){return t<0?Math.floor(t):Math.ceil(t)}function xE(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?YR(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function HR(t,e){jR.reduce((r,n)=>ne(e[n])?r:(r&&xE(t,e,r,e,n),n),null)}function KR(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var xe=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?QR:WR;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ee.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:Du(e,t.normalizeUnit),loc:Ee.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 Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=MR(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]=FR(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(me.throwOnInvalid)throw new wd(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 Iu(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):qR}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+=kd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of kn)(Mi(r.values,i)||Mi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return br(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]=lE(e(this.values[n],n));return br(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Du(e,t.normalizeUnit)};return br(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 br(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return HR(this.matrix,e),br(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=KR(this.normalize().shiftToAll().toObject());return br(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)&&xE(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 br(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 br(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}},Ui="Invalid Interval";function zR(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 Qe("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(me.throwOnInvalid)throw new xd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=zR(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=xe.fromDurationLike(r),i=po(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=xe.fromDurationLike(r),i=po(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=Te.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Te.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=xe.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=xe.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(po).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=xe.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()})`:Ui}toLocaleString(e=xu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Ui}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Ui}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ui}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Ui}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Ui}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):xe.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Bn=class{static hasDST(e=me.defaultZone){let r=Te.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return nr.isValidZone(e)}static normalizeZone(e){return Dr(e,me.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ee.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ee.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ee.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ee.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ee.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ee.create(r,null,"gregory").eras(e)}static features(){return{relative:uE()}}};function Dy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(xe.fromMillis(n).as("days"))}function JR(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=Dy(u,c);return(l-l%7)/7}],["days",Dy]],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 ZR(t,e,r,n){let[i,s,o,a]=JR(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=xe.fromObject(s,n);return c.length>0?xe.fromMillis(u,n).shiftTo(...c).plus(l):l}var Vd={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},vy={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},XR=Vd.hanidec.replace(/[\[|\]]/g,"").split("");function eD(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(Vd.hanidec)!==-1)e+=XR.indexOf(t[r]);else for(let i in vy){let[s,o]=vy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Vd[t||"latn"]}${e}`)}var tD="missing Intl.DateTimeFormat.formatToParts support";function ae(t,e=r=>r){return{regex:t,deser:([r])=>e(eD(r))}}var rD=String.fromCharCode(160),wE=`[ ${rD}]`,bE=new RegExp(wE,"g");function nD(t){return t.replace(/\./g,"\\.?").replace(bE,wE)}function Cy(t){return t.replace(/\./g,"").replace(bE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(nD).join("|")),deser:([r])=>t.findIndex(n=>Cy(r)===Cy(n))+e}}function Ny(t,e){return{regex:t,deser:([,r,n])=>Cu(r,n),groups:e}}function Ed(t){return{regex:t,deser:([e])=>e}}function iD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function sD(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=T=>({regex:RegExp(iD(T.val)),deser:([y])=>y,literal:!0}),g=(T=>{if(t.literal)return d(T);switch(T.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ae(c);case"yy":return ae(p,Ud);case"yyyy":return ae(s);case"yyyyy":return ae(m);case"yyyyyy":return ae(o);case"M":return ae(a);case"MM":return ae(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ae(a);case"LL":return ae(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ae(a);case"dd":return ae(n);case"o":return ae(u);case"ooo":return ae(i);case"HH":return ae(n);case"H":return ae(a);case"hh":return ae(n);case"h":return ae(a);case"mm":return ae(n);case"m":return ae(a);case"q":return ae(a);case"qq":return ae(n);case"s":return ae(a);case"ss":return ae(n);case"S":return ae(u);case"SSS":return ae(i);case"u":return Ed(l);case"uu":return Ed(a);case"uuu":return ae(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ae(s);case"kk":return ae(p,Ud);case"W":return ae(a);case"WW":return ae(n);case"E":case"c":return ae(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 Ny(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Ny(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Ed(/[a-z_+-/]{1,256}?/i);default:return d(T)}})(t)||{invalidReason:tD};return g.token=t,g}var oD={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 aD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=oD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function uD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function cD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Mi(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 lD(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=nr.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=Md(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Td=null;function dD(){return Td||(Td=Te.fromMillis(1555555555555)),Td}function pD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=vE(r,e);return n==null||n.includes(void 0)?t:n}function RE(t,e){return Array.prototype.concat(...t.map(r=>pD(r,e)))}function DE(t,e,r){let n=RE(et.parseFormat(r),t),i=n.map(o=>sD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=uD(i),u=RegExp(o,"i"),[c,l]=cD(e,u,a),[p,m,d]=l?lD(l):[null,null,void 0];if(Mi(l,"a")&&Mi(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 fD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=DE(t,e,r);return[n,i,s,o]}function vE(t,e){return t?et.create(e,t).formatDateTimeParts(dD()).map(i=>aD(i,t)):null}var CE=[0,31,59,90,120,151,181,212,243,273,304,334],NE=[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 PE(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 UE(t,e,r){return r+(yo(t)?NE:CE)[e-1]}function LE(t,e){let r=yo(t)?NE:CE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Ld(t){let{year:e,month:r,day:n}=t,i=UE(e,r,n),s=PE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Ru(a)):o>Ru(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Nu(t)}}function Py(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=PE(e,1,4),s=mo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=mo(a)):o>s?(a=e+1,o-=mo(e)):a=e;let{month:u,day:c}=LE(a,o);return{year:a,month:u,day:c,...Nu(t)}}function _d(t){let{year:e,month:r,day:n}=t,i=UE(e,r,n);return{year:e,ordinal:i,...Nu(t)}}function Uy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=LE(e,r);return{year:e,month:n,day:i,...Nu(t)}}function mD(t){let e=vu(t.weekYear),r=tr(t.weekNumber,1,Ru(t.weekYear)),n=tr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function hD(t){let e=vu(t.year),r=tr(t.ordinal,1,mo(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function ME(t){let e=vu(t.year),r=tr(t.month,1,12),n=tr(t.day,1,bu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function kE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=tr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=tr(r,0,59),a=tr(n,0,59),u=tr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Ad="Invalid DateTime",Ly=864e13;function _u(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function Sd(t){return t.weekData===null&&(t.weekData=Ld(t.c)),t.weekData}function co(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Te({...r,...e,old:r})}function FE(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 My(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function Ou(t,e,r){return FE(Fd(t),e,r)}function ky(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,bu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=xe.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=Fd(s),[u,c]=FE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function lo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Te.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Te.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Au(t,e,r=!0){return t.isValid?et.create(Ee.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Od(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Ie(t.c.year,r?6:4),e?(n+="-",n+=Ie(t.c.month),n+="-",n+=Ie(t.c.day)):(n+=Ie(t.c.month),n+=Ie(t.c.day)),n}function Fy(t,e,r,n,i,s){let o=Ie(t.c.hour);return e?(o+=":",o+=Ie(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Ie(t.c.minute),(t.c.second!==0||!r)&&(o+=Ie(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Ie(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Ie(Math.trunc(-t.o/60)),o+=":",o+=Ie(Math.trunc(-t.o%60))):(o+="+",o+=Ie(Math.trunc(t.o/60)),o+=":",o+=Ie(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var BE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},gD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},yD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},GE=["year","month","day","hour","minute","second","millisecond"],ED=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],TD=["year","ordinal","hour","minute","second","millisecond"];function By(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 Iu(t);return e}function Gy(t,e){let r=Dr(e.zone,me.defaultZone),n=Ee.fromObject(e),i=me.now(),s,o;if(ne(t.year))s=i;else{for(let c of GE)ne(t[c])&&(t[c]=BE[c]);let a=ME(t)||kE(t);if(a)return Te.invalid(a);let u=r.offset(i);[s,o]=Ou(t,u,r)}return new Te({ts:s,zone:r,loc:n,o})}function $y(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=kd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function Vy(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 Te=class t{constructor(e){let r=e.zone||me.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:_u(r));this.ts=ne(e.ts)?me.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=My(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||Ee.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]=Vy(arguments),[n,i,s,o,a,u,c]=r;return Gy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Vy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,Gy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Wb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Dr(r.zone,me.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ee.fromObject(r)}):t.invalid(_u(i))}static fromMillis(e,r={}){if(Gn(e))return e<-Ly||e>Ly?t.invalid("Timestamp out of range"):new t({ts:e,zone:Dr(r.zone,me.defaultZone),loc:Ee.fromObject(r)});throw new Qe(`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:Dr(r.zone,me.defaultZone),loc:Ee.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Dr(r.zone,me.defaultZone);if(!n.isValid)return t.invalid(_u(n));let i=me.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Du(e,By),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,p=o.weekYear||o.weekNumber,m=Ee.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,T=My(i,s);d?(f=ED,g=gD,T=Ld(T)):a?(f=TD,g=yD,T=_d(T)):(f=GE,g=BE);let y=!1;for(let w of f){let F=o[w];ne(F)?y?o[w]=g[w]:o[w]=T[w]:y=!0}let O=d?mD(o):a?hD(o):ME(o),S=O||kE(o);if(S)return t.invalid(S);let L=d?Py(o):a?Uy(o):o,[E,A]=Ou(L,s,n),B=new t({ts:E,zone:n,o:A,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=PR(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=UR(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=LR(e);return lo(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=Ee.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=fD(o,e,r);return l?t.invalid(l):lo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=VR(e);return lo(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(me.throwOnInvalid)throw new Id(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=vE(e,Ee.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return RE(et.parseFormat(e),Ee.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?Sd(this).weekYear:NaN}get weekNumber(){return this.isValid?Sd(this).weekNumber:NaN}get weekday(){return this.isValid?Sd(this).weekday:NaN}get ordinal(){return this.isValid?_d(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 yo(this.year)}get daysInMonth(){return bu(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ru(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(me.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Dr(e,me.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=Ou(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(_u(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return co(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Du(e,By),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=Py({...Ld(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(bu(c.year,c.month),c.day))):c=Uy({..._d(this.c),...r});let[l,p]=Ou(c,this.o,this.zone);return co(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;let r=xe.fromDurationLike(e);return co(this,ky(this,r))}minus(e){if(!this.isValid)return this;let r=xe.fromDurationLike(e).negate();return co(this,ky(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=xe.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):Ad}toLocaleString(e=xu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Ad}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=Od(this,o);return a+="T",a+=Fy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Od(this,e==="extended"):null}toISOWeekDate(){return Au(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":"")+Fy(this,o==="extended",r,e,n,s):null}toRFC2822(){return Au(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Au(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Od(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")),Au(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ad}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 xe.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Qb(r).map(xe.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=ZR(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),$y(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?$y(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 wy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return wy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Ee.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return DE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return xu}static get DATE_MED(){return qy}static get DATE_MED_WITH_WEEKDAY(){return Rb}static get DATE_FULL(){return Wy}static get DATE_HUGE(){return Qy}static get TIME_SIMPLE(){return jy}static get TIME_WITH_SECONDS(){return Yy}static get TIME_WITH_SHORT_OFFSET(){return Hy}static get TIME_WITH_LONG_OFFSET(){return Ky}static get TIME_24_SIMPLE(){return zy}static get TIME_24_WITH_SECONDS(){return Jy}static get TIME_24_WITH_SHORT_OFFSET(){return Zy}static get TIME_24_WITH_LONG_OFFSET(){return Xy}static get DATETIME_SHORT(){return eE}static get DATETIME_SHORT_WITH_SECONDS(){return tE}static get DATETIME_MED(){return rE}static get DATETIME_MED_WITH_SECONDS(){return nE}static get DATETIME_MED_WITH_WEEKDAY(){return Db}static get DATETIME_FULL(){return iE}static get DATETIME_FULL_WITH_SECONDS(){return sE}static get DATETIME_HUGE(){return oE}static get DATETIME_HUGE_WITH_SECONDS(){return aE}};function po(t){if(Te.isDateTime(t))return t;if(t&&t.valueOf&&Gn(t.valueOf()))return Te.fromJSDate(t);if(t&&typeof t=="object")return Te.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var _D="3.2.1";it.DateTime=Te;it.Duration=xe;it.FixedOffsetZone=nt;it.IANAZone=nr;it.Info=Bn;it.Interval=$n;it.InvalidZone=wu;it.Settings=me;it.SystemZone=go;it.VERSION=_D;it.Zone=vr});var qE=Y((Qq,VE)=>{"use strict";var Vn=$E();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))}VE.exports=J});var jE=Y((jq,QE)=>{"use strict";function qn(t){return{start:t,count:1}}function WE(t,e){t.end=e,t.step=e-t.start,t.count=2}function qd(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 AD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(qd(e,r,qn(i)),r=void 0):r?r.count===1?WE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(qn(r.start)),r=qn(r.end),WE(r,i)):(qd(e,r),r=qn(i)):r=qn(i)}return qd(e,r),e}QE.exports=AD});var HE=Y((Yq,YE)=>{"use strict";var SD=jE();function OD(t,e,r){var n=SD(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(",")}YE.exports=OD});var JE=Y((Hq,zE)=>{"use strict";var Wn=qE(),ID=HE(),KE=1e4;function P(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=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,T=f.length;g<T;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 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(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=[],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,T=d;g<=T;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,E=Math.floor(L/7)+S;return E===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 Wn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function p(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<KE;){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>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,T=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(T,this.fields.hour)){if(this._dstEnd===T&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==T){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(T-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>=KE)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Wn(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 Wn(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(ID(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 Wn(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,p=P.map.length;l<p;++l){var m=P.map[l],d=u[u.length>p?l:l-c];if(l<c||!d)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var f=m==="dayOfWeek"?O(d):d;a.push(P._parseField(m,f,P.constraints[l]))}}for(var g={},l=0,p=P.map.length;l<p;l++){var T=P.map[l];g[T]=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 E=+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(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,L[0]}return S}}return i(e,r)};P.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,T=d.length;g<T;g++){var y=d[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,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=P._handleMaxDaysInMonth(i);return i.dayOfMonth=p||i.dayOfMonth,new P(i,r||{})};zE.exports=P});var XE=Y((Kq,ZE)=>{"use strict";var Pu=JE();function Cr(){}Cr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Pu.parse(e)};if(r.length>6)return{interval:Pu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Cr.parseExpression=function(e,r){return Pu.parse(e,r)};Cr.fieldsToExpression=function(e,r){return Pu.fieldsToExpression(e,r)};Cr.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=Cr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Cr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Cr.parseString(i.toString()))})};ZE.exports=Cr});var Ck={};N(Ck,{APP_DEV:()=>Gu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Bu,BUDIBASE_DATASOURCE_TYPE:()=>cp,BadRequestError:()=>Tc,BudibaseError:()=>ps,Config:()=>hp,Cookie:()=>Wi,DEFAULT_BB_DATASOURCE_ID:()=>xi,DEFAULT_EMPLOYEE_TABLE_ID:()=>fp,DEFAULT_EXPENSES_TABLE_ID:()=>pp,DEFAULT_INVENTORY_TABLE_ID:()=>dp,DEFAULT_JOBS_TABLE_ID:()=>lp,DEFAULT_TENANT_ID:()=>he,DeprecatedViews:()=>qi,DocumentType:()=>ye,Duration:()=>De,DurationType:()=>Mf,EmailUnavailableError:()=>pr,ErrorCode:()=>Sc,FeatureDisabledError:()=>Ac,GlobalRole:()=>mp,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ar,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Vu,MIN_VALID_DATE:()=>pT,NotFoundError:()=>Ec,RedisClient:()=>Be,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>ir,SQS_DATASOURCE_INTERNAL:()=>up,StaticDatabases:()=>Ae,UNICODE_MAX:()=>ke,UsageLimitError:()=>_c,UserStatus:()=>$u,ViewName:()=>Lr,accounts:()=>oi,auth:()=>Xm,blacklist:()=>nh,cache:()=>xa,configs:()=>tn,constants:()=>gp,context:()=>ge,db:()=>Wr,docIds:()=>of,docUpdates:()=>sh,encryption:()=>zm,env:()=>h,errors:()=>Ic,events:()=>ys,features:()=>$m,getPublicError:()=>Oc,init:()=>vk,installation:()=>Pc,locks:()=>si,logging:()=>sc,middleware:()=>Zm,objectStore:()=>kp,permissions:()=>Fm,platform:()=>aa,plugins:()=>th,queue:()=>sm,redis:()=>rh,roles:()=>Xf,security:()=>Sm,sessions:()=>Gc,setEnv:()=>xo,sql:()=>mh,tenancy:()=>Dk,timers:()=>Mo,userUtils:()=>em,users:()=>Es,utils:()=>as,withEnv:()=>ET});module.exports=fO(Ck);var tn={};N(tn,{analyticsEnabled:()=>Cc,generateConfigID:()=>Um,getAIConfig:()=>tM,getConfig:()=>kt,getDefaultGoogleConfig:()=>Nm,getGoogleConfig:()=>Qc,getGoogleDatasourceConfig:()=>Mm,getOIDCConfig:()=>Z0,getOIDCConfigById:()=>km,getOIDCLogosDoc:()=>z0,getPlatformUrl:()=>va,getSCIMConfig:()=>eM,getSMTPConfig:()=>X0,getSMTPConfigDoc:()=>gS,getSettingsConfig:()=>Lm,getSettingsConfigDoc:()=>Lc,save:()=>H0});var mO=["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"],gh=[...mO],yh={"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 ml=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(ml||{}),hl=(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))(hl||{}),Ma=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Ma||{});var gl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(gl||{});var Tr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Tr||{}),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||{}),hi=(r=>(r.AND="$and",r.OR="$or",r))(hi||{});function ka(t){return Object.values(hi).includes(t)}function Eh(t){return Object.values(Tr).includes(t)}function Th(t){return Object.values(Yt).includes(t)}function yl(t){return Object.values(cn).includes(t)}var gi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(gi||{});var _h=t=>typeof t=="object"&&t._id&&t._rev;var Is=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Is||{});var Ah={USE_ZOD_VALIDATOR:!1,CHECK_SCREEN_COMPONENT_SETTINGS_ERRORS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var NF={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(xs||{});var Fa=(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))(Fa||{});var Ba=t=>t.hosting==="cloud";var Ga=t=>t.authType==="sso";var ce=(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))(ce||{}),Me=(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))(Me||{}),El=(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))(El||{});var fe=(A=>(A.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",A.CREATE_ROW="CREATE_ROW",A.UPDATE_ROW="UPDATE_ROW",A.DELETE_ROW="DELETE_ROW",A.EXECUTE_BASH="EXECUTE_BASH",A.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",A.EXECUTE_SCRIPT="EXECUTE_SCRIPT",A.EXECUTE_QUERY="EXECUTE_QUERY",A.SERVER_LOG="SERVER_LOG",A.DELAY="DELAY",A.FILTER="FILTER",A.QUERY_ROWS="QUERY_ROWS",A.LOOP="LOOP",A.COLLECT="COLLECT",A.OPENAI="OPENAI",A.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",A.BRANCH="BRANCH",A.discord="discord",A.slack="slack",A.zapier="zapier",A.integromat="integromat",A.n8n="n8n",A))(fe||{}),Sh=[...Object.values(fe),...Object.values(El)];var Tl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Tl||{});var _l="bb_internal";var Oh=["attachment_single","attachment","bb_reference","json","array"];var v="_",ke="\uFFF0",_r=t=>`${t}${v}`,ye=(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))(ye||{}),WB=Object.values(ye).sort((t,e)=>e.length-t.length);var Ar=(e=>(e.USER_METADATA="ta_users",e))(Ar||{}),Al=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Al||{}),QB=Object.values(Al).sort((t,e)=>e.length-t.length);function $a(t){return!!t.providerType}var Sl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Sl||{});var IG=Object.values(Sl);var DG=["rows","queries","automations"],vG=["queries","automations"];var dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(dn||{}),Va=(r=>(r.STRING="string",r.NUMBER="number",r))(Va||{});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 Il;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Il||(Il={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Sr=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"]),yO=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 Ti=(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}},wh=Ti;function EO(t){wh=t}function qa(){return wh}var Wa=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},TO=[];function C(t,e){let r=qa(),n=Wa({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ti?void 0:Ti].filter(i=>!!i)});t.common.issues.push(n)}var Le=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"}),Ei=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),xl=t=>t.status==="aborted",wl=t=>t.status==="dirty",Rs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function Qa(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function bh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var $;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})($||($={}));var ws,bs,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}},Ih=(t,e)=>{if(Rs(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 Sr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Sr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Le,ctx:{common:e.parent.common,data:e.data,parsedType:Sr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ds(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Sr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Ih(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:Sr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ds(i)?i:Promise.resolve(i));return Ih(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Je({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Bt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return zt.create(this,this._def)}promise(){return xr.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:H.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:H.ZodDefault})}brand(){return new vs({typeName:H.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:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Cs.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},_O=/^c[^\s-]{8,}$/i,AO=/^[0-9a-z]+$/,SO=/^[0-9A-HJKMNP-TV-Z]{26}$/,OO=/^[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,IO=/^[a-z0-9_-]{21}$/i,xO=/^[-+]?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)?)??$/,wO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,bO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ol,RO=/^(?:(?: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])$/,DO=/^(([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})))$/,vO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Rh="((\\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])))",CO=new RegExp(`^${Rh}$`);function Dh(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 NO(t){return new RegExp(`^${Dh(t)}$`)}function vh(t){let e=`${Rh}T${Dh(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 PO(t,e){return!!((e==="v4"||!e)&&RO.test(t)||(e==="v6"||!e)&&DO.test(t))}var Or=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 C(s,{code:I.invalid_type,expected:M.string,received:s.parsedType}),z}let n=new Le,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),C(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),C(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?C(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&C(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")wO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ol||(Ol=new RegExp(bO,"u")),Ol.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")OO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")IO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")_O.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")AO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")SO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(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),C(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),C(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),C(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),C(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),C(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?vh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?CO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?NO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?xO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?PO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?vO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(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}};Or.create=t=>{var e;return new Or({checks:[],typeName:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function UO(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)!==M.number){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_type,expected:M.number,received:s.parsedType}),z}let n,i=new Le;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),C(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),C(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),C(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?UO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),C(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),C(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:H.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)!==M.bigint){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_type,expected:M.bigint,received:s.parsedType}),z}let n,i=new Le;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),C(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),C(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),C(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:H.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)!==M.boolean){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.boolean,received:n.parsedType}),z}return Fe(e.data)}};mn.create=t=>new mn({typeName:H.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)!==M.date){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_date}),z}let n=new Le,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),C(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),C(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:H.ZodDate,...Z(t)});var _i=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),z}return Fe(e.data)}};_i.create=t=>new _i({typeName:H.ZodSymbol,...Z(t)});var gn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),z}return Fe(e.data)}};gn.create=t=>new gn({typeName:H.ZodUndefined,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.null,received:n.parsedType}),z}return Fe(e.data)}};yn.create=t=>new yn({typeName:H.ZodNull,...Z(t)});var Ir=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};Ir.create=t=>new Ir({typeName:H.ZodAny,...Z(t)});var Kt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Kt.create=t=>new Kt({typeName:H.ZodUnknown,...Z(t)});var St=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return C(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};St.create=t=>new St({typeName:H.ZodNever,...Z(t)});var Ai=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),z}return Fe(e.data)}};Ai.create=t=>new Ai({typeName:H.ZodVoid,...Z(t)});var zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return C(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)&&(C(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&&(C(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&&(C(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=>Le.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Le.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};zt.create=(t,e)=>new zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...Z(e)});function yi(t){if(t instanceof qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(yi(n))}return new qe({...t._def,shape:()=>e})}else return t instanceof zt?new zt({...t._def,type:yi(t.element)}):t instanceof dt?dt.create(yi(t.unwrap())):t instanceof Bt?Bt.create(yi(t.unwrap())):t instanceof Ft?Ft.create(t.items.map(e=>yi(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 C(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof St&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],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 St){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(C(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=>Le.mergeObjectSync(n,c)):Le.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return $.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=$.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return yi(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 Ch(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});var 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 C(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 C(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};En.create=(t,e)=>new En({options:t,typeName:H.ZodUnion,...Z(e)});var Ht=t=>t instanceof _n?Ht(t.schema):t instanceof Je?Ht(t.innerType()):t instanceof An?[t.value]:t instanceof Sn?t.options:t instanceof On?te.objectValues(t.enum):t instanceof In?Ht(t._def.innerType):t instanceof gn?[void 0]:t instanceof yn?[null]:t instanceof dt?[void 0,...Ht(t.unwrap())]:t instanceof Bt?[null,...Ht(t.unwrap())]:t instanceof vs||t instanceof wn?Ht(t.unwrap()):t instanceof xn?Ht(t._def.innerType):[],ja=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return C(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}):(C(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=Ht(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function bl(t,e){let r=Sr(t),n=Sr(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=bl(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=bl(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 Tn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(xl(s)||xl(o))return z;let a=bl(s.value,o.value);return a.valid?((wl(s)||wl(o))&&r.dirty(),{status:r.value,value:a.data}):(C(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:H.ZodIntersection,...Z(r)});var Ft=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return C(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return C(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&&(C(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=>Le.mergeArray(r,o)):Le.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Ft.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ft({items:t,typeName:H.ZodTuple,rest:null,...Z(e)})};var Ya=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return C(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?Le.mergeObjectAsync(r,i):Le.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:H.ZodRecord,...Z(n)}):new t({keyType:Or.create(),valueType:e,typeName:H.ZodRecord,...Z(r)})}},Si=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 C(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}}}};Si.create=(t,e,r)=>new Si({valueType:e,keyType:t,typeName:H.ZodMap,...Z(r)});var Oi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return C(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&&(C(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&&(C(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)}};Oi.create=(t,e)=>new Oi({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...Z(e)});var Ha=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 C(r,{code:I.invalid_type,expected:M.function,received:r.parsedType}),z;function n(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),Ti].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),Ti].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 xr){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:Ft.create(e).rest(Kt.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||Ft.create([]).rest(Kt.create()),returns:r||Kt.create(),typeName:H.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:H.ZodLazy,...Z(e)});var An=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return C(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}};An.create=(t,e)=>new An({value:t,typeName:H.ZodLiteral,...Z(e)});function Ch(t,e){return new Sn({values:t,typeName:H.ZodEnum,...Z(e)})}var Sn=class t extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return C(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Qa(this,ws,"f")||bh(this,ws,new Set(this._def.values),"f"),!Qa(this,ws,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return C(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})}};ws=new WeakMap;Sn.create=Ch;var On=class extends X{constructor(){super(...arguments),bs.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 C(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),z}if(Qa(this,bs,"f")||bh(this,bs,new Set(te.getValidEnumValues(this._def.values)),"f"),!Qa(this,bs,"f").has(e.data)){let i=te.objectValues(r);return C(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Fe(e.data)}get enum(){return this._def.values}};bs=new WeakMap;On.create=(t,e)=>new On({values:t,typeName:H.ZodNativeEnum,...Z(e)});var xr=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 C(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})))}};xr.create=(t,e)=>new xr({type:t,typeName:H.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{C(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"?Ei(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"?Ei(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(!Rs(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=>Rs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};Je.create=(t,e,r)=>new Je({schema:t,typeName:H.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Bt=class extends X{_parse(e){return this._getType(e)===M.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Bt.create=(t,e)=>new Bt({innerType:t,typeName:H.ZodNullable,...Z(e)});var In=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}};In.create=(t,e)=>new In({innerType:t,typeName:H.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 Ds(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var Ii=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.nan,received:n.parsedType}),z}return{status:"valid",value:e.data}}};Ii.create=t=>new Ii({typeName:H.ZodNaN,...Z(t)});var LO=Symbol("zod_brand"),vs=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}},Cs=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(),Ei(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?z:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:H.ZodPipeline})}},wn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Rs(i)&&(i.value=Object.freeze(i.value)),i);return Ds(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Nh(t,e={},r){return t?Ir.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})}}):Ir.create()}var MO={object:qe.lazycreate},H;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(H||(H={}));var kO=(t,e={message:`Input not instance of ${t.name}`})=>Nh(r=>r instanceof t,e),Ph=Or.create,Uh=pn.create,FO=Ii.create,BO=fn.create,Lh=mn.create,GO=hn.create,$O=_i.create,VO=gn.create,qO=yn.create,WO=Ir.create,QO=Kt.create,jO=St.create,YO=Ai.create,HO=zt.create,KO=qe.create,zO=qe.strictCreate,JO=En.create,ZO=ja.create,XO=Tn.create,eI=Ft.create,tI=Ya.create,rI=Si.create,nI=Oi.create,iI=Ha.create,sI=_n.create,oI=An.create,aI=Sn.create,uI=On.create,cI=xr.create,xh=Je.create,lI=dt.create,dI=Bt.create,pI=Je.createWithPreprocess,fI=Cs.create,mI=()=>Ph().optional(),hI=()=>Uh().optional(),gI=()=>Lh().optional(),yI={string:t=>Or.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})},EI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:Ti,setErrorMap:EO,getErrorMap:qa,makeIssue:Wa,EMPTY_PATH:TO,addIssueToContext:C,ParseStatus:Le,INVALID:z,DIRTY:Ei,OK:Fe,isAborted:xl,isDirty:wl,isValid:Rs,isAsync:Ds,get util(){return te},get objectUtil(){return Il},ZodParsedType:M,getParsedType:Sr,ZodType:X,datetimeRegex:vh,ZodString:Or,ZodNumber:pn,ZodBigInt:fn,ZodBoolean:mn,ZodDate:hn,ZodSymbol:_i,ZodUndefined:gn,ZodNull:yn,ZodAny:Ir,ZodUnknown:Kt,ZodNever:St,ZodVoid:Ai,ZodArray:zt,ZodObject:qe,ZodUnion:En,ZodDiscriminatedUnion:ja,ZodIntersection:Tn,ZodTuple:Ft,ZodRecord:Ya,ZodMap:Si,ZodSet:Oi,ZodFunction:Ha,ZodLazy:_n,ZodLiteral:An,ZodEnum:Sn,ZodNativeEnum:On,ZodPromise:xr,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Bt,ZodDefault:In,ZodCatch:xn,ZodNaN:Ii,BRAND:LO,ZodBranded:vs,ZodPipeline:Cs,ZodReadonly:wn,custom:Nh,Schema:X,ZodSchema:X,late:MO,get ZodFirstPartyTypeKind(){return H},coerce:yI,any:WO,array:HO,bigint:BO,boolean:Lh,date:GO,discriminatedUnion:ZO,effect:xh,enum:aI,function:iI,instanceof:kO,intersection:XO,lazy:sI,literal:oI,map:rI,nan:FO,nativeEnum:uI,never:jO,null:qO,nullable:dI,number:Uh,object:KO,oboolean:gI,onumber:hI,optional:lI,ostring:mI,pipeline:fI,preprocess:pI,promise:cI,record:tI,set:nI,strictObject:zO,string:Ph,symbol:$O,transformer:xh,tuple:eI,undefined:VO,union:JO,unknown:QO,void:YO,NEVER:EI,ZodIssueCode:I,quotelessJson:yO,ZodError:ze});var Za=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Mh=ee.record(Za,ee.string()),Ka=ee.record(Za,ee.any()),za=ee.record(Za,ee.union([ee.any().array(),ee.string()])),kh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Fh))})),Ja=ee.union([ee.string(),ee.number()]),Fh={string:Mh.optional(),fuzzy:Mh.optional(),range:ee.record(Za,ee.union([ee.object({high:Ja,low:Ja}),ee.object({high:Ja}),ee.object({low:Ja})])).optional(),equal:Ka.optional(),notEqual:Ka.optional(),empty:Ka.optional(),notEmpty:Ka.optional(),oneOf:za.optional(),contains:za.optional(),notContains:za.optional(),containsAny:za.optional(),$and:kh.optional(),$or:kh.optional()},A$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(gi).optional(),...Fh}).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(),sortType:ee.nativeEnum(Va).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var gp={};N(gp,{APP_DEV:()=>Gu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Bu,BUDIBASE_DATASOURCE_TYPE:()=>cp,Config:()=>hp,Cookie:()=>Wi,DEFAULT_BB_DATASOURCE_ID:()=>xi,DEFAULT_EMPLOYEE_TABLE_ID:()=>fp,DEFAULT_EXPENSES_TABLE_ID:()=>pp,DEFAULT_INVENTORY_TABLE_ID:()=>dp,DEFAULT_JOBS_TABLE_ID:()=>lp,DEFAULT_TENANT_ID:()=>he,DeprecatedViews:()=>qi,DocumentType:()=>ye,GlobalRole:()=>mp,Header:()=>Ze,InternalTable:()=>Ar,MAX_VALID_DATE:()=>Vu,MIN_VALID_DATE:()=>pT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>ir,SQS_DATASOURCE_INTERNAL:()=>up,StaticDatabases:()=>Ae,UNICODE_MAX:()=>ke,UserStatus:()=>$u,ViewName:()=>Lr});var x1={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 D1={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var L1="darkest",M1="light",AI=[{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"}},Bh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var xi="datasource_internal_bb_default";var Pr={};N(Pr,{ColumnSplitter:()=>Kd,NoEmptyFilterStrings:()=>oT,buildQuery:()=>jD,cleanupQuery:()=>Zd,fixupFilterArrays:()=>ep,getKeyNumbering:()=>Xd,getValidOperatorsForType:()=>qD,hasFilters:()=>zd,limit:()=>uT,recurseLogicalOperators:()=>Jd,removeKeyNumbering:()=>Xa,runQuery:()=>Uu,search:()=>YD,sort:()=>aT,splitFiltersArray:()=>eu});var $i=j(Gh());var wi={};N(wi,{filterValueToLabel:()=>bI,hasSchema:()=>RI,isSupportedUserSearch:()=>Vh,parallelForeach:()=>wI,processSearchFilters:()=>vl,trimOtherProps:()=>DI,unreachable:()=>xI});var $h=j(require("lodash")),II=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function xI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function wI(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 bI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function RI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function DI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Vh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(ka(r)){for(let o of t[r].conditions)if(!Vh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function vl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=eu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=$h.default.pick(i,II);return s.field=Xa(s.field),s})}]}}var Nr={};N(Nr,{cancelableTimeout:()=>qh,cron:()=>Wd,deepGet:()=>Cl,getUserColor:()=>CI,getUserInitials:()=>vI,getUserLabel:()=>NI,isGoogleSheets:()=>UI,isSQL:()=>LI,retry:()=>MI,roles:()=>Hd,schema:()=>_o,views:()=>Yd,wait:()=>Nl,withTimeout:()=>PI});var Cl=(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},vI=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"},CI=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%)`},NI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function qh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function PI(t,e){let[r,n]=qh(t),i=await Promise.race([e,r]);return n(),i}function UI(t){return t==="GOOGLE_SHEETS"}function LI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Nl(t){return new Promise(e=>setTimeout(e,t))}async function MI(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 Nl(s);try{return await t()}catch(o){n=o}}throw n}var Wd={};N(Wd,{getNextExecutionDates:()=>bD,validate:()=>RD});var tT=j(Gt()),rT=j(XE()),eT="(Input cron: ",xD={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function wD(t){let e=[];for(let r of t){r.includes(eT)&&(r=r.split(eT)[0].trim());for(let[n,i]of Object.entries(xD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function bD(t,e=4){let r=rT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function RD(t){let e=(0,tT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:wD(e.getError())}}var _o={};N(_o,{decodeNonAscii:()=>Qd,encodeNonAscii:()=>CD,isDeprecatedSingleUserColumn:()=>DD,isNumeric:()=>ND,isRequired:()=>vD});function DD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function vD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function CD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Qd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function ND(t){return t.type==="number"||t.type==="bigint"}var Yd={};N(Yd,{basicFields:()=>kD,calculationFields:()=>MD,hasCalculationFields:()=>LD,isBasicViewField:()=>PD,isCalculationField:()=>Ao,isCalculationView:()=>UD,isV2:()=>FD,isVisible:()=>nT});var jd=require("lodash");function Ao(t){return"calculationType"in t}function PD(t){return!Ao(t)}function UD(t){return t.type==="calculation"}function LD(t){return Object.values(t.schema||{}).some(Ao)}function MD(t){return(0,jd.pickBy)(t.schema||{},Ao)}function nT(t){return t.visible!==!1}function kD(t,e){let{visible:r=!0}=e||{};return(0,jd.pickBy)(t.schema||{},n=>!Ao(n)&&(!r||nT(n)))}function FD(t){return t.version===2}var Hd={};N(Hd,{checkForRoleInheritanceLoops:()=>GD});function BD(t){return`role${v}${t}`}function GD(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=BD(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 Qn=require("lodash");var $D=/{{([^{].*?)}}/g,sT=Object.values(hi),VD=[...Object.values(Tr),...Object.values(Yt),...Object.values(cn)],qD=(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"||_o.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},oT=[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 Jd(t,e){for(let r of sT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Zd=t=>{for(let e of oT)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===""||WD(s))&&delete t[e][i]}return t=Jd(t,Zd),t};function WD(t){return Array.isArray(t)&&t.length===0}var Xa=t=>Xd(t).key,Xd=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}},Kd=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}=Xd(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=Qd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function QD(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($D)||[]).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(yl(r)){let c=Bh[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(Eh(r)||Th(r)||yl(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 eu(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 jD(t){if(!t)return{};if(Array.isArray(t)&&(t=vl(t),!t))return{};let e=iT(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}=eu(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=iT(n.logicalOperator)),{[a]:{conditions:o.map(QD).filter(u=>u)}}})},r}function iT(t){return t==="all"?"$and":"$or"}function ep(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 Jd(t,ep),t}function YD(t,e){let r=Uu(t,e.query);e.sort&&(r=aT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=uT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Uu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Zd(e),e=ep(e),!zd(e)&&e.onEmptyFilter==="none")return[];let r=(E,A)=>B=>{for(let[w,F]of Object.entries(e[E]||{})){let ue=ka(E)?B:Cl(B,Xa(w)),on=A(ue,F);if(e.allOr&&on)return!0;if(!e.allOr&&!on)return!1}return!e.allOr},n=r("string",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().startsWith(A.toLowerCase())),i=r("fuzzy",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().includes(A.toLowerCase())),s=r("range",(E,A)=>{if(E==null||E===""||((0,Qn.isPlainObject)(A.low)&&(0,Qn.isEmpty)(A.low)&&(A.low=void 0),(0,Qn.isPlainObject)(A.high)&&(0,Qn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+E;if(!isNaN(B)){let F=+A.low,ue=+A.high;if(!isNaN(F)&&!isNaN(ue))return B>=F&&B<=ue;if(isNaN(F)){if(!isNaN(ue))return B<=ue}else return B>=F}let w=(0,$i.default)(E);if(w.isValid()){let F=(0,$i.default)(A.low||"0000-00-00T00:00:00.000Z"),ue=(0,$i.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ue.isValid())return w.isAfter(F)&&w.isBefore(ue)||w.isSame(F)||w.isSame(ue);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ue.isValid())return w.isBefore(ue)||w.isSame(ue)}return A.low!=null&&A.high!=null?E>=A.low&&E<=A.high:A.low!=null?E>=A.low:A.high!=null?E<=A.high:!1}),o=(E,A)=>{if(Array.isArray(E)){for(let w of E)if(o(w,A))return!0;return!1}if(E&&typeof E=="object"&&typeof A=="string")return E._id===A;if(E===A)return!0;if(E==null&&A!=null||E!=null&&A==null)return!1;let B=(0,$i.default)(E);if(B.isValid()){let w=(0,$i.default)(A);if(w.isValid())return B.isSame(w)}return!1},a=E=>(...A)=>!E(...A),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,p=r("empty",l),m=r("notEmpty",a(l)),d=r("oneOf",(E,A)=>(typeof A=="string"&&(A=A.split(",")),typeof E=="number"&&(A=A.map(B=>parseFloat(B))),Array.isArray(A)?A.some(B=>o(E,B)):!1)),f=E=>(A,B)=>!Array.isArray(A)||(typeof B=="string"&&(B=B.split(","),typeof A[0]=="number"&&(B=B.map(w=>parseFloat(w)))),!Array.isArray(B))?!1:B.length===0?!0:B[E](w=>o(A,w)),g=r("contains",(E,A)=>Array.isArray(A)&&A.length===0?!0:f("every")(E,A)),T=r("notContains",(E,A)=>Array.isArray(A)&&A.length===0?!0:a(f("every"))(E,A)),y=r("containsAny",f("some")),O=r("$and",(E,A)=>{if(!A.length)return!1;for(let B of A)if(!Uu([E],B).length)return!1;return!0}),S=r("$or",(E,A)=>{if(!A.length)return!1;for(let B of A)if(Uu([E],{...B,allOr:!0}).length)return!0;return!1}),L=E=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:p,notEmpty:m,oneOf:d,contains:g,containsAny:y,notContains:T,$and:O,$or:S},B=Object.entries(e||{}).filter(([w,F])=>!["allOr","onEmptyFilter"].includes(w)&&F&&Object.keys(F).length>0).map(([w])=>A[w]?.(E)??!1);return zd(e)?e.allOr?B.some(w=>w===!0):B.every(w=>w===!0):!0};return t.filter(L)}function aT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function uT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var zd=t=>{if(!t)return!1;let e=r=>{for(let n of sT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of VD){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={};N(st,{applications:()=>np,automations:()=>ip,users:()=>ap});var np={};N(np,{getDevAppID:()=>HD,getProdAppID:()=>rp});var tp=_r("app"),So=_r("app_dev");function HD(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(So))return t;let e=t.split(tp);e.shift();let r=e.join(tp);return`${So}${r}`}function rp(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(So))return t;let e=t.split(So);e.shift();let r=e.join(So);return`${tp}${r}`}var ip={};N(ip,{isAppAction:()=>JD,isRowAction:()=>KD,isWebhookAction:()=>zD});function KD(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function zD(t){return t.definition.trigger?.stepId==="WEBHOOK"}function JD(t){return t.definition.trigger?.stepId==="APP"}var ap={};N(ap,{canCreateApps:()=>ZD,containsUserID:()=>iv,getGlobalUserID:()=>nv,hasAdminPermissions:()=>op,hasAppBuilderPermissions:()=>ku,hasAppCreatorPermissions:()=>cT,hasBuilderPermissions:()=>tv,hasCreatorPermissions:()=>Fu,isAdmin:()=>Mu,isAdminOrBuilder:()=>XD,isAdminOrGlobalBuilder:()=>ev,isBuilder:()=>sp,isCreator:()=>rv,isGlobalBuilder:()=>Lu});var Ur=j(require("lodash/fp"));function sp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(rp(e))):!1}function Lu(t){return sp(t)&&!ku(t)||Mu(t)}function ZD(t){return Lu(t)||Fu(t)}function Mu(t){return t?op(t):!1}function XD(t,e){return sp(t,e)||Mu(t)}function ev(t){return Lu(t)||Mu(t)}function ku(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function cT(t){return t?Ur.flow(Ur.get("roles"),Ur.values,Ur.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function tv(t){return t?t.builder?.global||ku(t)||Fu(t):!1}function op(t){return t?!!t.admin?.global:!1}function Fu(t){return t?!!t.builder?.creator:!1}function rv(t){return t?Lu(t)||op(t)||Fu(t)||ku(t)||cT(t):!1}function nv(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function iv(t){return typeof t!="string"?!1:t.includes(`us${v}`)}var WW={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},QW={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},jW={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 eQ={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 nQ={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 oQ={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 cQ={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 pQ={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 hQ={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 EQ={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 AQ={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 IQ={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 Vi={EQUAL:"EQUAL",NOT_EQUAL:"NOT_EQUAL",GREATER_THAN:"GREATER_THAN",LESS_THAN:"LESS_THAN"},mv={[Vi.EQUAL]:"Equals",[Vi.NOT_EQUAL]:"Not equals",[Vi.GREATER_THAN]:"Greater than",[Vi.LESS_THAN]:"Less than"},bQ={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:Vi.EQUAL},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Vi),pretty:Object.values(mv)},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 vQ={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 PQ={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 MQ={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(Tl)},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 lT=(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))(lT||{}),BQ={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(lT)}},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 dT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(dT||{}),VQ={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(dT),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 Av={ascending:"Ascending",descending:"Descending"},QQ={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(Av)},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 HQ={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 JQ={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 ej={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 nj={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 oj={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 cj={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 Bu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Bu||{}),Lr=(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))(Lr||{}),qi={by_email2:["by_email"]},Ae={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=_r("app"),Gu=_r("app_dev"),yt=Gu,up="internal",cp="budibase",ir="_design/sqlite",lp="ta_bb_jobs",dp="ta_bb_inventory",pp="ta_bb_expenses",fp="ta_bb_employee";var $u=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))($u||{}),Wi=(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))(Wi||{}),mp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(mp||{}),hp=(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))(hp||{}),pT=new Date(-2147483647e3),Vu=new Date(2147483647e3),he="default";var xa={};N(xa,{CacheKey:()=>lr,TTL:()=>ti,app:()=>tf,bustCache:()=>os,destroy:()=>ta,docWritethrough:()=>Cm,generic:()=>ra,get:()=>ri,invite:()=>qf,keys:()=>fc,passwordReset:()=>Dm,store:()=>dr,user:()=>rn,withCache:()=>Hr,writethrough:()=>Rm});var ra={};N(ra,{CacheKey:()=>lr,TTL:()=>ti,bustCache:()=>os,destroy:()=>ta,get:()=>ri,keys:()=>fc,store:()=>dr,withCache:()=>Hr});var ge={};N(ge,{DEFAULT_TENANT_ID:()=>he,baseGlobalDBName:()=>Xo,doInAppContext:()=>lN,doInAppMigrationContext:()=>pN,doInAutomationContext:()=>cN,doInContext:()=>Of,doInEnvironmentContext:()=>mN,doInIPContext:()=>xf,doInIdentityContext:()=>Io,doInScimContext:()=>hN,doInTenant:()=>Ge,ensureSnippetContext:()=>K_,getAppDB:()=>ns,getAppId:()=>Ne,getAuditLogDBName:()=>Y_,getAuditLogsDB:()=>yN,getAutomationId:()=>Vp,getCurrentContext:()=>is,getDevAppDB:()=>TN,getEnvironmentVariables:()=>gN,getFeatureFlags:()=>wf,getGlobalDB:()=>se,getGlobalDBName:()=>ar,getIP:()=>If,getIdentity:()=>sr,getPlatformURL:()=>Sf,getProdAppDB:()=>EN,getProdAppId:()=>fN,getScimDBName:()=>sN,getTableForView:()=>_N,getTenantIDFromAppID:()=>rs,getTenantId:()=>Q,identity:()=>Oo,isMultiTenant:()=>jr,isScim:()=>Pt,isTenancyEnabled:()=>aN,isTenantIdSet:()=>oN,setFeatureFlags:()=>bf,setTableForView:()=>AN});var Oo={};N(Oo,{doInAccountContext:()=>Cv,doInIdentityContext:()=>Ep,doInUserContext:()=>Tp,getAccountUserId:()=>fT,getIdentity:()=>yp});function yp(){return sr()}function Ep(t,e){return Io(t,e)}function Tp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Ep(n,r)}function Cv(t,e){let r=fT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Ep(i,e)}function fT(t){let e;return Ba(t)?e=t.budibaseUserId:e=t.accountId,e}var Qu=require("fs");var gT=require("lodash"),_p=require("crypto");function Ap(){return yT()}function yT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Wu(){return process.env.NODE_ENV!=="production"}function Nv(t){if(t)return parseInt(t)}var mT=!1;!mT&&Wu()&&!Ap()&&(require("dotenv").config(),mT=!0);var Qi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},hT=!!parseInt(process.env.SELF_HOSTED||"");function Pv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Uv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Lv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Qu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Qu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Wu()&&!Ap())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 Mv(){return Dt.SERVICE_TYPE==="worker"}function kv(){return Dt.SERVICE_TYPE==="apps"}function Fv(){return Dt.BUDIBASE_ENVIRONMENT==="QA"}var Dt={isTest:Ap,isJest:yT,isDev:Wu,isWorker:Mv,isApps:kv,isQA:Fv,isProd:()=>!Wu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,_p.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,_p.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Pv(),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,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:hT,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||Qi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Qi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Qi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Qi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Qi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Qi.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:Uv(),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:hT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Lv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Dt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Nv(process.env.BSON_BUFFER_SIZE)};function xo(t){let e=(0,gT.cloneDeep)(Dt),r;for(r in t)Dt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Dt._set(n,i)}}function ET(t,e){let r=xo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var TT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Dt))e==="0"&&(Dt[t]=0),e==="false"&&(Dt[t]=0);var h=Dt;var _T=require("async_hooks"),ve=class t{static{this.storage=new _T.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Sp="No app provided";function Mr(t){if(!t)throw Sp;return t.startsWith(yt)}function Bv(t){if(!t)throw Sp;return t.startsWith(gt)&&!Mr(t)}function wo(t){if(!t)throw Sp;return Mr(t.appId)}function ju(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=ju;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 $v(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Op(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:Op(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Op=(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 Q_=j(require("@budibase/nano"));var AT=j(require("node-fetch"));function Yu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function ST(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await bo({url:s,cookie:i,method:e,body:r})}async function bo({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,AT.default)(Yu(encodeURI(t)),i)}async function Hu(t,e="GET",r){let n=await ST(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var jn=j(require("pouchdb"));var OT,IT=!1,Ip=(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 Ku(t){OT=Ip(t),IT=!0}var qv=()=>{if(!IT)throw new Error("init has not been called")};function Et(t,e){qv();let r=new OT(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 Ro(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var xT=require("uuid");function Se(){return(0,xT.v4)().replace(/-/g,"")}var Oe=j(require("dd-trace")),ji=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Oe.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 Oe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Oe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Oe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Oe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Oe.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 Oe.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 Oe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Af={};N(Af,{breakExternalTableId:()=>yf,breakRowIdField:()=>rN,buildExternalTableId:()=>zC,convertRowId:()=>tN,encodeTableId:()=>JC,encodeViewId:()=>ZC,generateRowIdField:()=>XC,getNativeSql:()=>ts,isExternalTable:()=>gf,isExternalTableID:()=>dc,isInternalTableID:()=>KC,isInvalidISODateString:()=>Ef,isRowId:()=>eN,isValidFilter:()=>pc,isValidISODateString:()=>Tf,isValidTime:()=>nN,sqlLog:()=>ea,validateManyToMany:()=>_f});var Wr={};N(Wr,{APP_DEV:()=>Gu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Bu,BUDIBASE_DATASOURCE_TYPE:()=>cp,DEFAULT_BB_DATASOURCE_ID:()=>xi,DEFAULT_EMPLOYEE_TABLE_ID:()=>fp,DEFAULT_EXPENSES_TABLE_ID:()=>pp,DEFAULT_INVENTORY_TABLE_ID:()=>dp,DEFAULT_JOBS_TABLE_ID:()=>lp,DatabaseImpl:()=>es,DatabaseWithConnection:()=>jC,DeprecatedViews:()=>qi,DocumentType:()=>ye,InternalTable:()=>Ar,QueryBuilder:()=>cr,Replication:()=>U_,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>ir,SQS_DATASOURCE_INTERNAL:()=>up,StaticDatabases:()=>Ae,UNICODE_MAX:()=>ke,ViewName:()=>Lr,baseGlobalDBName:()=>Xo,checkErrorCode:()=>F_,closePouchDB:()=>Ro,createApiKeyView:()=>D_,createNewUserEmailView:()=>b_,createPlatformAccountEmailView:()=>C_,createPlatformUserView:()=>N_,createUserAppView:()=>R_,createView:()=>Xi,dbExists:()=>BC,directCouchAllDbs:()=>uf,directCouchCall:()=>ST,directCouchFind:()=>mf,directCouchQuery:()=>Hu,directCouchUrlCall:()=>bo,doWithDB:()=>at,extractAppUUID:()=>$v,fullSearch:()=>qC,generateAppID:()=>c_,generateAppUserID:()=>uc,generateDevInfoID:()=>g_,generateGlobalUserID:()=>Ji,generatePluginID:()=>y_,generateRoleID:()=>nf,generateRowID:()=>rf,generateTableID:()=>l_,generateTemplateID:()=>h_,generateUserMetadataID:()=>f_,generateWorkspaceID:()=>d_,getAllApps:()=>Ko,getAllDbs:()=>w_,getAppsByIDs:()=>LC,getCouchInfo:()=>vt,getDB:()=>Ke,getDevAppID:()=>Gv,getDevAppIDs:()=>kC,getDevelopmentAppID:()=>ju,getDocParams:()=>Zi,getGlobalDBName:()=>ar,getGlobalIDFromUserMetadataID:()=>m_,getGlobalUserParams:()=>Zn,getPluginParams:()=>x_,getPouch:()=>Ip,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>MC,getQueryIndex:()=>E_,getRoleParams:()=>lc,getRowParams:()=>sf,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>I_,getUrlInfo:()=>Op,getUserMetadataParams:()=>O_,getUsersByAppParams:()=>cc,getWorkspaceParams:()=>S_,init:()=>Ku,isDatasourceId:()=>A_,isDevApp:()=>wo,isDevAppID:()=>Mr,isDocumentConflictError:()=>QC,isGlobalUserID:()=>p_,isProdAppID:()=>Bv,isSameAppID:()=>FC,isTableId:()=>T_,isViewId:()=>__,paginatedSearch:()=>VC,pagination:()=>af,prefixRoleID:()=>or,queryGlobalView:()=>ur,queryGlobalViewRaw:()=>df,queryPlatformView:()=>Jo,queryView:()=>lf,queryViewRaw:()=>zo,removeKeyNumbering:()=>Zo,searchIndexes:()=>ff});var tf={};N(tf,{AppState:()=>ef,getAppMetadata:()=>ac,invalidateAppMetadata:()=>PC});var qr={};N(qr,{getAppClient:()=>oc,getCacheClient:()=>Jp,getDocWritethroughClient:()=>DC,getInviteClient:()=>Jn,getLockClient:()=>Xp,getPasswordResetClient:()=>Yo,getSessionClient:()=>Vr,getSocketClient:()=>RC,getUserClient:()=>jo,getWritethroughClient:()=>Zp,init:()=>Nt,shutdown:()=>a_});var s_=j(require("ioredis"));var Zu={};N(Zu,{Databases:()=>xp,SEPARATOR:()=>Yi,SelectableDatabase:()=>zu,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>Ju,getRedisOptions:()=>Hi,removeDbPrefix:()=>wp});var Wv=2e3,wT=1e4,Yi="-",xp=(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))(xp||{}),zu=(T=>(T[T.DEFAULT=0]="DEFAULT",T[T.SOCKET_IO=1]="SOCKET_IO",T[T.RATE_LIMITING=2]="RATE_LIMITING",T[T.UNUSED_2=3]="UNUSED_2",T[T.UNUSED_3=4]="UNUSED_3",T[T.UNUSED_4=5]="UNUSED_4",T[T.UNUSED_5=6]="UNUSED_5",T[T.UNUSED_6=7]="UNUSED_6",T[T.UNUSED_7=8]="UNUSED_7",T[T.UNUSED_8=9]="UNUSED_8",T[T.UNUSED_9=10]="UNUSED_9",T[T.UNUSED_10=11]="UNUSED_10",T[T.UNUSED_11=12]="UNUSED_11",T[T.UNUSED_12=13]="UNUSED_12",T[T.UNUSED_13=14]="UNUSED_13",T[T.UNUSED_14=15]="UNUSED_14",T))(zu||{});function Ju(){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 Hi(){let{host:t,password:e,port:r}=Ju(),n={connectTimeout:wT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:wT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:Wv,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Yi}${e}`}function wp(t){let e=t.split(Yi);return e.length>=2?(e.shift(),e.join(Yi)):e[0]}var sc={};N(sc,{correlation:()=>Do,logAlert:()=>Hn,logAlertWithInfo:()=>SC,logWarn:()=>zi,logger:()=>ic,system:()=>Gp});var Do={};N(Do,{getId:()=>bp,setHeader:()=>Qv});var bT=require("correlation-id"),Qv=t=>{let e=bT.getId();e&&(t["x-budibase-correlation-id"]=e)};function bp(){return bT.getId()}var nc=j(require("pino")),n_=j(require("pino-pretty"));var $p=j(require("dd-trace")),i_=require("dd-trace/ext");var Gp={};N(Gp,{getLogReadStream:()=>gC,getSingleFileMaxSizeInfo:()=>r_,localFileDestination:()=>Bp});var No=j(require("fs")),Fp=j(require("path")),ZT=j(require("rotating-file-stream"));var kp={};N(kp,{ObjectStore:()=>Ct,ObjectStoreBuckets:()=>Yv,SIGNED_FILE_PREFIX:()=>Pp,bucketTTLConfig:()=>Xu,budibaseTempDir:()=>Yn,clientLibraryCDNUrl:()=>cC,clientLibraryPath:()=>WT,clientLibraryUrl:()=>lC,createBucketIfNotExists:()=>Co,deleteFile:()=>rC,deleteFiles:()=>nC,deleteFolder:()=>$T,downloadTarball:()=>sC,downloadTarballDirect:()=>iC,enrichPluginURLs:()=>fC,extractBucketAndPath:()=>Rp,getAppFileUrl:()=>dC,getGlobalFileS3Key:()=>QT,getGlobalFileUrl:()=>pC,getObjectMetadata:()=>oC,getPluginIconKey:()=>HT,getPluginJSKey:()=>YT,getPluginS3Dir:()=>zT,getPresignedUrl:()=>Gr,getReadStream:()=>ec,listAllObjects:()=>GT,processAutomationAttachment:()=>Kv,processObjectStoreAttachment:()=>NT,retrieve:()=>BT,retrieveDirectory:()=>tC,retrieveToTmp:()=>eC,sanitizeBucket:()=>He,sanitizeKey:()=>Ce,streamUpload:()=>FT,upload:()=>Xv,uploadDirectory:()=>Up});var PT=j(require("aws-sdk")),UT=j(require("stream")),Dp=j(require("node-fetch")),vp=j(require("tar-fs")),Cp=j(require("zlib")),LT=require("util"),Br=require("path"),kr=j(require("fs"));var vo=j(require("path")),RT=require("os"),DT=j(require("fs"));var vT=j(require("stream")),Yv={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},CT=(0,vo.join)((0,RT.tmpdir)(),".budibase");try{DT.default.mkdirSync(CT)}catch(t){if(t.code!=="EEXIST")throw t}function Yn(){return CT}var Xu=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function Hv(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=vo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:vT.default.Readable.fromWeb(e.body)}}async function NT(t){let e=Rp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await ec(r,n),s=vo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function Kv(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await Hv(t):await NT(t)}var Np=require("uuid");var MT=j(require("fs/promises")),zv=require("sanitize-s3-objectkey"),kT=(0,LT.promisify)(UT.default.pipeline),Jv={bucketCreationPromises:{}},Pp="/files/signed",Fr={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"},Zv=[Fr.html,Fr.css,Fr.js,Fr.json];function Ce(t){return zv(He(t)).replace(/\\/g,"/")}function He(t){return t.replace(new RegExp(yt,"g"),gt)}function Ct(t,e={presigning:!1}){let r={s3ForcePathStyle:!0,signatureVersion:"v4",apiVersion:"2006-03-01",accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,region:h.AWS_REGION};return t&&(r.params={Bucket:He(t)}),!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(r.sessionToken=h.AWS_SESSION_TOKEN),h.MINIO_URL&&(e.presigning&&h.MINIO_ENABLED?r.endpoint="minio-service":r.endpoint=h.MINIO_URL),new PT.default.S3(r)}async function Co(t,e){e=He(e);try{return await t.headBucket({Bucket:e}).promise(),{created:!1,exists:!0}}catch(r){let n=Jv.bucketCreationPromises,i=r.statusCode===404,s=r.statusCode===403;if(n[e])return await n[e],{created:!1,exists:!0};if(i||s){if(i)return n[e]=t.createBucket({Bucket:e}).promise(),await n[e],delete n[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 Xv({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await MT.default.open(r)).createReadStream():s,c=Ct(t),l=await Co(c,t);if(o&&l.created){let d=Xu(t,o);await c.putBucketLifecycleConfiguration(d).promise()}let p=n;p||(p=a?Fr[a.toLowerCase()]:Fr.txt);let m={Key:Ce(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let d of Object.keys(i))(!i[d]||typeof i[d]!="string")&&delete i[d];m.Metadata=i}return c.upload(m).promise()}async function FT({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Ct(t),u=await Co(a,t);if(s&&u.created){let g=Xu(t,s);await a.putBucketLifecycleConfiguration(g).promise()}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Fr[o.toLowerCase()]:Fr.txt);let l=He(t),p=Ce(r),m={Bucket:l,Key:p,Body:e,ContentType:c,...i},d=await a.upload(m).promise(),f=await a.headObject({Bucket:l,Key:p}).promise();return{...d,ContentLength:f.ContentLength}}async function BT(t,e){let r=Ct(t),n={Bucket:He(t),Key:Ce(e)},i=await r.getObject(n).promise();return Zv.includes(i.ContentType)?i.Body.toString("utf8"):i.Body}async function GT(t,e){let r=Ct(t),n=(a={})=>r.listObjectsV2({...a,Bucket:He(t),Prefix:Ce(e)}).promise(),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}function Gr(t,e,r=3600){let n=Ct(t,{presigning:!0}),i={Bucket:He(t),Key:Ce(e),Expires:r},s=n.getSignedUrl("getObject",i);if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Pp}${a}${u}`}else return s}async function eC(t,e){t=He(t),e=Ce(e);let r=await BT(t,e),n=(0,Br.join)(Yn(),(0,Np.v4)());return kr.default.writeFileSync(n,r),n}async function tC(t,e){let r=(0,Br.join)(Yn(),(0,Np.v4)());kr.default.mkdirSync(r);let n=await GT(t,e),i=await Promise.all(n.map(a=>ec(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),p=l.slice(0,l.length-1),m=(0,Br.join)(r,...p);l.length>1&&!kr.default.existsSync(m)&&kr.default.mkdirSync(m,{recursive:!0});let d=kr.default.createWriteStream((0,Br.join)(r,...l),{mode:420});c.pipe(d),o.push(new Promise((f,g)=>{c.on("finish",f),c.on("error",g),d.on("error",g)}))}return await Promise.all(o),r}async function rC(t,e){let r=Ct(t);await Co(r,t);let n={Bucket:t,Key:Ce(e)};return r.deleteObject(n).promise()}async function nC(t,e){let r=Ct(t);await Co(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ce(i)}))}};return r.deleteObjects(n).promise()}async function $T(t,e){t=He(t),e=Ce(e);let r=Ct(t),n={Bucket:t,Prefix:e},i=await r.listObjects(n).promise();if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s).promise()).Deleted?.length===1e3)return $T(t,e)}async function Up(t,e,r){t=He(t);let n=[],i=kr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ce((0,Br.join)(r,s.name)),a=(0,Br.join)(e,s.name);s.isDirectory()?n.push(Up(t,a,o)):n.push(FT({bucket:t,filename:o,stream:kr.default.createReadStream(a)}))}return await Promise.all(n),i}async function iC(t,e,r={}){e=Ce(e);let n=await(0,Dp.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await kT(n.body,Cp.default.createUnzip(),vp.default.extract(e))}async function sC(t,e,r){e=He(e),r=Ce(r);let n=await(0,Dp.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Br.join)(Yn(),r);return await kT(n.body,Cp.default.createUnzip(),vp.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Up(e,i,r),i}async function ec(t,e){t=He(t),e=Ce(e);let r=Ct(t),n={Bucket:t,Key:e};return r.getObject(n).createReadStream()}async function oC(t,e){t=He(t),e=Ce(e);let r=Ct(t),n={Bucket:t,Key:e};try{return await r.headObject(n).promise()}catch{throw new Error("Unable to retrieve metadata from object")}}function Rp(t){let e=t.split("?")[0],r=new RegExp(`^${Pp}/(?<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 VT=j(require("aws-cloudfront-sign")),rc;function aC(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return rc||(rc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),rc)}var uC=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:aC(),expireTime:new Date().getTime()+1e3*60*60*24}),Ki=t=>{let e=Lp(t);return VT.getSignedUrl(e,uC())},Lp=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var qT=j(require("querystring"));function WT(t){return`${Ce(t)}/budibase-client.js`}function cC(t,e){let r=WT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Lp(r)):Gr(h.APPS_BUCKET_NAME,r)}function lC(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==he&&(n.tenantId=r),`/api/assets/client?${qT.default.encode(n)}`}function dC(t){return h.CLOUDFRONT_CDN?Ki(t):Gr(h.APPS_BUCKET_NAME,t)}var pC=(t,e,r)=>{let n=QT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),Ki(n)):Gr(h.GLOBAL_BUCKET_NAME,n)},QT=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};function fC(t){return!t||!t.length?[]:t.map(e=>{let r=mC(e),n=hC(e);return{...e,jsUrl:r,iconUrl:n}})}function mC(t){let e=YT(t);return jT(e)}function hC(t){let e=HT(t);if(e)return jT(e)}function jT(t){return h.CLOUDFRONT_CDN?Ki(t):Gr(h.PLUGIN_BUCKET_NAME,t)}function YT(t){return KT(t,"plugin.min.js")}function HT(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return KT(t,e)}function KT(t,e){return`${zT(t.name)}/${e}`}function zT(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var XT="budibase.log",e_="budibase-logs-history.txt",t_=Fp.default.join(Yn(),"systemlogs");function JT(t){return Fp.default.join(t_,t)}function r_(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 Bp(){let t=r_(h.ROLLING_LOG_MAX_SIZE);return ZT.createStream(XT,{size:t?.size,path:t_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:e_,initialRotation:!1})}function gC(){let t=[],e=JT(e_);if(No.default.existsSync(e)){let i=No.default.readFileSync(e,"utf-8").split(`
|
|
6
|
+
`);for(let s of i.filter(o=>o))t.push(No.default.readFileSync(s))}return t.push(No.default.readFileSync(JT(XT))),Buffer.concat(t)}function yC(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function EC(t){return t instanceof Error}function TC(t){return typeof t=="string"}var $r;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,n_.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Bp(),level:t}),$r=r.length?(0,nc.default)(e,nc.default.multistream(r)):(0,nc.default)(e);let n=u=>{let c,l=[],p="";u.forEach(T=>{TC(T)&&(p=`${p} ${T}`.trimStart()),yC(T)&&l.push(T),EC(T)&&(c=T)});let m=a(),d={};d={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:bp()};let f=$p.default.scope().active();f&&$p.default.inject(f.context(),i_.formats.LOG,d);let g={err:c,pid:process.pid,...d};if(l.length){let T={},y=0;for(let O=0;O<l.length;O++){let S=l[O],L=S._logKey;L?(delete S._logKey,g[L]=S):(T[y]=S,y++)}Object.keys(T).length&&(g.data=T)}return[g,p]};console.log=(...u)=>{let[c,l]=n(u);$r?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);$r?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);$r?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);$r?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),$r?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);$r?.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=Vp()}catch{}return u},a=()=>{let u;try{u=sr()}catch{}return u}}var ic=$r;var _C=["AccountError"];function AC(t){return t&&t.suppressAlert}function Hn(t,e){e&&_C.includes(e.name)&&AC(e)||console.error(`bb-alert: ${t}`,e)}function SC(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Hn(t,n)}function zi(t,e){console.warn(`bb-warn: ${t}`,e)}var Mo={};N(Mo,{cleanup:()=>OC,clear:()=>Lo,set:()=>Uo});var Po=[];function Uo(t,e){let r=setInterval(t,e);return Po.push(r),r}function Lo(t){let e=Po.indexOf(t);e!==-1&&Po.splice(e,1),clearInterval(t)}function OC(){for(let t of Po)clearInterval(t);Po=[]}var Wp;if(h.MOCK_REDIS)try{Wp=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var IC=2e3,xC=5e3,o_=h.REDIS_CLUSTERED,Yp=0,ko=!1,Qp={},Kn=!1;h.MOCK_REDIS&&(Kn=!0);function Hp(t){return Qp[t]}function qp(t,e){ko||(ko=!0,clearTimeout(t),Kn=!1,Hn("Redis connection failed",e),setTimeout(()=>{Kp()},IC))}function Kp(t=Yp){let e=h.MOCK_REDIS&&Wp?Wp:s_.default,r;ko=!1;let n=Hp(t);if(n&&Kn)return;h.MOCK_REDIS&&(Qp[t]=new e(Hi())),r=setTimeout(()=>{Kn||qp(r,"Did not successfully connect in timeout")},xC),n&&n.disconnect();let{host:i,port:s}=Ju(),o=Hi();o_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||qp(r,a)}),n.on("error",a=>{qp(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),Kn=!0}),Qp[t]=n}function wC(t=Yp){return new Promise(e=>{if(Hp(t)==null)Kp();else if(Kn){e("");return}let r=Uo(()=>{Kn&&(Lo(r),e(""))},500)})}function bC(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:wp(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var jp=class{constructor(e,r=null){this._db=e,this._select=r||Yp}getClient(){return Hp(this._select)}async init(){return ko=!1,Kp(this._select),await wC(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){ko=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${Yi}${e}`;let n;return o_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),bC(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ye(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ye(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ye(r,e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}}async bulkGet(e){let r=this._db;if(e.length===0)return{};let n=e.map(s=>Ye(r,s)),i=await this.getClient().mget(n);if(Array.isArray(i)){let s={},o=0;for(let a of i){if(a){let u;try{u=JSON.parse(a)}catch{u=a}s[e[o]]=u}o++}return s}else throw new Error(`Invalid response: ${i}`)}async store(e,r,n=null){let i=this._db;typeof r=="object"&&(r=JSON.stringify(r));let s=Ye(i,e);await this.getClient().set(s,r),n&&await this.getClient().expire(s,n)}async bulkStore(e,r=null){let n=this.getClient(),i=Object.entries(e).reduce((o,[a,u])=>(o[Ye(this._db,a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=n.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()}async getTTL(e){let r=this._db,n=Ye(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ye(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ye(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ye(r,n)))}async clear(){let e=await this.scan();await Promise.all(e.map(r=>this.delete(r.key)))}async increment(e){let r=await this.getClient().incr(Ye(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
|
|
7
7
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
8
8
|
redis.call('DEL', KEYS[1])
|
|
9
9
|
end
|
|
10
|
-
`;await n.eval(i,1,Ye(this._db,e),r)}},Be=
|
|
10
|
+
`;await n.eval(i,1,Ye(this._db,e),r)}},Be=jp;var Fo,Bo,Go,$o,zn,Vo,qo,Wo,Qo,zp;async function Nt(){Fo=await new Be("users").init(),Bo=await new Be("session").init(),Go=await new Be("appMetadata").init(),$o=await new Be("data_cache").init(),Vo=await new Be("locks").init(),zn=await new Be("writeThrough").init(),Wo=await new Be("invitation").init(),Qo=await new Be("pwReset").init(),qo=await new Be("socket_io",1).init(),zp=await new Be("docWriteThrough").init()}async function a_(){Fo&&await Fo.finish(),Bo&&await Bo.finish(),Go&&await Go.finish(),$o&&await $o.finish(),zn&&await zn.finish(),Vo&&await Vo.finish(),Wo&&await Wo.finish(),Qo&&await Qo.finish(),qo&&await qo.finish(),zp&&await zp.finish()}process.on("exit",async()=>{await a_()});async function jo(){return Fo||await Nt(),Fo}async function Vr(){return Bo||await Nt(),Bo}async function oc(){return Go||await Nt(),Go}async function Jp(){return $o||await Nt(),$o}async function Zp(){return zn||await Nt(),zn}async function Xp(){return Vo||await Nt(),Vo}async function RC(){return qo||await Nt(),qo}async function Jn(){return Wo||await Nt(),Wo}async function Yo(){return Qo||await Nt(),Qo}async function DC(){return zn||await Nt(),zn}var ef=(e=>(e.INVALID="invalid",e))(ef||{}),u_=3600,vC=60;async function CC(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function NC(t){return!t||t.state==="invalid"}async function ac(t){let e=await oc(),r=await e.get(t);if(!r){let n=u_;try{r=await CC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=vC;else throw i}if(NC(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function PC(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await oc();await r.delete(t),e&&await r.store(t,e,u_)}var of={};N(of,{generateAppID:()=>c_,generateAppUserID:()=>uc,generateDevInfoID:()=>g_,generateGlobalUserID:()=>Ji,generatePluginID:()=>y_,generateRoleID:()=>nf,generateRowID:()=>rf,generateTableID:()=>l_,generateTemplateID:()=>h_,generateUserMetadataID:()=>f_,generateWorkspaceID:()=>d_,getDocParams:()=>Zi,getGlobalIDFromUserMetadataID:()=>m_,getGlobalUserParams:()=>Zn,getPluginParams:()=>x_,getQueryIndex:()=>E_,getRoleParams:()=>lc,getRowParams:()=>sf,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>I_,getUserMetadataParams:()=>O_,getUsersByAppParams:()=>cc,getWorkspaceParams:()=>S_,isDatasourceId:()=>A_,isGlobalUserID:()=>p_,isTableId:()=>T_,isViewId:()=>__,prefixRoleID:()=>or});var c_=t=>{let e=gt;return t&&(e+=`${t}${v}`),`${e}${Se()}`};function l_(){return`ta${v}${Se()}`}function rf(t,e){return e=e||Se(),`ro${v}${t}${v}${e}`}function d_(){return`workspace${v}${Se()}`}function Ji(t){return`us${v}${t||Se()}`}var UC=new RegExp(`^us${v}.+`);function p_(t){return UC.test(t)}function f_(t){return rf("ta_users",t)}function m_(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function h_(t){return`template${v}${t}${v}${Se()}`}function uc(t,e){return`${t}${v}${e}`}function nf(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function or(t){return nf(t)}var g_=t=>`devinfo${v}${t}`,y_=t=>`plg${v}${t}`;function Zi(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${ke}`}}function sf(t,e,r={}){if(t==null)return Zi("ro",null,r);let n=e??`${t}${v}`;return Zi("ro",n,r)}function E_(t){return`database/${t}`}var T_=t=>!!t&&(t.startsWith(`ta${v}`)||t.startsWith(`datasource_plus${v}`));function __(t){return!!t&&t.startsWith(`view${v}`)}var A_=t=>!!t&&t.startsWith(`datasource${v}`);function S_(t="",e={}){return{...e,startkey:`workspace${v}${t}`,endkey:`workspace${v}${t}${ke}`}}function Zn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${v}${t}`,endkey:`us${v}${t}${ke}`}}function O_(t,e={}){return sf("ta_users",t,e)}function cc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function I_(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${ke}`}}function lc(t,e={}){return Zi("role",t,e)}function Ho(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var x_=(t,e={})=>Zi("plg",t,e);async function w_(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await uf(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===he?await n():(await n(Ho("app",i)),await n(Ho("app_dev",i)),r.push(ar(i))),r}async function Ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=he);let o=(await w_({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(v);if(c[0]==="app"){let l=c[c.length-2],p=c.length===2||l==="dev";return i===he&&p||l===i}return!1});if(r){let u=o.filter(l=>Mr(l)),c=o.filter(l=>!Mr(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:wo(l)?"development":"published"})):c.filter(l=>t?wo(l):!wo(l))}}async function LC(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 MC(){return(await Ko({idsOnly:!0})).filter(e=>!Mr(e))}async function kC(){return(await Ko({idsOnly:!0})).filter(e=>Mr(e))}function FC(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function BC(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 cf="_design/database";function GC(){return{_id:cf,views:{}}}async function $C(t,e){if(qi[e])try{let r=await t.get(cf);for(let n of qi[e])delete r.views?.[n];await t.put(r)}catch{}}async function Xi(t,e,r){let n;try{n=await t.get(cf)}catch{n=GC()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await Xi(t,e,r);throw s}}var b_=async()=>{let t=se(),e=`function(doc) {
|
|
11
11
|
if (doc._id.startsWith("us${v}")) {
|
|
12
12
|
emit(doc.email.toLowerCase(), doc._id)
|
|
13
13
|
}
|
|
@@ -22,7 +22,7 @@ attempted value: ${s}
|
|
|
22
22
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
23
23
|
emit(doc.apiKey, doc.userId)
|
|
24
24
|
}
|
|
25
|
-
}`;await Xi(t,e,"by_api_key")};async function zo(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 $C(r,t),await n(),zo(t,e,r,n,i);if(s.status===409)return zo(t,e,r,n,i);throw s}}var
|
|
25
|
+
}`;await Xi(t,e,"by_api_key")};async function zo(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 $C(r,t),await n(),zo(t,e,r,n,i);if(s.status===409)return zo(t,e,r,n,i);throw s}}var lf=async(t,e,r,n,i)=>{let a=(await zo(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 v_(t,e){try{await at(Ae.PLATFORM_INFO.name,async r=>{await Xi(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var C_=async()=>{let t=`function(doc) {
|
|
26
26
|
if (doc._id.startsWith("acc_metadata${v}")) {
|
|
27
27
|
emit(doc.email.toLowerCase(), doc._id)
|
|
28
28
|
}
|
|
@@ -34,5 +34,5 @@ attempted value: ${s}
|
|
|
34
34
|
if (doc.ssoId) {
|
|
35
35
|
emit(doc.ssoId, doc._id)
|
|
36
36
|
}
|
|
37
|
-
}`,"platform_users_lowercase_2")},Jo=async(t,e)=>{let r={account_by_email:C_,platform_users_lowercase_2:N_};return at(Ae.PLATFORM_INFO.name,async n=>{let i=r[t];return lp(t,e,n,i,{arrayResponse:!0})})},P_={by_email2:b_,by_api_key:D_,by_app:R_},ur=async(t,e,r,n)=>{r||(r=se());let i=P_[t];return lp(t,e,r,i,n)};async function dp(t,e,r){let n=se(),i=P_[t];return zo(t,e,n,i,r)}var fp=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([Ro(this.source),Ro(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()}},U_=fp;var M_=j(require("node-fetch"));var Zo=Pr.removeKeyNumbering;function Xn(t){return t==null||t===""}var cr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#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.#f=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.#f,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Zo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(p,g)=>Xn(g)?null:`${p}:${e.preprocess(g,s)}`,u=(p,g,T="AND")=>{if(Xn(g))return null;if(!Array.isArray(g))return`${p}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${T} ${e.preprocess(g[O],{escape:!0})}`;return`${p}:(${y})`},c=(p,g)=>Xn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${p}:/.*${g}.*/`),l=(p,g)=>{let T=r?"*:* AND ":"",y=r?"AND":void 0;return T+"NOT "+u(p,g,y)},f=(p,g)=>u(p,g,"OR"),m=(p,g)=>{if(Xn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let T=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)T+=` OR ${e.preprocess(g[y],s)}`;return`${p}:(${T})`};function d(p,g,T){let y="";for(let[O,S]of Object.entries(p)){O=Zo(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 E=T?.mode?T.mode:r?"OR":"AND";y+=` ${E} `}y+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(T?.returnBuilt)return y;n+=y}if(this.#e.string&&d(this.#e.string,(p,g)=>Xn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${p}:${g}*`)),this.#e.range&&d(this.#e.range,(p,g)=>{if(Xn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let T=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${p}:[${T} 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,(p,g)=>Xn(g)?null:typeof g=="boolean"?`(*:* AND !${p}:${g})`:`!${p}:${e.preprocess(g,s)}`),this.#e.empty&&d(this.#e.empty,p=>(i=!1,`(*:* -${p}:["" TO *])`)),this.#e.notEmpty&&d(this.#e.notEmpty,p=>(i=!1,`${p}:["" 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,f),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.#p()}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.#p();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await L_(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await L_(n,i,r);throw s}}};async function L_(t,e,r){let n=await(0,M_.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 k_(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=cr.maxLimit;n.limit&&s.length>n.limit-cr.maxLimit&&(o=n.limit-s.length);let a=new cr(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<cr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await k_(t,e,r,c)}async function VC(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,cr.maxLimit);let s=new cr(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 qC(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 k_(t,e,r,n)}}var pp={};N(pp,{createUserIndex:()=>WC});async function WC(){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 F_(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 QC(t){return F_(t,409)}var hp=`${v}${v}`,G_=/^\[.*]$/g,YC=encodeURIComponent(" "),$_=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,HC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function dc(t){return t.startsWith("datasource"+v)}function KC(t){return!dc(t)}function ts(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function gp(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==xi||t?.sourceType==="external"?!0:!!(t?._id&&dc(t._id))}function zC(t,e){return`${t}${hp}${encodeURIComponent(e)}`}function JC(t){return dc(t)?encodeURIComponent(t):t}function ZC(t){return encodeURIComponent(t)}function yp(t){let e=t.split(hp),r=e.shift(),n=e.join(hp);if(n.includes(YC)&&(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 eN(t){return Array.isArray(t)||typeof t=="string"&&t.match(G_)!=null}function tN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(G_)!=null?t.substring(1,t.length-1):t}function rN(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 Ep(t){let e=t.trim();if(!$_.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Tp(t){return $_.test(t.trim())}function fc(t){return t!=null&&t!==""}function nN(t){return HC.test(t)}function ea(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 iN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function _p(t){if(iN(t))return t}var V_="Database does not exist.";function q_(t){return(0,Q_.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Qr=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 jC(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new es(t,r,e);return new ji(n)}var es=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=q_(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=q_(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await bo({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Qr(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===V_)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Qr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Qr(`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(_h(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 Qr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Se()),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===V_)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Yu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await bo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Qr("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}/${ir}`;return ea("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(ir)){let e=await this.get(ir);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 Qr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ke(t,e){return new ji(new es(t,e))}async function at(t,e,r){let n=Ke(t,r);return await e(n)}async function up(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Hu(e)}async function mp(t,e){let r=await Hu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var j_=null;function ar(t){return t||(t=Q()),Xo(t)}function Y_(t){return t||(t=Q()),t===he?Ae.AUDIT_LOGS.name:`${t}${v}${Ae.AUDIT_LOGS.name}`}function sN(t){return t||(t=Q()),t===he?Ae.SCIM_LOGS.name:`${t}${v}${Ae.SCIM_LOGS.name}`}function Xo(t){return!t||t===he?Ae.GLOBAL.name:`${t}${v}${Ae.GLOBAL.name}`}function Sp(){return h.PLATFORM_URL}function jr(){return!!h.MULTI_TENANCY}function oN(){return!!ve.get()?.tenantId}function aN(){return h.MULTI_TENANCY}function rs(t){if(!t)return;if(!jr())return he;let e=t.split(v),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function uN(t){let e;try{e=ve.get()}catch{e={}}return e={...e,...t},e}async function Yr(t,e){dN();let r=uN(t);return ve.run(r,e)}async function cN(t){return await K_(),Yr({tenantId:rs(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Op(t,e){let r=rs(t);return Yr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||he),Yr(t?{tenantId:t}:{},e)}async function lN(t,e){return H_(t,e)}async function H_(t,e,r){if(!t)throw new Error("appId is required");let n=rs(t),i={appId:t,...r};return n&&(i.tenantId=n),Yr(i,e)}async function Io(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Yr(r,e)}function dN(){if(ve.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function fN(t,e){return H_(t,e,{isMigrating:!0})}function sr(){try{return ve.get()?.identity}catch{}}function Q(){if(!jr())return he;let e=ve.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function qf(){return ve.get()?.automationId}function Ne(){let e=ve.get()?.appId;return!e&&h.isTest()&&j_?j_:e}function Ip(){return ve.get()?.ip}var pN=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function mN(t,e){if(!t)throw new Error("Must supply environment variables.");return Yr({environmentVariables:t},e)}function hN(t){return Yr({isScim:!0},t)}function xp(t,e){return Yr({ip:t},e)}async function K_(t=!h.isTest()){let e=is();if(!e||e.snippets)return;let r,n=ns();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function gN(){let t=ve.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=ve.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ke(Xo(t?.tenantId))}function yN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ke(Y_())}function ns(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ke(e,t)}function EN(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ke(ot(e),t)}function TN(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ke(ju(e),t)}function Pt(){return!!ve.get()?.isScim}function is(){try{return ve.get()}catch{return}}function wp(t){let e=is();if(e)return e.featureFlagCache?.[t]}function bp(t,e){let r=is();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function _N(t){let e=is();if(e)return e.viewToTableCache?.[t]}function AN(t,e){let r=is();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function Wt(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 Zf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Wt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Wt(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[Wt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Wt(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(Wt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Wt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ss=new ei,lr=(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))(lr||{}),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||{}),pc=(...t)=>ss.keys(...t),ri=(...t)=>ss.get(...t),dr=(...t)=>ss.store(...t),ta=(...t)=>ss.delete(...t),Hr=(...t)=>ss.withCache(...t),os=(...t)=>ss.bustCache(...t);var rn={};N(rn,{getUser:()=>ba,getUsers:()=>F0,invalidateUser:()=>Ra});var ia={};N(ia,{addTenantToUrl:()=>SN,getTenantDB:()=>Rp,getTenantIDFromCtx:()=>na,isUserInAppTenant:()=>ON});function Rp(t){return Ke(ar(t))}function SN(t){let e=Q();if(jr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var ON=(t,e)=>{let r;return e?r=e.tenantId||he:r=Q(),(rs(t)||he)===r},IN=Object.values(Is),na=(t,e)=>{if(!jr())return he;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=IN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(Sp()).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 aa={};N(aa,{getPlatformDB:()=>ut,tenants:()=>Bp,users:()=>Ut});var Ut={};N(Ut,{addSsoUser:()=>J_,addUser:()=>vN,getUserDoc:()=>z_,lookupTenantId:()=>xN,removeUser:()=>CN,updateUserDoc:()=>wN});function ut(){return Ke(Ae.PLATFORM_INFO.name)}async function xN(t){return h.MULTI_TENANCY?(await z_(t)).tenantId:he}async function z_(t){return ut().get(t)}async function wN(t){await ut().put(t)}function bN(t,e){return{_id:t,tenantId:e}}function RN(t,e,r){return{_id:e,userId:t,tenantId:r}}function DN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Dp(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 J_(t,e,r,n){return Dp(t,()=>DN(t,e,r,n))}async function vN(t,e,r,n){let i=[Dp(e,()=>bN(e,t)),Dp(r,()=>RN(e,r,t))];n&&i.push(J_(n,r,e,t)),await Promise.all(i)}async function CN(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 Bp={};N(Bp,{addTenant:()=>zN,exists:()=>YN,getTenantIds:()=>jN,removeTenant:()=>JN,tenacyLockOptions:()=>Fp});var si={};N(si,{AUTO_EXTEND_POLLING_MS:()=>aA,doWithLock:()=>cs,newRedlock:()=>ii});var oA=j(require("redlock"));var as={};N(as,{Duration:()=>De,DurationType:()=>Mp,clearCookie:()=>Kr,compare:()=>Np,getAppIdFromCtx:()=>BN,getCookie:()=>ni,hasCircularStructure:()=>VN,hash:()=>Cp,isAudited:()=>Up,isClient:()=>GN,isPublicApiRequest:()=>FN,isServingApp:()=>LN,isServingBuilder:()=>MN,isServingBuilderPreview:()=>kN,isValidInternalAPIKey:()=>oa,newid:()=>Se,openJwt:()=>hc,resolveAppUrl:()=>rA,setCookie:()=>nA,timeout:()=>$N,validEmail:()=>Lp});var vp=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),NN=h.SALT_ROUNDS||10;async function Cp(t){let e=await vp.genSalt(NN);return vp.hash(t,e)}async function Np(t,e){return vp.compare(t,e)}var mc=j(require("jsonwebtoken")),Pp="app"+v,X_="/app/",eA="/app/preview",PN="/builder",tA=`${PN}/app/`,UN="/api/public/v";function sa(t){return t&&t.startsWith(Pp)?t:void 0}async function rA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=na(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function LN(t){return t.path.startsWith(`/${Pp}`)?!0:t.path.startsWith(X_)}function MN(t){return t.path.startsWith(tA)}function kN(t){return t.path.startsWith(eA)}function FN(t){return t.path.startsWith(UN)}async function BN(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=sa(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=sa(t.request.body.appId));let n=Z_(t.path);!r&&n&&(r=sa(n));let i=t.path.startsWith(eA),s=t.path.startsWith(X_)&&!i;!r&&s&&(r=sa(await rA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(tA)){let a=Z_(t.request.headers.referer);r=sa(a)}return r}function Z_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Pp))}function hc(t){if(t)try{return mc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return mc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function oa(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 hc(r)}function nA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=mc.default.sign(e,h.JWT_SECRET));let i={expires:Vu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Kr(t,e){nA(t,null,e)}function GN(t){return t.headers["x-budibase-type"]==="client"}function $N(t){return new Promise(e=>setTimeout(e,t))}function Up(t){return!!yh[t]}function VN(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 Lp(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 Mp=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Mp||{}),iA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{static convert(e,r,n){return n*iA[e]/iA[r]}static from(e,r){return{to:n=>t.convert(e,n,r),toMs:()=>t.convert(e,"milliseconds",r),toSeconds:()=>t.convert(e,"seconds",r)}}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function qN(t,e){if(t==="custom")return ii(e);switch(t){case"try_once":return ii(us.TRY_ONCE);case"try_twice":return ii(us.TRY_TWICE);case"default":return ii(us.DEFAULT);case"delay_500":return ii(us.DELAY_500);case"auto_extend":return ii(us.AUTO_EXTEND);default:throw wi.unreachable(t)}}var us={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={...us.DEFAULT,...t},n=(await ep()).getClient();return new oA.default([n],e)}function WN(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var aA=De.fromSeconds(10).toMs();async function cs(t,e){let r=await qN(t.type,t.customOptions),n,i;try{let s=WN(t),o=t.type==="auto_extend"?aA: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 kp=Ae.PLATFORM_INFO.docs.tenants,Fp={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function jN(){return(await gc()).tenantIds}async function gc(){let t=ut(),e;try{e=await t.get(kp)}catch(r){if(r.status===404)e=await KN();else throw r}return e}async function YN(t){return(await gc()).tenantIds.indexOf(t)!==-1}function HN(){return{_id:kp,tenantIds:[]}}async function KN(){let t=ut(),e=HN();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(kp);throw r}return e}async function zN(t){let e=ut();await cs(Fp,async()=>{let r=await gc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function JN(t){try{await cs(Fp,async()=>{let e=ut(),r=await gc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var oi={};N(oi,{getAccount:()=>zr,getAccountByTenantId:()=>ls,getStatus:()=>ZN});var uA=j(require("node-fetch"));var ua=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";Do.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,uA.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 Gp=new ua(h.ACCOUNT_PORTAL_URL),$p=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,zr=async t=>{if($p)return;let e={email:t},r=await Gp.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ls=async t=>{if($p)return;let e={tenantId:t},r=await Gp.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]},ZN=async()=>{if($p)return;let t=await Gp.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};N(Es,{UserDB:()=>jt,addAppBuilder:()=>U0,bulkGetGlobalUsersById:()=>$c,bulkUpdateGlobalUsers:()=>Ia,cleanseUserObject:()=>Im,doesUserExist:()=>D0,getAccountHolderFromUsers:()=>Rc,getAllUserIds:()=>b0,getAllUsers:()=>R0,getById:()=>di,getCreatorCount:()=>N0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>fA,getExistingTenantUsers:()=>dA,getFirstPlatformUser:()=>ca,getGlobalUserByAppPage:()=>cS,getGlobalUserByEmail:()=>Mt,getPlatformUsers:()=>yc,getUserCount:()=>C0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>AA,hasBuilderPermissions:()=>_t,isAdmin:()=>Xr,isAdminOrBuilder:()=>_A,isBuilder:()=>ms,isCreator:()=>Qt,isGlobalBuilder:()=>TA,paginatedUsers:()=>dS,removeAppBuilder:()=>L0,removePortalUserPermissions:()=>P0,searchExistingEmails:()=>Wp,searchGlobalUsersByApp:()=>Vc,searchGlobalUsersByAppAccess:()=>Om,searchGlobalUsersByEmail:()=>lS,validateUniqueUser:()=>bc});var em={};N(em,{getAccountHolderFromUsers:()=>Rc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>AA,hasBuilderPermissions:()=>_t,isAdmin:()=>Xr,isAdminOrBuilder:()=>_A,isBuilder:()=>ms,isCreator:()=>Qt,isGlobalBuilder:()=>TA,validateUniqueUser:()=>bc});var qp={};N(qp,{createCode:()=>eP,deleteCode:()=>rP,getCode:()=>tP,getExistingInvites:()=>Vp,getInviteCodes:()=>lA,updateCode:()=>XN});var cA=De.fromDays(7).toSeconds();async function XN(t,e){await(await Jn()).store(t,e,cA)}async function eP(t,e){let r=Se();return await(await Jn()).store(r,{email:t,info:e},cA),r}async function tP(t){let r=await(await Jn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function rP(t){await(await Jn()).delete(t)}async function lA(){let r=(await(await Jn()).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 Vp(t){return(await lA()).filter(e=>t.includes(e.email))}async function Wp(t){let e=[],r=await dA(t);e.push(...r.map(o=>o.email));let n=await fA(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await Vp(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function yc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ca(t){return(await yc(t))[0]??null}async function dA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await ur("by_email2",r,void 0,n)}async function fA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("account_by_email",r)}var Ic={};N(Ic,{BadRequestError:()=>Tc,BudibaseError:()=>fs,EmailUnavailableError:()=>fr,ErrorCode:()=>Sc,FeatureDisabledError:()=>Ac,HTTPError:()=>ct,InvalidAPIKeyError:()=>ps,NotFoundError:()=>Ec,UsageLimitError:()=>_c,getPublicError:()=>Oc});var fs=class extends Error{constructor(r,n){super(r);this.code=n}},Sc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Sc||{}),Oc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends fs{constructor(r,n,i="http"){super(r,i);this.status=n}},Ec=class extends ct{constructor(e){super(e,404)}},Tc=class extends ct{constructor(e){super(e,400)}},_c=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Ac=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},ps=class extends fs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},fr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var Xp={};N(Xp,{AccessController:()=>Yp,BUILTIN_ROLE_IDS:()=>fa,Role:()=>Jr,RoleHierarchyTraversal:()=>xc,RoleIDVersion:()=>Hp,builtinRoleToNumber:()=>la,checkForRoleResourceArray:()=>gA,externalRole:()=>uP,findRole:()=>da,getAllRoleIds:()=>fP,getAllRoles:()=>Zp,getBuiltinRole:()=>mA,getBuiltinRoles:()=>zp,getDBRoleID:()=>yA,getExternalRoleID:()=>Zr,getExternalRoleIDs:()=>EA,getRole:()=>cP,getUserRoleHierarchy:()=>Jp,getUserRoleIdHierarchy:()=>hA,isBuiltin:()=>ai,lowerBuiltinRoleID:()=>aP,prefixRoleIDNoBuiltin:()=>jp,roleIDsAreEqual:()=>Tt,roleToNumber:()=>oP,saveRoles:()=>lP,validInherits:()=>sP});var Qp=j(require("semver"));var wc=j(require("lodash/fp/cloneDeep"));var pA=require("lodash");var fa={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},de={...fa,BUILDER:"BUILDER"},Hp={UUID:void 0,NAME:"name"};function iP(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=Hp.NAME}addInheritance(e){return e&&typeof e=="string"?e=jp(e):e&&Array.isArray(e)&&(e=e.map(jp)),this.inherits=e,this}},xc=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=da(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!iP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=da(o.inherits,n,r),o&&i.push(o),Nr.roles.checkForRoleInheritanceLoops(i))break}}return(0,pA.uniqBy)(i,s=>s._id)}},Kp={ADMIN:new Jr(de.ADMIN,de.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(de.POWER),POWER:new Jr(de.POWER,de.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(de.BASIC),BASIC:new Jr(de.BASIC,de.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(de.PUBLIC),PUBLIC:new Jr(de.PUBLIC,de.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Jr(de.BUILDER,de.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function zp(){return(0,wc.default)(Kp)}function ai(t){return Object.values(fa).includes(t)}function jp(t){return ai(t)?t:or(t)}function mA(t){let e=Object.values(Kp).find(r=>t.includes(r._id));if(e)return(0,wc.default)(e)}function sP(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 la(t){let e=zp(),r=Object.values(e).length+1;if(Tt(t,de.ADMIN)||Tt(t,de.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 oP(t){if(ai(t))return la(t);let e=await Jp(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 la(n.inherits)+1;return 0};return Math.max(...e.map(r))}function aP(t,e){return t?e&&la(t)>la(e)?e:t:e}function Tt(t,e){return or(t)===or(e)}function uP(t){let e;return t._id&&(e=Zr(t._id)),{...t,_id:e,inherits:EA(t.inherits,t.version)}}function da(t,e,r){let n=mA(t);n||(t=or(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ai(t)&&r?.defaultPublic?(0,wc.default)(Kp.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 cP(t,e){let r=ns(),n=[];if(!ai(t)){let i=await r.tryGet(yA(t));i&&n.push(i)}return da(t,n,e)}async function lP(t){await ns().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:or(r._id)})))}async function dP(t,e){let r=await Zp();if(Tt(t,de.ADMIN))return r;let n=da(t,r,e),i=[];return n&&(i=new xc(r,e).walk(n)),i}async function hA(t){return(await Jp(t)).map(r=>r._id)}async function Jp(t,e){return dP(t,e)}function gA(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 fP(t){return(await Zp(t)).map(r=>r._id)}async function Zp(t){if(t)return at(t,e);{let r;try{r=ns()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(lc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Zr(a._id,a.version)));let i=zp(),s=[];!r||await pP(r)?s=[de.ADMIN,de.POWER,de.BASIC,de.PUBLIC]:s=[de.ADMIN,de.BASIC,de.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=gA(o.permissions,a);return n}}async function pP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Qp.default.valid(r)?!0:!Qp.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Yp=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,de.BUILDER)||Tt(r,e)||Tt(r,de.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await hA(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 yA(t){return t?.startsWith("role")?t:or(t)}function Zr(t,e){if(t.startsWith(`role${v}`)&&(ai(t)||e===Hp.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function EA(t,e){return t&&(typeof t=="string"?Zr(t,e):t.map(r=>Zr(r,e)))}var ms=st.users.isBuilder,Xr=st.users.isAdmin,TA=st.users.isGlobalBuilder,_A=st.users.isAdminOrBuilder,en=st.users.hasAdminPermissions,_t=st.users.hasBuilderPermissions,AA=st.users.hasAppBuilderPermissions;async function Qt(t){let e=st.users.isCreator(t);return!e&&t?await mP(t):e}async function mP(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(fa.ADMIN))}return!1}async function bc(t,e){if(h.MULTI_TENANCY){let r=await ca(t);if(r!=null&&r.tenantId!==e)throw new fr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await zr(t);if(r&&r.verified&&r.tenantId!==e)throw new fr(t)}}async function Rc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};N(ys,{account:()=>kA,ai:()=>VA,analytics:()=>vc,app:()=>FA,auditLog:()=>nS,auth:()=>Fc,automation:()=>BA,backfill:()=>ZA,backfillCache:()=>Mc,backup:()=>tS,datasource:()=>GA,email:()=>$A,environmentVariable:()=>rS,group:()=>XA,identification:()=>Lt,initAsyncEvents:()=>f0,installation:()=>Ea,layout:()=>WA,license:()=>qA,org:()=>QA,plugin:()=>eS,processors:()=>om,publishEvent:()=>_,query:()=>jA,role:()=>Oa,rowAction:()=>iS,rows:()=>HA,screen:()=>YA,serve:()=>zA,shutdown:()=>p0,table:()=>KA,user:()=>$e,view:()=>JA});var om={};N(om,{analyticsProcessor:()=>NA,init:()=>CP,processors:()=>pr});var vc={};N(vc,{enabled:()=>Dc});var Dc=async()=>Cc();var wA=require("posthog-node");var hP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",gP=t=>t==="served:app:preview"||t==="served:app";var OA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},IA=async t=>{if(!hP(t))return!1;let e=await yP(t);if(e){let r=new Date(e.timestamp);switch(OA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await SA(t,{timestamp:Date.now()}),!1):!0}}else return await SA(t,{timestamp:Date.now()}),!1},xA=t=>{let e=`eventsRateLimit:${t}`;return gP(t)&&(e=e+":"+Ne()),e},yP=async t=>{let e=xA(t);return await ri(e)},SA=async(t,e)=>{let r=xA(t),n=OA[t],i;switch(n){case"calendarDay":i=86400}await dr(r,e,i)};var TP=["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"],pa=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new wA.PostHog(e)}async processEvent(e,r,n,i){if(TP.includes(e)||await IA(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 bA=pa;var _P=["installation:version:upgraded","installation:version:downgraded"],AP=["installation","tenant"],ma=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new bA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!_P.includes(e)&&!await Dc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!AP.includes(e.type)&&!await Dc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var tm=h.SELF_HOSTED&&!h.isDev(),ha=class{async processEvent(e,r,n){tm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){tm||console.log("[audit] identified",e)}async identifyGroup(e){tm||console.log("[audit] group identified",e)}shutdown(){}};var sm={};N(sm,{JobQueue:()=>hs,createQueue:()=>ui,shutdown:()=>RP});var RA=j(require("events"));function SP(t,e,r){return{id:Se(),timestamp:Date.now(),queue:t,data:e,opts:r}}var rm=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new RA.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()=>{if(this._messages.length<=0)return;let n=this._messages.shift(),i=r(n);async function s(a){try{await a}catch{await new Promise(c=>setTimeout(()=>c(),50)),await s(r(n))}}if(i.then!=null)try{await s(i)}catch(a){console.error(a)}this._runCount++;let o=n?.opts?.jobId?.toString();o&&n?.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){let n=r?.jobId?.toString();if(n&&this._queuedJobIds.has(n)){console.log(`Ignoring already queued job ${n}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";n&&this._queuedJobIds.add(n);let i=()=>{this._messages.push(SP(this._name,e,r)),this._addCount++,this._emitter.emit("message")},s=r?.delay;return s?setTimeout(i,s):i(),{id:n}}async close(){}async removeRepeatableByKey(e){console.log(e)}async getRepeatableJobs(){return[]}async removeJobs(e){}async clean(){return[]}async getJob(){return null}on(){return this}},DA=rm;var nm=j(require("bull"));var hs=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(hs||{});function vA(t,e,r){xP(t,e),r&&OP(t,r)}function OP(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var IP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function xP(t,e){let r=IP[e];function n(i,s){let o=i.data.event?.appId;if(o)return Op(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var wP=De.fromMinutes(5).toMs(),bP=De.fromSeconds(30).toMs(),im=De.fromSeconds(60).toMs(),ga=[],Nc;async function CA(){for(let t of ga)await t.clean(im,"completed"),await t.clean(im,"failed")}function ui(t,e={}){let n={redis:Hi(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:wP,lockRenewTime:bP}};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 nm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new DA(t,n):i=new nm.default(t,n),vA(i,t,e?.removeStalledCb),ga.push(i),!Nc&&!h.isTest()&&(Nc=Uo(CA,im),CA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function RP(){if(Nc&&Lo(Nc),ga.length){for(let t of ga)await t.close();ga=[]}console.log("Queues shutdown")}var gs=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ui("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&&Up(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 ya=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 NA=new ma,DP=new ha,vP=new gs;function CP(t){return gs.init(t)}var pr=new ya([NA,DP,vP]);var Pc={};N(Pc,{checkInstallVersion:()=>UP,getInstall:()=>Ta,getInstallFromDB:()=>um});var am=j(require("semver"));var Ta=async()=>Hr("installation",86400,um,{useTenancy:!1});async function NP(t){let e={_id:Ae.PLATFORM_INFO.docs.install,installId:Se(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return um();throw r}}var um=async()=>at(Ae.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Ae.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await NP(t);else throw r}return e}),PP=async t=>{try{await at(Ae.PLATFORM_INFO.name,async e=>{let r=await Ta();r.version=t,await e.put(r),await os("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},UP=async()=>{let t=await Ta(),e=t.version,r=h.VERSION;try{if(e!==r){let n=am.default.gt(r,e),i=am.default.lt(r,e);await PP(r)&&(await Io({_id:t.installId,type:"installation"},async()=>{n?await Ea.upgraded(e,r):i&&await Ea.downgraded(e,r)}),await Lt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Hn(`Invalid version "${r}" - is it semver?`):Hn("Failed to retrieve version",n)}};var LP=async()=>{let t=Ef(),e=Sa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await ci(),i=_a();return{id:PA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await ci(),i=await Uc(Q()),s=_a();return{id:PA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Uc(Q()),s=await ci(),o=n.account,a;return o?a=o.hosting:a=_a(),{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")},MP=async(t,e)=>{let r=t,n="installation",i=_a(),s=h.VERSION,o=Sa(),a={id:r,type:n,hosting:i,version:s,environment:o};await cm(a,e),await Aa({...a,id:`$${n}_${r}`},e)},kP=async(t,e,r)=>{let n=await Uc(t),i="tenant",s=await ci(),o=Sa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await cm(a,r),await Aa({...a,id:`$${i}_${n}`},r)},FP=async(t,e,r)=>{let n=t._id,i=await Uc(t.tenantId),s="user",o=_t(t),a=en(t),u;$a(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,f=!!e&&l&&e.verified,m=await ci(),d=e?e.hosting:_a(),p=Sa();await Aa({id:n,type:s,hosting:d,installationId:m,tenantId:i,verified:f,accountHolder:l,providerType:u,builder:o,admin:a,environment:p},r)},BP=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ga(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await ci(),c=Sa();if(Ba(t)){let f=await Mt(t.email);f?._id&&(e=f._id)}await Aa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Aa=async(t,e)=>{await pr.identify(t,e)},cm=async(t,e)=>{await pr.identifyGroup(t,e)},Sa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,_a=()=>h.SELF_HOSTED?"self":"cloud",ci=async()=>GP()?"account-portal":(await Ta()).installId,Uc=async t=>h.SELF_HOSTED?UA(t):t,UA=async t=>Ge(t,()=>Hr("uniqueTenantId",86400,async()=>{let e=se(),r=await Lc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Se()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),GP=()=>h.SERVICE==="account-portal",PA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Lt={getCurrentIdentity:LP,identifyInstallationGroup:MP,identifyTenantGroup:kP,identifyUser:FP,identifyAccount:BP,identify:Aa,identifyGroup:cm,getInstallationId:ci,getUniqueTenantId:UA};var Mc={};N(Mc,{end:()=>VP,isAlreadySent:()=>fm,isBackfillingEvent:()=>dm,recordEvent:()=>lm,start:()=>$P});var $P=async t=>WP({eventWhitelist:t}),lm=async(t,e)=>{let r=pm(t,e);await dr(r,e,void 0,{useTenancy:!1})},VP=async()=>{await QP(),await jP()},qP=async()=>ri("backfillMetadata"),WP=async t=>dr("backfillMetadata",t),QP=async()=>{await ta("backfillMetadata")},jP=async()=>{let t=pm(),e=await pc(t);for(let r of e)await ta(r,{useTenancy:!1})},dm=async t=>{let r=(await qP())?.eventWhitelist;return!!(r&&r.includes(t))},fm=async(t,e)=>{let r=pm(t,e);return!!await ri(r,{useTenancy:!1})},YP={"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}`},pm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=YP[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var mr;function kc(){mr=ui("systemEventQueue")}async function LA(){mr&&await mr.close()}async function MA(t){mr||kc();let{event:e,identity:r}=t;gh.indexOf(e)!==-1&&r.tenantId&&await mr.add(t)}var _=async(t,e,r,n)=>{let i=n||await Lt.getCurrentIdentity();if(!(n?!1:await dm(t))){await MA({event:t,identity:i,properties:e,timestamp:r}),await pr.processEvent(t,i,e,r);return}await fm(t,e)||(await pr.processEvent(t,i,e,r),await lm(t,e))};async function HP(t,e){let r={tenantId:t.tenantId};await _("account:created",r,void 0,e)}async function KP(t){let e={tenantId:t.tenantId};await _("account:deleted",e)}async function zP(t){let e={tenantId:t.tenantId};await _("account:verified",e)}var kA={created:HP,deleted:KP,verified:zP};var JP=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:created",r,e)};async function ZP(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:updated",e)}async function XP(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:deleted",e)}async function eU(t,e){let r={appId:t.appId,audited:{name:t.name}};await _("app:published",r,e)}async function tU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:unpublished",e)}async function rU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:file:imported",e)}async function nU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await _("app:duplicated",r)}async function iU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await _("app:template:imported",r)}async function sU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await _("app:version:updated",n)}async function oU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await _("app:version:reverted",n)}async function aU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:reverted",e)}async function uU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:exported",e)}var FA={created:JP,updated:ZP,deleted:XP,published:eU,unpublished:tU,fileImported:rU,duplicated:nU,templateImported:iU,versionUpdated:sU,versionReverted:oU,reverted:aU,exported:uU};async function cU(t,e){let n={userId:(await Lt.getCurrentIdentity()).id,source:t,audited:{email:e}};await _("auth:login",n)}async function lU(t){let r={userId:(await Lt.getCurrentIdentity()).id,audited:{email:t}};await _("auth:logout",r)}async function dU(t,e){let r={type:t};await _("auth:sso:created",r,e)}async function fU(t){let e={type:t};await _("auth:sso:updated",e)}async function pU(t,e){let r={type:t};await _("auth:sso:activated",r,e)}async function mU(t){let e={type:t};await _("auth:sso:deactivated",e)}var Fc={login:cU,logout:lU,SSOCreated:dU,SSOUpdated:fU,SSOActivated:pU,SSODeactivated:mU};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 _("automation:created",r,e)}async function gU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:trigger:updated",e)}async function yU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:deleted",e)}async function EU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:tested",e)}var TU=async(t,e)=>{let r={count:t};await _("automations:run",r,e)};async function _U(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:created",n,r)}async function AU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:deleted",r)}var BA={created:hU,triggerUpdated:gU,deleted:yU,tested:EU,run:TU,stepCreated:_U,stepDeleted:AU};function mm(t){return!Object.values(Ma).includes(t.source)}async function SU(t,e){let r={datasourceId:t._id,source:t.source,custom:mm(t)};await _("datasource:created",r,e)}async function OU(t){let e={datasourceId:t._id,source:t.source,custom:mm(t)};await _("datasource:updated",e)}async function IU(t){let e={datasourceId:t._id,source:t.source,custom:mm(t)};await _("datasource:deleted",e)}var GA={created:SU,updated:OU,deleted:IU};async function xU(t){let e={};await _("email:smtp:created",e,t)}async function wU(){let t={};await _("email:smtp:updated",t)}var $A={SMTPCreated:xU,SMTPUpdated:wU};async function bU(t){let e={};await _("ai:config:created",e,t)}async function RU(){let t={};await _("ai:config:updated",t)}var VA={AIConfigCreated:bU,AIConfigUpdated:RU};async function DU(t,e){let r={accountId:t.accountId,...e};await _("license:plan:changed",r)}async function vU(t){let e={accountId:t.accountId};await _("license:activated",e)}async function CU(t){let e={accountId:t.accountId};await _("license:checkout:opened",e)}async function NU(t){let e={accountId:t.accountId};await _("license:checkout:success",e)}async function PU(t){let e={accountId:t.accountId};await _("license:portal:opened",e)}async function UU(t){let e={accountId:t.accountId};await _("license:payment:failed",e)}async function LU(t){let e={accountId:t.accountId};await _("license:payment:recovered",e)}var qA={planChanged:DU,activated:vU,checkoutOpened:CU,checkoutSuccess:NU,portalOpened:PU,paymentFailed:UU,paymentRecovered:LU};async function MU(t,e){let r={layoutId:t._id};await _("layout:created",r,e)}async function kU(t){let e={layoutId:t};await _("layout:deleted",e)}var WA={created:MU,deleted:kU};async function FU(t){let e={};await _("org:info:name:updated",e,t)}async function BU(t){let e={};await _("org:info:logo:updated",e,t)}async function GU(t){let e={};await _("org:platformurl:updated",e,t)}async function $U(){let t={};await _("analytics:opt:out",t)}async function VU(){let t={};await _("analytics:opt:out",t)}var QA={nameUpdated:FU,logoUpdated:BU,platformURLUpdated:GU,analyticsOptOut:$U,analyticsOptIn:VU};var qU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:created",n,r)},WU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:updated",r)},QU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:deleted",r)},jU=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await _("query:import",n)},YU=async(t,e)=>{let r={count:t};await _("queries:run",r,e)},HU=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:previewed",r)},jA={created:qU,updated:WU,deleted:QU,imported:jU,run:YU,previewed:HU};async function KU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:created",r,e)}async function zU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:updated",e)}async function JU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:deleted",e)}async function ZU(t,e,r){let n={userId:t._id,roleId:e};await _("role:assigned",n,r)}async function XU(t,e){let r={userId:t._id,roleId:e};await _("role:unassigned",r)}var Oa={created:KU,updated:zU,deleted:JU,assigned:ZU,unassigned:XU};async function eL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:created",r,e)}async function tL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:deleted",e)}var YA={created:eL,deleted:tL};var rL=async(t,e)=>{let r={count:t};await _("rows:created",r,e)},nL=async(t,e)=>{let r={tableId:t._id,count:e};await _("rows:imported",r)},HA={created:rL,imported:nL};async function iL(t,e){let r={tableId:t._id,audited:{name:t.name}};await _("table:created",r,e)}async function sL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await _("table:updated",i)}async function oL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:deleted",e)}async function aL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await _("table:exported",r)}async function uL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:imported",e)}var KA={created:iL,updated:sL,deleted:oL,exported:aL,imported:uL};async function cL(t){let e={timezone:t};await _("served:builder",e)}async function lL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await _("served:app",n)}async function dL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await _("served:app:preview",r)}var zA={servedBuilder:cL,servedApp:lL,servedAppPreview:dL};async function fL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:created",r,e)}async function pL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:updated",e)}async function mL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:deleted",e)}async function hL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:onboarding:complete",e)}async function gL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:admin:assigned",r,e)}async function yL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:admin:removed",e)}async function EL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:builder:assigned",r,e)}async function TL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:builder:removed",e)}async function _L(t){let e={audited:{email:t}};await _("user:invited",e)}async function AL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:invite:accepted",e)}async function SL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:force:reset",e)}async function OL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:updated",e)}async function IL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset:requested",e)}async function xL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset",e)}async function wL(t){let e={users:t};await _("user:data:collaboration",e)}var $e={created:fL,updated:pL,deleted:mL,permissionAdminAssigned:gL,permissionAdminRemoved:yL,permissionBuilderAssigned:EL,permissionBuilderRemoved:TL,onboardingComplete:hL,invited:_L,inviteAccepted:AL,passwordForceReset:SL,passwordUpdated:OL,passwordResetRequested:IL,passwordReset:xL,dataCollaboration:wL};async function bL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await _("view:created",r,e)}async function RL(t){let e={tableId:t.tableId};await _("view:updated",e)}async function DL(t){let e={tableId:t.tableId};await _("view:deleted",e)}async function vL(t,e){let r={tableId:t._id,format:e};await _("view:exported",r)}async function CL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await _("view:filter:created",n,r)}async function NL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await _("view:filter:updated",r)}async function PL(t){let e={tableId:t.tableId};await _("view:filter:deleted",e)}async function UL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await _("view:calculation:created",n,r)}async function LL(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:updated",e)}async function ML(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:deleted",e)}async function kL(t,e){let r={tableId:t};await _("view:join:created",r,e)}var JA={created:bL,updated:RL,deleted:DL,exported:vL,filterCreated:CL,filterUpdated:NL,filterDeleted:PL,calculationCreated:UL,calculationUpdated:LL,calculationDeleted:ML,viewJoinCreated:kL};async function FL(t){let e={currentVersion:t};await _("installation:version:checked",e)}async function BL(t,e){let r={from:t,to:e};await _("installation:version:upgraded",r)}async function GL(t,e){let r={from:t,to:e};await _("installation:version:downgraded",r)}async function $L(){let t={};await _("installation:firstStartup",t)}var Ea={versionChecked:FL,upgraded:BL,downgraded:GL,firstStartup:$L};var Ts=!h.SELF_HOSTED&&!h.isDev();async function VL(t){Ts||await _("app:backfill:succeeded",t)}async function qL(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("app:backfill:failed",e)}async function WL(t){Ts||await _("tenant:backfill:succeeded",t)}async function QL(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("tenant:backfill:failed",e)}async function jL(){if(Ts)return;let t={};await _("installation:backfill:succeeded",t)}async function YL(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("installation:backfill:failed",e)}var ZA={appSucceeded:VL,appFailed:qL,tenantSucceeded:WL,tenantFailed:QL,installationSucceeded:jL,installationFailed:YL};async function HL(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:created",r,e)}async function KL(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:updated",e)}async function zL(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:deleted",e)}async function JL(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:user_added",r)}async function ZL(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:users_deleted",r)}async function XL(t){let e={groupId:t,onboarding:!0};await _("user_group:onboarding_added",e)}async function e0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await _("user_group:permissions_edited",e)}var XA={created:HL,updated:KL,deleted:zL,usersAdded:JL,usersDeleted:ZL,createdOnboarding:XL,permissionsEdited:e0};async function t0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:init",e)}async function r0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await _("plugin:imported",e)}async function n0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:deleted",e)}var eS={init:t0,imported:r0,deleted:n0};async function i0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await _("app:backup:restored",e)}async function s0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await _("app:backup:triggered",s)}var tS={appBackupRestored:i0,appBackupTriggered:s0};async function o0(t,e){let r={name:t,environments:e};await _("environment_variable:created",r)}async function a0(t){let e={name:t};await _("environment_variable:deleted",e)}async function u0(t){let e={userId:t};await _("environment_variable:upgrade_panel_opened",e)}var rS={created:o0,deleted:a0,upgradePanelOpened:u0};async function c0(t){let e={filters:t};await _("audit_log:filtered",e)}async function l0(t){let e={filters:t};await _("audit_log:downloaded",e)}var nS={filtered:c0,downloaded:l0};async function d0(t,e){await _("row_action:created",t,e)}var iS={created:d0};function f0(){}var p0=()=>{pr.shutdown(),console.log("Events shutdown")};var hm=async t=>{await $e.deleted(t),_t(t)&&await $e.permissionBuilderRemoved(t),en(t)&&await $e.permissionAdminRemoved(t)},m0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Oa.assigned(t,i)},h0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Oa.unassigned(t,i)},g0=async(t,e)=>{let r=t.roles,n=e?.roles;await m0(t,r,n),await h0(t,r,n)},gm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await Lt.identifyUser(t,n),e?(await $e.updated(t),E0(t,e)&&await $e.permissionBuilderRemoved(t),_0(t,e)&&await $e.permissionAdminRemoved(t),A0(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),y0(t,e)&&await $e.permissionBuilderAssigned(t),T0(t,e)&&await $e.permissionAdminAssigned(t),await g0(t,e)},y0=(t,e)=>sS(t,e,_t),E0=(t,e)=>oS(t,e,_t),T0=(t,e)=>sS(t,e,en),_0=(t,e)=>oS(t,e,en),A0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",sS=(t,e,r)=>!(!r(t)||e&&r(e)),oS=(t,e,r)=>!(r(t)||!e||!r(e));var Gc={};N(Gc,{createASession:()=>O0,endSession:()=>I0,getSession:()=>Em,getSessionsForUser:()=>Bc,invalidateSessions:()=>li,updateSessionTTL:()=>ym});var aS=require("uuid");var uS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function _s(t,e){return`${t}/${e}`}async function Bc(t){return t?(await(await Vr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function li(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Bc(t)).map(o=>({key:_s(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:_s(t,s)}))),i&&i.length>0){let s=await Vr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||zi(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function O0(t,e){await li(t,{reason:"creation"});let r=await Vr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,aS.v4)(),s=_s(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,uS),o}async function ym(t){let e=await Vr(),r=_s(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,uS)}async function I0(t,e){await(await Vr()).delete(_s(t,e))}async function Em(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Vr()).get(_s(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Sm={};N(Sm,{PASSWORD_MAX_LENGTH:()=>_m,PASSWORD_MIN_LENGTH:()=>Tm,validatePassword:()=>Am});var Tm=+(h.PASSWORD_MIN_LENGTH||12),_m=+(h.PASSWORD_MAX_LENGTH||512);function Am(t){return!t||t.length<Tm?{valid:!1,error:`Password invalid. Minimum ${Tm} characters.`}:t.length>_m?{valid:!1,error:`Password invalid. Maximum ${_m} characters.`}:{valid:!0}}var x0=async t=>{let e=t._id;await Ut.removeUser(t),await hm(t),await rn.invalidateUser(e),await li(e,{reason:"bulk-deletion"})},jt=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()||$a(e)?!0:(r||(r=await ls(Q())),!!(r&&r.email===e.email&&Ga(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 f=Am(o);if(!f.valid)throw new ct(f.error,400)}u=r.hashPassword?await Cp(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||Ji();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(Zn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Vc(e,{})).length}}static async getUsersByAppAccess(e){return await Om(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Mt(e)}static async getUser(e){let r=await di(e);return r&&delete r.password,r}static async bulkGet(e){return await $c(e)}static async bulkUpdate(e){return await Ia(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 di(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await Mt(s),c&&c._id!==o))throw new fr(s);let l=c?0:1,f=await Qt(c)!==await Qt(e)?1:0;return t.quotas.addUsers(l,f,async()=>{await bc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Im(m,c)),!c&&u?.length&&(m.roles={...u});let d=[];if(!o&&a.length>0)for(let p of a)d.push(t.groups.addUsers(p,[m._id]));try{let p=await i.put(m);return m._rev=p.rev,await gm(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,m._id,m.email,m.ssoId),await rn.invalidateUser(p.id),await Promise.all(d),i.get(m._id)}catch(p){throw p.status===409?"User exists already":p}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(f=>f.email),u=await Wp(a),c=[];for(let f of e){if(s.find(m=>m.email.toLowerCase()===f.email.toLowerCase())||u.includes(f.email.toLowerCase())){c.push({email:f.email,reason:"Unavailable"});continue}f.userGroups=r||[],s.push(f),await Qt(f)&&o.push(f)}let l=await ls(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 f=await Promise.all(i);await Ia(f);for(let d of f)await Ut.addUser(n,d._id,d.email),await gm(d,void 0);let m=f.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(m)&&r){let d=[],p=m.map(g=>g._id);for(let g of r)d.push(t.groups.addUsers(g,p));await Promise.all(d)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await Rc(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 Ia(a),l=(await Promise.all(o.map(Qt))).filter(d=>!!d).length,f=[];for(let d of o){let g=(await ca(d._id)).ssoId;g&&(await yc(g)).filter(y=>y.ssoId==null).forEach(y=>{f.push({...y,_deleted:!0})}),await x0(d)}await ut().bulkDocs(f),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((d,p)=>(d[p._id]=p,d),m),u.forEach(d=>{let p=m[d.id].email;d.ok?n.successful.push({_id:d.id,email:p}):n.unsuccessful.push({_id:d.id,email:p,reason:"Database error"})}),n}static async destroy(e){let r=se(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await zr(o))throw n.userId===sr()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await Qt(n)?1:0;await t.quotas.removeUsers(1,s),await hm(n),await rn.invalidateUser(i),await li(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 os("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function wa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function $c(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=wa(n)),n}async function b0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function R0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ia(t){return await se().bulkDocs(t)}async function di(t,e){let n=await se().get(t);return e?.cleanup&&(n=wa(n)),n}async function Mt(t,e){if(t==null)throw"Must supply an email address to view";let r=await ur("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=wa(n)),n}async function D0(t){try{let e=await Mt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Vc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=cc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await ur("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=wa(s)),s}async function Om(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 mp(ar(),i)).rows}function cS(t,e){if(e)return uc(ot(t),e._id)}async function lS(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 ur("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=wa(o)),o}var v0=8;async function dS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??v0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await di(e.equal._id)]:r?(u=await Vc(r,a),l=f=>cS(r,f)):e?.string?.email?(u=await lS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await $c(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Zn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Pr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Zn(null,a))).rows.map(m=>m.doc),ap(u,s,{paginate:!0,property:c,getKey:l})}async function C0(){return(await dp("by_email2",{limit:0,include_docs:!1})).total_rows}async function N0(){let t=0;async function e(r){let n=await dS({bookmark:r}),i=await Promise.all(n.data.map(Qt));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function P0(t){return delete t.admin,delete t.builder,t}function Im(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 U0(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await jt.save(t,{hashPassword:!1})}async function L0(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await jt.save(t,{hashPassword:!1})}var fS=3600;async function M0(t,e){let n=await Rp(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 k0(t){let e=await jt.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 ba({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=M0),!e)try{e=Q()}catch{e=await Ut.lookupTenantId(t)}let i=await jo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,fS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await jt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function F0(t){let e=await jo(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await k0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,fS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ra(t){await(await jo()).delete(t)}var Rm={};N(Rm,{Writethrough:()=>wm});var pS=1e4,xm=null;async function bm(){if(!xm){let t=await Xf();xm=new ei(t)}return xm}function qc(t,e){return t.name+e}function mS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function B0(t,e,r=pS){let n=await bm(),i=e._id,s;i&&(s=await n.get(qc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await cs({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let f=await t.put(l,{force:!0});a._id=f.id,a._rev=f.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;zi("Ignoring conflict in write-through cache")}})).executed||zi("Ignoring redlock conflict in write-through cache")),s=mS(a,o?null:s?.lastWrite),a._id&&await n.store(qc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function G0(t,e){let r=await bm(),n=qc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=mS(s),await r.store(n,i)}return i.doc}async function $0(t,e,r){let n=await bm();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(qc(t,i))}finally{await t.remove(i,r)}}var wm=class{constructor(e,r=pS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return B0(this.db,e,r)}async get(e){return G0(this.db,e)}async remove(e,r){return $0(this.db,e,r)}};var Dm={};N(Dm,{createCode:()=>q0,getCode:()=>W0,invalidateCode:()=>Q0});var V0=De.fromHours(1).toSeconds();async function q0(t,e){let r=Se();return await(await Yo()).store(r,{userId:t,info:e},V0),r}async function W0(t){let r=await(await Yo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function Q0(t){await(await Yo()).delete(t)}var Cm={};N(Cm,{DocWritethrough:()=>vm,DocWritethroughProcessor:()=>Da,getProcessor:()=>Y0,init:()=>hS});var j0=100,Wc,Da=class t{static get queue(){return t._queue||(t._queue=ui("docWritethroughQueue",{jobOptions:{attempts:j0}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){let i=Ke(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},vm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Da.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function hS(){return Wc=new Da().init(),Wc}function Y0(){return Wc||hS()}function Um(t){return`config${v}${t}`}async function kt(t){let e=se();try{return await e.get(Um(t))}catch(r){if(r.status===404)return;throw r}}async function H0(t){return se().put(t)}async function Lc(){let t=await kt("settings");return t||(t={_id:Um("settings"),type:"settings",config:{}}),t.config.platformUrl=await va({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Cc({config:t.config}),t}async function Lm(){return(await Lc()).config}async function va(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await kt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Cc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Hr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await kt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function K0(){return await kt("google")}async function Qc(){return(await K0())?.config}async function Mm(){if(!h.SELF_HOSTED)return Nm();let t=await Qc();return(!t||!t.activated)&&(t=Nm()),t}function Nm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function z0(){return kt("logos_oidc")}async function J0(){return kt("oidc")}async function Z0(){let t=(await J0())?.config;return t?.configs&&t.configs[0]}async function km(t){let e=(await kt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function gS(){return kt("smtp")}async function X0(t){let e=await gS();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 eM(){return(await kt("scim"))?.config}async function tM(){return kt("ai")}var Fm={};N(Fm,{BUILDER:()=>oM,BUILTIN_PERMISSIONS:()=>jc,CREATOR:()=>aM,GLOBAL_BUILDER:()=>uM,PermissionImpl:()=>fe,PermissionLevel:()=>xs,PermissionType:()=>Fa,doesHaveBasePermission:()=>iM,getAllowedLevels:()=>_S,getBuiltinPermissionByID:()=>nM,getBuiltinPermissions:()=>rM,isPermissionLevelHigherThanRead:()=>sM,levelToNumber:()=>TS});var yS=j(require("lodash/flatten")),ES=j(require("lodash/fp/cloneDeep")),fe=class{constructor(e,r){this.type=e,this.level=r}};function TS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function _S(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var jc={PUBLIC:{_id:"public",name:"Public",permissions:[new fe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new fe("query","read"),new fe("table","read"),new fe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new fe("query","write"),new fe("table","write"),new fe("automation","execute"),new fe("legacy_view","read"),new fe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new fe("table","write"),new fe("user","read"),new fe("automation","execute"),new fe("webhook","read"),new fe("legacy_view","read"),new fe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new fe("table","admin"),new fe("user","admin"),new fe("automation","admin"),new fe("webhook","read"),new fe("query","admin"),new fe("legacy_view","read"),new fe("app","read")]}};function rM(){return(0,ES.default)(jc)}function nM(t){return Object.values(jc).find(r=>r._id===t)}function iM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(jc),s=(0,yS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&_S(o.level).indexOf(e)!==-1)return!0;return!1}function sM(t){return TS(t)>1}var oM="builder",aM="creator",uM="globalBuilder";var $m={};N($m,{FlagSet:()=>Hc,all:()=>fM,flags:()=>Bm,init:()=>cM,isEnabled:()=>dM,parseEnvFlags:()=>zc,shutdown:()=>lM,testutils:()=>Gm});var Kc=j(require("crypto"));var AS=require("posthog-node"),SS=j(require("dd-trace"));var OS=require("lodash");var Yc;function cM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Yc=new AS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:De.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function lM(){Yc?.shutdown()}function zc(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 Hc=class{constructor(e){this.flagSchema=e;this.setId=Kc.randomUUID()}defaults(){return(0,OS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await SS.default.trace("features.fetch",async e=>{let r=wp(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:f,value:m}of zc(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(f),!!this.isFlagName(f))){if(typeof i[f]!="boolean")throw new Error(`Feature: ${f} is not a boolean`);i[f]=m,n[`flags.${f}.source`]="environment"}let a=sr(),u=a?._id;if(!u){let l=Ip();l&&(u=Kc.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,Yc&&u){n.readFromPostHog=!0;let l={tenantId:c},f=await Yc.getAllFlags(u,{personProperties:l});for(let[m,d]of Object.entries(f)){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(p){console.warn(`Error parsing posthog flag "${m}": ${d}`,p)}}}bp(this.setId,i);for(let[l,f]of Object.entries(i))n[`flags.${l}.value`]=f;return e?.addTags(n),i})}},Bm=new Hc(Ah);async function dM(t){return await Bm.isEnabled(t)}async function fM(){return await Bm.fetch()}var Gm={};N(Gm,{setFeatureFlags:()=>IS,withFeatureFlags:()=>hM});function pM(){let t={};for(let{tenantId:e,key:r,value:n}of zc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function mM(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 IS(t,e){let r=pM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=mM(r);return xo({TENANT_FEATURE_FLAGS:n})}function hM(t,e,r){let n=IS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Xm={};N(Xm,{adminOnly:()=>al,auditLog:()=>nl,authError:()=>Pe,buildAuthMiddleware:()=>rk,buildCsrfMiddleware:()=>ik,buildTenancyMiddleware:()=>nk,builderOnly:()=>cl,builderOrAdmin:()=>ul,google:()=>hr,internalApi:()=>sl,joiValidator:()=>Na,oidc:()=>gr,passport:()=>sk,platformLogout:()=>lk,refreshOAuthToken:()=>uk,ssoCallbackUrl:()=>nn,updateUserOAuth:()=>ck});var Zm={};N(Zm,{adminOnly:()=>al,auditLog:()=>nl,authError:()=>Pe,authenticated:()=>rl,builderOnly:()=>cl,builderOrAdmin:()=>ul,correlation:()=>FS,csp:()=>WS,csrf:()=>ol,datasource:()=>ek,errorHandling:()=>GS,google:()=>hr,internalApi:()=>sl,ip:()=>jS,joiValidator:()=>Na,local:()=>As,oidc:()=>gr,pino:()=>MS,querystringToBody:()=>$S,ssoCallbackUrl:()=>nn,tenancy:()=>il});var As={};N(As,{authenticate:()=>EM,options:()=>yM});function Pe(t,e,r){return t(r,null,{message:e})}async function nn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Lm(),n="/api/global/auth";return jr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Vm="Invalid credentials",gM="This account has expired. Please reset your password",yM={passReqToCallback:!0};async function EM(t,e,r,n){if(!e)return Pe(n,"Email Required");if(!r)return Pe(n,"Password Required");let i=await Mt(e);return i==null?(console.info(`user=${e} could not be found`),Pe(n,Vm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Pe(n,Vm)):i.password?await Np(r,i.password)?(delete i.password,n(null,i)):Pe(n,Vm):(console.info(`user=${e} has no password set`,i),Pe(n,gM))}var hr={};N(hr,{buildVerifyFn:()=>bS,getCallbackUrl:()=>AM,strategyFactory:()=>qm});var Ca=t=>Promise.resolve(t);async function Jc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Pe(r,"sso user id required");if(!t.email)return Pe(r,"sso user email required");let i=Ji(t.userId),s;try{s=await di(i)}catch(a){if(!a.status||a.status!==404)return Pe(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Mt(t.email)),!s&&e)return Pe(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 TM(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Pe(r,"Error saving user",a)}return r(null,o)}async function TM(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 _M=require("passport-google-oauth").OAuth2Strategy;function bS(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 Jc(s,!0,i,t)}}async function qm(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=bS(r);return new _M({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function AM(t){return nn("google",t)}var gr={};N(gr,{buildVerifyFn:()=>DS,fetchStrategyConfig:()=>xM,getCallbackUrl:()=>wM,strategyFactory:()=>IM});var RS=j(require("node-fetch"));var SM=require("@techpass/passport-openidconnect").Strategy;function DS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:OM(n,i),oauth2:{accessToken:s,refreshToken:o}};return Jc(l,!1,c,t)}}function OM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Lp(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function IM(t,e){try{let r=DS(e),n=new SM(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function xM(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,RS.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 wM(){return nn("oidc")}var Wm={};N(Wm,{postAuth:()=>DM,preAuth:()=>RM});var bM=require("passport-google-oauth").OAuth2Strategy;async function vS(){let t=await Mm();if(!t)throw new Error("No google configuration found");return t}async function RM(t,e,r){let n=await vS(),s=`${await va({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await qm(n,s,Ca);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 DM(t,e,r){let n=await vS(),s=`${await va({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 bM({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=Se();await dr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var vM=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(vM);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}}):[],pi=(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 zm={};N(zm,{SecretOption:()=>PS,decrypt:()=>Km,decryptFile:()=>MM,encrypt:()=>PM,encryptFile:()=>UM,getSecret:()=>Hm});var yr=j(require("crypto")),sn=j(require("fs")),jm=j(require("zlib"));var Qm=require("path"),Zc="aes-256-ctr",NS="-",CM=1e4,NM=32,Xc=16,Ym=16,PS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(PS||{});function Hm(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 el(t,e){return yr.default.pbkdf2Sync(t,e,CM,NM,"sha512")}function PM(t,e="api"){let r=yr.default.randomBytes(Xc),n=el(Hm(e),r),i=yr.default.createCipheriv(Zc,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${NS}${a}`}function Km(t,e="api"){let[r,n]=t.split(NS),i=Buffer.from(r,"hex"),s=el(Hm(e),i),o=yr.default.createDecipheriv(Zc,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function UM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Qm.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,Qm.join)(t,n)),a=yr.default.randomBytes(Xc),u=yr.default.randomBytes(Ym),c=el(r,a),l=yr.default.createCipheriv(Zc,c,u);return o.write(a),o.write(u),s.pipe(jm.default.createGzip()).pipe(l).pipe(o),new Promise(f=>{o.on("finish",()=>{f({filename:n,dir:t})})})}async function LM(t){let e=sn.default.createReadStream(t),r=await CS(e,Xc),n=await CS(e,Ym);return e.close(),{salt:r,iv:n}}async function MM(t,e,r){if(sn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await LM(t),s=sn.default.createReadStream(t,{start:Xc+Ym}),o=sn.default.createWriteStream(e),a=el(r,n),u=yr.default.createDecipheriv(Zc,a,i),c=jm.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,f)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),f(m)}),u.on("error",m=>{o.close(),f(m)}),c.on("error",m=>{o.close(),f(m)}),o.on("error",m=>{o.close(),f(m)})})}function CS(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 LS=j(require("dd-trace")),kM=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function FM(){return new Date(Date.now()-kM).toISOString()}function US(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 BM(t,e){if(oa(t))return{valid:!0,user:void 0};let n=Km(t).split(v)[0];return Ge(n,async()=>{let i;try{let s=se();i=await ur("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await ba({userId:i,tenantId:n,populateUser:e})};throw new ps})}function tl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function rl(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=tl(n,"x-budibase-api-version");pi(n,r)&&(s=!0);try{let u=tl(n,"x-budibase-token"),c=ni(n,"budibase:auth")||hc(u),l=tl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let f=tl(n,"x-budibase-tenant-id"),m=!1,d,p=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await Em(O,y),e&&e.populateUser?d=await ba({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):d=await ba({userId:O,tenantId:S.tenantId,email:S.email}),d.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<FM()&&await ym(S),m=!0}catch(L){m=!1,console.error(`Auth Error: ${L.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await BM(l,y);O&&(m=!0,g="api_key",d=S,p=!S)}!d&&f?d={tenantId:f}:d&&"password"in d&&delete d.password,m||(m=!1);let T=y=>y&&y.email;return T(d)&&LS.default.setUser({id:d._id,tenantId:d.tenantId,budibaseAccess:d.budibaseAccess,status:d.status}),US(n,{authenticated:m,user:d,internal:p,version:o,publicEndpoint:s,loginMethod:g}),T(d)?_f(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 US(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var GM=async(t,e)=>e(),nl=GM;function il(t,e,r={noTenancyRequired:!1}){let n=fi(t),i=fi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!pi(s,i)};!!pi(s,n)||(u.excludeStrategies=["query"]);let l=na(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var sl=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"),oa(r)||t.throw(403,"Unauthorized"),e()};var $M=["GET","HEAD","OPTIONS"],VM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ol(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(pi(r,e)||$M.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!VM.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var al=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var ul=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?_t:h.isApps()?ms: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 cl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?_t:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var qM=require("koa-pino-logger"),WM=require("correlation-id");function QM(){return{logger:ic,genReqId:WM.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 jM(){return h.HTTP_LOGGING?qM(QM()):(t,e)=>e()}var YM=jM(),MS=YM;var kS=require("uuid"),HM=require("correlation-id"),KM=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,kS.v4)()),HM.withId(r,()=>e())},FS=KM;function BS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of TT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function zM(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:Oc(r)};if(BS(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 GS=zM;function $S(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 qS=j(require("crypto")),VS={"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 JM(t,e){try{let r=qS.default.randomBytes(16).toString("base64"),n={...VS};n["script-src"]=[...VS["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 WS=JM;var Na={};N(Na,{body:()=>ZM,params:()=>XM});var Jm=j(require("joi"));function QS(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:Jm.default.any().optional(),updatedAt:Jm.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 ZM(t,e){return QS(t,"body",e)}function XM(t,e){return QS(t,"params",e)}var jS=async(t,e)=>t.ip?await xp(t.ip,()=>e()):e();var ek={google:Wm};var YS=require("koa-passport"),tk=require("passport-local").Strategy,ll=require("passport-oauth2-refresh"),rk=rl,nk=il,ik=ol,sk=YS;YS.use(new tk(As.options,As.authenticate));async function ok(t,e){let r=await gr.getCallbackUrl(),n,i;try{if(n=await gr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await gr.strategyFactory(n,Ca)}catch{throw new Error("Could not refresh OAuth Token")}return ll.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{ll.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function ak(t,e){let r=await hr.getCallbackUrl(t),n;try{n=await hr.strategyFactory(t,r,Ca)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return ll.use(n),new Promise(i=>{ll.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function uk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await km(r);return n?ok(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Qc();return n?ak(n,t):{err:{data:"Google configuration not found"}}}}}async function ck(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 Ra(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function lk(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 Bc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await li(r,{sessionIds:o,reason:"logout"}),await Fc.logout(e.user?.email),await Ra(r)}var th={};N(th,{validate:()=>hk});var R=j(require("joi")),dk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function eh(t,e){let{error:r}=t.validate(e);if(r)throw r}function fk(t){let e=R.default.object({type:R.default.string().allow("component").required(),metadata:R.default.object().unknown(!0).required(),hash:R.default.string().optional(),version:R.default.string().optional(),schema:R.default.object({name:R.default.string().required(),settings:R.default.array().items(R.default.object().unknown(!0)).required()}).unknown(!0)});eh(e,t)}function pk(t){let e=R.default.object({type:R.default.string().allow(...Object.values(hl)).required(),required:R.default.boolean().required(),default:R.default.any(),display:R.default.string()}),r=R.default.object({type:R.default.string().allow(...Object.values(ml)),readable:R.default.boolean(),fields:R.default.object().pattern(R.default.string(),e)}).required(),n=R.default.object({type:R.default.string().allow("datasource").required(),metadata:R.default.object().unknown(!0).required(),hash:R.default.string().optional(),version:R.default.string().optional(),schema:R.default.object({docs:R.default.string(),plus:R.default.boolean().optional(),isSQL:R.default.boolean().optional(),auth:R.default.object({type:R.default.string().required()}).optional(),features:R.default.object(Object.fromEntries(Object.values(gl).map(i=>[i,R.default.boolean().optional()]))).optional(),relationships:R.default.boolean().optional(),description:R.default.string().required(),friendlyName:R.default.string().required(),type:R.default.string().allow(...dk),datasource:R.default.object().pattern(R.default.string(),e).required(),query:R.default.object().pattern(R.default.string(),r).unknown(!0).required(),extra:R.default.object().pattern(R.default.string(),R.default.object({type:R.default.string().required(),displayName:R.default.string().required(),required:R.default.boolean(),data:R.default.object()}))})});eh(n,t)}function mk(t){let e=R.default.object().pattern(R.default.string(),{type:R.default.string().allow(...Object.values(ce)).required(),customType:R.default.string().allow(...Object.values(Me)),title:R.default.string(),description:R.default.string(),enum:R.default.array().items(R.default.string()),pretty:R.default.array().items(R.default.string())}),r=R.default.object({properties:e,required:R.default.array().items(R.default.string())}).concat(e).required(),n=R.default.object({type:R.default.string().allow("automation").required(),metadata:R.default.object().unknown(!0).required(),hash:R.default.string().optional(),version:R.default.string().optional(),schema:R.default.object({name:R.default.string().required(),tagline:R.default.string().required(),icon:R.default.string().required(),description:R.default.string().required(),type:R.default.string().allow("ACTION","LOGIC").required(),stepId:R.default.string().disallow(...Sh).required(),inputs:R.default.object().optional(),schema:R.default.object({inputs:r,outputs:r}).required()})});eh(n,t)}function hk(t){switch(t?.type){case"component":fk(t);break;case"datasource":pk(t);break;case"automation":mk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var rh={};N(rh,{Client:()=>Be,clients:()=>qr,locks:()=>si,utils:()=>Zu});var nh={};N(nh,{isBlacklisted:()=>yk,refreshBlacklist:()=>JS});var HS=j(require("dns")),fl=j(require("net"));var KS=require("util"),dl,gk=(0,KS.promisify)(HS.default.lookup);async function zS(t){return fl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await gk(t,{all:!0})).map(r=>r.address)}async function JS(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(fl.default.isIP(i))r.push(i);else{let s=await zS(i);r=r.concat(s)}}dl=r}async function yk(t){if(dl||await JS(),dl?.length===0)return!1;let e;return fl.default.isIP(t)?e=[t]:e=await zS(t),!!dl?.find(r=>e.includes(r))}var sh={};N(sh,{init:()=>Tk});var Ek={"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 ZS(t,e){let r=Ek[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Pa=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=ZS(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 LA()}};var XS,ih;function Tk(t){mr||kc(),ih||(ih=new Pa(t)),XS||(XS=mr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await ih.processEvent(r,n,i)}))}var mh={};N(mh,{COUNT_FIELD_NAME:()=>fh,Sql:()=>aO,SqlTable:()=>pl,designDoc:()=>ph,utils:()=>Ap});var nO=require("knex");var _k=require("knex");function oh(t){return["link","formula","ai"].indexOf(t)!==-1}function eO(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,d]of Object.entries(e.schema)){let p=n?.schema[m];if(p&&p.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:T,toTable:y}=d.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${T}`)}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":Nr.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:T}=yp(d.tableId),y=r[T];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(d.foreignKey,S):t.integer(d.foreignKey).unsigned(),t.foreign(d.foreignKey).references(`${T}.${O}`)}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 f=i?n?.schema[i.old].type:void 0;return i&&f&&!oh(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([d,p])=>!oh(p.type)&&e.schema[d]==null).forEach(([d,p])=>{i?.old===d||oh(p.type)||(n.constrained&&n.constrained.indexOf(d)!==-1&&t.dropForeign(d),t.dropColumn(d))}),t}function Sk(t,e,r){return t.createTable(e.name,n=>{eO(n,e,r)})}function Ok(t,e,r,n,i){return t.alterTable(e.name,s=>{eO(s,e,r,n,i)})}function Ik(t,e){return t.dropTable(e.name)}var ah=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,_k.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=Sk(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=Ok(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=ts(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=Ik(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ts(n)}},pl=ah;var iO=require("lodash"),fh="__bb_total";function tO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function uh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function xk(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 sO(t){return Array.isArray(t)?t.map(e=>sO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function rO(t){return t.sourceType==="internal"||t.sourceId===_l}function wk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function oO(t,e='"'){return`${e}${wk(t,e)}${e}`}function ch(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=oO(t[r],e));return`[${t.join(",")}]`}var bk={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},lh=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 Pr.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"){if(Ep(e))return null;if(Tp(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,iO.cloneDeep)(e);for(let r of Object.values(Tr)){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=f=>n.match(new RegExp(`^${f}\\.`));if(!s)return e;for(let f of s){let m=f.tableName,d=a?.[m]||m,p=l(m)||l(d),g=l(f.column);if((p||g)&&f.to&&f.tableName){let T=this.knex.select(this.knex.raw(1)).from({[d]:m}),y=T.clone(),O=_p(f),S;if(p?S=n:S=n.replace(new RegExp(`^${f.column}.`),`${a?.[f.tableName]||f.tableName}.`),O){let L=a?.[O.through]||f.through,E=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(E,function(){this.on(`${d}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(A=>{A.whereExists(i(S,y)),r&&A.orWhereNotExists(T.clone().innerJoin(E,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${d}.${f.to}`,E=`${c}.${f.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(E)),e=e.where(A=>{A.whereExists(i(S,y.clone())),r&&A.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(p){return s?.[p]||p}function l(p,g,T,y){let O=(S,L,E)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ue=>T(ue,F?`${F}.${w}`:w,E))};for(let S in p){let L=p[S],E=Zo(S),A=E.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=p[S])&&y){let F=c(u);e=y(e,w.id.map(ue=>F?`${F}.${ue}`:ue),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,bk[g],E,(F,ue)=>O(ue,F,L)));else{let F=c(u);e=T(e,F?`${F}.${E}`:E,L)}}}let f=(p,g,T)=>((r?.fuzzyOr||o)&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${T.toLowerCase()}%`]):p.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${T}%`]))),m=(p,g=!1)=>{function T(y){return(o||p===r?.containsAny)&&(y=y.or),p===r?.notContains&&(y=y.not),y}this.client==="pg"?l(p,"contains",(y,O,S)=>(y=T(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ch(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ch(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(p,"contains",(y,O,S)=>T(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(oO(ch(S)))])):l(p,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(p===r?.notContains&&(L=L.not),L=L.where(E=>{for(let A of S){p===r?.containsAny?E=E.or:E=E.and;let B=typeof A=="string"?`"${A.toLowerCase()}"`:A;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),p===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),y))};if(r.$and){let{$and:p}=r;for(let g of p.conditions)e=e.where(T=>{this.addFilters(T,g,n)})}if(r.$or){let{$or:p}=r;e=e.where(g=>{for(let T of p.conditions)g.orWhere(y=>this.addFilters(y,{...T,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(p,g,T)=>{let y=this.getFieldSchema(g),O=Array.isArray(T)?T:[T];if(o&&(p=p.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?p=p.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):p=p.or.whereNull(g);return p}return p.whereIn(g,O)},(p,g,T)=>(o&&(p=p.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),p.whereIn(g,Array.isArray(T)?T:[T]))),r.string&&l(r.string,"string",(p,g,T)=>(o&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${T.toLowerCase()}%`]):p.whereILike(g,`${T}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",f),r.range&&l(r.range,"range",(p,g,T)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(T.low)&&(T.low=""),y(T.high)&&(T.high="");let O=fc(T.low),S=fc(T.high),L=this.getFieldSchema(g),E=g,A=T.high,B=T.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(A!=null&&(A=`${A.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),A=this.knex.raw("CAST(? AS INTEGER)",[T.high]),B=this.knex.raw("CAST(? AS INTEGER)",[T.low])),o&&(p=p.or),O&&S?p.whereBetween(E,[B,A]):O?p.where(E,">=",B):S?p.where(E,"<=",A):p}),r.equal&&l(r.equal,"equal",(p,g,T)=>{let y=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return p.where(S=>S.whereNotNull(O).andWhere(O,T))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?p.whereLike(g,`${T.toISOString().slice(0,10)}%`):p.whereNull(g):p.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),T])}),r.notEqual&&l(r.notEqual,"notEqual",(p,g,T)=>{let y=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return p.where(S=>S.not.whereNull(O).and.where(O,"!=",T)).or.whereNull(O)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?p.not.whereLike(g,`${T.toISOString().slice(0,10)}%`).or.whereNull(g):p.not.whereNull(g):p.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),T])}),r.empty&&l(r.empty,"empty",(p,g)=>(o&&(p=p.or),p.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(p,g)=>(o&&(p=p.or),p.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&&!gp(this.table)&&d&&e.andWhereLike(`${d}._id`,`${_r(r.documentType)}%`),e}isSqs(){return rO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;rO(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 ${fh}`)}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 f=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(f):m=this.rawQuotedIdentifier(f),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 f of n){let{tableName:m,through:d,to:p,from:g,fromPrimary:T,toPrimary:y}=f;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,E=d&&a?.[d]||d,A=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=xk(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ue=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),on=`${S}.${y||p}`,V=s.from(A).orderBy(on),k=d&&y&&T,D=k?`${E}.${g}`:`${S}.${p}`,W=k?`${L}.${T}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(d,{alias:E,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${E}.${p}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(w.map(ie=>this.rawQuotedIdentifier(ie))).limit(uh()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,f),K=U(this.knex.raw(`json_group_array(json_object(${ue}))`));break;case"pg":K=U(this.knex.raw(`json_agg(json_build_object(${ue}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${ue}) LIMIT ${uh()})`));break;case"mysql2":case"oracledb":K=U(this.knex.raw(`json_arrayagg(json_object(${ue}))`));break;case"mssql":{let q=s.select("*").from({[L]:V.select(F.map(ie=>s.ref(ie[1]).as(ie[0]))).limit(uh())});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({[f.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,f=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 p of n){let g=p.fromPrimary,T=p.from;this.orOn(`${f}.${g}`,"=",`${l}.${T}`)}}).leftJoin(m,function(){for(let p of n){let g=p.toPrimary,T=p.to;this.orOn(`${c}.${g}`,`${l}.${T}`)}}):e=e.leftJoin(m,function(){for(let p of n){let g=p.from,T=p.to;this.orOn(`${f}.${g}`,"=",`${c}.${T}`)}}),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 f=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):f.length>0?u=this.addAggregations(u,f):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&f.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())}},dh=class extends pl{constructor(r,n=tO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=ts(r);return i==="sqlite3"&&(s=sO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,nO.knex)(s),a,u=new lh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:tO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let f=[];for(let m of a)f.push(await n(m,o));return f}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 f;s==="mssql"?f=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(f=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(f,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===_l){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 Oh.includes(r.type)&&!Nr.schema.isDeprecatedSingleUserColumn(r)}log(r,n){ea(this.getSqlClient(),r,n)}},aO=dh;var ph={};N(ph,{base:()=>Rk});function Rk(t){return{_id:ir,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Dk={...ia,...ge},vk=(t={})=>{Ku(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,ErrorCode,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
37
|
+
}`,"platform_users_lowercase_2")},Jo=async(t,e)=>{let r={account_by_email:C_,platform_users_lowercase_2:N_};return at(Ae.PLATFORM_INFO.name,async n=>{let i=r[t];return lf(t,e,n,i,{arrayResponse:!0})})},P_={by_email2:b_,by_api_key:D_,by_app:R_},ur=async(t,e,r,n)=>{r||(r=se());let i=P_[t];return lf(t,e,r,i,n)};async function df(t,e,r){let n=se(),i=P_[t];return zo(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([Ro(this.source),Ro(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()}},U_=pf;var M_=j(require("node-fetch"));var Zo=Pr.removeKeyNumbering;function Xn(t){return t==null||t===""}var cr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Zo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>Xn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,T="AND")=>{if(Xn(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+=` ${T} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>Xn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let T=r?"*:* AND ":"",y=r?"AND":void 0;return T+"NOT "+u(f,g,y)},p=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(Xn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let T=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)T+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${T})`};function d(f,g,T){let y="";for(let[O,S]of Object.entries(f)){O=Zo(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 E=T?.mode?T.mode:r?"OR":"AND";y+=` ${E} `}y+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(T?.returnBuilt)return y;n+=y}if(this.#e.string&&d(this.#e.string,(f,g)=>Xn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&d(this.#e.range,(f,g)=>{if(Xn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let T=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${T} 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)=>Xn(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 L_(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await L_(n,i,r);throw s}}};async function L_(t,e,r){let n=await(0,M_.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 k_(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=cr.maxLimit;n.limit&&s.length>n.limit-cr.maxLimit&&(o=n.limit-s.length);let a=new cr(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<cr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await k_(t,e,r,c)}async function VC(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,cr.maxLimit);let s=new cr(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 qC(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 k_(t,e,r,n)}}var ff={};N(ff,{createUserIndex:()=>WC});async function WC(){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 F_(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 QC(t){return F_(t,409)}var hf=`${v}${v}`,G_=/^\[.*]$/g,YC=encodeURIComponent(" "),$_=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,HC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function dc(t){return t.startsWith("datasource"+v)}function KC(t){return!dc(t)}function ts(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 gf(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==xi||t?.sourceType==="external"?!0:!!(t?._id&&dc(t._id))}function zC(t,e){return`${t}${hf}${encodeURIComponent(e)}`}function JC(t){return dc(t)?encodeURIComponent(t):t}function ZC(t){return encodeURIComponent(t)}function yf(t){let e=t.split(hf),r=e.shift(),n=e.join(hf);if(n.includes(YC)&&(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 eN(t){return Array.isArray(t)||typeof t=="string"&&t.match(G_)!=null}function tN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(G_)!=null?t.substring(1,t.length-1):t}function rN(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 Ef(t){let e=t.trim();if(!$_.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Tf(t){return $_.test(t.trim())}function pc(t){return t!=null&&t!==""}function nN(t){return HC.test(t)}function ea(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 iN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function _f(t){if(iN(t))return t}var V_="Database does not exist.";function q_(t){return(0,Q_.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Qr=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 jC(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new es(t,r,e);return new ji(n)}var es=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=q_(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=q_(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await bo({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Qr(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===V_)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Qr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Qr(`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(_h(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 Qr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Se()),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===V_)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Yu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await bo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Qr("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}/${ir}`;return ea("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(ir)){let e=await this.get(ir);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 Qr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ke(t,e){return new ji(new es(t,e))}async function at(t,e,r){let n=Ke(t,r);return await e(n)}async function uf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Hu(e)}async function mf(t,e){let r=await Hu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var j_=null;function ar(t){return t||(t=Q()),Xo(t)}function Y_(t){return t||(t=Q()),t===he?Ae.AUDIT_LOGS.name:`${t}${v}${Ae.AUDIT_LOGS.name}`}function sN(t){return t||(t=Q()),t===he?Ae.SCIM_LOGS.name:`${t}${v}${Ae.SCIM_LOGS.name}`}function Xo(t){return!t||t===he?Ae.GLOBAL.name:`${t}${v}${Ae.GLOBAL.name}`}function Sf(){return h.PLATFORM_URL}function jr(){return!!h.MULTI_TENANCY}function oN(){return!!ve.get()?.tenantId}function aN(){return h.MULTI_TENANCY}function rs(t){if(!t)return;if(!jr())return he;let e=t.split(v),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function uN(t){let e;try{e=ve.get()}catch{e={}}return e={...e,...t},e}async function Yr(t,e){dN();let r=uN(t);return ve.run(r,e)}async function cN(t){return await K_(),Yr({tenantId:rs(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Of(t,e){let r=rs(t);return Yr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||he),Yr(t?{tenantId:t}:{},e)}async function lN(t,e){return H_(t,e)}async function H_(t,e,r){if(!t)throw new Error("appId is required");let n=rs(t),i={appId:t,...r};return n&&(i.tenantId=n),Yr(i,e)}async function Io(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Yr(r,e)}function dN(){if(ve.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function pN(t,e){return H_(t,e,{isMigrating:!0})}function sr(){try{return ve.get()?.identity}catch{}}function Q(){if(!jr())return he;let e=ve.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Vp(){return ve.get()?.automationId}function Ne(){let e=ve.get()?.appId;return!e&&h.isTest()&&j_?j_:e}function If(){return ve.get()?.ip}var fN=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function mN(t,e){if(!t)throw new Error("Must supply environment variables.");return Yr({environmentVariables:t},e)}function hN(t){return Yr({isScim:!0},t)}function xf(t,e){return Yr({ip:t},e)}async function K_(t=!h.isTest()){let e=is();if(!e||e.snippets)return;let r,n=ns();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function gN(){let t=ve.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=ve.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ke(Xo(t?.tenantId))}function yN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ke(Y_())}function ns(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ke(e,t)}function EN(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ke(ot(e),t)}function TN(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ke(ju(e),t)}function Pt(){return!!ve.get()?.isScim}function is(){try{return ve.get()}catch{return}}function wf(t){let e=is();if(e)return e.featureFlagCache?.[t]}function bf(t,e){let r=is();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function _N(t){let e=is();if(e)return e.viewToTableCache?.[t]}function AN(t,e){let r=is();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function Wt(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 Jp()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Wt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Wt(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[Wt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Wt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Wt(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(Wt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Wt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ss=new ei,lr=(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))(lr||{}),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||{}),fc=(...t)=>ss.keys(...t),ri=(...t)=>ss.get(...t),dr=(...t)=>ss.store(...t),ta=(...t)=>ss.delete(...t),Hr=(...t)=>ss.withCache(...t),os=(...t)=>ss.bustCache(...t);var rn={};N(rn,{getUser:()=>ba,getUsers:()=>F0,invalidateUser:()=>Ra});var ia={};N(ia,{addTenantToUrl:()=>SN,getTenantDB:()=>Rf,getTenantIDFromCtx:()=>na,isUserInAppTenant:()=>ON});function Rf(t){return Ke(ar(t))}function SN(t){let e=Q();if(jr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var ON=(t,e)=>{let r;return e?r=e.tenantId||he:r=Q(),(rs(t)||he)===r},IN=Object.values(Is),na=(t,e)=>{if(!jr())return he;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=IN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(Sf()).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 aa={};N(aa,{getPlatformDB:()=>ut,tenants:()=>Bf,users:()=>Ut});var Ut={};N(Ut,{addSsoUser:()=>J_,addUser:()=>vN,getUserDoc:()=>z_,lookupTenantId:()=>xN,removeUser:()=>CN,updateUserDoc:()=>wN});function ut(){return Ke(Ae.PLATFORM_INFO.name)}async function xN(t){return h.MULTI_TENANCY?(await z_(t)).tenantId:he}async function z_(t){return ut().get(t)}async function wN(t){await ut().put(t)}function bN(t,e){return{_id:t,tenantId:e}}function RN(t,e,r){return{_id:e,userId:t,tenantId:r}}function DN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Df(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 J_(t,e,r,n){return Df(t,()=>DN(t,e,r,n))}async function vN(t,e,r,n){let i=[Df(e,()=>bN(e,t)),Df(r,()=>RN(e,r,t))];n&&i.push(J_(n,r,e,t)),await Promise.all(i)}async function CN(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 Bf={};N(Bf,{addTenant:()=>zN,exists:()=>YN,getTenantIds:()=>jN,removeTenant:()=>JN,tenacyLockOptions:()=>Ff});var si={};N(si,{AUTO_EXTEND_POLLING_MS:()=>aA,doWithLock:()=>cs,newRedlock:()=>ii});var oA=j(require("redlock"));var as={};N(as,{Duration:()=>De,DurationType:()=>Mf,clearCookie:()=>Kr,compare:()=>Nf,getAppIdFromCtx:()=>BN,getCookie:()=>ni,hasCircularStructure:()=>VN,hash:()=>Cf,isAudited:()=>Uf,isClient:()=>GN,isPublicApiRequest:()=>FN,isServingApp:()=>LN,isServingBuilder:()=>MN,isServingBuilderPreview:()=>kN,isValidInternalAPIKey:()=>oa,newid:()=>Se,openJwt:()=>hc,resolveAppUrl:()=>rA,setCookie:()=>nA,timeout:()=>$N,validEmail:()=>Lf});var vf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),NN=h.SALT_ROUNDS||10;async function Cf(t){let e=await vf.genSalt(NN);return vf.hash(t,e)}async function Nf(t,e){return vf.compare(t,e)}var mc=j(require("jsonwebtoken")),Pf="app"+v,X_="/app/",eA="/app/preview",PN="/builder",tA=`${PN}/app/`,UN="/api/public/v";function sa(t){return t&&t.startsWith(Pf)?t:void 0}async function rA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=na(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function LN(t){return t.path.startsWith(`/${Pf}`)?!0:t.path.startsWith(X_)}function MN(t){return t.path.startsWith(tA)}function kN(t){return t.path.startsWith(eA)}function FN(t){return t.path.startsWith(UN)}async function BN(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=sa(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=sa(t.request.body.appId));let n=Z_(t.path);!r&&n&&(r=sa(n));let i=t.path.startsWith(eA),s=t.path.startsWith(X_)&&!i;!r&&s&&(r=sa(await rA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(tA)){let a=Z_(t.request.headers.referer);r=sa(a)}return r}function Z_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Pf))}function hc(t){if(t)try{return mc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return mc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function oa(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 hc(r)}function nA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=mc.default.sign(e,h.JWT_SECRET));let i={expires:Vu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Kr(t,e){nA(t,null,e)}function GN(t){return t.headers["x-budibase-type"]==="client"}function $N(t){return new Promise(e=>setTimeout(e,t))}function Uf(t){return!!yh[t]}function VN(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 Lf(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 Mf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Mf||{}),iA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{static convert(e,r,n){return n*iA[e]/iA[r]}static from(e,r){return{to:n=>t.convert(e,n,r),toMs:()=>t.convert(e,"milliseconds",r),toSeconds:()=>t.convert(e,"seconds",r)}}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function qN(t,e){if(t==="custom")return ii(e);switch(t){case"try_once":return ii(us.TRY_ONCE);case"try_twice":return ii(us.TRY_TWICE);case"default":return ii(us.DEFAULT);case"delay_500":return ii(us.DELAY_500);case"auto_extend":return ii(us.AUTO_EXTEND);default:throw wi.unreachable(t)}}var us={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={...us.DEFAULT,...t},n=(await Xp()).getClient();return new oA.default([n],e)}function WN(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var aA=De.fromSeconds(10).toMs();async function cs(t,e){let r=await qN(t.type,t.customOptions),n,i;try{let s=WN(t),o=t.type==="auto_extend"?aA: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 kf=Ae.PLATFORM_INFO.docs.tenants,Ff={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function jN(){return(await gc()).tenantIds}async function gc(){let t=ut(),e;try{e=await t.get(kf)}catch(r){if(r.status===404)e=await KN();else throw r}return e}async function YN(t){return(await gc()).tenantIds.indexOf(t)!==-1}function HN(){return{_id:kf,tenantIds:[]}}async function KN(){let t=ut(),e=HN();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(kf);throw r}return e}async function zN(t){let e=ut();await cs(Ff,async()=>{let r=await gc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function JN(t){try{await cs(Ff,async()=>{let e=ut(),r=await gc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var oi={};N(oi,{getAccount:()=>zr,getAccountByTenantId:()=>ls,getStatus:()=>ZN});var uA=j(require("node-fetch"));var ua=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";Do.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,uA.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 Gf=new ua(h.ACCOUNT_PORTAL_URL),$f=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,zr=async t=>{if($f)return;let e={email:t},r=await Gf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ls=async t=>{if($f)return;let e={tenantId:t},r=await Gf.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]},ZN=async()=>{if($f)return;let t=await Gf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};N(Es,{UserDB:()=>jt,addAppBuilder:()=>U0,bulkGetGlobalUsersById:()=>$c,bulkUpdateGlobalUsers:()=>Ia,cleanseUserObject:()=>Im,doesUserExist:()=>D0,getAccountHolderFromUsers:()=>Rc,getAllUserIds:()=>b0,getAllUsers:()=>R0,getById:()=>di,getCreatorCount:()=>N0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>pA,getExistingTenantUsers:()=>dA,getFirstPlatformUser:()=>ca,getGlobalUserByAppPage:()=>cS,getGlobalUserByEmail:()=>Mt,getPlatformUsers:()=>yc,getUserCount:()=>C0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>AA,hasBuilderPermissions:()=>_t,isAdmin:()=>Xr,isAdminOrBuilder:()=>_A,isBuilder:()=>ms,isCreator:()=>Qt,isGlobalBuilder:()=>TA,paginatedUsers:()=>dS,removeAppBuilder:()=>L0,removePortalUserPermissions:()=>P0,searchExistingEmails:()=>Wf,searchGlobalUsersByApp:()=>Vc,searchGlobalUsersByAppAccess:()=>Om,searchGlobalUsersByEmail:()=>lS,validateUniqueUser:()=>bc});var em={};N(em,{getAccountHolderFromUsers:()=>Rc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>AA,hasBuilderPermissions:()=>_t,isAdmin:()=>Xr,isAdminOrBuilder:()=>_A,isBuilder:()=>ms,isCreator:()=>Qt,isGlobalBuilder:()=>TA,validateUniqueUser:()=>bc});var qf={};N(qf,{createCode:()=>eP,deleteCode:()=>rP,getCode:()=>tP,getExistingInvites:()=>Vf,getInviteCodes:()=>lA,updateCode:()=>XN});var cA=De.fromDays(7).toSeconds();async function XN(t,e){await(await Jn()).store(t,e,cA)}async function eP(t,e){let r=Se();return await(await Jn()).store(r,{email:t,info:e},cA),r}async function tP(t){let r=await(await Jn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function rP(t){await(await Jn()).delete(t)}async function lA(){let r=(await(await Jn()).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 Vf(t){return(await lA()).filter(e=>t.includes(e.email))}async function Wf(t){let e=[],r=await dA(t);e.push(...r.map(o=>o.email));let n=await pA(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await Vf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function yc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ca(t){return(await yc(t))[0]??null}async function dA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await ur("by_email2",r,void 0,n)}async function pA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("account_by_email",r)}var Ic={};N(Ic,{BadRequestError:()=>Tc,BudibaseError:()=>ps,EmailUnavailableError:()=>pr,ErrorCode:()=>Sc,FeatureDisabledError:()=>Ac,HTTPError:()=>ct,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Ec,UsageLimitError:()=>_c,getPublicError:()=>Oc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Sc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Sc||{}),Oc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends ps{constructor(r,n,i="http"){super(r,i);this.status=n}},Ec=class extends ct{constructor(e){super(e,404)}},Tc=class extends ct{constructor(e){super(e,400)}},_c=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Ac=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},fs=class extends ps{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},pr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var Xf={};N(Xf,{AccessController:()=>Yf,BUILTIN_ROLE_IDS:()=>pa,Role:()=>Jr,RoleHierarchyTraversal:()=>xc,RoleIDVersion:()=>Hf,builtinRoleToNumber:()=>la,checkForRoleResourceArray:()=>gA,externalRole:()=>uP,findRole:()=>da,getAllRoleIds:()=>pP,getAllRoles:()=>Zf,getBuiltinRole:()=>mA,getBuiltinRoles:()=>zf,getDBRoleID:()=>yA,getExternalRoleID:()=>Zr,getExternalRoleIDs:()=>EA,getRole:()=>cP,getUserRoleHierarchy:()=>Jf,getUserRoleIdHierarchy:()=>hA,isBuiltin:()=>ai,lowerBuiltinRoleID:()=>aP,prefixRoleIDNoBuiltin:()=>jf,roleIDsAreEqual:()=>Tt,roleToNumber:()=>oP,saveRoles:()=>lP,validInherits:()=>sP});var Qf=j(require("semver"));var wc=j(require("lodash/fp/cloneDeep"));var fA=require("lodash");var pa={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},de={...pa,BUILDER:"BUILDER"},Hf={UUID:void 0,NAME:"name"};function iP(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=Hf.NAME}addInheritance(e){return e&&typeof e=="string"?e=jf(e):e&&Array.isArray(e)&&(e=e.map(jf)),this.inherits=e,this}},xc=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=da(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!iP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=da(o.inherits,n,r),o&&i.push(o),Nr.roles.checkForRoleInheritanceLoops(i))break}}return(0,fA.uniqBy)(i,s=>s._id)}},Kf={ADMIN:new Jr(de.ADMIN,de.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(de.POWER),POWER:new Jr(de.POWER,de.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(de.BASIC),BASIC:new Jr(de.BASIC,de.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(de.PUBLIC),PUBLIC:new Jr(de.PUBLIC,de.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Jr(de.BUILDER,de.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function zf(){return(0,wc.default)(Kf)}function ai(t){return Object.values(pa).includes(t)}function jf(t){return ai(t)?t:or(t)}function mA(t){let e=Object.values(Kf).find(r=>t.includes(r._id));if(e)return(0,wc.default)(e)}function sP(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 la(t){let e=zf(),r=Object.values(e).length+1;if(Tt(t,de.ADMIN)||Tt(t,de.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 oP(t){if(ai(t))return la(t);let e=await Jf(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 la(n.inherits)+1;return 0};return Math.max(...e.map(r))}function aP(t,e){return t?e&&la(t)>la(e)?e:t:e}function Tt(t,e){return or(t)===or(e)}function uP(t){let e;return t._id&&(e=Zr(t._id)),{...t,_id:e,inherits:EA(t.inherits,t.version)}}function da(t,e,r){let n=mA(t);n||(t=or(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ai(t)&&r?.defaultPublic?(0,wc.default)(Kf.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 cP(t,e){let r=ns(),n=[];if(!ai(t)){let i=await r.tryGet(yA(t));i&&n.push(i)}return da(t,n,e)}async function lP(t){await ns().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:or(r._id)})))}async function dP(t,e){let r=await Zf();if(Tt(t,de.ADMIN))return r;let n=da(t,r,e),i=[];return n&&(i=new xc(r,e).walk(n)),i}async function hA(t){return(await Jf(t)).map(r=>r._id)}async function Jf(t,e){return dP(t,e)}function gA(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 pP(t){return(await Zf(t)).map(r=>r._id)}async function Zf(t){if(t)return at(t,e);{let r;try{r=ns()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(lc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Zr(a._id,a.version)));let i=zf(),s=[];!r||await fP(r)?s=[de.ADMIN,de.POWER,de.BASIC,de.PUBLIC]:s=[de.ADMIN,de.BASIC,de.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=gA(o.permissions,a);return n}}async function fP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Qf.default.valid(r)?!0:!Qf.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Yf=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,de.BUILDER)||Tt(r,e)||Tt(r,de.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await hA(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 yA(t){return t?.startsWith("role")?t:or(t)}function Zr(t,e){if(t.startsWith(`role${v}`)&&(ai(t)||e===Hf.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function EA(t,e){return t&&(typeof t=="string"?Zr(t,e):t.map(r=>Zr(r,e)))}var ms=st.users.isBuilder,Xr=st.users.isAdmin,TA=st.users.isGlobalBuilder,_A=st.users.isAdminOrBuilder,en=st.users.hasAdminPermissions,_t=st.users.hasBuilderPermissions,AA=st.users.hasAppBuilderPermissions;async function Qt(t){let e=st.users.isCreator(t);return!e&&t?await mP(t):e}async function mP(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(pa.ADMIN))}return!1}async function bc(t,e){if(h.MULTI_TENANCY){let r=await ca(t);if(r!=null&&r.tenantId!==e)throw new pr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await zr(t);if(r&&r.verified&&r.tenantId!==e)throw new pr(t)}}async function Rc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};N(ys,{account:()=>kA,ai:()=>VA,analytics:()=>vc,app:()=>FA,auditLog:()=>nS,auth:()=>Fc,automation:()=>BA,backfill:()=>ZA,backfillCache:()=>Mc,backup:()=>tS,datasource:()=>GA,email:()=>$A,environmentVariable:()=>rS,group:()=>XA,identification:()=>Lt,initAsyncEvents:()=>p0,installation:()=>Ea,layout:()=>WA,license:()=>qA,org:()=>QA,plugin:()=>eS,processors:()=>om,publishEvent:()=>_,query:()=>jA,role:()=>Oa,rowAction:()=>iS,rows:()=>HA,screen:()=>YA,serve:()=>zA,shutdown:()=>f0,table:()=>KA,user:()=>$e,view:()=>JA});var om={};N(om,{analyticsProcessor:()=>NA,init:()=>CP,processors:()=>fr});var vc={};N(vc,{enabled:()=>Dc});var Dc=async()=>Cc();var wA=require("posthog-node");var hP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",gP=t=>t==="served:app:preview"||t==="served:app";var OA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},IA=async t=>{if(!hP(t))return!1;let e=await yP(t);if(e){let r=new Date(e.timestamp);switch(OA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await SA(t,{timestamp:Date.now()}),!1):!0}}else return await SA(t,{timestamp:Date.now()}),!1},xA=t=>{let e=`eventsRateLimit:${t}`;return gP(t)&&(e=e+":"+Ne()),e},yP=async t=>{let e=xA(t);return await ri(e)},SA=async(t,e)=>{let r=xA(t),n=OA[t],i;switch(n){case"calendarDay":i=86400}await dr(r,e,i)};var TP=["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"],fa=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new wA.PostHog(e)}async processEvent(e,r,n,i){if(TP.includes(e)||await IA(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 bA=fa;var _P=["installation:version:upgraded","installation:version:downgraded"],AP=["installation","tenant"],ma=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new bA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!_P.includes(e)&&!await Dc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!AP.includes(e.type)&&!await Dc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var tm=h.SELF_HOSTED&&!h.isDev(),ha=class{async processEvent(e,r,n){tm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){tm||console.log("[audit] identified",e)}async identifyGroup(e){tm||console.log("[audit] group identified",e)}shutdown(){}};var sm={};N(sm,{JobQueue:()=>hs,createQueue:()=>ui,shutdown:()=>RP});var RA=j(require("events"));function SP(t,e,r){return{id:Se(),timestamp:Date.now(),queue:t,data:e,opts:r}}var rm=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new RA.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()=>{if(this._messages.length<=0)return;let n=this._messages.shift(),i=r(n);async function s(a){try{await a}catch{await new Promise(c=>setTimeout(()=>c(),50)),await s(r(n))}}if(i.then!=null)try{await s(i)}catch(a){console.error(a)}this._runCount++;let o=n?.opts?.jobId?.toString();o&&n?.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){let n=r?.jobId?.toString();if(n&&this._queuedJobIds.has(n)){console.log(`Ignoring already queued job ${n}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";n&&this._queuedJobIds.add(n);let i=()=>{this._messages.push(SP(this._name,e,r)),this._addCount++,this._emitter.emit("message")},s=r?.delay;return s?setTimeout(i,s):i(),{id:n}}async close(){}async removeRepeatableByKey(e){console.log(e)}async getRepeatableJobs(){return[]}async removeJobs(e){}async clean(){return[]}async getJob(){return null}on(){return this}},DA=rm;var nm=j(require("bull"));var hs=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(hs||{});function vA(t,e,r){xP(t,e),r&&OP(t,r)}function OP(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var IP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function xP(t,e){let r=IP[e];function n(i,s){let o=i.data.event?.appId;if(o)return Of(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var wP=De.fromMinutes(5).toMs(),bP=De.fromSeconds(30).toMs(),im=De.fromSeconds(60).toMs(),ga=[],Nc;async function CA(){for(let t of ga)await t.clean(im,"completed"),await t.clean(im,"failed")}function ui(t,e={}){let n={redis:Hi(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:wP,lockRenewTime:bP}};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 nm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new DA(t,n):i=new nm.default(t,n),vA(i,t,e?.removeStalledCb),ga.push(i),!Nc&&!h.isTest()&&(Nc=Uo(CA,im),CA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function RP(){if(Nc&&Lo(Nc),ga.length){for(let t of ga)await t.close();ga=[]}console.log("Queues shutdown")}var gs=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ui("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&&Uf(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 ya=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 NA=new ma,DP=new ha,vP=new gs;function CP(t){return gs.init(t)}var fr=new ya([NA,DP,vP]);var Pc={};N(Pc,{checkInstallVersion:()=>UP,getInstall:()=>Ta,getInstallFromDB:()=>um});var am=j(require("semver"));var Ta=async()=>Hr("installation",86400,um,{useTenancy:!1});async function NP(t){let e={_id:Ae.PLATFORM_INFO.docs.install,installId:Se(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return um();throw r}}var um=async()=>at(Ae.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Ae.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await NP(t);else throw r}return e}),PP=async t=>{try{await at(Ae.PLATFORM_INFO.name,async e=>{let r=await Ta();r.version=t,await e.put(r),await os("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},UP=async()=>{let t=await Ta(),e=t.version,r=h.VERSION;try{if(e!==r){let n=am.default.gt(r,e),i=am.default.lt(r,e);await PP(r)&&(await Io({_id:t.installId,type:"installation"},async()=>{n?await Ea.upgraded(e,r):i&&await Ea.downgraded(e,r)}),await Lt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Hn(`Invalid version "${r}" - is it semver?`):Hn("Failed to retrieve version",n)}};var LP=async()=>{let t=yp(),e=Sa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await ci(),i=_a();return{id:PA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await ci(),i=await Uc(Q()),s=_a();return{id:PA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Uc(Q()),s=await ci(),o=n.account,a;return o?a=o.hosting:a=_a(),{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")},MP=async(t,e)=>{let r=t,n="installation",i=_a(),s=h.VERSION,o=Sa(),a={id:r,type:n,hosting:i,version:s,environment:o};await cm(a,e),await Aa({...a,id:`$${n}_${r}`},e)},kP=async(t,e,r)=>{let n=await Uc(t),i="tenant",s=await ci(),o=Sa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await cm(a,r),await Aa({...a,id:`$${i}_${n}`},r)},FP=async(t,e,r)=>{let n=t._id,i=await Uc(t.tenantId),s="user",o=_t(t),a=en(t),u;$a(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,p=!!e&&l&&e.verified,m=await ci(),d=e?e.hosting:_a(),f=Sa();await Aa({id:n,type:s,hosting:d,installationId:m,tenantId:i,verified:p,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},BP=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ga(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await ci(),c=Sa();if(Ba(t)){let p=await Mt(t.email);p?._id&&(e=p._id)}await Aa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Aa=async(t,e)=>{await fr.identify(t,e)},cm=async(t,e)=>{await fr.identifyGroup(t,e)},Sa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,_a=()=>h.SELF_HOSTED?"self":"cloud",ci=async()=>GP()?"account-portal":(await Ta()).installId,Uc=async t=>h.SELF_HOSTED?UA(t):t,UA=async t=>Ge(t,()=>Hr("uniqueTenantId",86400,async()=>{let e=se(),r=await Lc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Se()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),GP=()=>h.SERVICE==="account-portal",PA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Lt={getCurrentIdentity:LP,identifyInstallationGroup:MP,identifyTenantGroup:kP,identifyUser:FP,identifyAccount:BP,identify:Aa,identifyGroup:cm,getInstallationId:ci,getUniqueTenantId:UA};var Mc={};N(Mc,{end:()=>VP,isAlreadySent:()=>pm,isBackfillingEvent:()=>dm,recordEvent:()=>lm,start:()=>$P});var $P=async t=>WP({eventWhitelist:t}),lm=async(t,e)=>{let r=fm(t,e);await dr(r,e,void 0,{useTenancy:!1})},VP=async()=>{await QP(),await jP()},qP=async()=>ri("backfillMetadata"),WP=async t=>dr("backfillMetadata",t),QP=async()=>{await ta("backfillMetadata")},jP=async()=>{let t=fm(),e=await fc(t);for(let r of e)await ta(r,{useTenancy:!1})},dm=async t=>{let r=(await qP())?.eventWhitelist;return!!(r&&r.includes(t))},pm=async(t,e)=>{let r=fm(t,e);return!!await ri(r,{useTenancy:!1})},YP={"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}`},fm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=YP[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var mr;function kc(){mr=ui("systemEventQueue")}async function LA(){mr&&await mr.close()}async function MA(t){mr||kc();let{event:e,identity:r}=t;gh.indexOf(e)!==-1&&r.tenantId&&await mr.add(t)}var _=async(t,e,r,n)=>{let i=n||await Lt.getCurrentIdentity();if(!(n?!1:await dm(t))){await MA({event:t,identity:i,properties:e,timestamp:r}),await fr.processEvent(t,i,e,r);return}await pm(t,e)||(await fr.processEvent(t,i,e,r),await lm(t,e))};async function HP(t,e){let r={tenantId:t.tenantId};await _("account:created",r,void 0,e)}async function KP(t){let e={tenantId:t.tenantId};await _("account:deleted",e)}async function zP(t){let e={tenantId:t.tenantId};await _("account:verified",e)}var kA={created:HP,deleted:KP,verified:zP};var JP=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:created",r,e)};async function ZP(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:updated",e)}async function XP(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:deleted",e)}async function eU(t,e){let r={appId:t.appId,audited:{name:t.name}};await _("app:published",r,e)}async function tU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:unpublished",e)}async function rU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:file:imported",e)}async function nU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await _("app:duplicated",r)}async function iU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await _("app:template:imported",r)}async function sU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await _("app:version:updated",n)}async function oU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await _("app:version:reverted",n)}async function aU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:reverted",e)}async function uU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:exported",e)}var FA={created:JP,updated:ZP,deleted:XP,published:eU,unpublished:tU,fileImported:rU,duplicated:nU,templateImported:iU,versionUpdated:sU,versionReverted:oU,reverted:aU,exported:uU};async function cU(t,e){let n={userId:(await Lt.getCurrentIdentity()).id,source:t,audited:{email:e}};await _("auth:login",n)}async function lU(t){let r={userId:(await Lt.getCurrentIdentity()).id,audited:{email:t}};await _("auth:logout",r)}async function dU(t,e){let r={type:t};await _("auth:sso:created",r,e)}async function pU(t){let e={type:t};await _("auth:sso:updated",e)}async function fU(t,e){let r={type:t};await _("auth:sso:activated",r,e)}async function mU(t){let e={type:t};await _("auth:sso:deactivated",e)}var Fc={login:cU,logout:lU,SSOCreated:dU,SSOUpdated:pU,SSOActivated:fU,SSODeactivated:mU};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 _("automation:created",r,e)}async function gU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:trigger:updated",e)}async function yU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:deleted",e)}async function EU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:tested",e)}var TU=async(t,e)=>{let r={count:t};await _("automations:run",r,e)};async function _U(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:created",n,r)}async function AU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:deleted",r)}var BA={created:hU,triggerUpdated:gU,deleted:yU,tested:EU,run:TU,stepCreated:_U,stepDeleted:AU};function mm(t){return!Object.values(Ma).includes(t.source)}async function SU(t,e){let r={datasourceId:t._id,source:t.source,custom:mm(t)};await _("datasource:created",r,e)}async function OU(t){let e={datasourceId:t._id,source:t.source,custom:mm(t)};await _("datasource:updated",e)}async function IU(t){let e={datasourceId:t._id,source:t.source,custom:mm(t)};await _("datasource:deleted",e)}var GA={created:SU,updated:OU,deleted:IU};async function xU(t){let e={};await _("email:smtp:created",e,t)}async function wU(){let t={};await _("email:smtp:updated",t)}var $A={SMTPCreated:xU,SMTPUpdated:wU};async function bU(t){let e={};await _("ai:config:created",e,t)}async function RU(){let t={};await _("ai:config:updated",t)}var VA={AIConfigCreated:bU,AIConfigUpdated:RU};async function DU(t,e){let r={accountId:t.accountId,...e};await _("license:plan:changed",r)}async function vU(t){let e={accountId:t.accountId};await _("license:activated",e)}async function CU(t){let e={accountId:t.accountId};await _("license:checkout:opened",e)}async function NU(t){let e={accountId:t.accountId};await _("license:checkout:success",e)}async function PU(t){let e={accountId:t.accountId};await _("license:portal:opened",e)}async function UU(t){let e={accountId:t.accountId};await _("license:payment:failed",e)}async function LU(t){let e={accountId:t.accountId};await _("license:payment:recovered",e)}var qA={planChanged:DU,activated:vU,checkoutOpened:CU,checkoutSuccess:NU,portalOpened:PU,paymentFailed:UU,paymentRecovered:LU};async function MU(t,e){let r={layoutId:t._id};await _("layout:created",r,e)}async function kU(t){let e={layoutId:t};await _("layout:deleted",e)}var WA={created:MU,deleted:kU};async function FU(t){let e={};await _("org:info:name:updated",e,t)}async function BU(t){let e={};await _("org:info:logo:updated",e,t)}async function GU(t){let e={};await _("org:platformurl:updated",e,t)}async function $U(){let t={};await _("analytics:opt:out",t)}async function VU(){let t={};await _("analytics:opt:out",t)}var QA={nameUpdated:FU,logoUpdated:BU,platformURLUpdated:GU,analyticsOptOut:$U,analyticsOptIn:VU};var qU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:created",n,r)},WU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:updated",r)},QU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:deleted",r)},jU=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await _("query:import",n)},YU=async(t,e)=>{let r={count:t};await _("queries:run",r,e)},HU=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:previewed",r)},jA={created:qU,updated:WU,deleted:QU,imported:jU,run:YU,previewed:HU};async function KU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:created",r,e)}async function zU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:updated",e)}async function JU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:deleted",e)}async function ZU(t,e,r){let n={userId:t._id,roleId:e};await _("role:assigned",n,r)}async function XU(t,e){let r={userId:t._id,roleId:e};await _("role:unassigned",r)}var Oa={created:KU,updated:zU,deleted:JU,assigned:ZU,unassigned:XU};async function eL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:created",r,e)}async function tL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:deleted",e)}var YA={created:eL,deleted:tL};var rL=async(t,e)=>{let r={count:t};await _("rows:created",r,e)},nL=async(t,e)=>{let r={tableId:t._id,count:e};await _("rows:imported",r)},HA={created:rL,imported:nL};async function iL(t,e){let r={tableId:t._id,audited:{name:t.name}};await _("table:created",r,e)}async function sL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await _("table:updated",i)}async function oL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:deleted",e)}async function aL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await _("table:exported",r)}async function uL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:imported",e)}var KA={created:iL,updated:sL,deleted:oL,exported:aL,imported:uL};async function cL(t){let e={timezone:t};await _("served:builder",e)}async function lL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await _("served:app",n)}async function dL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await _("served:app:preview",r)}var zA={servedBuilder:cL,servedApp:lL,servedAppPreview:dL};async function pL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:created",r,e)}async function fL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:updated",e)}async function mL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:deleted",e)}async function hL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:onboarding:complete",e)}async function gL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:admin:assigned",r,e)}async function yL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:admin:removed",e)}async function EL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:builder:assigned",r,e)}async function TL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:builder:removed",e)}async function _L(t){let e={audited:{email:t}};await _("user:invited",e)}async function AL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:invite:accepted",e)}async function SL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:force:reset",e)}async function OL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:updated",e)}async function IL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset:requested",e)}async function xL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset",e)}async function wL(t){let e={users:t};await _("user:data:collaboration",e)}var $e={created:pL,updated:fL,deleted:mL,permissionAdminAssigned:gL,permissionAdminRemoved:yL,permissionBuilderAssigned:EL,permissionBuilderRemoved:TL,onboardingComplete:hL,invited:_L,inviteAccepted:AL,passwordForceReset:SL,passwordUpdated:OL,passwordResetRequested:IL,passwordReset:xL,dataCollaboration:wL};async function bL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await _("view:created",r,e)}async function RL(t){let e={tableId:t.tableId};await _("view:updated",e)}async function DL(t){let e={tableId:t.tableId};await _("view:deleted",e)}async function vL(t,e){let r={tableId:t._id,format:e};await _("view:exported",r)}async function CL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await _("view:filter:created",n,r)}async function NL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await _("view:filter:updated",r)}async function PL(t){let e={tableId:t.tableId};await _("view:filter:deleted",e)}async function UL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await _("view:calculation:created",n,r)}async function LL(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:updated",e)}async function ML(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:deleted",e)}async function kL(t,e){let r={tableId:t};await _("view:join:created",r,e)}var JA={created:bL,updated:RL,deleted:DL,exported:vL,filterCreated:CL,filterUpdated:NL,filterDeleted:PL,calculationCreated:UL,calculationUpdated:LL,calculationDeleted:ML,viewJoinCreated:kL};async function FL(t){let e={currentVersion:t};await _("installation:version:checked",e)}async function BL(t,e){let r={from:t,to:e};await _("installation:version:upgraded",r)}async function GL(t,e){let r={from:t,to:e};await _("installation:version:downgraded",r)}async function $L(){let t={};await _("installation:firstStartup",t)}var Ea={versionChecked:FL,upgraded:BL,downgraded:GL,firstStartup:$L};var Ts=!h.SELF_HOSTED&&!h.isDev();async function VL(t){Ts||await _("app:backfill:succeeded",t)}async function qL(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("app:backfill:failed",e)}async function WL(t){Ts||await _("tenant:backfill:succeeded",t)}async function QL(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("tenant:backfill:failed",e)}async function jL(){if(Ts)return;let t={};await _("installation:backfill:succeeded",t)}async function YL(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("installation:backfill:failed",e)}var ZA={appSucceeded:VL,appFailed:qL,tenantSucceeded:WL,tenantFailed:QL,installationSucceeded:jL,installationFailed:YL};async function HL(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:created",r,e)}async function KL(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:updated",e)}async function zL(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:deleted",e)}async function JL(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:user_added",r)}async function ZL(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:users_deleted",r)}async function XL(t){let e={groupId:t,onboarding:!0};await _("user_group:onboarding_added",e)}async function e0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await _("user_group:permissions_edited",e)}var XA={created:HL,updated:KL,deleted:zL,usersAdded:JL,usersDeleted:ZL,createdOnboarding:XL,permissionsEdited:e0};async function t0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:init",e)}async function r0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await _("plugin:imported",e)}async function n0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:deleted",e)}var eS={init:t0,imported:r0,deleted:n0};async function i0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await _("app:backup:restored",e)}async function s0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await _("app:backup:triggered",s)}var tS={appBackupRestored:i0,appBackupTriggered:s0};async function o0(t,e){let r={name:t,environments:e};await _("environment_variable:created",r)}async function a0(t){let e={name:t};await _("environment_variable:deleted",e)}async function u0(t){let e={userId:t};await _("environment_variable:upgrade_panel_opened",e)}var rS={created:o0,deleted:a0,upgradePanelOpened:u0};async function c0(t){let e={filters:t};await _("audit_log:filtered",e)}async function l0(t){let e={filters:t};await _("audit_log:downloaded",e)}var nS={filtered:c0,downloaded:l0};async function d0(t,e){await _("row_action:created",t,e)}var iS={created:d0};function p0(){}var f0=()=>{fr.shutdown(),console.log("Events shutdown")};var hm=async t=>{await $e.deleted(t),_t(t)&&await $e.permissionBuilderRemoved(t),en(t)&&await $e.permissionAdminRemoved(t)},m0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Oa.assigned(t,i)},h0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Oa.unassigned(t,i)},g0=async(t,e)=>{let r=t.roles,n=e?.roles;await m0(t,r,n),await h0(t,r,n)},gm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await Lt.identifyUser(t,n),e?(await $e.updated(t),E0(t,e)&&await $e.permissionBuilderRemoved(t),_0(t,e)&&await $e.permissionAdminRemoved(t),A0(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),y0(t,e)&&await $e.permissionBuilderAssigned(t),T0(t,e)&&await $e.permissionAdminAssigned(t),await g0(t,e)},y0=(t,e)=>sS(t,e,_t),E0=(t,e)=>oS(t,e,_t),T0=(t,e)=>sS(t,e,en),_0=(t,e)=>oS(t,e,en),A0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",sS=(t,e,r)=>!(!r(t)||e&&r(e)),oS=(t,e,r)=>!(r(t)||!e||!r(e));var Gc={};N(Gc,{createASession:()=>O0,endSession:()=>I0,getSession:()=>Em,getSessionsForUser:()=>Bc,invalidateSessions:()=>li,updateSessionTTL:()=>ym});var aS=require("uuid");var uS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function _s(t,e){return`${t}/${e}`}async function Bc(t){return t?(await(await Vr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function li(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Bc(t)).map(o=>({key:_s(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:_s(t,s)}))),i&&i.length>0){let s=await Vr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||zi(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function O0(t,e){await li(t,{reason:"creation"});let r=await Vr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,aS.v4)(),s=_s(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,uS),o}async function ym(t){let e=await Vr(),r=_s(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,uS)}async function I0(t,e){await(await Vr()).delete(_s(t,e))}async function Em(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Vr()).get(_s(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Sm={};N(Sm,{PASSWORD_MAX_LENGTH:()=>_m,PASSWORD_MIN_LENGTH:()=>Tm,validatePassword:()=>Am});var Tm=+(h.PASSWORD_MIN_LENGTH||12),_m=+(h.PASSWORD_MAX_LENGTH||512);function Am(t){return!t||t.length<Tm?{valid:!1,error:`Password invalid. Minimum ${Tm} characters.`}:t.length>_m?{valid:!1,error:`Password invalid. Maximum ${_m} characters.`}:{valid:!0}}var x0=async t=>{let e=t._id;await Ut.removeUser(t),await hm(t),await rn.invalidateUser(e),await li(e,{reason:"bulk-deletion"})},jt=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()||$a(e)?!0:(r||(r=await ls(Q())),!!(r&&r.email===e.email&&Ga(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=Am(o);if(!p.valid)throw new ct(p.error,400)}u=r.hashPassword?await Cf(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||Ji();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(Zn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Vc(e,{})).length}}static async getUsersByAppAccess(e){return await Om(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Mt(e)}static async getUser(e){let r=await di(e);return r&&delete r.password,r}static async bulkGet(e){return await $c(e)}static async bulkUpdate(e){return await Ia(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 di(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await Mt(s),c&&c._id!==o))throw new pr(s);let l=c?0:1,p=await Qt(c)!==await Qt(e)?1:0;return t.quotas.addUsers(l,p,async()=>{await bc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Im(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 gm(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.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 Wf(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 Qt(p)&&o.push(p)}let l=await ls(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 Ia(p);for(let d of p)await Ut.addUser(n,d._id,d.email),await gm(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=se(),n={successful:[],unsuccessful:[]},i=await Rc(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 Ia(a),l=(await Promise.all(o.map(Qt))).filter(d=>!!d).length,p=[];for(let d of o){let g=(await ca(d._id)).ssoId;g&&(await yc(g)).filter(y=>y.ssoId==null).forEach(y=>{p.push({...y,_deleted:!0})}),await x0(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=se(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await zr(o))throw n.userId===sr()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await Qt(n)?1:0;await t.quotas.removeUsers(1,s),await hm(n),await rn.invalidateUser(i),await li(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 os("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function wa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function $c(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=wa(n)),n}async function b0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function R0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ia(t){return await se().bulkDocs(t)}async function di(t,e){let n=await se().get(t);return e?.cleanup&&(n=wa(n)),n}async function Mt(t,e){if(t==null)throw"Must supply an email address to view";let r=await ur("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=wa(n)),n}async function D0(t){try{let e=await Mt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Vc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=cc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await ur("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=wa(s)),s}async function Om(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 mf(ar(),i)).rows}function cS(t,e){if(e)return uc(ot(t),e._id)}async function lS(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 ur("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=wa(o)),o}var v0=8;async function dS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??v0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await di(e.equal._id)]:r?(u=await Vc(r,a),l=p=>cS(r,p)):e?.string?.email?(u=await lS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await $c(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Zn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Pr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Zn(null,a))).rows.map(m=>m.doc),af(u,s,{paginate:!0,property:c,getKey:l})}async function C0(){return(await df("by_email2",{limit:0,include_docs:!1})).total_rows}async function N0(){let t=0;async function e(r){let n=await dS({bookmark:r}),i=await Promise.all(n.data.map(Qt));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function P0(t){return delete t.admin,delete t.builder,t}function Im(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 U0(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await jt.save(t,{hashPassword:!1})}async function L0(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await jt.save(t,{hashPassword:!1})}var pS=3600;async function M0(t,e){let n=await Rf(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 k0(t){let e=await jt.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 ba({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=M0),!e)try{e=Q()}catch{e=await Ut.lookupTenantId(t)}let i=await jo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,pS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await jt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function F0(t){let e=await jo(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await k0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,pS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ra(t){await(await jo()).delete(t)}var Rm={};N(Rm,{Writethrough:()=>wm});var fS=1e4,xm=null;async function bm(){if(!xm){let t=await Zp();xm=new ei(t)}return xm}function qc(t,e){return t.name+e}function mS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function B0(t,e,r=fS){let n=await bm(),i=e._id,s;i&&(s=await n.get(qc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await cs({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;zi("Ignoring conflict in write-through cache")}})).executed||zi("Ignoring redlock conflict in write-through cache")),s=mS(a,o?null:s?.lastWrite),a._id&&await n.store(qc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function G0(t,e){let r=await bm(),n=qc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=mS(s),await r.store(n,i)}return i.doc}async function $0(t,e,r){let n=await bm();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(qc(t,i))}finally{await t.remove(i,r)}}var wm=class{constructor(e,r=fS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return B0(this.db,e,r)}async get(e){return G0(this.db,e)}async remove(e,r){return $0(this.db,e,r)}};var Dm={};N(Dm,{createCode:()=>q0,getCode:()=>W0,invalidateCode:()=>Q0});var V0=De.fromHours(1).toSeconds();async function q0(t,e){let r=Se();return await(await Yo()).store(r,{userId:t,info:e},V0),r}async function W0(t){let r=await(await Yo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function Q0(t){await(await Yo()).delete(t)}var Cm={};N(Cm,{DocWritethrough:()=>vm,DocWritethroughProcessor:()=>Da,getProcessor:()=>Y0,init:()=>hS});var j0=100,Wc,Da=class t{static get queue(){return t._queue||(t._queue=ui("docWritethroughQueue",{jobOptions:{attempts:j0}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){let i=Ke(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},vm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Da.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function hS(){return Wc=new Da().init(),Wc}function Y0(){return Wc||hS()}function Um(t){return`config${v}${t}`}async function kt(t){let e=se();try{return await e.get(Um(t))}catch(r){if(r.status===404)return;throw r}}async function H0(t){return se().put(t)}async function Lc(){let t=await kt("settings");return t||(t={_id:Um("settings"),type:"settings",config:{}}),t.config.platformUrl=await va({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Cc({config:t.config}),t}async function Lm(){return(await Lc()).config}async function va(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await kt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Cc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Hr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await kt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function K0(){return await kt("google")}async function Qc(){return(await K0())?.config}async function Mm(){if(!h.SELF_HOSTED)return Nm();let t=await Qc();return(!t||!t.activated)&&(t=Nm()),t}function Nm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function z0(){return kt("logos_oidc")}async function J0(){return kt("oidc")}async function Z0(){let t=(await J0())?.config;return t?.configs&&t.configs[0]}async function km(t){let e=(await kt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function gS(){return kt("smtp")}async function X0(t){let e=await gS();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 eM(){return(await kt("scim"))?.config}async function tM(){return kt("ai")}var Fm={};N(Fm,{BUILDER:()=>oM,BUILTIN_PERMISSIONS:()=>jc,CREATOR:()=>aM,GLOBAL_BUILDER:()=>uM,PermissionImpl:()=>pe,PermissionLevel:()=>xs,PermissionType:()=>Fa,doesHaveBasePermission:()=>iM,getAllowedLevels:()=>_S,getBuiltinPermissionByID:()=>nM,getBuiltinPermissions:()=>rM,isPermissionLevelHigherThanRead:()=>sM,levelToNumber:()=>TS});var yS=j(require("lodash/flatten")),ES=j(require("lodash/fp/cloneDeep")),pe=class{constructor(e,r){this.type=e,this.level=r}};function TS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function _S(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var jc={PUBLIC:{_id:"public",name:"Public",permissions:[new pe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new pe("query","read"),new pe("table","read"),new pe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new pe("query","write"),new pe("table","write"),new pe("automation","execute"),new pe("legacy_view","read"),new pe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new pe("table","write"),new pe("user","read"),new pe("automation","execute"),new pe("webhook","read"),new pe("legacy_view","read"),new pe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new pe("table","admin"),new pe("user","admin"),new pe("automation","admin"),new pe("webhook","read"),new pe("query","admin"),new pe("legacy_view","read"),new pe("app","read")]}};function rM(){return(0,ES.default)(jc)}function nM(t){return Object.values(jc).find(r=>r._id===t)}function iM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(jc),s=(0,yS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&_S(o.level).indexOf(e)!==-1)return!0;return!1}function sM(t){return TS(t)>1}var oM="builder",aM="creator",uM="globalBuilder";var $m={};N($m,{FlagSet:()=>Hc,all:()=>pM,flags:()=>Bm,init:()=>cM,isEnabled:()=>dM,parseEnvFlags:()=>zc,shutdown:()=>lM,testutils:()=>Gm});var Kc=j(require("crypto"));var AS=require("posthog-node"),SS=j(require("dd-trace"));var OS=require("lodash");var Yc;function cM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Yc=new AS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:De.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function lM(){Yc?.shutdown()}function zc(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 Hc=class{constructor(e){this.flagSchema=e;this.setId=Kc.randomUUID()}defaults(){return(0,OS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await SS.default.trace("features.fetch",async e=>{let r=wf(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 zc(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=sr(),u=a?._id;if(!u){let l=If();l&&(u=Kc.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,Yc&&u){n.readFromPostHog=!0;let l={tenantId:c},p=await Yc.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)}}}bf(this.setId,i);for(let[l,p]of Object.entries(i))n[`flags.${l}.value`]=p;return e?.addTags(n),i})}},Bm=new Hc(Ah);async function dM(t){return await Bm.isEnabled(t)}async function pM(){return await Bm.fetch()}var Gm={};N(Gm,{setFeatureFlags:()=>IS,withFeatureFlags:()=>hM});function fM(){let t={};for(let{tenantId:e,key:r,value:n}of zc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function mM(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 IS(t,e){let r=fM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=mM(r);return xo({TENANT_FEATURE_FLAGS:n})}function hM(t,e,r){let n=IS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Xm={};N(Xm,{adminOnly:()=>al,auditLog:()=>nl,authError:()=>Pe,buildAuthMiddleware:()=>rk,buildCsrfMiddleware:()=>ik,buildTenancyMiddleware:()=>nk,builderOnly:()=>cl,builderOrAdmin:()=>ul,google:()=>hr,internalApi:()=>sl,joiValidator:()=>Na,oidc:()=>gr,passport:()=>sk,platformLogout:()=>lk,refreshOAuthToken:()=>uk,ssoCallbackUrl:()=>nn,updateUserOAuth:()=>ck});var Zm={};N(Zm,{adminOnly:()=>al,auditLog:()=>nl,authError:()=>Pe,authenticated:()=>rl,builderOnly:()=>cl,builderOrAdmin:()=>ul,correlation:()=>FS,csp:()=>WS,csrf:()=>ol,datasource:()=>ek,errorHandling:()=>GS,google:()=>hr,internalApi:()=>sl,ip:()=>jS,joiValidator:()=>Na,local:()=>As,oidc:()=>gr,pino:()=>MS,querystringToBody:()=>$S,ssoCallbackUrl:()=>nn,tenancy:()=>il});var As={};N(As,{authenticate:()=>EM,options:()=>yM});function Pe(t,e,r){return t(r,null,{message:e})}async function nn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Lm(),n="/api/global/auth";return jr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Vm="Invalid credentials",gM="This account has expired. Please reset your password",yM={passReqToCallback:!0};async function EM(t,e,r,n){if(!e)return Pe(n,"Email Required");if(!r)return Pe(n,"Password Required");let i=await Mt(e);return i==null?(console.info(`user=${e} could not be found`),Pe(n,Vm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Pe(n,Vm)):i.password?await Nf(r,i.password)?(delete i.password,n(null,i)):Pe(n,Vm):(console.info(`user=${e} has no password set`,i),Pe(n,gM))}var hr={};N(hr,{buildVerifyFn:()=>bS,getCallbackUrl:()=>AM,strategyFactory:()=>qm});var Ca=t=>Promise.resolve(t);async function Jc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Pe(r,"sso user id required");if(!t.email)return Pe(r,"sso user email required");let i=Ji(t.userId),s;try{s=await di(i)}catch(a){if(!a.status||a.status!==404)return Pe(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Mt(t.email)),!s&&e)return Pe(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 TM(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Pe(r,"Error saving user",a)}return r(null,o)}async function TM(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 _M=require("passport-google-oauth").OAuth2Strategy;function bS(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 Jc(s,!0,i,t)}}async function qm(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=bS(r);return new _M({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function AM(t){return nn("google",t)}var gr={};N(gr,{buildVerifyFn:()=>DS,fetchStrategyConfig:()=>xM,getCallbackUrl:()=>wM,strategyFactory:()=>IM});var RS=j(require("node-fetch"));var SM=require("@techpass/passport-openidconnect").Strategy;function DS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:OM(n,i),oauth2:{accessToken:s,refreshToken:o}};return Jc(l,!1,c,t)}}function OM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Lf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function IM(t,e){try{let r=DS(e),n=new SM(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function xM(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,RS.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 wM(){return nn("oidc")}var Wm={};N(Wm,{postAuth:()=>DM,preAuth:()=>RM});var bM=require("passport-google-oauth").OAuth2Strategy;async function vS(){let t=await Mm();if(!t)throw new Error("No google configuration found");return t}async function RM(t,e,r){let n=await vS(),s=`${await va({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await qm(n,s,Ca);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 DM(t,e,r){let n=await vS(),s=`${await va({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 bM({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=Se();await dr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var vM=/\/:(.*?)(\/.*)?$/g,pi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(vM);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}}):[],fi=(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 zm={};N(zm,{SecretOption:()=>PS,decrypt:()=>Km,decryptFile:()=>MM,encrypt:()=>PM,encryptFile:()=>UM,getSecret:()=>Hm});var yr=j(require("crypto")),sn=j(require("fs")),jm=j(require("zlib"));var Qm=require("path"),Zc="aes-256-ctr",NS="-",CM=1e4,NM=32,Xc=16,Ym=16,PS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(PS||{});function Hm(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 el(t,e){return yr.default.pbkdf2Sync(t,e,CM,NM,"sha512")}function PM(t,e="api"){let r=yr.default.randomBytes(Xc),n=el(Hm(e),r),i=yr.default.createCipheriv(Zc,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${NS}${a}`}function Km(t,e="api"){let[r,n]=t.split(NS),i=Buffer.from(r,"hex"),s=el(Hm(e),i),o=yr.default.createDecipheriv(Zc,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function UM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Qm.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,Qm.join)(t,n)),a=yr.default.randomBytes(Xc),u=yr.default.randomBytes(Ym),c=el(r,a),l=yr.default.createCipheriv(Zc,c,u);return o.write(a),o.write(u),s.pipe(jm.default.createGzip()).pipe(l).pipe(o),new Promise(p=>{o.on("finish",()=>{p({filename:n,dir:t})})})}async function LM(t){let e=sn.default.createReadStream(t),r=await CS(e,Xc),n=await CS(e,Ym);return e.close(),{salt:r,iv:n}}async function MM(t,e,r){if(sn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await LM(t),s=sn.default.createReadStream(t,{start:Xc+Ym}),o=sn.default.createWriteStream(e),a=el(r,n),u=yr.default.createDecipheriv(Zc,a,i),c=jm.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 CS(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 LS=j(require("dd-trace")),kM=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function FM(){return new Date(Date.now()-kM).toISOString()}function US(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 BM(t,e){if(oa(t))return{valid:!0,user:void 0};let n=Km(t).split(v)[0];return Ge(n,async()=>{let i;try{let s=se();i=await ur("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await ba({userId:i,tenantId:n,populateUser:e})};throw new fs})}function tl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function rl(t=[],e={publicAllowed:!1}){let r=t?pi(t):[];return async(n,i)=>{let s=!1,o=tl(n,"x-budibase-api-version");fi(n,r)&&(s=!0);try{let u=tl(n,"x-budibase-token"),c=ni(n,"budibase:auth")||hc(u),l=tl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let p=tl(n,"x-budibase-tenant-id"),m=!1,d,f=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await Em(O,y),e&&e.populateUser?d=await ba({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):d=await ba({userId:O,tenantId:S.tenantId,email:S.email}),d.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<FM()&&await ym(S),m=!0}catch(L){m=!1,console.error(`Auth Error: ${L.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await BM(l,y);O&&(m=!0,g="api_key",d=S,f=!S)}!d&&p?d={tenantId:p}:d&&"password"in d&&delete d.password,m||(m=!1);let T=y=>y&&y.email;return T(d)&&LS.default.setUser({id:d._id,tenantId:d.tenantId,budibaseAccess:d.budibaseAccess,status:d.status}),US(n,{authenticated:m,user:d,internal:f,version:o,publicEndpoint:s,loginMethod:g}),T(d)?Tp(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 US(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var GM=async(t,e)=>e(),nl=GM;function il(t,e,r={noTenancyRequired:!1}){let n=pi(t),i=pi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!fi(s,i)};!!fi(s,n)||(u.excludeStrategies=["query"]);let l=na(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var sl=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"),oa(r)||t.throw(403,"Unauthorized"),e()};var $M=["GET","HEAD","OPTIONS"],VM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ol(t={noCsrfPatterns:[]}){let e=pi(t.noCsrfPatterns);return async(r,n)=>{if(fi(r,e)||$M.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!VM.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var al=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var ul=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?_t:h.isApps()?ms: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 cl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?_t:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var qM=require("koa-pino-logger"),WM=require("correlation-id");function QM(){return{logger:ic,genReqId:WM.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 jM(){return h.HTTP_LOGGING?qM(QM()):(t,e)=>e()}var YM=jM(),MS=YM;var kS=require("uuid"),HM=require("correlation-id"),KM=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,kS.v4)()),HM.withId(r,()=>e())},FS=KM;function BS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of TT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function zM(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:Oc(r)};if(BS(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 GS=zM;function $S(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 qS=j(require("crypto")),VS={"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 JM(t,e){try{let r=qS.default.randomBytes(16).toString("base64"),n={...VS};n["script-src"]=[...VS["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 WS=JM;var Na={};N(Na,{body:()=>ZM,params:()=>XM});var Jm=j(require("joi"));function QS(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:Jm.default.any().optional(),updatedAt:Jm.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 ZM(t,e){return QS(t,"body",e)}function XM(t,e){return QS(t,"params",e)}var jS=async(t,e)=>t.ip?await xf(t.ip,()=>e()):e();var ek={google:Wm};var YS=require("koa-passport"),tk=require("passport-local").Strategy,ll=require("passport-oauth2-refresh"),rk=rl,nk=il,ik=ol,sk=YS;YS.use(new tk(As.options,As.authenticate));async function ok(t,e){let r=await gr.getCallbackUrl(),n,i;try{if(n=await gr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await gr.strategyFactory(n,Ca)}catch{throw new Error("Could not refresh OAuth Token")}return ll.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{ll.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function ak(t,e){let r=await hr.getCallbackUrl(t),n;try{n=await hr.strategyFactory(t,r,Ca)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return ll.use(n),new Promise(i=>{ll.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function uk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await km(r);return n?ok(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Qc();return n?ak(n,t):{err:{data:"Google configuration not found"}}}}}async function ck(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 Ra(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function lk(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 Bc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await li(r,{sessionIds:o,reason:"logout"}),await Fc.logout(e.user?.email),await Ra(r)}var th={};N(th,{validate:()=>hk});var R=j(require("joi")),dk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function eh(t,e){let{error:r}=t.validate(e);if(r)throw r}function pk(t){let e=R.default.object({type:R.default.string().allow("component").required(),metadata:R.default.object().unknown(!0).required(),hash:R.default.string().optional(),version:R.default.string().optional(),schema:R.default.object({name:R.default.string().required(),settings:R.default.array().items(R.default.object().unknown(!0)).required()}).unknown(!0)});eh(e,t)}function fk(t){let e=R.default.object({type:R.default.string().allow(...Object.values(hl)).required(),required:R.default.boolean().required(),default:R.default.any(),display:R.default.string()}),r=R.default.object({type:R.default.string().allow(...Object.values(ml)),readable:R.default.boolean(),fields:R.default.object().pattern(R.default.string(),e)}).required(),n=R.default.object({type:R.default.string().allow("datasource").required(),metadata:R.default.object().unknown(!0).required(),hash:R.default.string().optional(),version:R.default.string().optional(),schema:R.default.object({docs:R.default.string(),plus:R.default.boolean().optional(),isSQL:R.default.boolean().optional(),auth:R.default.object({type:R.default.string().required()}).optional(),features:R.default.object(Object.fromEntries(Object.values(gl).map(i=>[i,R.default.boolean().optional()]))).optional(),relationships:R.default.boolean().optional(),description:R.default.string().required(),friendlyName:R.default.string().required(),type:R.default.string().allow(...dk),datasource:R.default.object().pattern(R.default.string(),e).required(),query:R.default.object().pattern(R.default.string(),r).unknown(!0).required(),extra:R.default.object().pattern(R.default.string(),R.default.object({type:R.default.string().required(),displayName:R.default.string().required(),required:R.default.boolean(),data:R.default.object()}))})});eh(n,t)}function mk(t){let e=R.default.object().pattern(R.default.string(),{type:R.default.string().allow(...Object.values(ce)).required(),customType:R.default.string().allow(...Object.values(Me)),title:R.default.string(),description:R.default.string(),enum:R.default.array().items(R.default.string()),pretty:R.default.array().items(R.default.string())}),r=R.default.object({properties:e,required:R.default.array().items(R.default.string())}).concat(e).required(),n=R.default.object({type:R.default.string().allow("automation").required(),metadata:R.default.object().unknown(!0).required(),hash:R.default.string().optional(),version:R.default.string().optional(),schema:R.default.object({name:R.default.string().required(),tagline:R.default.string().required(),icon:R.default.string().required(),description:R.default.string().required(),type:R.default.string().allow("ACTION","LOGIC").required(),stepId:R.default.string().disallow(...Sh).required(),inputs:R.default.object().optional(),schema:R.default.object({inputs:r,outputs:r}).required()})});eh(n,t)}function hk(t){switch(t?.type){case"component":pk(t);break;case"datasource":fk(t);break;case"automation":mk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var rh={};N(rh,{Client:()=>Be,clients:()=>qr,locks:()=>si,utils:()=>Zu});var nh={};N(nh,{isBlacklisted:()=>yk,refreshBlacklist:()=>JS});var HS=j(require("dns")),pl=j(require("net"));var KS=require("util"),dl,gk=(0,KS.promisify)(HS.default.lookup);async function zS(t){return pl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await gk(t,{all:!0})).map(r=>r.address)}async function JS(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(pl.default.isIP(i))r.push(i);else{let s=await zS(i);r=r.concat(s)}}dl=r}async function yk(t){if(dl||await JS(),dl?.length===0)return!1;let e;return pl.default.isIP(t)?e=[t]:e=await zS(t),!!dl?.find(r=>e.includes(r))}var sh={};N(sh,{init:()=>Tk});var Ek={"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 ZS(t,e){let r=Ek[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Pa=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=ZS(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 LA()}};var XS,ih;function Tk(t){mr||kc(),ih||(ih=new Pa(t)),XS||(XS=mr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await ih.processEvent(r,n,i)}))}var mh={};N(mh,{COUNT_FIELD_NAME:()=>ph,Sql:()=>aO,SqlTable:()=>fl,designDoc:()=>fh,utils:()=>Af});var nO=require("knex");var _k=require("knex");function oh(t){return["link","formula","ai"].indexOf(t)!==-1}function eO(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,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:T,toTable:y}=d.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${T}`)}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":Nr.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:T}=yf(d.tableId),y=r[T];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(d.foreignKey,S):t.integer(d.foreignKey).unsigned(),t.foreign(d.foreignKey).references(`${T}.${O}`)}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&&!oh(p)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([d,f])=>!oh(f.type)&&e.schema[d]==null).forEach(([d,f])=>{i?.old===d||oh(f.type)||(n.constrained&&n.constrained.indexOf(d)!==-1&&t.dropForeign(d),t.dropColumn(d))}),t}function Sk(t,e,r){return t.createTable(e.name,n=>{eO(n,e,r)})}function Ok(t,e,r,n,i){return t.alterTable(e.name,s=>{eO(s,e,r,n,i)})}function Ik(t,e){return t.dropTable(e.name)}var ah=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,_k.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=Sk(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=Ok(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=ts(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=Ik(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ts(n)}},fl=ah;var iO=require("lodash"),ph="__bb_total";function tO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function uh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function xk(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 sO(t){return Array.isArray(t)?t.map(e=>sO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function rO(t){return t.sourceType==="internal"||t.sourceId===_l}function wk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function oO(t,e='"'){return`${e}${wk(t,e)}${e}`}function ch(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=oO(t[r],e));return`[${t.join(",")}]`}var bk={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},lh=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 Pr.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"){if(Ef(e))return null;if(Tf(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,iO.cloneDeep)(e);for(let r of Object.values(Tr)){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 T=this.knex.select(this.knex.raw(1)).from({[d]:m}),y=T.clone(),O=_f(p),S;if(f?S=n:S=n.replace(new RegExp(`^${p.column}.`),`${a?.[p.tableName]||p.tableName}.`),O){let L=a?.[O.through]||p.through,E=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(E,function(){this.on(`${d}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(A=>{A.whereExists(i(S,y)),r&&A.orWhereNotExists(T.clone().innerJoin(E,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${d}.${p.to}`,E=`${c}.${p.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(E)),e=e.where(A=>{A.whereExists(i(S,y.clone())),r&&A.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,T,y){let O=(S,L,E)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ue=>T(ue,F?`${F}.${w}`:w,E))};for(let S in f){let L=f[S],E=Zo(S),A=E.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let F=c(u);e=y(e,w.id.map(ue=>F?`${F}.${ue}`:ue),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,bk[g],E,(F,ue)=>O(ue,F,L)));else{let F=c(u);e=T(e,F?`${F}.${E}`:E,L)}}}let p=(f,g,T)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${T.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${T}%`]))),m=(f,g=!1)=>{function T(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=T(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ch(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ch(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,O,S)=>T(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(oO(ch(S)))])):l(f,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(f===r?.notContains&&(L=L.not),L=L.where(E=>{for(let A of S){f===r?.containsAny?E=E.or:E=E.and;let B=typeof A=="string"?`"${A.toLowerCase()}"`:A;E=E.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(T=>{this.addFilters(T,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let T of f.conditions)g.orWhere(y=>this.addFilters(y,{...T,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,T)=>{let y=this.getFieldSchema(g),O=Array.isArray(T)?T:[T];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,T)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(T)?T:[T]))),r.string&&l(r.string,"string",(f,g,T)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${T.toLowerCase()}%`]):f.whereILike(g,`${T}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",p),r.range&&l(r.range,"range",(f,g,T)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(T.low)&&(T.low=""),y(T.high)&&(T.high="");let O=pc(T.low),S=pc(T.high),L=this.getFieldSchema(g),E=g,A=T.high,B=T.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(A!=null&&(A=`${A.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),A=this.knex.raw("CAST(? AS INTEGER)",[T.high]),B=this.knex.raw("CAST(? AS INTEGER)",[T.low])),o&&(f=f.or),O&&S?f.whereBetween(E,[B,A]):O?f.where(E,">=",B):S?f.where(E,"<=",A):f}),r.equal&&l(r.equal,"equal",(f,g,T)=>{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),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.whereNotNull(O).andWhere(O,T))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?f.whereLike(g,`${T.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),T])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,T)=>{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),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.not.whereNull(O).and.where(O,"!=",T)).or.whereNull(O)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?f.not.whereLike(g,`${T.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),T])}),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&&!gf(this.table)&&d&&e.andWhereLike(`${d}._id`,`${_r(r.documentType)}%`),e}isSqs(){return rO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;rO(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 ${ph}`)}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:T,toPrimary:y}=p;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,E=d&&a?.[d]||d,A=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=xk(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ue=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),on=`${S}.${y||f}`,V=s.from(A).orderBy(on),k=d&&y&&T,D=k?`${E}.${g}`:`${S}.${f}`,W=k?`${L}.${T}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(d,{alias:E,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${E}.${f}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(w.map(ie=>this.rawQuotedIdentifier(ie))).limit(uh()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,p),K=U(this.knex.raw(`json_group_array(json_object(${ue}))`));break;case"pg":K=U(this.knex.raw(`json_agg(json_build_object(${ue}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${ue}) LIMIT ${uh()})`));break;case"mysql2":case"oracledb":K=U(this.knex.raw(`json_arrayagg(json_object(${ue}))`));break;case"mssql":{let q=s.select("*").from({[L]:V.select(F.map(ie=>s.ref(ie[1]).as(ie[0]))).limit(uh())});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({[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,T=f.from;this.orOn(`${p}.${g}`,"=",`${l}.${T}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,T=f.to;this.orOn(`${c}.${g}`,`${l}.${T}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,T=f.to;this.orOn(`${p}.${g}`,"=",`${c}.${T}`)}}),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())}},dh=class extends fl{constructor(r,n=tO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=ts(r);return i==="sqlite3"&&(s=sO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,nO.knex)(s),a,u=new lh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:tO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let 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===_l){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 Oh.includes(r.type)&&!Nr.schema.isDeprecatedSingleUserColumn(r)}log(r,n){ea(this.getSqlClient(),r,n)}},aO=dh;var fh={};N(fh,{base:()=>Rk});function Rk(t){return{_id:ir,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Dk={...ia,...ge},vk=(t={})=>{Ku(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
|