@budibase/backend-core 3.5.3 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -10
- package/dist/index.js.map +3 -3
- package/dist/package.json +2 -2
- package/dist/plugins.js +1 -1
- package/dist/src/docIds/params.d.ts +4 -0
- package/dist/src/docIds/params.js +8 -1
- package/dist/src/docIds/params.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
"use strict";var EI=Object.create;var Fa=Object.defineProperty;var TI=Object.getOwnPropertyDescriptor;var AI=Object.getOwnPropertyNames;var _I=Object.getPrototypeOf,SI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)Fa(t,r,{get:e[r],enumerable:!0})},Rh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of AI(e))!SI.call(t,i)&&i!==r&&Fa(t,i,{get:()=>e[i],enumerable:!(n=TI(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?EI(_I(t)):{},Rh(e||!t||!t.__esModule?Fa(r,"default",{value:t,enumerable:!0}):r,t)),II=t=>Rh(Fa({},"__esModule",{value:!0}),t);var zh=H((Ml,kl)=>{"use strict";(function(t,e){typeof Ml=="object"&&typeof kl<"u"?kl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Ml,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",p="year",m="date",d="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function($){var F=["th","st","nd","rd"],C=$%100;return"["+$+(F[(C-20)%10]||F[C]||F[0])+"]"}},y=function($,F,C){var W=String($);return!W||W.length>=F?$:""+Array(F+1-W.length).join(C)+$},S={s:y,z:function($){var F=-$.utcOffset(),C=Math.abs(F),W=Math.floor(C/60),L=C%60;return(F<=0?"+":"-")+y(W,2,"0")+":"+y(L,2,"0")},m:function $(F,C){if(F.date()<C.date())return-$(C,F);var W=12*(C.year()-F.year())+(C.month()-F.month()),L=F.clone().add(W,c),K=C-L<0,V=F.clone().add(W+(K?-1:1),c);return+(-(W+(C-L)/(K?L-V:V-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:p,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},_="en",M={};M[_]=E;var T="$isDayjsObject",I=function($){return $ instanceof le||!(!$||!$[T])},x=function $(F,C,W){var L;if(!F)return _;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),C&&(M[K]=C,L=K);var V=F.split("-");if(!L&&V.length>1)return $(V[0])}else{var se=F.name;M[se]=F,L=se}return!W&&L&&(_=L),L||!W&&_},w=function($,F){if(I($))return $.clone();var C=typeof F=="object"?F:{};return C.date=$,C.args=arguments,new le(C)},B=S;B.l=x,B.i=I,B.w=function($,F){return w($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var le=function(){function $(C){this.$L=x(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(C){this.$d=function(W){var L=W.date,K=W.utc;if(L===null)return new Date(NaN);if(B.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var V=L.match(f);if(V){var se=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return K?new Date(Date.UTC(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(L)}(C),this.init()},F.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==d},F.isSame=function(C,W){var L=w(C);return this.startOf(W)<=L&&L<=this.endOf(W)},F.isAfter=function(C,W){return w(C)<this.startOf(W)},F.isBefore=function(C,W){return this.endOf(W)<w(C)},F.$g=function(C,W,L){return B.u(C)?this[W]:this.set(L,C)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(C,W){var L=this,K=!!B.u(W)||W,V=B.p(C),se=function(un,qe){var Ar=B.w(L.$u?Date.UTC(L.$y,qe,un):new Date(L.$y,qe,un),L);return K?Ar:Ar.endOf(a)},Oe=function(un,qe){return B.w(L.toDate()[un].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(qe)),L)},q=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(V){case p:return K?se(1,0):se(31,11);case c:return K?se(1,Le):se(0,Le+1);case u:var an=this.$locale().weekStart||0,Os=(q<an?q+7:q)-an;return se(K?lt-Os:lt+(6-Os),Le);case a:case m:return Oe(hi+"Hours",0);case o:return Oe(hi+"Minutes",1);case s:return Oe(hi+"Seconds",2);case i:return Oe(hi+"Milliseconds",3);default:return this.clone()}},F.endOf=function(C){return this.startOf(C,!1)},F.$set=function(C,W){var L,K=B.p(C),V="set"+(this.$u?"UTC":""),se=(L={},L[a]=V+"Date",L[m]=V+"Date",L[c]=V+"Month",L[p]=V+"FullYear",L[o]=V+"Hours",L[s]=V+"Minutes",L[i]=V+"Seconds",L[n]=V+"Milliseconds",L)[K],Oe=K===a?this.$D+(W-this.$W):W;if(K===c||K===p){var q=this.clone().set(m,1);q.$d[se](Oe),q.init(),this.$d=q.set(m,Math.min(this.$D,q.daysInMonth())).$d}else se&&this.$d[se](Oe);return this.init(),this},F.set=function(C,W){return this.clone().$set(C,W)},F.get=function(C){return this[B.p(C)]()},F.add=function(C,W){var L,K=this;C=Number(C);var V=B.p(W),se=function(Le){var lt=w(K);return B.w(lt.date(lt.date()+Math.round(Le*C)),K)};if(V===c)return this.set(c,this.$M+C);if(V===p)return this.set(p,this.$y+C);if(V===a)return se(1);if(V===u)return se(7);var Oe=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,q=this.$d.getTime()+C*Oe;return B.w(q,this)},F.subtract=function(C,W){return this.add(-1*C,W)},F.format=function(C){var W=this,L=this.$locale();if(!this.isValid())return L.invalidDate||d;var K=C||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Oe=this.$m,q=this.$M,Le=L.weekdays,lt=L.months,hi=L.meridiem,an=function(qe,Ar,xs,ka){return qe&&(qe[Ar]||qe(W,K))||xs[Ar].slice(0,ka)},Os=function(qe){return B.s(se%12||12,qe,"0")},un=hi||function(qe,Ar,xs){var ka=qe<12?"AM":"PM";return xs?ka.toLowerCase():ka};return K.replace(g,function(qe,Ar){return Ar||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return B.s(W.$y,4,"0");case"M":return q+1;case"MM":return B.s(q+1,2,"0");case"MMM":return an(L.monthsShort,q,lt,3);case"MMMM":return an(lt,q);case"D":return W.$D;case"DD":return B.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return an(L.weekdaysMin,W.$W,Le,2);case"ddd":return an(L.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return Os(1);case"hh":return Os(2);case"a":return un(se,Oe,!0);case"A":return un(se,Oe,!1);case"m":return String(Oe);case"mm":return B.s(Oe,2,"0");case"s":return String(W.$s);case"ss":return B.s(W.$s,2,"0");case"SSS":return B.s(W.$ms,3,"0");case"Z":return V}return null}(qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(C,W,L){var K,V=this,se=B.p(W),Oe=w(C),q=(Oe.utcOffset()-this.utcOffset())*e,Le=this-Oe,lt=function(){return B.m(V,Oe)};switch(se){case p:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-q)/6048e5;break;case a:K=(Le-q)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(C,W){if(!C)return this.$L;var L=this.clone(),K=x(C,W,!0);return K&&(L.$L=K),L},F.clone=function(){return B.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},$}(),on=le.prototype;return w.prototype=on,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",p],["$D",m]].forEach(function($){on[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),w.extend=function($,F){return $.$i||($(F,le,w),$.$i=!0),w},w.locale=x,w.isDayjs=I,w.unix=function($){return w(1e3*$)},w.en=M[_],w.Ls=M,w.p={},w})});var Ot=H(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.Err=Qe.Valid=Qe.err=Qe.valid=void 0;var YO=t=>new iu(t);Qe.valid=YO;var KO=t=>new su(t);Qe.err=KO;var iu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Qe.valid)(e(this.value))}mapErr(e){return(0,Qe.valid)(this.value)}};Qe.Valid=iu;var su=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Qe.err)(this.error)}mapErr(e){return(0,Qe.err)(e(this.error))}};Qe.Err=su});var xt=H(tg=>{"use strict";Object.defineProperty(tg,"__esModule",{value:!0})});var br=H($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$t();var re=Ot();xt();var JO=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],zO=["sun","mon","tue","wed","thu","fri","sat"],ZO=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Us=(t,e,r)=>{if(e==="months"&&r.useAliases&&JO.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&zO.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)},XO=(t,e,r)=>{if(t==="*")return ZO(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Us(n,e,r)}return Us(t,e,r)},rg=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Us(t,e,r),ex=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return XO(n[0],e,r);if(n.length===2){let i=rg(n[0],e,r,0),s=rg(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)")},tx=(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=ex(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)},rx=(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(tx(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)};$l.default=rx});var ng=H(Ls=>{"use strict";var nx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var ix=Ot(),sx=nx(br());xt();var ox=(t,e)=>{if(!t.seconds)return(0,ix.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,sx.default)(r,"seconds",e)};Ls.default=ox});var ig=H(Ms=>{"use strict";var ax=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var ux=Ot(),cx=ax(br());xt();var lx=(t,e)=>{if(!t.minutes)return(0,ux.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,cx.default)(r,"minutes",e)};Ms.default=lx});var sg=H(ks=>{"use strict";var dx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var px=Ot(),fx=dx(br());xt();var mx=(t,e)=>{if(!t.hours)return(0,px.err)(["hours field is undefined."]);let{hours:r}=t;return(0,fx.default)(r,"hours",e)};ks.default=mx});var og=H(Bs=>{"use strict";var hx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=Ot(),gx=hx(br());xt();var yx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,gx.default)(r,"daysOfMonth",e)};Bs.default=yx});var ag=H(Gs=>{"use strict";var Ex=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var Tx=Ot(),Ax=Ex(br());xt();var _x=(t,e)=>{if(!t.months)return(0,Tx.err)(["months field is undefined."]);let{months:r}=t;return(0,Ax.default)(r,"months",e)};Gs.default=_x});var ug=H(Vs=>{"use strict";var Sx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=Ot(),Ix=Sx(br());xt();var Ox=(t,e)=>{if(!t.daysOfWeek)return(0,$s.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$s.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$s.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Ix.default)(r,"daysOfWeek",e)};Vs.default=Ox});var cg=H(qs=>{"use strict";var xx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var Rx=Ot(),wx=xx(br());xt();var bx=(t,e)=>{if(!t.years)return(0,Rx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,wx.default)(r,"years",e)};qs.default=bx});var fg=H((sW,pg)=>{"use strict";var Vl;try{Vl=Map}catch{}var ql;try{ql=Set}catch{}function lg(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(dg);if(Vl&&t instanceof Vl)return new Map(Array.from(t.entries()));if(ql&&t instanceof ql)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]:lg(t[i],e,r)}return n}return t}function dg(t){return lg(t,[],[])}pg.exports=dg});var Ws=H(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Wl.default=Lx;var Dx=Object.prototype.toString,Cx=Error.prototype.toString,vx=RegExp.prototype.toString,Nx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Px=/^Symbol\((.*)\)(.*)$/;function Ux(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function mg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Ux(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Nx.call(t).replace(Px,"Symbol($1)");let n=Dx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Cx.call(t)+"]":n==="RegExp"?vx.call(t):null}function Lx(t,e){let r=mg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=mg(this[n],e);return s!==null?s:i},2)}});var Zt=H(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.default=De.array=De.object=De.boolean=De.date=De.number=De.string=De.mixed=void 0;var hg=Mx(Ws());function Mx(t){return t&&t.__esModule?t:{default:t}}var gg={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,hg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,hg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};De.mixed=gg;var yg={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};De.string=yg;var Eg={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};De.number=Eg;var Tg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};De.date=Tg;var Ag={isValue:"${path} field must be ${value}"};De.boolean=Ag;var _g={noUnknown:"${path} field has unspecified keys: ${unknown}"};De.object=_g;var Sg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};De.array=Sg;var kx=Object.assign(Object.create(null),{mixed:gg,string:yg,number:Eg,date:Tg,object:_g,array:Sg,boolean:Ag});De.default=kx});var bi=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Fx=t=>t&&t.__isYupSchema__;ou.default=Fx});var Og=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Bx=Ig(require("lodash/has")),Gx=Ig(bi());function Ig(t){return t&&t.__esModule?t:{default:t}}var Ql=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Bx.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,Gx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},$x=Ql;au.default=$x});var Hl=H(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});jl.default=Vx;function Vx(t){return t==null?[]:[].concat(t)}});var wn=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var qx=xg(Ws()),Wx=xg(Hl());function xg(t){return t&&t.__esModule?t:{default:t}}function Yl(){return Yl=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},Yl.apply(this,arguments)}var Qx=/\$\{\s*(\w+)\s*\}/g,Kl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Yl({},r,{path:n})),typeof e=="string"?e.replace(Qx,(i,s)=>(0,qx.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,Wx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};uu.default=Kl});var cu=H(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=Yx;var Jl=jx(wn());function jx(t){return t&&t.__esModule?t:{default:t}}var Hx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Yx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Hx(e),l=n.length,p=[];if(o=o||[],!l)return o.length?c(new Jl.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(!Jl.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 Jl.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((fW,Cg)=>{"use strict";function bn(t){this._maxSize=t,this.clear()}bn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};bn.prototype.get=function(t){return this._values[t]};bn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Kx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Dg=/^\d+$/,Jx=/^\d/,zx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Zx=/^\s*(['"]?)(.*?)(\1)\s*$/,ed=512,Rg=new bn(ed),wg=new bn(ed),bg=new bn(ed);Cg.exports={Cache:bn,split:Xl,normalizePath:Zl,setter:function(t){var e=Zl(t);return wg.get(t)||wg.set(t,function(n,i){for(var s=0,o=e.length,a=n;s<o-1;){var u=e[s];if(u==="__proto__"||u==="constructor"||u==="prototype")return n;a=a[e[s++]]}a[e[s]]=i})},getter:function(t,e){var r=Zl(t);return bg.get(t)||bg.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+(td(r)||Dg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Xx(Array.isArray(t)?t:Xl(t),e,r)}};function Zl(t){return Rg.get(t)||Rg.set(t,Xl(t).map(function(e){return e.replace(Zx,"$2")}))}function Xl(t){return t.match(Kx)||[""]}function Xx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(rR(i)&&(i='"'+i+'"'),a=td(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function td(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function eR(t){return t.match(Jx)&&!t.match(Dg)}function tR(t){return zx.test(t)}function rR(t){return!td(t)&&(eR(t)||tR(t))}});var Dn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=iR;Hs.default=void 0;var nR=Qs(),lu={context:"$",value:"."};function iR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===lu.context,this.isValue=this.key[0]===lu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?lu.context:this.isValue?lu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,nR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var vg=H(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=uR;var sR=rd(require("lodash/mapValues")),du=rd(wn()),oR=rd(Dn());function rd(t){return t&&t.__esModule?t:{default:t}}function pu(){return pu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},pu.apply(this,arguments)}function aR(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 uR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=aR(r,["value","path","label","options","originalValue","sync"]),{name:p,test:m,params:d,message:f}=t,{parent:g,context:E}=a;function y(I){return oR.default.isRef(I)?I.getValue(i,g,E):I}function S(I={}){let x=(0,sR.default)(pu({value:i,originalValue:u,label:o,path:I.path||s},d,I.params),y),w=new du.default(du.default.formatError(I.message||f,x),i,x.path,I.type||p);return w.params=x,w}let _=pu({path:s,parent:g,type:p,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(_,i,_)).then(I=>{du.default.isError(I)?n(I):I?n(null,I):n(S())})}catch(I){n(I)}return}let M;try{var T;if(M=m.call(_,i,_),typeof((T=M)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}du.default.isError(M)?n(M):M?n(null,M):n(S())}return e.OPTIONS=t,e}});var id=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=Ng;Ys.default=void 0;var cR=Qs(),lR=t=>t.substr(0,t.length-1).substr(1);function Ng(t,e,r,n=r){let i,s,o;return e?((0,cR.forEach)(e,(a,u,c)=>{let l=u?lR(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 dR=(t,e,r,n)=>Ng(t,e,r,n).schema,pR=dR;Ys.default=pR});var Ug=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var Pg=fR(Dn());function fR(t){return t&&t.__esModule?t:{default:t}}var sd=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){Pg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Pg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};fu.default=sd});var er=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var Lg=Xt(fg()),Di=Zt(),mR=Xt(Og()),Mg=Xt(cu()),mu=Xt(vg()),kg=Xt(Ws()),hR=Xt(Dn()),gR=id(),yR=Xt(Hl()),Fg=Xt(wn()),Bg=Xt(Ug());function Xt(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Bg.default,this._blacklist=new Bg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Di.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ft({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=ft({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Lg.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,kg.default)(e),o=(0,kg.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 AO=Object.create;var Fa=Object.defineProperty;var _O=Object.getOwnPropertyDescriptor;var SO=Object.getOwnPropertyNames;var OO=Object.getPrototypeOf,IO=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)Fa(t,r,{get:e[r],enumerable:!0})},Rh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of SO(e))!IO.call(t,i)&&i!==r&&Fa(t,i,{get:()=>e[i],enumerable:!(n=_O(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?AO(OO(t)):{},Rh(e||!t||!t.__esModule?Fa(r,"default",{value:t,enumerable:!0}):r,t)),xO=t=>Rh(Fa({},"__esModule",{value:!0}),t);var zh=H((Ml,kl)=>{"use strict";(function(t,e){typeof Ml=="object"&&typeof kl<"u"?kl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Ml,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",m="date",p="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function($){var F=["th","st","nd","rd"],C=$%100;return"["+$+(F[(C-20)%10]||F[C]||F[0])+"]"}},y=function($,F,C){var W=String($);return!W||W.length>=F?$:""+Array(F+1-W.length).join(C)+$},S={s:y,z:function($){var F=-$.utcOffset(),C=Math.abs(F),W=Math.floor(C/60),L=C%60;return(F<=0?"+":"-")+y(W,2,"0")+":"+y(L,2,"0")},m:function $(F,C){if(F.date()<C.date())return-$(C,F);var W=12*(C.year()-F.year())+(C.month()-F.month()),L=F.clone().add(W,c),K=C-L<0,V=F.clone().add(W+(K?-1:1),c);return+(-(W+(C-L)/(K?L-V:V-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},_="en",M={};M[_]=E;var T="$isDayjsObject",O=function($){return $ instanceof le||!(!$||!$[T])},x=function $(F,C,W){var L;if(!F)return _;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),C&&(M[K]=C,L=K);var V=F.split("-");if(!L&&V.length>1)return $(V[0])}else{var se=F.name;M[se]=F,L=se}return!W&&L&&(_=L),L||!W&&_},w=function($,F){if(O($))return $.clone();var C=typeof F=="object"?F:{};return C.date=$,C.args=arguments,new le(C)},B=S;B.l=x,B.i=O,B.w=function($,F){return w($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var le=function(){function $(C){this.$L=x(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(C){this.$d=function(W){var L=W.date,K=W.utc;if(L===null)return new Date(NaN);if(B.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var V=L.match(f);if(V){var se=V[2]-1||0,Ie=(V[7]||"0").substring(0,3);return K?new Date(Date.UTC(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Ie)):new Date(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Ie)}}return new Date(L)}(C),this.init()},F.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(C,W){var L=w(C);return this.startOf(W)<=L&&L<=this.endOf(W)},F.isAfter=function(C,W){return w(C)<this.startOf(W)},F.isBefore=function(C,W){return this.endOf(W)<w(C)},F.$g=function(C,W,L){return B.u(C)?this[W]:this.set(L,C)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(C,W){var L=this,K=!!B.u(W)||W,V=B.p(C),se=function(un,qe){var Ar=B.w(L.$u?Date.UTC(L.$y,qe,un):new Date(L.$y,qe,un),L);return K?Ar:Ar.endOf(a)},Ie=function(un,qe){return B.w(L.toDate()[un].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(qe)),L)},q=this.$W,Le=this.$M,lt=this.$D,gi="set"+(this.$u?"UTC":"");switch(V){case d:return K?se(1,0):se(31,11);case c:return K?se(1,Le):se(0,Le+1);case u:var an=this.$locale().weekStart||0,Is=(q<an?q+7:q)-an;return se(K?lt-Is:lt+(6-Is),Le);case a:case m:return Ie(gi+"Hours",0);case o:return Ie(gi+"Minutes",1);case s:return Ie(gi+"Seconds",2);case i:return Ie(gi+"Milliseconds",3);default:return this.clone()}},F.endOf=function(C){return this.startOf(C,!1)},F.$set=function(C,W){var L,K=B.p(C),V="set"+(this.$u?"UTC":""),se=(L={},L[a]=V+"Date",L[m]=V+"Date",L[c]=V+"Month",L[d]=V+"FullYear",L[o]=V+"Hours",L[s]=V+"Minutes",L[i]=V+"Seconds",L[n]=V+"Milliseconds",L)[K],Ie=K===a?this.$D+(W-this.$W):W;if(K===c||K===d){var q=this.clone().set(m,1);q.$d[se](Ie),q.init(),this.$d=q.set(m,Math.min(this.$D,q.daysInMonth())).$d}else se&&this.$d[se](Ie);return this.init(),this},F.set=function(C,W){return this.clone().$set(C,W)},F.get=function(C){return this[B.p(C)]()},F.add=function(C,W){var L,K=this;C=Number(C);var V=B.p(W),se=function(Le){var lt=w(K);return B.w(lt.date(lt.date()+Math.round(Le*C)),K)};if(V===c)return this.set(c,this.$M+C);if(V===d)return this.set(d,this.$y+C);if(V===a)return se(1);if(V===u)return se(7);var Ie=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,q=this.$d.getTime()+C*Ie;return B.w(q,this)},F.subtract=function(C,W){return this.add(-1*C,W)},F.format=function(C){var W=this,L=this.$locale();if(!this.isValid())return L.invalidDate||p;var K=C||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Ie=this.$m,q=this.$M,Le=L.weekdays,lt=L.months,gi=L.meridiem,an=function(qe,Ar,xs,ka){return qe&&(qe[Ar]||qe(W,K))||xs[Ar].slice(0,ka)},Is=function(qe){return B.s(se%12||12,qe,"0")},un=gi||function(qe,Ar,xs){var ka=qe<12?"AM":"PM";return xs?ka.toLowerCase():ka};return K.replace(g,function(qe,Ar){return Ar||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return B.s(W.$y,4,"0");case"M":return q+1;case"MM":return B.s(q+1,2,"0");case"MMM":return an(L.monthsShort,q,lt,3);case"MMMM":return an(lt,q);case"D":return W.$D;case"DD":return B.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return an(L.weekdaysMin,W.$W,Le,2);case"ddd":return an(L.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return un(se,Ie,!0);case"A":return un(se,Ie,!1);case"m":return String(Ie);case"mm":return B.s(Ie,2,"0");case"s":return String(W.$s);case"ss":return B.s(W.$s,2,"0");case"SSS":return B.s(W.$ms,3,"0");case"Z":return V}return null}(qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(C,W,L){var K,V=this,se=B.p(W),Ie=w(C),q=(Ie.utcOffset()-this.utcOffset())*e,Le=this-Ie,lt=function(){return B.m(V,Ie)};switch(se){case d:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-q)/6048e5;break;case a:K=(Le-q)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(C,W){if(!C)return this.$L;var L=this.clone(),K=x(C,W,!0);return K&&(L.$L=K),L},F.clone=function(){return B.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},$}(),on=le.prototype;return w.prototype=on,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){on[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),w.extend=function($,F){return $.$i||($(F,le,w),$.$i=!0),w},w.locale=x,w.isDayjs=O,w.unix=function($){return w(1e3*$)},w.en=M[_],w.Ls=M,w.p={},w})});var It=H(Qe=>{"use strict";Object.defineProperty(Qe,"__esModule",{value:!0});Qe.Err=Qe.Valid=Qe.err=Qe.valid=void 0;var JI=t=>new iu(t);Qe.valid=JI;var zI=t=>new su(t);Qe.err=zI;var iu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Qe.valid)(e(this.value))}mapErr(e){return(0,Qe.valid)(this.value)}};Qe.Valid=iu;var su=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Qe.err)(this.error)}mapErr(e){return(0,Qe.err)(e(this.error))}};Qe.Err=su});var xt=H(tg=>{"use strict";Object.defineProperty(tg,"__esModule",{value:!0})});var br=H($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$t();var re=It();xt();var ZI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],XI=["sun","mon","tue","wed","thu","fri","sat"],ex=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Us=(t,e,r)=>{if(e==="months"&&r.useAliases&&ZI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&XI.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)},tx=(t,e,r)=>{if(t==="*")return ex(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Us(n,e,r)}return Us(t,e,r)},rg=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Us(t,e,r),rx=(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 tx(n[0],e,r);if(n.length===2){let i=rg(n[0],e,r,0),s=rg(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)")},nx=(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=rx(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)},ix=(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(nx(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)};$l.default=ix});var ng=H(Ls=>{"use strict";var sx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var ox=It(),ax=sx(br());xt();var ux=(t,e)=>{if(!t.seconds)return(0,ox.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,ax.default)(r,"seconds",e)};Ls.default=ux});var ig=H(Ms=>{"use strict";var cx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var lx=It(),dx=cx(br());xt();var px=(t,e)=>{if(!t.minutes)return(0,lx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,dx.default)(r,"minutes",e)};Ms.default=px});var sg=H(ks=>{"use strict";var fx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var mx=It(),hx=fx(br());xt();var gx=(t,e)=>{if(!t.hours)return(0,mx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,hx.default)(r,"hours",e)};ks.default=gx});var og=H(Bs=>{"use strict";var yx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=It(),Ex=yx(br());xt();var Tx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Ex.default)(r,"daysOfMonth",e)};Bs.default=Tx});var ag=H(Gs=>{"use strict";var Ax=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var _x=It(),Sx=Ax(br());xt();var Ox=(t,e)=>{if(!t.months)return(0,_x.err)(["months field is undefined."]);let{months:r}=t;return(0,Sx.default)(r,"months",e)};Gs.default=Ox});var ug=H(Vs=>{"use strict";var Ix=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=It(),xx=Ix(br());xt();var Rx=(t,e)=>{if(!t.daysOfWeek)return(0,$s.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$s.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$s.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,xx.default)(r,"daysOfWeek",e)};Vs.default=Rx});var cg=H(qs=>{"use strict";var wx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var bx=It(),Dx=wx(br());xt();var Cx=(t,e)=>{if(!t.years)return(0,bx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Dx.default)(r,"years",e)};qs.default=Cx});var fg=H((lW,pg)=>{"use strict";var Vl;try{Vl=Map}catch{}var ql;try{ql=Set}catch{}function lg(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(dg);if(Vl&&t instanceof Vl)return new Map(Array.from(t.entries()));if(ql&&t instanceof ql)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]:lg(t[i],e,r)}return n}return t}function dg(t){return lg(t,[],[])}pg.exports=dg});var Ws=H(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Wl.default=kx;var vx=Object.prototype.toString,Nx=Error.prototype.toString,Px=RegExp.prototype.toString,Ux=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Lx=/^Symbol\((.*)\)(.*)$/;function Mx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function mg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Mx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Ux.call(t).replace(Lx,"Symbol($1)");let n=vx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Nx.call(t)+"]":n==="RegExp"?Px.call(t):null}function kx(t,e){let r=mg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=mg(this[n],e);return s!==null?s:i},2)}});var Zt=H(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.default=De.array=De.object=De.boolean=De.date=De.number=De.string=De.mixed=void 0;var hg=Fx(Ws());function Fx(t){return t&&t.__esModule?t:{default:t}}var gg={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,hg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,hg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};De.mixed=gg;var yg={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};De.string=yg;var Eg={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};De.number=Eg;var Tg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};De.date=Tg;var Ag={isValue:"${path} field must be ${value}"};De.boolean=Ag;var _g={noUnknown:"${path} field has unspecified keys: ${unknown}"};De.object=_g;var Sg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};De.array=Sg;var Bx=Object.assign(Object.create(null),{mixed:gg,string:yg,number:Eg,date:Tg,object:_g,array:Sg,boolean:Ag});De.default=Bx});var Di=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Gx=t=>t&&t.__isYupSchema__;ou.default=Gx});var Ig=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var $x=Og(require("lodash/has")),Vx=Og(Di());function Og(t){return t&&t.__esModule?t:{default:t}}var Ql=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,$x.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,Vx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},qx=Ql;au.default=qx});var Hl=H(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});jl.default=Wx;function Wx(t){return t==null?[]:[].concat(t)}});var wn=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var Qx=xg(Ws()),jx=xg(Hl());function xg(t){return t&&t.__esModule?t:{default:t}}function Yl(){return Yl=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},Yl.apply(this,arguments)}var Hx=/\$\{\s*(\w+)\s*\}/g,Kl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Yl({},r,{path:n})),typeof e=="string"?e.replace(Hx,(i,s)=>(0,Qx.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,jx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};uu.default=Kl});var cu=H(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=Jx;var Jl=Yx(wn());function Yx(t){return t&&t.__esModule?t:{default:t}}var Kx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Jx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Kx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Jl.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let p=n[m];p(i,function(g){if(g){if(!Jl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new Jl.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((EW,Cg)=>{"use strict";function bn(t){this._maxSize=t,this.clear()}bn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};bn.prototype.get=function(t){return this._values[t]};bn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var zx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Dg=/^\d+$/,Zx=/^\d/,Xx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,eR=/^\s*(['"]?)(.*?)(\1)\s*$/,ed=512,Rg=new bn(ed),wg=new bn(ed),bg=new bn(ed);Cg.exports={Cache:bn,split:Xl,normalizePath:Zl,setter:function(t){var e=Zl(t);return wg.get(t)||wg.set(t,function(n,i){for(var s=0,o=e.length,a=n;s<o-1;){var u=e[s];if(u==="__proto__"||u==="constructor"||u==="prototype")return n;a=a[e[s++]]}a[e[s]]=i})},getter:function(t,e){var r=Zl(t);return bg.get(t)||bg.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+(td(r)||Dg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){tR(Array.isArray(t)?t:Xl(t),e,r)}};function Zl(t){return Rg.get(t)||Rg.set(t,Xl(t).map(function(e){return e.replace(eR,"$2")}))}function Xl(t){return t.match(zx)||[""]}function tR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(iR(i)&&(i='"'+i+'"'),a=td(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function td(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function rR(t){return t.match(Zx)&&!t.match(Dg)}function nR(t){return Xx.test(t)}function iR(t){return!td(t)&&(rR(t)||nR(t))}});var Dn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=oR;Hs.default=void 0;var sR=Qs(),lu={context:"$",value:"."};function oR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===lu.context,this.isValue=this.key[0]===lu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?lu.context:this.isValue?lu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,sR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var vg=H(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=lR;var aR=rd(require("lodash/mapValues")),du=rd(wn()),uR=rd(Dn());function rd(t){return t&&t.__esModule?t:{default:t}}function pu(){return pu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},pu.apply(this,arguments)}function cR(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 lR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=cR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(O){return uR.default.isRef(O)?O.getValue(i,g,E):O}function S(O={}){let x=(0,aR.default)(pu({value:i,originalValue:u,label:o,path:O.path||s},p,O.params),y),w=new du.default(du.default.formatError(O.message||f,x),i,x.path,O.type||d);return w.params=x,w}let _=pu({path:s,parent:g,type:d,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(_,i,_)).then(O=>{du.default.isError(O)?n(O):O?n(null,O):n(S())})}catch(O){n(O)}return}let M;try{var T;if(M=m.call(_,i,_),typeof((T=M)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${_.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(O){n(O);return}du.default.isError(M)?n(M):M?n(null,M):n(S())}return e.OPTIONS=t,e}});var id=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=Ng;Ys.default=void 0;var dR=Qs(),pR=t=>t.substr(0,t.length-1).substr(1);function Ng(t,e,r,n=r){let i,s,o;return e?((0,dR.forEach)(e,(a,u,c)=>{let l=u?pR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var fR=(t,e,r,n)=>Ng(t,e,r,n).schema,mR=fR;Ys.default=mR});var Ug=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var Pg=hR(Dn());function hR(t){return t&&t.__esModule?t:{default:t}}var sd=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){Pg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Pg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};fu.default=sd});var er=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var Lg=Xt(fg()),Ci=Zt(),gR=Xt(Ig()),Mg=Xt(cu()),mu=Xt(vg()),kg=Xt(Ws()),yR=Xt(Dn()),ER=id(),TR=Xt(Hl()),Fg=Xt(wn()),Bg=Xt(Ug());function Xt(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Bg.default,this._blacklist=new Bg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ci.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,Lg.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,kg.default)(e),o=(0,kg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
2
2
|
|
|
3
3
|
attempted value: ${s}
|
|
4
|
-
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let 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,Mg.default)({args:p,value:l,path:s,sync:i,tests:m,endEarly:c},d=>{if(d)return void n(d,l);(0,Mg.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(Fg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Fg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Lg.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Di.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Di.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Di.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,mu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,yR.default)(e).map(s=>new hR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new mR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,mu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Di.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,mu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Di.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,mu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};hu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,gR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var $g=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Gg;Ks.default=void 0;var ER=TR(er());function TR(t){return t&&t.__esModule?t:{default:t}}var od=ER.default,AR=od;Ks.default=AR;function Gg(){return new od}Gg.prototype=od.prototype});var Ci=H(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var _R=t=>t==null;gu.default=_R});var jg=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Qg;zs.default=void 0;var SR=Wg(er()),Vg=Zt(),qg=Wg(Ci());function Wg(t){return t&&t.__esModule?t:{default:t}}function Qg(){return new Js}var Js=class extends SR.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=Vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,qg.default)(r)||r===!0}})}isFalse(e=Vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,qg.default)(r)||r===!1}})}};zs.default=Js;Qg.prototype=Js.prototype});var Kg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Yg;Xs.default=void 0;var Vt=Zt(),tr=Hg(Ci()),IR=Hg(er());function Hg(t){return t&&t.__esModule?t:{default:t}}var OR=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,xR=/^((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,RR=/^(?:[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,wR=t=>(0,tr.default)(t)||t===t.trim(),bR={}.toString();function Yg(){return new Zs}var Zs=class extends IR.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===bR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Vt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,tr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Vt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,tr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Vt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,tr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Vt.string.matches,params:{regex:e},test:o=>(0,tr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(OR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(xR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(RR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Vt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:wR})}lowercase(e=Vt.string.lowercase){return this.transform(r=>(0,tr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toLowerCase()})}uppercase(e=Vt.string.uppercase){return this.transform(r=>(0,tr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;Yg.prototype=Zs.prototype});var Zg=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=zg;to.default=void 0;var Cn=Zt(),vn=Jg(Ci()),DR=Jg(er());function Jg(t){return t&&t.__esModule?t:{default:t}}var CR=t=>t!=+t;function zg(){return new eo}var eo=class extends DR.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"&&!CR(e)}min(e,r=Cn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,vn.default)(n)||n>=this.resolve(e)}})}max(e,r=Cn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,vn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Cn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,vn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Cn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,vn.default)(n)||n>this.resolve(e)}})}positive(e=Cn.number.positive){return this.moreThan(0,e)}negative(e=Cn.number.negative){return this.lessThan(0,e)}integer(e=Cn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,vn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,vn.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,vn.default)(i)?i:Math[e](i))}};to.default=eo;zg.prototype=eo.prototype});var Xg=H(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=NR;var vR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function NR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=vR.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}});var ry=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=cd;ro.default=void 0;var PR=yu(Xg()),ey=Zt(),ty=yu(Ci()),UR=yu(Dn()),LR=yu(er());function yu(t){return t&&t.__esModule?t:{default:t}}var ud=new Date(""),MR=t=>Object.prototype.toString.call(t)==="[object Date]";function cd(){return new vi}var vi=class extends LR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,PR.default)(e),isNaN(e)?ud:new Date(e))})})}_typeCheck(e){return MR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(UR.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=ey.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,ty.default)(i)||i>=this.resolve(n)}})}max(e,r=ey.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,ty.default)(i)||i<=this.resolve(n)}})}};ro.default=vi;vi.INVALID_DATE=ud;cd.prototype=vi.prototype;cd.INVALID_DATE=ud});var iy=H((RW,ld)=>{"use strict";ld.exports=function(t){return ny(kR(t),t)};ld.exports.array=ny;function ny(t,e){var r=t.length,n=new Array(r),i={},s=r,o=FR(e),a=BR(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 kR(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 FR(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 BR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var sy=H(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=QR;var GR=Eu(require("lodash/has")),$R=Eu(iy()),VR=Qs(),qR=Eu(Dn()),WR=Eu(bi());function Eu(t){return t&&t.__esModule?t:{default:t}}function QR(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,VR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,GR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),qR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,WR.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return $R.default.array(n,r).reverse()}});var ay=H(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=jR;function oy(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 jR(t){return(e,r)=>oy(t,e)-oy(t,r)}});var my=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=fy;io.default=void 0;var uy=qt(require("lodash/has")),cy=qt(require("lodash/snakeCase")),HR=qt(require("lodash/camelCase")),YR=qt(require("lodash/mapKeys")),KR=qt(require("lodash/mapValues")),JR=Qs(),ly=Zt(),zR=qt(sy()),py=qt(ay()),ZR=qt(cu()),XR=qt(wn()),fd=qt(er());function qt(t){return t&&t.__esModule?t:{default:t}}function Ni(){return Ni=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ni.apply(this,arguments)}var dy=t=>Object.prototype.toString.call(t)==="[object Object]";function ew(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var tw=(0,py.default)([]),no=class extends fd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=tw,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 dy(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(p=>this._nodes.indexOf(p)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let p of a){let m=s[p],d=(0,uy.default)(i,p);if(m){let f,g=i[p];c.path=(r.path?`${r.path}.`:"")+p,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||p in i;continue}f=!r.__validating||!y?m.cast(i[p],c):i[p],f!==void 0&&(u[p]=f)}else d&&!o&&(u[p]=i[p]);u[p]!==i[p]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,p)=>{if(l){if(!XR.default.isError(l)||u)return void n(l,p);i.push(l)}if(!c||!dy(p)){n(i[0]||null,p);return}a=a||p;let m=this._nodes.map(d=>(f,g)=>{let E=d.indexOf(".")===-1?(r.path?`${r.path}.`:"")+d:`${r.path||""}["${d}"]`,y=this.fields[d];if(y&&"validate"in y){y.validate(p[d],Ni({},r,{path:E,from:o,strict:!0,parent:p,originalValue:a[d]}),g);return}g(null)});(0,ZR.default)({sync:s,tests:m,value:p,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ni({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof fd.default&&s instanceof fd.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,py.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,zR.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,JR.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,uy.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=ly.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=ew(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=ly.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,YR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(HR.default)}snakeCase(){return this.transformKeys(cy.default)}constantCase(){return this.transformKeys(e=>(0,cy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,KR.default)(this.fields,r=>r.describe()),e}};io.default=no;function fy(t){return new no(t)}fy.prototype=no.prototype});var gy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=hy;oo.default=void 0;var md=Pi(Ci()),rw=Pi(bi()),nw=Pi(Ws()),hd=Zt(),iw=Pi(cu()),sw=Pi(wn()),ow=Pi(er());function Pi(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Tu.apply(this,arguments)}function hy(t){return new so(t)}var so=class extends ow.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Tu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,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(!sw.default.isError(d)||l)return void n(d,f);o.push(d)}if(!p||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],S=`${r.path||""}[${E}]`,_=Tu({},r,{path:S,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,_,T)}(0,iw.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,rw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,nw.default)(e));return r.innerType=e,r}length(e,r=hd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,md.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||hd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,md.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||hd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,md.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};oo.default=so;hy.prototype=so.prototype});var yy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=cw;ao.default=void 0;var aw=uw(bi());function uw(t){return t&&t.__esModule?t:{default:t}}function cw(t){return new Au(t)}var Au=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,aw.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)}},lw=Au;ao.default=lw});var Ey=H(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.default=fw;var dw=pw(Zt());function pw(t){return t&&t.__esModule?t:{default:t}}function fw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{dw.default[e][r]=t[e][r]})})}});var Ed=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Aw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return yd.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return yd.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return yd.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return _y.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Sy.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Sy.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return mw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return hw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return gw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return yw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return Ew.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return Tw.default}});var Ty=Nn($g()),yd=Nn(jg()),Ay=Nn(Kg()),_y=Nn(Zg()),Sy=Nn(ry()),Iy=Nn(my()),Oy=Nn(gy()),mw=Dn(),hw=yy(),gw=uo(wn()),yw=uo(id()),xy=uo(bi()),Ew=uo(Ey()),Tw=uo(er());function uo(t){return t&&t.__esModule?t:{default:t}}function Ry(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Ry=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=Ry();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 Aw(t,e,r){if(!t||!(0,xy.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 wy=H(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});var Td=_d();Ad.default=()=>{(0,Td.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,Td.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,Td.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 _d=H(Ce=>{"use strict";var _w=Ce&&Ce.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Sw=Ce&&Ce.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Iw=Ce&&Ce.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&_w(e,t,r);return Sw(e,t),e},Ow=Ce&&Ce.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.validateOptions=Ce.registerOptionPreset=Ce.getOptionPresets=Ce.getOptionPreset=void 0;var R=Iw(Ed());Ed();var co=Ot(),xw=Ow(wy());xt();var Pn={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},by=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),Rw=t=>Pn[t]?(0,co.valid)(Pn[t]):(0,co.err)(`Option preset '${t}' not found.`);Ce.getOptionPreset=Rw;var ww=()=>Pn;Ce.getOptionPresets=ww;var bw=(t,e)=>{Pn[t]=by.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Ce.registerOptionPreset=bw;var Dw=t=>{var e,r,n,i,s,o,a,u,c,l,p,m,d,f,g,E,y,S,_,M;try{(0,xw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Pn[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Pn[t.preset]}else T=t.preset;else T=Pn.default;let I=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(p=T.hours.lowerLimit)!==null&&p!==void 0?p:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(d=T.daysOfMonth.lowerLimit)!==null&&d!==void 0?d:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(_=T.years.lowerLimit)!==null&&_!==void 0?_:T.years.minValue,upperLimit:(M=T.years.upperLimit)!==null&&M!==void 0?M:T.years.maxValue}}),t.override),w=R.object({presetId:R.string().required(),preset:by.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(T){return(0,co.err)(T.errors)}};Ce.validateOptions=Dw});var $t=H((lo,Id)=>{"use strict";var Ln=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Un=Ot(),Cw=Ln(ng()),vw=Ln(ig()),Nw=Ln(sg()),Pw=Ln(og()),Uw=Ln(ag()),Lw=Ln(ug()),Mw=Ln(cg()),kw=_d();xt();var Fw=(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)},Sd=(t,e={})=>{let r=(0,kw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Fw(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,Cw.default)(s,n)),o.push((0,vw.default)(s,n)),o.push((0,Nw.default)(s,n)),o.push((0,Pw.default)(s,n)),o.push((0,Uw.default)(s,n)),o.push((0,Lw.default)(s,n)),n.useYears&&o.push((0,Mw.default)(s,n)),o.every(u=>u.isValid()))return(0,Un.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Un.err)(a)};lo.default=Sd;Id.exports=Sd;Id.exports.default=Sd});var ZE=H(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var nr=class extends Error{},Nd=class extends nr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Pd=class extends nr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Ud=class extends nr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Fn=class extends nr{},wu=class extends nr{constructor(e){super(`Invalid unit ${e}`)}},je=class extends nr{},Wt=class extends nr{constructor(){super("Zone is an abstract class")}},b="numeric",Dt="short",rt="long",bu={year:b,month:b,day:b},eE={year:b,month:Dt,day:b},Bw={year:b,month:Dt,day:b,weekday:Dt},tE={year:b,month:rt,day:b},rE={year:b,month:rt,day:b,weekday:rt},nE={hour:b,minute:b},iE={hour:b,minute:b,second:b},sE={hour:b,minute:b,second:b,timeZoneName:Dt},oE={hour:b,minute:b,second:b,timeZoneName:rt},aE={hour:b,minute:b,hourCycle:"h23"},uE={hour:b,minute:b,second:b,hourCycle:"h23"},cE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Dt},lE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:rt},dE={year:b,month:b,day:b,hour:b,minute:b},pE={year:b,month:b,day:b,hour:b,minute:b,second:b},fE={year:b,month:Dt,day:b,hour:b,minute:b},mE={year:b,month:Dt,day:b,hour:b,minute:b,second:b},Gw={year:b,month:Dt,day:b,weekday:Dt,hour:b,minute:b},hE={year:b,month:rt,day:b,hour:b,minute:b,timeZoneName:Dt},gE={year:b,month:rt,day:b,hour:b,minute:b,second:b,timeZoneName:Dt},yE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,timeZoneName:rt},EE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,second:b,timeZoneName:rt},Nr=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,r){throw new Wt}formatOffset(e,r){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},Od=null,Eo=class t extends Nr{static get instance(){return Od===null&&(Od=new t),Od}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return AE(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},xu={};function $w(t){return xu[t]||(xu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),xu[t]}var Vw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function qw(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 Ww(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Vw[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var _u={},ir=class t extends Nr{static create(e){return _u[e]||(_u[e]=new t(e)),_u[e]}static resetCache(){_u={},xu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return AE(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=$w(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Ww(n,r):qw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=jd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),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}},Dy={};function Qw(t,e={}){let r=JSON.stringify([t,e]),n=Dy[r];return n||(n=new Intl.ListFormat(t,e),Dy[r]=n),n}var Ld={};function Md(t,e={}){let r=JSON.stringify([t,e]),n=Ld[r];return n||(n=new Intl.DateTimeFormat(t,e),Ld[r]=n),n}var kd={};function jw(t,e={}){let r=JSON.stringify([t,e]),n=kd[r];return n||(n=new Intl.NumberFormat(t,e),kd[r]=n),n}var Fd={};function Hw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Fd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Fd[i]=s),s}var ho=null;function Yw(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function Kw(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=Md(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Md(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Jw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function zw(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Zw(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Xw(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 Bd=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=jw(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):Qd(e,3);return Re(r,this.padTo)}}},Gd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ir.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Md(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},$d=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&TE()&&(this.rtf=Hw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):hb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||ge.defaultLocale,o=s||(i?"en-US":Yw()),a=r||ge.defaultNumberingSystem,u=n||ge.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Ld={},kd={},Fd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Kw(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Jw(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=Xw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Su(this,e,n,IE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=zw(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,RE,()=>{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]=Zw(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>wE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Su(this,e,r,bE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Bd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Gd(e,this.intl,r)}relFormatter(e={}){return new $d(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Qw(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}},xd=null,nt=class t extends Nr{static get utcInstance(){return xd===null&&(xd=new t(0)),xd}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Uu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Du=class extends Nr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function vr(t,e){if(ne(t)||t===null)return e;if(t instanceof Nr)return t;if(eb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||ir.create(t)}else return Gn(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Du(t)}var Cy=()=>Date.now(),vy="system",Ny=null,Py=null,Uy=null,Ly=60,My,ge=class{static get now(){return Cy}static set now(e){Cy=e}static set defaultZone(e){vy=e}static get defaultZone(){return vr(vy,Eo.instance)}static get defaultLocale(){return Ny}static set defaultLocale(e){Ny=e}static get defaultNumberingSystem(){return Py}static set defaultNumberingSystem(e){Py=e}static get defaultOutputCalendar(){return Uy}static set defaultOutputCalendar(e){Uy=e}static get twoDigitCutoffYear(){return Ly}static set twoDigitCutoffYear(e){Ly=e%100}static get throwOnInvalid(){return My}static set throwOnInvalid(e){My=e}static resetCaches(){Ae.resetCache(),ir.resetCache()}};function ne(t){return typeof t>"u"}function Gn(t){return typeof t=="number"}function Pu(t){return typeof t=="number"&&t%1===0}function eb(t){return typeof t=="string"}function tb(t){return Object.prototype.toString.call(t)==="[object Date]"}function TE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function rb(t){return Array.isArray(t)?t:[t]}function ky(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 nb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function rr(t,e,r){return Pu(t)&&t>=e&&t<=r}function ib(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Cr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Mn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Wd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Qd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Cu(t,e){let r=ib(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function jd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function vu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Vd(t){return t>99?t:t>ge.twoDigitCutoffYear?1900+t:2e3+t}function AE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Uu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function _E(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new je(`Invalid unit value ${t}`);return e}function Nu(t,e){let r={};for(let n in t)if(ki(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=_E(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Lu(t){return nb(t,["hour","minute","second","millisecond"])}var sb=["January","February","March","April","May","June","July","August","September","October","November","December"],SE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ob=["J","F","M","A","M","J","J","A","S","O","N","D"];function IE(t){switch(t){case"narrow":return[...ob];case"short":return[...SE];case"long":return[...sb];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var OE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],xE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ab=["M","T","W","T","F","S","S"];function RE(t){switch(t){case"narrow":return[...ab];case"short":return[...xE];case"long":return[...OE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var wE=["AM","PM"],ub=["Before Christ","Anno Domini"],cb=["BC","AD"],lb=["B","A"];function bE(t){switch(t){case"narrow":return[...lb];case"short":return[...cb];case"long":return[...ub];default:return null}}function db(t){return wE[t.hour<12?0:1]}function pb(t,e){return RE(e)[t.weekday-1]}function fb(t,e){return IE(e)[t.month-1]}function mb(t,e){return bE(e)[t.year<0?0:1]}function hb(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 Fy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var gb={D:bu,DD:eE,DDD:tE,DDDD:rE,t:nE,tt:iE,ttt:sE,tttt:oE,T:aE,TT:uE,TTT:cE,TTTT:lE,f:dE,ff:fE,fff:hE,ffff:yE,F:pE,FF:mE,FFF:gE,FFFF:EE},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 gb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(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?db(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(d,f)=>n?fb(e,d):s(f?{month:d}:{month:d,day:"numeric"},"month"),c=(d,f)=>n?pb(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?mb(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 Fy(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 Fy(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},DE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Fi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Bi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function Gi(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}function CE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Cr(e[r+i]);return[n,null,r+i]}}var vE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,yb=`(?:${vE.source}?(?:\\[(${DE.source})\\])?)?`,Hd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,NE=RegExp(`${Hd.source}${yb}`),Yd=RegExp(`(?:T${NE.source})?`),Eb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Tb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ab=/(\d{4})-?(\d{3})/,_b=CE("weekYear","weekNumber","weekDay"),Sb=CE("year","ordinal"),Ib=/(\d{4})-(\d\d)-(\d\d)/,PE=RegExp(`${Hd.source} ?(?:${vE.source}|(${DE.source}))?`),Ob=RegExp(`(?: ${PE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function xb(t,e){return[{year:Mi(t,e),month:Mi(t,e+1,1),day:Mi(t,e+2,1)},null,e+3]}function $i(t,e){return[{hours:Mi(t,e,0),minutes:Mi(t,e+1,0),seconds:Mi(t,e+2,0),milliseconds:Wd(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Uu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?ir.create(t[e]):null;return[{},r,e+1]}var Rb=RegExp(`^T?${Hd.source}$`),wb=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function bb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",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(Wd(c),p)}]}var Db={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 Kd(t,e,r,n,i,s,o){let a={year:e.length===2?Vd(Cr(e)):Cr(e),month:SE.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?OE.indexOf(t)+1:xE.indexOf(t)+1),a}var Cb=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function vb(t){let[,e,r,n,i,s,o,a,u,c,l,p]=t,m=Kd(e,i,n,r,s,o,a),d;return u?d=Db[u]:c?d=0:d=Uu(l,p),[m,new nt(d)]}function Nb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Pb=/^(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$/,Ub=/^(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$/,Lb=/^(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 By(t){let[,e,r,n,i,s,o,a]=t;return[Kd(e,i,n,r,s,o,a),nt.utcInstance]}function Mb(t){let[,e,r,n,i,s,o,a]=t;return[Kd(e,a,r,n,i,s,o),nt.utcInstance]}var kb=Fi(Eb,Yd),Fb=Fi(Tb,Yd),Bb=Fi(Ab,Yd),Gb=Fi(NE),UE=Bi(xb,$i,Ao,_o),$b=Bi(_b,$i,Ao,_o),Vb=Bi(Sb,$i,Ao,_o),qb=Bi($i,Ao,_o);function Wb(t){return Gi(t,[kb,UE],[Fb,$b],[Bb,Vb],[Gb,qb])}function Qb(t){return Gi(Nb(t),[Cb,vb])}function jb(t){return Gi(t,[Pb,By],[Ub,By],[Lb,Mb])}function Hb(t){return Gi(t,[wb,bb])}var Yb=Bi($i);function Kb(t){return Gi(t,[Rb,Yb])}var Jb=Fi(Ib,Ob),zb=Fi(PE),Zb=Bi($i,Ao,_o);function Xb(t){return Gi(t,[Jb,UE],[zb,Zb])}var eD="Invalid Duration",LE={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}},tD={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},...LE},mt=146097/400,Ui=146097/4800,rD={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:Ui/7,days:Ui,hours:Ui*24,minutes:Ui*24*60,seconds:Ui*24*60*60,milliseconds:Ui*24*60*60*1e3},...LE},kn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],nD=kn.slice(0).reverse();function Dr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new be(n)}function iD(t){return t<0?Math.floor(t):Math.ceil(t)}function ME(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?iD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function sD(t,e){nD.reduce((r,n)=>ne(e[n])?r:(r&&ME(t,e,r,e,n),n),null)}function oD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var be=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?rD:tD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new je(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Nu(e,t.normalizeUnit),loc:Ae.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Gn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new je(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=Hb(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]=Kb(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new je("need to specify a reason the Duration is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Ud(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 wu(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):eD}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+=Qd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of kn)(ki(r.values,i)||ki(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Dr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=_E(e(this.values[n],n));return Dr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Nu(e,t.normalizeUnit)};return Dr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Dr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return sD(this.matrix,e),Dr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=oD(this.normalize().shiftToAll().toObject());return Dr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of kn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;Gn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)kn.indexOf(c)>kn.indexOf(o)&&ME(this.matrix,i,c,r,o)}else Gn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return Dr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Dr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of kn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function aD(t,e){return!t||!t.isValid?$n.invalid("missing or invalid start"):!e||!e.isValid?$n.invalid("missing or invalid end"):e<t?$n.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var $n=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new je("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Pd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=aD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=be.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=be.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=be.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=be.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=be.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Li}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Li}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Li}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Li}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Li}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Li}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):be.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Bn=class{static hasDST(e=ge.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ir.isValidZone(e)}static normalizeZone(e){return vr(e,ge.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.create(r,null,"gregory").eras(e)}static features(){return{relative:TE()}}};function Gy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(be.fromMillis(n).as("days"))}function uD(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=Gy(u,c);return(l-l%7)/7}],["days",Gy]],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 cD(t,e,r,n){let[i,s,o,a]=uD(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=be.fromObject(s,n);return c.length>0?be.fromMillis(u,n).shiftTo(...c).plus(l):l}var Jd={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"},$y={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]},lD=Jd.hanidec.replace(/[\[|\]]/g,"").split("");function dD(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(Jd.hanidec)!==-1)e+=lD.indexOf(t[r]);else for(let i in $y){let[s,o]=$y[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Jd[t||"latn"]}${e}`)}var pD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(dD(r))}}var fD=String.fromCharCode(160),kE=`[ ${fD}]`,FE=new RegExp(kE,"g");function mD(t){return t.replace(/\./g,"\\.?").replace(FE,kE)}function Vy(t){return t.replace(/\./g,"").replace(FE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(mD).join("|")),deser:([r])=>t.findIndex(n=>Vy(r)===Vy(n))+e}}function qy(t,e){return{regex:t,deser:([,r,n])=>Uu(r,n),groups:e}}function Rd(t){return{regex:t,deser:([e])=>e}}function hD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),p=wt(e,"{2,4}"),m=wt(e,"{4,6}"),d=E=>({regex:RegExp(hD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return d(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ce(c);case"yy":return ce(p,Vd);case"yyyy":return ce(s);case"yyyyy":return ce(m);case"yyyyyy":return ce(o);case"M":return ce(a);case"MM":return ce(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ce(a);case"LL":return ce(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ce(a);case"dd":return ce(n);case"o":return ce(u);case"ooo":return ce(i);case"HH":return ce(n);case"H":return ce(a);case"hh":return ce(n);case"h":return ce(a);case"mm":return ce(n);case"m":return ce(a);case"q":return ce(a);case"qq":return ce(n);case"s":return ce(a);case"ss":return ce(n);case"S":return ce(u);case"SSS":return ce(i);case"u":return Rd(l);case"uu":return Rd(a);case"uuu":return ce(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(p,Vd);case"W":return ce(a);case"WW":return ce(n);case"E":case"c":return ce(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return qy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return qy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Rd(/[a-z_+-/]{1,256}?/i);default:return d(E)}})(t)||{invalidReason:pD};return g.token=t,g}var yD={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 ED(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=yD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function TD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function AD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(ki(r,o)){let a=r[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(i[a.token.val[0]]=a.deser(n.slice(s,s+u))),s+=u}return[n,i]}else return[n,{}]}function _D(t){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},r=null,n;return ne(t.z)||(r=ir.create(t.z)),ne(t.Z)||(r||(r=new nt(t.Z)),n=t.Z),ne(t.q)||(t.M=(t.q-1)*3+1),ne(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),ne(t.u)||(t.S=Wd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var wd=null;function SD(){return wd||(wd=_e.fromMillis(1555555555555)),wd}function ID(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=$E(r,e);return n==null||n.includes(void 0)?t:n}function BE(t,e){return Array.prototype.concat(...t.map(r=>ID(r,e)))}function GE(t,e,r){let n=BE(et.parseFormat(r),t),i=n.map(o=>gD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=TD(i),u=RegExp(o,"i"),[c,l]=AD(e,u,a),[p,m,d]=l?_D(l):[null,null,void 0];if(ki(l,"a")&&ki(l,"H"))throw new Fn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:p,zone:m,specificOffset:d}}}function OD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=GE(t,e,r);return[n,i,s,o]}function $E(t,e){return t?et.create(e,t).formatDateTimeParts(SD()).map(i=>ED(i,t)):null}var VE=[0,31,59,90,120,151,181,212,243,273,304,334],qE=[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 WE(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}function QE(t,e,r){return r+(To(t)?qE:VE)[e-1]}function jE(t,e){let r=To(t)?qE:VE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function qd(t){let{year:e,month:r,day:n}=t,i=QE(e,r,n),s=WE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=vu(a)):o>vu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function Wy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=WE(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=jE(a,o);return{year:a,month:u,day:c,...Lu(t)}}function bd(t){let{year:e,month:r,day:n}=t,i=QE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Qy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=jE(e,r);return{year:e,month:n,day:i,...Lu(t)}}function xD(t){let e=Pu(t.weekYear),r=rr(t.weekNumber,1,vu(t.weekYear)),n=rr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function RD(t){let e=Pu(t.year),r=rr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function HE(t){let e=Pu(t.year),r=rr(t.month,1,12),n=rr(t.day,1,Cu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function YE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=rr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=rr(r,0,59),a=rr(n,0,59),u=rr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Dd="Invalid DateTime",jy=864e13;function Iu(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function Cd(t){return t.weekData===null&&(t.weekData=qd(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function KE(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 Hy(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 Ru(t,e,r){return KE(jd(t),e,r)}function Yy(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,Cu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=be.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=jd(s),[u,c]=KE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ou(t,e,r=!0){return t.isValid?et.create(Ae.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function vd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function Ky(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var JE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},wD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},bD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},zE=["year","month","day","hour","minute","second","millisecond"],DD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],CD=["year","ordinal","hour","minute","second","millisecond"];function Jy(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 wu(t);return e}function zy(t,e){let r=vr(e.zone,ge.defaultZone),n=Ae.fromObject(e),i=ge.now(),s,o;if(ne(t.year))s=i;else{for(let c of zE)ne(t[c])&&(t[c]=JE[c]);let a=HE(t)||YE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=Ru(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function Zy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Qd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function Xy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||ge.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Iu(r));this.ts=ne(e.ts)?ge.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=Hy(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Ae.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Xy(arguments),[n,i,s,o,a,u,c]=r;return zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Xy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=tb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=vr(r.zone,ge.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(Iu(i))}static fromMillis(e,r={}){if(Gn(e))return e<-jy||e>jy?t.invalid("Timestamp out of range"):new t({ts:e,zone:vr(r.zone,ge.defaultZone),loc:Ae.fromObject(r)});throw new je(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Gn(e))return new t({ts:e*1e3,zone:vr(r.zone,ge.defaultZone),loc:Ae.fromObject(r)});throw new je("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=vr(r.zone,ge.defaultZone);if(!n.isValid)return t.invalid(Iu(n));let i=ge.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Nu(e,Jy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,p=o.weekYear||o.weekNumber,m=Ae.fromObject(r);if((l||a)&&p)throw new Fn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Fn("Can't mix ordinal dates with month/day");let d=p||o.weekday&&!l,f,g,E=Hy(i,s);d?(f=DD,g=wD,E=qd(E)):a?(f=CD,g=bD,E=bd(E)):(f=zE,g=JE);let y=!1;for(let w of f){let B=o[w];ne(B)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let S=d?xD(o):a?RD(o):HE(o),_=S||YE(o);if(_)return t.invalid(_);let M=d?Wy(o):a?Qy(o):o,[T,I]=Ru(M,s,n),x=new t({ts:T,zone:n,o:I,loc:m});return o.weekday&&l&&e.weekday!==x.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${x.toISO()}`):x}static fromISO(e,r={}){let[n,i]=Wb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Qb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=jb(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new je("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=OD(o,e,r);return l?t.invalid(l):fo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=Xb(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new je("need to specify a reason the DateTime is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Nd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=$E(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return BE(et.parseFormat(e),Ae.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Cd(this).weekYear:NaN}get weekNumber(){return this.isValid?Cd(this).weekNumber:NaN}get weekday(){return this.isValid?Cd(this).weekday:NaN}get ordinal(){return this.isValid?bd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Bn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Bn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Bn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Bn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return To(this.year)}get daysInMonth(){return Cu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?vu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(nt.instance(e),r)}toLocal(){return this.setZone(ge.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=vr(e,ge.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=Ru(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Iu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Nu(e,Jy),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=Wy({...qd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Cu(c.year,c.month),c.day))):c=Qy({...bd(this.c),...r});let[l,p]=Ru(c,this.o,this.zone);return po(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e);return po(this,Yy(this,r))}minus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e).negate();return po(this,Yy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=be.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?et.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Dd}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Dd}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=vd(this,o);return a+="T",a+=Ky(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?vd(this,e==="extended"):null}toISOWeekDate(){return Ou(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Ky(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ou(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ou(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?vd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ou(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Dd}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return be.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=rb(r).map(be.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=cD(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),Zy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Zy(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new je("min requires all arguments be DateTimes");return ky(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new je("max requires all arguments be DateTimes");return ky(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return GE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return bu}static get DATE_MED(){return eE}static get DATE_MED_WITH_WEEKDAY(){return Bw}static get DATE_FULL(){return tE}static get DATE_HUGE(){return rE}static get TIME_SIMPLE(){return nE}static get TIME_WITH_SECONDS(){return iE}static get TIME_WITH_SHORT_OFFSET(){return sE}static get TIME_WITH_LONG_OFFSET(){return oE}static get TIME_24_SIMPLE(){return aE}static get TIME_24_WITH_SECONDS(){return uE}static get TIME_24_WITH_SHORT_OFFSET(){return cE}static get TIME_24_WITH_LONG_OFFSET(){return lE}static get DATETIME_SHORT(){return dE}static get DATETIME_SHORT_WITH_SECONDS(){return pE}static get DATETIME_MED(){return fE}static get DATETIME_MED_WITH_SECONDS(){return mE}static get DATETIME_MED_WITH_WEEKDAY(){return Gw}static get DATETIME_FULL(){return hE}static get DATETIME_FULL_WITH_SECONDS(){return gE}static get DATETIME_HUGE(){return yE}static get DATETIME_HUGE_WITH_SECONDS(){return EE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&Gn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new je(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var vD="3.2.1";it.DateTime=_e;it.Duration=be;it.FixedOffsetZone=nt;it.IANAZone=ir;it.Info=Bn;it.Interval=$n;it.InvalidZone=Du;it.Settings=ge;it.SystemZone=Eo;it.VERSION=vD;it.Zone=Nr});var eT=H((kW,XE)=>{"use strict";var Vn=ZE();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};z.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=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))}XE.exports=z});var nT=H((FW,rT)=>{"use strict";function qn(t){return{start:t,count:1}}function tT(t,e){t.end=e,t.step=e-t.start,t.count=2}function zd(t,e,r){e&&(e.count===2?(t.push(qn(e.start)),t.push(qn(e.end))):t.push(e)),r&&t.push(r)}function ND(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(zd(e,r,qn(i)),r=void 0):r?r.count===1?tT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(qn(r.start)),r=qn(r.end),tT(r,i)):(zd(e,r),r=qn(i)):r=qn(i)}return zd(e,r),e}rT.exports=ND});var sT=H((BW,iT)=>{"use strict";var PD=nT();function UD(t,e,r){var n=PD(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(",")}iT.exports=UD});var uT=H((GW,aT)=>{"use strict";var Wn=eT(),LD=sT(),oT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Wn(e.currentDate,this._tz),this._startDate=e.startDate?new Wn(e.startDate,this._tz):null,this._endDate=e.endDate?new Wn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(U._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(U._isValidConstraintChar(n,f)){c.push(f);return}var S=+f;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var p=u.split(",");if(!p.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(p.length>1)for(var m=0,d=p.length;m<d;m++)l(o(p[m]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],p=u.split("-");if(p.length>1){if(p.length<2)return+u;if(!p[0].length){if(!p[1].length)throw new Error("Invalid range: "+u);return+u}var m=+p[0],d=+p[1];if(Number.isNaN(m)||Number.isNaN(d)||m<n.min||d>n.max)throw new Error("Constraint error, got range "+m+"-"+d+" expected range "+n.min+"-"+n.max);if(m>d)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&d%7===0&&l.push(0);for(var g=m,E=d;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(y,S){for(var _=0,M=S.length;_<M;_++)if(S[_]>=y)return S[_]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var _=y.getDate()%7?1:0,M=y.getDate()-y.getDate()%7,T=Math.floor(M/7)+_;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Wn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function p(y){return y.some(function(S){if(!i([S]))return!1;var _=Number.parseInt(S[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===_&&o.isLastWeekdayOfMonth()})}for(;l<oT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var d=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(d=d||p(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,E=o.getHours();if(!m&&(!d||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!d){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=oT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Wn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new Wn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(LD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Wn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,p=U.map.length;l<p;++l){var m=U.map[l],d=u[u.length>p?l:l-c];if(l<c||!d)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?S(d):d;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,p=U.map.length;l<p;l++){var E=U.map[l];g[E]=a[l]}var y=U._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new U(g,o);function S(_){var M=_.split("#");if(M.length>1){var T=+M[M.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(M.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,M[0]}return _}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,d,f){if(!d)throw new Error("Validation error, Field "+m+" is missing");if(d.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=d.length;g<E;g++){var y=d[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(m,d,f){return!d||m!==f[d-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var p=U._handleMaxDaysInMonth(i);return i.dayOfMonth=p||i.dayOfMonth,new U(i,r||{})};aT.exports=U});var lT=H(($W,cT)=>{"use strict";var Mu=uT();function Pr(){}Pr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Mu.parse(e)};if(r.length>6)return{interval:Mu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Pr.parseExpression=function(e,r){return Mu.parse(e,r)};Pr.fieldsToExpression=function(e,r){return Mu.fieldsToExpression(e,r)};Pr.parseString=function(e){for(var r=e.split(`
|
|
5
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Pr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Pr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Pr.parseString(i.toString()))})};cT.exports=Pr});var dF={};v(dF,{APP_DEV:()=>Wu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>qu,BUDIBASE_DATASOURCE_TYPE:()=>Tp,BadRequestError:()=>xc,BudibaseError:()=>ms,Config:()=>xp,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Ip,DEFAULT_EXPENSES_TABLE_ID:()=>Sp,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Ap,DEFAULT_TENANT_ID:()=>ye,DeprecatedViews:()=>Wi,DocumentType:()=>Te,Duration:()=>we,DurationType:()=>Yf,EmailUnavailableError:()=>mr,ErrorCode:()=>bc,FeatureDisabledError:()=>wc,GlobalRole:()=>Op,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ir,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>IT,NotFoundError:()=>Oc,RedisClient:()=>$e,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>Ep,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Rc,UserStatus:()=>Qu,ViewName:()=>Mr,accounts:()=>oi,auth:()=>lh,blacklist:()=>mh,cache:()=>ba,configs:()=>tn,constants:()=>Rp,context:()=>Ee,db:()=>$r,docIds:()=>uf,docUpdates:()=>gh,encryption:()=>ah,env:()=>h,errors:()=>Cc,events:()=>Ts,features:()=>Zm,getPublicError:()=>Dc,init:()=>lF,installation:()=>$c,locks:()=>si,logging:()=>yc,middleware:()=>ch,objectStore:()=>Of,permissions:()=>Km,platform:()=>ca,plugins:()=>ph,queue:()=>gm,redis:()=>fh,roles:()=>dm,security:()=>Pm,sessions:()=>Yc,setEnv:()=>wo,sql:()=>xh,tenancy:()=>cF,timers:()=>jo,userUtils:()=>pm,users:()=>As,utils:()=>cs,withEnv:()=>DT});module.exports=II(dF);var tn={};v(tn,{analyticsEnabled:()=>Fc,generateConfigID:()=>Qm,getAIConfig:()=>LM,getConfig:()=>Ft,getDefaultGoogleConfig:()=>qm,getGoogleConfig:()=>Xc,getGoogleDatasourceConfig:()=>Hm,getOIDCConfig:()=>NM,getOIDCConfigById:()=>Ym,getOIDCLogosDoc:()=>CM,getPlatformUrl:()=>Pa,getSCIMConfig:()=>UM,getSMTPConfig:()=>PM,getSMTPConfigDoc:()=>RS,getSettingsConfig:()=>jm,getSettingsConfigDoc:()=>qc,save:()=>bM});var OI=["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"],wh=[...OI],bh={"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 Sl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Sl||{}),Il=(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))(Il||{}),Ba=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Ba||{});var Ol=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ol||{});var xI=j(require("lodash")),_r=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(_r||{}),Yt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Yt||{}),cn=(e=>(e.RANGE="range",e))(cn||{}),gi=(r=>(r.AND="$and",r.OR="$or",r))(gi||{});function Ga(t){return Object.values(gi).includes(t)}function Dh(t){return Object.values(_r).includes(t)}function Ch(t){return Object.values(Yt).includes(t)}function xl(t){return Object.values(cn).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var vh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var Nh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var pB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var $a=(p=>(p.APP="app",p.TABLE="table",p.USER="user",p.AUTOMATION="automation",p.WEBHOOK="webhook",p.BUILDER="builder",p.CREATOR="creator",p.GLOBAL_BUILDER="globalBuilder",p.QUERY="query",p.VIEW="view",p.LEGACY_VIEW="legacy_view",p))($a||{});var Va=t=>t.hosting==="cloud";var qa=t=>t.authType==="sso";var N="_",ke="\uFFF0",Sr=t=>`${t}${N}`,Te=(q=>(q.USER="us",q.GROUP="gr",q.WORKSPACE="workspace",q.CONFIG="config",q.TEMPLATE="template",q.APP="app",q.DEV="dev",q.APP_DEV="app_dev",q.APP_METADATA="app_metadata",q.ROLE="role",q.MIGRATIONS="migrations",q.DEV_INFO="devinfo",q.AUTOMATION_LOG="log_au",q.ACCOUNT_METADATA="acc_metadata",q.PLUGIN="plg",q.DATASOURCE="datasource",q.DATASOURCE_PLUS="datasource_plus",q.APP_BACKUP="backup",q.TABLE="ta",q.ROW="ro",q.AUTOMATION="au",q.LINK="li",q.WEBHOOK="wh",q.INSTANCE="inst",q.LAYOUT="layout",q.SCREEN="screen",q.QUERY="query",q.DEPLOYMENTS="deployments",q.METADATA="metadata",q.MEM_VIEW="view",q.USER_FLAG="flag",q.AUTOMATION_METADATA="meta_au",q.AUDIT_LOG="al",q.APP_MIGRATION_METADATA="_design/migrations",q.SCIM_LOG="scimlog",q.ROW_ACTIONS="ra",q.OAUTH2_CONFIG="oauth2",q))(Te||{}),XB=Object.values(Te).sort((t,e)=>e.length-t.length);var Ir=(e=>(e.USER_METADATA="ta_users",e))(Ir||{}),Rl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Rl||{}),eG=Object.values(Rl).sort((t,e)=>e.length-t.length);var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),he=(_=>(_.TABLE="table",_.ROW="row",_.ROWS="rows",_.WIDE="wide",_.QUERY="query",_.QUERY_PARAMS="queryParams",_.QUERY_LIMIT="queryLimit",_.LOOP_OPTION="loopOption",_.ITEM="item",_.CODE="code",_.FILTERS="filters",_.COLUMN="column",_.TRIGGER_SCHEMA="triggerSchema",_.CRON="cron",_.WEBHOOK_URL="webhookUrl",_.AUTOMATION="automation",_.AUTOMATION_FIELDS="automationFields",_.MULTI_ATTACHMENTS="multi_attachments",_.TRIGGER_FILTER="trigger_filter",_))(he||{}),St=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(St||{});var de=(x=>(x.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",x.CREATE_ROW="CREATE_ROW",x.UPDATE_ROW="UPDATE_ROW",x.DELETE_ROW="DELETE_ROW",x.EXECUTE_BASH="EXECUTE_BASH",x.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",x.EXECUTE_SCRIPT="EXECUTE_SCRIPT",x.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",x.EXECUTE_QUERY="EXECUTE_QUERY",x.SERVER_LOG="SERVER_LOG",x.DELAY="DELAY",x.FILTER="FILTER",x.QUERY_ROWS="QUERY_ROWS",x.LOOP="LOOP",x.COLLECT="COLLECT",x.OPENAI="OPENAI",x.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",x.BRANCH="BRANCH",x.discord="discord",x.slack="slack",x.zapier="zapier",x.integromat="integromat",x.n8n="n8n",x))(de||{}),Ph=[...Object.values(de),...Object.values(St)];var wl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(wl||{});var bl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(bl||{});var Uh=["attachment_single","attachment","bb_reference","json","array"];var Dl="bb_internal";function Wa(t){return!!t.providerType}var Cl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Cl||{});var d$=Object.values(Cl);var g$=["rows","queries","automations"],y$=["queries","automations"];var dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(dn||{}),Qa=(r=>(r.STRING="string",r.NUMBER="number",r))(Qa||{});var te;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(te||(te={}));var Nl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Nl||(Nl={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Or=t=>{switch(typeof t){case"undefined":return k.undefined;case"string":return k.string;case"number":return isNaN(t)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(t)?k.array:t===null?k.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?k.promise:typeof Map<"u"&&t instanceof Map?k.map:typeof Set<"u"&&t instanceof Set?k.set:typeof Date<"u"&&t instanceof Date?k.date:k.object;default:return k.unknown}},O=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),bI=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Je=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Je.create=t=>new Je(t);var Ai=(t,e)=>{let r;switch(t.code){case O.invalid_type:t.received===k.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case O.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case O.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case O.invalid_union:r="Invalid input";break;case O.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case O.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case O.invalid_arguments:r="Invalid function arguments";break;case O.invalid_return_type:r="Invalid function return type";break;case O.invalid_date:r="Invalid date";break;case O.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case O.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case O.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case O.custom:r="Invalid input";break;case O.invalid_intersection_types:r="Intersection results could not be merged";break;case O.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case O.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},kh=Ai;function DI(t){kh=t}function ja(){return kh}var Ha=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}},CI=[];function P(t,e){let r=ja(),n=Ha({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ai?void 0:Ai].filter(i=>!!i)});t.common.issues.push(n)}var Me=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),Ti=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),Pl=t=>t.status==="aborted",Ul=t=>t.status==="dirty",Cs=t=>t.status==="valid",vs=t=>typeof Promise<"u"&&t instanceof Promise;function Ya(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 Fh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var bs,Ds,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Lh=(t,e)=>{if(Cs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Je(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Or(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(vs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Or(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Lh(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:Or(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(vs(i)?i:Promise.resolve(i));return Lh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:O.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new ze({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return zt.create(this,this._def)}promise(){return wr.create(this,this._def)}or(e){return En.create([this,e],this._def)}and(e){return Tn.create(this,e,this._def)}transform(e){return new ze({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new On({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},vI=/^c[^\s-]{8,}$/i,NI=/^[0-9a-z]+$/,PI=/^[0-9A-HJKMNP-TV-Z]{26}$/,UI=/^[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,LI=/^[a-z0-9_-]{21}$/i,MI=/^[-+]?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)?)??$/,kI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,FI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",vl,BI=/^(?:(?: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])$/,GI=/^(([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})))$/,$I=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Bh="((\\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])))",VI=new RegExp(`^${Bh}$`);function Gh(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 qI(t){return new RegExp(`^${Gh(t)}$`)}function $h(t){let e=`${Bh}T${Gh(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 WI(t,e){return!!((e==="v4"||!e)&&BI.test(t)||(e==="v6"||!e)&&GI.test(t))}var xr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.string,received:s.parsedType}),J}let n=new Me,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:O.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:O.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")kI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")vl||(vl=new RegExp(FI,"u")),vl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")UI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")LI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")vI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")NI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")PI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:O.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:O.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?$h(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?VI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?qI(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?MI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?WI(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?$I.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:O.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:O.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};xr.create=t=>{var e;return new xr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function QI(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var pn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==k.number){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.number,received:s.parsedType}),J}let n,i=new Me;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?QI(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};pn.create=t=>new pn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==k.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.bigint,received:s.parsedType}),J}let n,i=new Me;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};fn.create=t=>{var e;return new fn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var mn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.boolean,received:n.parsedType}),J}return Fe(e.data)}};mn.create=t=>new mn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var hn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_date}),J}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};hn.create=t=>new hn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var _i=class extends X{_parse(e){if(this._getType(e)!==k.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.symbol,received:n.parsedType}),J}return Fe(e.data)}};_i.create=t=>new _i({typeName:Y.ZodSymbol,...Z(t)});var gn=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.undefined,received:n.parsedType}),J}return Fe(e.data)}};gn.create=t=>new gn({typeName:Y.ZodUndefined,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==k.null){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.null,received:n.parsedType}),J}return Fe(e.data)}};yn.create=t=>new yn({typeName:Y.ZodNull,...Z(t)});var Rr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};Rr.create=t=>new Rr({typeName:Y.ZodAny,...Z(t)});var Jt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Jt.create=t=>new Jt({typeName:Y.ZodUnknown,...Z(t)});var It=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:O.invalid_type,expected:k.never,received:r.parsedType}),J}};It.create=t=>new It({typeName:Y.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.void,received:n.parsedType}),J}return Fe(e.data)}};Si.create=t=>new Si({typeName:Y.ZodVoid,...Z(t)});var zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==k.array)return P(r,{code:O.invalid_type,expected:k.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?O.too_big:O.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:O.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:O.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};zt.create=(t,e)=>new zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Ei(t){if(t instanceof We){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ei(n))}return new We({...t._def,shape:()=>e})}else return t instanceof zt?new zt({...t._def,type:Ei(t.element)}):t instanceof dt?dt.create(Ei(t.unwrap())):t instanceof Gt?Gt.create(Ei(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ei(e))):t}var We=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==k.object){let c=this._getOrReturnCtx(e);return P(c,{code:O.invalid_type,expected:k.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof It&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],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 It){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:O.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let p=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,p,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let p=await l.key,m=await l.value;c.push({key:p,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Me.mergeObjectSync(n,c)):Me.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ei(this)}partial(e){let r={};return te.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return te.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Vh(te.objectKeys(this.shape))}};We.create=(t,e)=>new We({shape:()=>t,unknownKeys:"strip",catchall:It.create(),typeName:Y.ZodObject,...Z(e)});We.strictCreate=(t,e)=>new We({shape:()=>t,unknownKeys:"strict",catchall:It.create(),typeName:Y.ZodObject,...Z(e)});We.lazycreate=(t,e)=>new We({shape:t,unknownKeys:"strip",catchall:It.create(),typeName:Y.ZodObject,...Z(e)});var En=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Je(a.ctx.common.issues));return P(r,{code:O.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new Je(u));return P(r,{code:O.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};En.create=(t,e)=>new En({options:t,typeName:Y.ZodUnion,...Z(e)});var Kt=t=>t instanceof An?Kt(t.schema):t instanceof ze?Kt(t.innerType()):t instanceof _n?[t.value]:t instanceof Sn?t.options:t instanceof In?te.objectValues(t.enum):t instanceof On?Kt(t._def.innerType):t instanceof gn?[void 0]:t instanceof yn?[null]:t instanceof dt?[void 0,...Kt(t.unwrap())]:t instanceof Gt?[null,...Kt(t.unwrap())]:t instanceof Ns||t instanceof Rn?Kt(t.unwrap()):t instanceof xn?Kt(t._def.innerType):[],Ka=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.object)return P(r,{code:O.invalid_type,expected:k.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:O.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Kt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Ll(t,e){let r=Or(t),n=Or(e);if(t===e)return{valid:!0,data:t};if(r===k.object&&n===k.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Ll(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===k.array&&n===k.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Ll(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===k.date&&n===k.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var Tn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Pl(s)||Pl(o))return J;let a=Ll(s.value,o.value);return a.valid?((Ul(s)||Ul(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:O.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Tn.create=(t,e,r)=>new Tn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.array)return P(n,{code:O.invalid_type,expected:k.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:O.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:O.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Me.mergeArray(r,o)):Me.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Bt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Ja=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.object)return P(n,{code:O.invalid_type,expected:k.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Me.mergeObjectAsync(r,i):Me.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:Y.ZodRecord,...Z(n)}):new t({keyType:xr.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},Ii=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.map)return P(n,{code:O.invalid_type,expected:k.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ii.create=(t,e,r)=>new Ii({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var Oi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.set)return P(n,{code:O.invalid_type,expected:k.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:O.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:O.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new 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:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Oi.create=(t,e)=>new Oi({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var za=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.function)return P(r,{code:O.invalid_type,expected:k.function,received:r.parsedType}),J;function n(a,u){return Ha({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),Ai].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return Ha({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),Ai].filter(c=>!!c),issueData:{code:O.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof wr){let a=this;return Fe(async function(...u){let c=new Je([]),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 Je([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),p=a._def.returns.safeParse(l,s);if(!p.success)throw new Je([i(l,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Bt.create(e).rest(Jt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Bt.create([]).rest(Jt.create()),returns:r||Jt.create(),typeName:Y.ZodFunction,...Z(n)})}},An=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};An.create=(t,e)=>new An({getter:t,typeName:Y.ZodLazy,...Z(e)});var _n=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:O.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};_n.create=(t,e)=>new _n({value:t,typeName:Y.ZodLiteral,...Z(e)});function Vh(t,e){return new Sn({values:t,typeName:Y.ZodEnum,...Z(e)})}var Sn=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:te.joinValues(n),received:r.parsedType,code:O.invalid_type}),J}if(Ya(this,bs,"f")||Fh(this,bs,new Set(this._def.values),"f"),!Ya(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:O.invalid_enum_value,options:n}),J}return Fe(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};bs=new WeakMap;Sn.create=Vh;var In=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==k.string&&n.parsedType!==k.number){let i=te.objectValues(r);return P(n,{expected:te.joinValues(i),received:n.parsedType,code:O.invalid_type}),J}if(Ya(this,Ds,"f")||Fh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ya(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:O.invalid_enum_value,options:i}),J}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;In.create=(t,e)=>new In({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var wr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:O.invalid_type,expected:k.promise,received:r.parsedType}),J;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};wr.create=(t,e)=>new wr({type:t,typeName:Y.ZodPromise,...Z(e)});var ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?Ti(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?Ti(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Cs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Cs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};ze.create=(t,e,r)=>new ze({schema:t,typeName:Y.ZodEffects,effect:e,...Z(r)});ze.createWithPreprocess=(t,e,r)=>new ze({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===k.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===k.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var On=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===k.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};On.create=(t,e)=>new On({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return vs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Je(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Je(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var xi=class extends X{_parse(e){if(this._getType(e)!==k.nan){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};xi.create=t=>new xi({typeName:Y.ZodNaN,...Z(t)});var jI=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),Ti(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},Rn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Cs(i)&&(i.value=Object.freeze(i.value)),i);return vs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function qh(t,e={},r){return t?Rr.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):Rr.create()}var HI={object:We.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var YI=(t,e={message:`Input not instance of ${t.name}`})=>qh(r=>r instanceof t,e),Wh=xr.create,Qh=pn.create,KI=xi.create,JI=fn.create,jh=mn.create,zI=hn.create,ZI=_i.create,XI=gn.create,eO=yn.create,tO=Rr.create,rO=Jt.create,nO=It.create,iO=Si.create,sO=zt.create,oO=We.create,aO=We.strictCreate,uO=En.create,cO=Ka.create,lO=Tn.create,dO=Bt.create,pO=Ja.create,fO=Ii.create,mO=Oi.create,hO=za.create,gO=An.create,yO=_n.create,EO=Sn.create,TO=In.create,AO=wr.create,Mh=ze.create,_O=dt.create,SO=Gt.create,IO=ze.createWithPreprocess,OO=Ps.create,xO=()=>Wh().optional(),RO=()=>Qh().optional(),wO=()=>jh().optional(),bO={string:t=>xr.create({...t,coerce:!0}),number:t=>pn.create({...t,coerce:!0}),boolean:t=>mn.create({...t,coerce:!0}),bigint:t=>fn.create({...t,coerce:!0}),date:t=>hn.create({...t,coerce:!0})},DO=J,ee=Object.freeze({__proto__:null,defaultErrorMap:Ai,setErrorMap:DI,getErrorMap:ja,makeIssue:Ha,EMPTY_PATH:CI,addIssueToContext:P,ParseStatus:Me,INVALID:J,DIRTY:Ti,OK:Fe,isAborted:Pl,isDirty:Ul,isValid:Cs,isAsync:vs,get util(){return te},get objectUtil(){return Nl},ZodParsedType:k,getParsedType:Or,ZodType:X,datetimeRegex:$h,ZodString:xr,ZodNumber:pn,ZodBigInt:fn,ZodBoolean:mn,ZodDate:hn,ZodSymbol:_i,ZodUndefined:gn,ZodNull:yn,ZodAny:Rr,ZodUnknown:Jt,ZodNever:It,ZodVoid:Si,ZodArray:zt,ZodObject:We,ZodUnion:En,ZodDiscriminatedUnion:Ka,ZodIntersection:Tn,ZodTuple:Bt,ZodRecord:Ja,ZodMap:Ii,ZodSet:Oi,ZodFunction:za,ZodLazy:An,ZodLiteral:_n,ZodEnum:Sn,ZodNativeEnum:In,ZodPromise:wr,ZodEffects:ze,ZodTransformer:ze,ZodOptional:dt,ZodNullable:Gt,ZodDefault:On,ZodCatch:xn,ZodNaN:xi,BRAND:jI,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Rn,custom:qh,Schema:X,ZodSchema:X,late:HI,get ZodFirstPartyTypeKind(){return Y},coerce:bO,any:tO,array:sO,bigint:JI,boolean:jh,date:zI,discriminatedUnion:cO,effect:Mh,enum:EO,function:hO,instanceof:YI,intersection:lO,lazy:gO,literal:yO,map:fO,nan:KI,nativeEnum:TO,never:nO,null:eO,nullable:SO,number:Qh,object:oO,oboolean:wO,onumber:RO,optional:_O,ostring:xO,pipeline:OO,preprocess:IO,promise:AO,record:pO,set:mO,strictObject:aO,string:Wh,symbol:ZI,transformer:Mh,tuple:dO,undefined:XI,union:uO,unknown:rO,void:iO,NEVER:DO,ZodIssueCode:O,quotelessJson:bI,ZodError:Je});var tu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Hh=ee.record(tu,ee.string()),Za=ee.record(tu,ee.any()),Xa=ee.record(tu,ee.union([ee.any().array(),ee.string()])),Yh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Kh))})),eu=ee.union([ee.string(),ee.number()]),Kh={string:Hh.optional(),fuzzy:Hh.optional(),range:ee.record(tu,ee.union([ee.object({high:eu,low:eu}),ee.object({high:eu}),ee.object({low:eu})])).optional(),equal:Za.optional(),notEqual:Za.optional(),empty:Za.optional(),notEmpty:Za.optional(),oneOf:Xa.optional(),contains:Xa.optional(),notContains:Xa.optional(),containsAny:Xa.optional(),$and:Yh.optional(),$or:Yh.optional()},cV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Kh}).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(Qa).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Rp={};v(Rp,{APP_DEV:()=>Wu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>qu,BUDIBASE_DATASOURCE_TYPE:()=>Tp,Config:()=>xp,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Ip,DEFAULT_EXPENSES_TABLE_ID:()=>Sp,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Ap,DEFAULT_TENANT_ID:()=>ye,DeprecatedViews:()=>Wi,DocumentType:()=>Te,GlobalRole:()=>Op,Header:()=>Ze,InternalTable:()=>Ir,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>IT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>Ep,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>Qu,ViewName:()=>Mr});var yq={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Ze=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Ze||{});var _q={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var wq="darkest",bq="light",NO=[{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"}},Jh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Ri="datasource_internal_bb_default";var Ur={};v(Ur,{ColumnSplitter:()=>ip,NoEmptyFilterStrings:()=>yT,buildQuery:()=>iC,cleanupQuery:()=>ap,fixupFilterArrays:()=>cp,getKeyNumbering:()=>up,getValidOperatorsForType:()=>tC,hasFilters:()=>sp,limit:()=>TT,recurseLogicalOperators:()=>op,removeKeyNumbering:()=>ru,runQuery:()=>ku,search:()=>sC,sort:()=>ET,splitFiltersArray:()=>nu});var Vi=j(zh());var wi={};v(wi,{filterValueToLabel:()=>FO,hasSchema:()=>BO,isSupportedUserSearch:()=>Xh,parallelForeach:()=>kO,processSearchFilters:()=>Fl,trimOtherProps:()=>GO,unreachable:()=>MO});var Zh=j(require("lodash")),LO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function MO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function kO(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 FO(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function BO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function GO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Xh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(Ga(s)){for(let c of t[s].conditions)if(!Xh(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Fl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=nu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Zh.default.pick(i,LO);return s.field=ru(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>eg,cron:()=>Zd,deepGet:()=>Bl,getUserColor:()=>VO,getUserInitials:()=>$O,getUserLabel:()=>qO,isGoogleSheets:()=>QO,isSQL:()=>jO,lists:()=>np,retry:()=>HO,roles:()=>rp,schema:()=>So,views:()=>tp,wait:()=>Gl,withTimeout:()=>WO});var Bl=(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},$O=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"},VO=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%)`},qO=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function eg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function WO(t,e){let[r,n]=eg(t),i=await Promise.race([e(),r]);return n(),i}function QO(t){return t==="GOOGLE_SHEETS"}function jO(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Gl(t){return new Promise(e=>setTimeout(e,t))}async function HO(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 Gl(s);try{return await t()}catch(o){n=o}}throw n}var Zd={};v(Zd,{getNextExecutionDates:()=>FD,validate:()=>BD});var pT=j($t()),fT=j(lT()),dT="(Input cron: ",MD={"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 kD(t){let e=[];for(let r of t){r.includes(dT)&&(r=r.split(dT)[0].trim());for(let[n,i]of Object.entries(MD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function FD(t,e=4){let r=fT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function BD(t){let e=(0,pT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:kD(e.getError())}}var So={};v(So,{decodeNonAscii:()=>Xd,encodeNonAscii:()=>VD,isDeprecatedSingleUserColumn:()=>GD,isNumeric:()=>qD,isRequired:()=>$D});function GD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function $D(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function VD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Xd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function qD(t){return t.type==="number"||t.type==="bigint"}var tp={};v(tp,{basicFields:()=>YD,calculationFields:()=>HD,hasCalculationFields:()=>jD,isBasicViewField:()=>WD,isCalculationField:()=>Io,isCalculationView:()=>QD,isV2:()=>KD,isVisible:()=>mT});var ep=require("lodash");function Io(t){return"calculationType"in t}function WD(t){return!Io(t)}function QD(t){return t.type==="calculation"}function jD(t){return Object.values(t.schema||{}).some(Io)}function HD(t){return(0,ep.pickBy)(t.schema||{},Io)}function mT(t){return t.visible!==!1}function YD(t,e){let{visible:r=!0}=e||{};return(0,ep.pickBy)(t.schema||{},n=>!Io(n)&&(!r||mT(n)))}function KD(t){return t.version===2}var rp={};v(rp,{checkForRoleInheritanceLoops:()=>zD});function JD(t){return`role${N}${t}`}function zD(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=JD(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 np={};v(np,{punctuateList:()=>ZD});function ZD(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}var Qn=require("lodash");var XD=/{{([^{].*?)}}/g,gT=Object.values(gi),eC=[...Object.values(_r),...Object.values(Yt),...Object.values(cn)],tC=(t,e,r)=>{let n=Xe,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||So.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"&&(o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},yT=[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 op(t,e){for(let r of gT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var ap=t=>{for(let e of yT)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===""||rC(s))&&delete t[e][i]}return t=op(t,ap),t};function rC(t){return Array.isArray(t)&&t.length===0}var ru=t=>up(t).key,up=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}},ip=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}=up(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=Xd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function nC(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(XD)||[]).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(xl(r)){let c=Jh[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(Dh(r)||Ch(r)||xl(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function nu(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function iC(t){if(!t)return{};if(Array.isArray(t)&&(t=Fl(t),!t))return{};let e=hT(t.logicalOperator||"all"),r={};return t.onEmptyFilter?r.onEmptyFilter=t.onEmptyFilter:r.onEmptyFilter="all",r[e]={conditions:(t.groups||[]).map(n=>{let{allOr:i,onEmptyFilter:s,filters:o}=nu(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=hT(n.logicalOperator)),{[a]:{conditions:o.map(nC).filter(u=>u)}}})},r}function hT(t){return t==="all"?"$and":"$or"}function cp(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 op(t,cp),t}function sC(t,e){let r=ku(t,e.query);e.sort&&(r=ET(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=TT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function ku(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=ap(e),e=cp(e),!sp(e)&&e.onEmptyFilter==="none")return[];let r=(T,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Ga(T)?x:Bl(x,ru(w)),on=I(le,B);if(e.allOr&&on)return!0;if(!e.allOr&&!on)return!1}return!e.allOr},n=r("string",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().includes(I.toLowerCase())),s=r("range",(T,I)=>{if(T==null||T===""||((0,Qn.isPlainObject)(I.low)&&(0,Qn.isEmpty)(I.low)&&(I.low=void 0),(0,Qn.isPlainObject)(I.high)&&(0,Qn.isEmpty)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let x=+T;if(!isNaN(x)){let B=+I.low,le=+I.high;if(!isNaN(B)&&!isNaN(le))return x>=B&&x<=le;if(isNaN(B)){if(!isNaN(le))return x<=le}else return x>=B}let w=(0,Vi.default)(T);if(w.isValid()){let B=(0,Vi.default)(I.low||"0000-00-00T00:00:00.000Z"),le=(0,Vi.default)(I.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&le.isValid())return w.isAfter(B)&&w.isBefore(le)||w.isSame(B)||w.isSame(le);if(B.isValid())return w.isAfter(B)||w.isSame(B);if(le.isValid())return w.isBefore(le)||w.isSame(le)}return I.low!=null&&I.high!=null?T>=I.low&&T<=I.high:I.low!=null?T>=I.low:I.high!=null?T<=I.high:!1}),o=(T,I)=>{if(Array.isArray(T)){for(let w of T)if(o(w,I))return!0;return!1}if(T&&typeof T=="object"&&typeof I=="string")return T._id===I;if(T===I)return!0;if(T==null&&I!=null||T!=null&&I==null)return!1;let x=(0,Vi.default)(T);if(x.isValid()){let w=(0,Vi.default)(I);if(w.isValid())return x.isSame(w)}return!1},a=T=>(...I)=>!T(...I),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,p=r("empty",l),m=r("notEmpty",a(l)),d=r("oneOf",(T,I)=>(typeof I=="string"&&(I=I.split(",")),typeof T=="number"&&(I=I.map(x=>parseFloat(x))),Array.isArray(I)?I.some(x=>o(T,x)):!1)),f=T=>(I,x)=>!Array.isArray(I)||(typeof x=="string"&&(x=x.split(","),typeof I[0]=="number"&&(x=x.map(w=>parseFloat(w)))),!Array.isArray(x))?!1:x.length===0?!0:x[T](w=>o(I,w)),g=r("contains",(T,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(T,I)),E=r("notContains",(T,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(T,I)),y=r("containsAny",f("some")),S=r("$and",(T,I)=>{if(!I.length)return!1;for(let x of I)if(!ku([T],x).length)return!1;return!0}),_=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if(ku([T],{...x,allOr:!0}).length)return!0;return!1}),M=T=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:p,notEmpty:m,oneOf:d,contains:g,containsAny:y,notContains:E,$and:S,$or:_},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>I[w]?.(T)??!1);return sp(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function ET(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 TT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var sp=t=>{if(!t)return!1;let e=r=>{for(let n of gT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of eC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var st={};v(st,{applications:()=>dp,automations:()=>pp,screens:()=>yp,users:()=>gp});var dp={};v(dp,{getDevAppID:()=>oC,getProdAppID:()=>Fu});var lp=Sr("app"),Oo=Sr("app_dev");function oC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Oo))return t;let e=t.split(lp);e.shift();let r=e.join(lp);return`${Oo}${r}`}function Fu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Oo))return t;let e=t.split(Oo);e.shift();let r=e.join(Oo);return`${lp}${r}`}var pp={};v(pp,{isAppAction:()=>cC,isRowAction:()=>aC,isWebhookAction:()=>uC});function aC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function uC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function cC(t){return t.definition.trigger?.stepId==="APP"}var gp={};v(gp,{canCreateApps:()=>lC,containsUserID:()=>gC,getGlobalUserID:()=>hC,getUserAppGroups:()=>yC,getUserGroups:()=>hp,hasAdminPermissions:()=>mp,hasAppBuilderPermissions:()=>$u,hasAppCreatorPermissions:()=>AT,hasBuilderPermissions:()=>fC,hasCreatorPermissions:()=>Vu,isAdmin:()=>Gu,isAdminOrBuilder:()=>dC,isAdminOrGlobalBuilder:()=>pC,isBuilder:()=>fp,isCreator:()=>mC,isGlobalBuilder:()=>Bu,userAppAccessList:()=>EC});var Lr=j(require("lodash/fp"));function fp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Fu(e))):!1}function Bu(t){return fp(t)&&!$u(t)||Gu(t)}function lC(t){return Bu(t)||Vu(t)}function Gu(t){return t?mp(t):!1}function dC(t,e){return fp(t,e)||Gu(t)}function pC(t){return Bu(t)||Gu(t)}function $u(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function AT(t){return t?Lr.flow(Lr.get("roles"),Lr.values,Lr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function fC(t){return t?t.builder?.global||$u(t)||Vu(t):!1}function mp(t){return t?!!t.admin?.global:!1}function Vu(t){return t?!!t.builder?.creator:!1}function mC(t){return t?Bu(t)||mp(t)||Vu(t)||$u(t)||AT(t):!1}function hC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function gC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function hp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function yC(t,e,r){let n=Fu(t);return hp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function EC(t,e){let n=hp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var yp={};v(yp,{findInSettings:()=>TC});function TC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var kQ={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},FQ={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},BQ={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 HQ={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 JQ={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 XQ={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 rj={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 sj={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 uj={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 dj={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var mj={name:"External Data Connector",tagline:"Execute Data Connector",icon:"Data",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var yj={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var Aj={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!0,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var CC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},Ij={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(wl),pretty:Object.values(CC)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var Rj={name:"Looping",icon:"Reuse",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var Dj={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 Nj={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(bl)},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 _T=(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))(_T||{}),Lj={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(_T)}},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 ST=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(ST||{}),Fj={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(ST),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 kC={ascending:"Ascending",descending:"Descending"},$j={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(kC)},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 Wj={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 Hj={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 Jj={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 Xj={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 rH={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 sH={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 jC={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var YC={name:"Cron Trigger",event:"cron:trigger",icon:"Clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var JC={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var ZC={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var ev={name:"Row Updated",event:"row:update",icon:"Refresh",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var rv={name:"Webhook",event:"web:trigger",icon:"Send",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var iv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var qu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(qu||{}),Mr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(Mr||{}),Wi={by_email2:["by_email"]},Se={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"}},gt=Sr("app"),Wu=Sr("app_dev"),yt=Wu,Ep="internal",Tp="budibase",sr="_design/sqlite",Ap="ta_bb_jobs",_p="ta_bb_inventory",Sp="ta_bb_expenses",Ip="ta_bb_employee";var Qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Qu||{}),Qi=(s=>(s.Auth="budibase:auth",s.Init="budibase:init",s.ACCOUNT_RETURN_URL="budibase:account:returnurl",s.DatasourceAuth="budibase:datasourceauth",s.OIDC_CONFIG="budibase:oidc:config",s))(Qi||{}),Op=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Op||{}),xp=(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))(xp||{}),IT=new Date(-2147483647e3),ju=new Date(2147483647e3),ye="default";var ba={};v(ba,{CacheKey:()=>pr,TTL:()=>ti,app:()=>rf,bustCache:()=>as,destroy:()=>ia,docWritethrough:()=>Vm,generic:()=>sa,get:()=>ri,invite:()=>tm,keys:()=>Ec,passwordReset:()=>Gm,store:()=>fr,user:()=>rn,withCache:()=>Yr,writethrough:()=>Bm});var sa={};v(sa,{CacheKey:()=>pr,TTL:()=>ti,bustCache:()=>as,destroy:()=>ia,get:()=>ri,keys:()=>Ec,store:()=>fr,withCache:()=>Yr});var Ee={};v(Ee,{DEFAULT_TENANT_ID:()=>ye,baseGlobalDBName:()=>No,doInAppContext:()=>Bv,doInAppMigrationContext:()=>$v,doInAutomationContext:()=>Fv,doInContext:()=>Qp,doInEnvironmentContext:()=>qv,doInIPContext:()=>Yp,doInIdentityContext:()=>Ro,doInScimContext:()=>Wv,doInTenant:()=>Ge,ensureSnippetContext:()=>HT,getAppDB:()=>zi,getAppId:()=>Ne,getAuditLogDBName:()=>QT,getAuditLogsDB:()=>jv,getAutomationId:()=>jp,getCurrentContext:()=>Zi,getDevAppDB:()=>Yv,getEnvironmentVariables:()=>Qv,getFeatureFlags:()=>Kp,getGlobalDB:()=>ie,getGlobalDBName:()=>ar,getIP:()=>Hp,getIdentity:()=>or,getPlatformURL:()=>Wp,getProdAppDB:()=>Hv,getProdAppId:()=>Vv,getScimDBName:()=>Uv,getTableForView:()=>Kv,getTenantIDFromAppID:()=>Ji,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Br,isScim:()=>Nt,isTenancyEnabled:()=>Mv,isTenantIdSet:()=>Lv,setFeatureFlags:()=>Jp,setTableForView:()=>Jv});var xo={};v(xo,{doInAccountContext:()=>uv,doInIdentityContext:()=>bp,doInUserContext:()=>Dp,getAccountUserId:()=>OT,getIdentity:()=>wp});function wp(){return or()}function bp(t,e){return Ro(t,e)}function Dp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return bp(n,r)}function uv(t,e){let r=OT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return bp(i,e)}function OT(t){let e;return Va(t)?e=t.budibaseUserId:e=t.accountId,e}var Ku=require("fs");var wT=require("lodash"),Cp=require("crypto");function vp(){return bT()}function bT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Yu(){return process.env.NODE_ENV!=="production"}function cv(t){if(t)return parseInt(t)}var xT=!1;!xT&&Yu()&&!vp()&&(require("dotenv").config(),xT=!0);var ji={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},RT=!!parseInt(process.env.SELF_HOSTED||"");function lv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function dv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function pv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Ku.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Ku.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Yu()&&!vp())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 fv(){return Ct.SERVICE_TYPE==="worker"}function mv(){return Ct.SERVICE_TYPE==="apps"}function hv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}var Ct={isTest:vp,isJest:bT,isDev:Yu,isWorker:fv,isApps:mv,isQA:hv,isProd:()=>!Yu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Cp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Cp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:lv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:RT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||ji.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||ji.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||ji.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||ji.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||ji.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||ji.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:process.env.SERVICE||"budibase",LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:dv(),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:RT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...pv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Ct[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:cv(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,wT.cloneDeep)(Ct),r;for(r in t)Ct._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Ct._set(n,i)}}function DT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var CT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Ct))e==="0"&&(Ct[t]=0),e==="false"&&(Ct[t]=0);var h=Ct;var vT=require("async_hooks"),ve=class t{static{this.storage=new vT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Np="No app provided";function kr(t){if(!t)throw Np;return t.startsWith(yt)}function gv(t){if(!t)throw Np;return t.startsWith(gt)&&!kr(t)}function bo(t){if(!t)throw Np;return kr(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 yv=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 Ev(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Pp(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:Pp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Pp=(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 qT=j(require("@budibase/nano"));var NT=j(require("node-fetch"));function zu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function PT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,NT.default)(zu(encodeURI(t)),i)}async function Zu(t,e="GET",r){let n=await PT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var jn=j(require("pouchdb"));var UT,LT=!1,Up=(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 Xu(t){UT=Up(t),LT=!0}var Av=()=>{if(!LT)throw new Error("init has not been called")};function Et(t,e){Av();let r=new UT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Co(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var MT=require("uuid");function Ie(){return(0,MT.v4)().replace(/-/g,"")}var xe=j(require("dd-trace")),Hi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return xe.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return xe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return xe.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return xe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return xe.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return xe.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return xe.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return xe.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return xe.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var $p={};v($p,{breakExternalTableId:()=>kp,breakRowIdField:()=>Cv,buildExternalTableId:()=>Ov,convertRowId:()=>Dv,encodeTableId:()=>xv,encodeViewId:()=>Rv,generateRowIdField:()=>wv,getNativeSql:()=>Yi,isExternalTable:()=>Mp,isExternalTableID:()=>ec,isInternalTableID:()=>Iv,isInvalidISODateString:()=>Fp,isRowId:()=>bv,isValidFilter:()=>tc,isValidISODateString:()=>Bp,isValidTime:()=>vv,sqlLog:()=>vo,validateManyToMany:()=>Gp});var Lp=`${N}${N}`,FT=/^\[.*]$/g,_v=encodeURIComponent(" "),BT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,Sv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ec(t){return t.startsWith("datasource"+N)}function Iv(t){return!ec(t)}function Yi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function Mp(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==Ri||t?.sourceType==="external"?!0:!!(t?._id&&ec(t._id))}function Ov(t,e){return`${t}${Lp}${encodeURIComponent(e)}`}function xv(t){return ec(t)?encodeURIComponent(t):t}function Rv(t){return encodeURIComponent(t)}function kp(t){let e=t.split(Lp),r=e.shift(),n=e.join(Lp);if(n.includes(_v)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function wv(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}function bv(t){return Array.isArray(t)||typeof t=="string"&&t.match(FT)!=null}function Dv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(FT)!=null?t.substring(1,t.length-1):t}function Cv(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 Fp(t){let e=t.trim();if(!BT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Bp(t){return BT.test(t.trim())}function tc(t){return t!=null&&t!==""}function vv(t){return Sv.test(t)}function vo(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function Nv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Gp(t){if(Nv(t))return t}var GT="Database does not exist.";function $T(t){return(0,qT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Fr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function Pv(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Ki(t,r,e);return new Hi(n)}var Ki=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=$T(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=$T(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Fr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===GT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Fr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Fr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(vh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Fr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Ie()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===GT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=zu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Fr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${sr}`;return vo("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(sr)){let e=await this.get(sr);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Fr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function He(t,e){return new Hi(new Ki(t,e))}async function at(t,e,r){let n=He(t,r);return await e(n)}async function Vp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Zu(e)}async function qp(t,e){let r=await Zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var WT=null;function ar(t){return t||(t=Q()),No(t)}function QT(t){return t||(t=Q()),t===ye?Se.AUDIT_LOGS.name:`${t}${N}${Se.AUDIT_LOGS.name}`}function Uv(t){return t||(t=Q()),t===ye?Se.SCIM_LOGS.name:`${t}${N}${Se.SCIM_LOGS.name}`}function No(t){return!t||t===ye?Se.GLOBAL.name:`${t}${N}${Se.GLOBAL.name}`}function Wp(){return h.PLATFORM_URL}function Br(){return!!h.MULTI_TENANCY}function Lv(){return!!ve.get()?.tenantId}function Mv(){return h.MULTI_TENANCY}function Ji(t){if(!t)return;if(!Br())return ye;let e=t.split(N),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function kv(t){let e;try{e=ve.get()}catch{e={}}return e={...e,...t},e}async function Gr(t,e){Gv();let r=kv(t);return ve.run(r,e)}async function Fv(t){return await HT(),await Gr({tenantId:Ji(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Qp(t,e){let r=Ji(t);return Gr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||ye),Gr(t?{tenantId:t}:{},e)}async function Bv(t,e){return jT(t,e)}async function jT(t,e,r){if(!t)throw new Error("appId is required");let n=Ji(t),i={appId:t,...r};return n&&(i.tenantId=n),Gr(i,e)}async function Ro(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Gr(r,e)}function Gv(){if(ve.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function $v(t,e){return jT(t,e,{isMigrating:!0})}function or(){try{return ve.get()?.identity}catch{}}function Q(){if(!Br())return ye;let e=ve.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function jp(){return ve.get()?.automationId}function Ne(){let e=ve.get()?.appId;return!e&&h.isTest()&&WT?WT:e}function Hp(){return ve.get()?.ip}var Vv=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function qv(t,e){if(!t)throw new Error("Must supply environment variables.");return Gr({environmentVariables:t},e)}function Wv(t){return Gr({isScim:!0},t)}function Yp(t,e){return Gr({ip:t},e)}async function HT(t=!h.isTest()){let e=Zi();if(!e||e.snippets)return;let r,n=zi();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function Qv(){let t=ve.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=ve.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return He(No(t?.tenantId))}function jv(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return He(QT())}function zi(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return He(e,t)}function Hv(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return He(ot(e),t)}function Yv(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return He(Ju(e),t)}function Nt(){return!!ve.get()?.isScim}function Zi(){try{return ve.get()}catch{return}}function Kp(t){let e=Zi();if(e)return e.featureFlagCache?.[t]}function Jp(t,e){let r=Zi();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function Kv(t){let e=Zi();if(e)return e.viewToTableCache?.[t]}function Jv(t,e){let r=Zi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Hr={};v(Hr,{getAppClient:()=>cc,getCacheClient:()=>kf,getDocWritethroughClient:()=>XN,getInviteClient:()=>Xn,getLockClient:()=>Bf,getPasswordResetClient:()=>na,getSessionClient:()=>jr,getSocketClient:()=>ZN,getUserClient:()=>ra,getWritethroughClient:()=>Ff,init:()=>Ut,shutdown:()=>o_});var i_=j(require("ioredis"));var ic={};v(ic,{Databases:()=>zp,SEPARATOR:()=>Xi,SelectableDatabase:()=>rc,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>nc,getRedisOptions:()=>es,removeDbPrefix:()=>Zp});var zv=2e3,YT=1e4,Xi="-",zp=(y=>(y.PW_RESETS="pwReset",y.VERIFICATIONS="verification",y.INVITATIONS="invitation",y.DEV_LOCKS="devLocks",y.DEBOUNCE="debounce",y.SESSIONS="session",y.USER_CACHE="users",y.FLAGS="flags",y.APP_METADATA="appMetadata",y.QUERY_VARS="queryVars",y.LICENSES="license",y.GENERIC_CACHE="data_cache",y.WRITE_THROUGH="writeThrough",y.LOCKS="locks",y.SOCKET_IO="socket_io",y.BPM_EVENTS="bpmEvents",y.DOC_WRITE_THROUGH="docWriteThrough",y))(zp||{}),rc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(rc||{});function nc(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function es(){let{host:t,password:e,port:r}=nc(),n={connectTimeout:YT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:YT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:zv,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Xi}${e}`}function Zp(t){let e=t.split(Xi);return e.length>=2?(e.shift(),e.join(Xi)):e[0]}var yc={};v(yc,{correlation:()=>Po,logAlert:()=>Jn,logAlertWithInfo:()=>jN,logWarn:()=>ss,logger:()=>gc,system:()=>wf});var Po={};v(Po,{getId:()=>Xp,setHeader:()=>Zv});var KT=require("correlation-id"),Zv=t=>{let e=KT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Xp(){return KT.getId()}var hc=j(require("pino")),r_=j(require("pino-pretty"));var bf=j(require("dd-trace")),n_=require("dd-trace/ext");var wf={};v(wf,{getLogReadStream:()=>GN,getSingleFileMaxSizeInfo:()=>t_,localFileDestination:()=>Rf});var Vo=j(require("fs")),xf=j(require("path")),zA=j(require("rotating-file-stream"));var Of={};v(Of,{ObjectStore:()=>Pt,ObjectStoreBuckets:()=>eN,SIGNED_FILE_PREFIX:()=>Af,bucketTTLConfig:()=>sc,budibaseTempDir:()=>Hn,clientLibraryCDNUrl:()=>PN,clientLibraryPath:()=>qA,clientLibraryUrl:()=>UN,createBucketIfNotExists:()=>$o,deleteFile:()=>RN,deleteFiles:()=>wN,deleteFolder:()=>GA,downloadTarball:()=>DN,downloadTarballDirect:()=>bN,enrichPluginURLs:()=>kN,extractBucketAndPath:()=>ef,getAppFileUrl:()=>LN,getGlobalFileS3Key:()=>WA,getGlobalFileUrl:()=>MN,getObjectMetadata:()=>CN,getPluginIconKey:()=>HA,getPluginJSKey:()=>jA,getPluginS3Dir:()=>KA,getPresignedUrl:()=>Wr,getReadStream:()=>oc,listAllObjects:()=>BA,processAutomationAttachment:()=>rN,processObjectStoreAttachment:()=>eA,retrieve:()=>FA,retrieveDirectory:()=>xN,retrieveToTmp:()=>ON,sanitizeBucket:()=>Ke,sanitizeKey:()=>Pe,streamUpload:()=>kA,upload:()=>IN,uploadDirectory:()=>_f});var fc=require("@aws-sdk/client-s3"),hf=require("@aws-sdk/lib-storage"),PA=require("@aws-sdk/s3-request-presigner"),Go=j(require("stream")),gf=j(require("node-fetch")),yf=j(require("tar-fs")),Ef=j(require("zlib")),UA=require("util"),qr=require("path"),dr=j(require("fs"));var Uo=j(require("path")),JT=require("os"),zT=j(require("fs"));var ZT=j(require("stream")),eN={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},XT=(0,Uo.join)((0,JT.tmpdir)(),".budibase");try{zT.default.mkdirSync(XT)}catch(t){if(t.code!=="EEXIST")throw t}function Hn(){return XT}var sc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function tN(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Uo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:ZT.default.Readable.fromWeb(e.body)}}async function eA(t){let e=ef(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await oc(r,n),s=Uo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function rN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await tN(t):await eA(t)}var Tf=require("uuid");var $r={};v($r,{APP_DEV:()=>Wu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>qu,BUDIBASE_DATASOURCE_TYPE:()=>Tp,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Ip,DEFAULT_EXPENSES_TABLE_ID:()=>Sp,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Ap,DatabaseImpl:()=>Ki,DatabaseWithConnection:()=>Pv,DeprecatedViews:()=>Wi,DocumentType:()=>Te,InternalTable:()=>Ir,QueryBuilder:()=>lr,Replication:()=>bA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>Ep,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>Mr,baseGlobalDBName:()=>No,checkErrorCode:()=>NA,closePouchDB:()=>Co,createApiKeyView:()=>IA,createNewUserEmailView:()=>_A,createPlatformAccountEmailView:()=>xA,createPlatformUserView:()=>RA,createUserAppView:()=>SA,createView:()=>ns,dbExists:()=>fN,directCouchAllDbs:()=>Vp,directCouchCall:()=>PT,directCouchFind:()=>qp,directCouchQuery:()=>Zu,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>Ev,fullSearch:()=>yN,generateAppID:()=>rA,generateAppUserID:()=>lc,generateDevInfoID:()=>cA,generateGlobalUserID:()=>ts,generatePluginID:()=>lA,generateRoleID:()=>sf,generateRowID:()=>nf,generateTableID:()=>nA,generateTemplateID:()=>uA,generateUserMetadataID:()=>oA,generateWorkspaceID:()=>iA,getAllApps:()=>Mo,getAllDbs:()=>AA,getAppsByIDs:()=>cN,getCouchInfo:()=>vt,getDB:()=>He,getDevAppID:()=>yv,getDevAppIDs:()=>dN,getDevelopmentAppID:()=>Ju,getDocParams:()=>rs,getGlobalDBName:()=>ar,getGlobalIDFromUserMetadataID:()=>aA,getGlobalUserParams:()=>Yn,getPluginParams:()=>TA,getPouch:()=>Up,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>lN,getQueryIndex:()=>dA,getRoleParams:()=>pc,getRowParams:()=>of,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>EA,getUrlInfo:()=>Pp,getUserMetadataParams:()=>yA,getUsersByAppParams:()=>dc,getWorkspaceParams:()=>gA,init:()=>Xu,isDatasourceId:()=>mA,isDevApp:()=>bo,isDevAppID:()=>kr,isDocumentConflictError:()=>TN,isExternalTableId:()=>af,isGlobalUserID:()=>sA,isProdAppID:()=>gv,isQueryId:()=>hA,isSameAppID:()=>pN,isTableId:()=>pA,isViewId:()=>fA,paginatedSearch:()=>gN,pagination:()=>cf,prefixRoleID:()=>ur,queryGlobalView:()=>cr,queryGlobalViewRaw:()=>pf,queryPlatformView:()=>Fo,queryView:()=>df,queryViewRaw:()=>ko,removeKeyNumbering:()=>Bo,searchIndexes:()=>mf});var rf={};v(rf,{AppState:()=>tf,getAppMetadata:()=>uc,invalidateAppMetadata:()=>oN});var tf=(e=>(e.INVALID="invalid",e))(tf||{}),tA=3600,nN=60;async function iN(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function sN(t){return!t||t.state==="invalid"}async function uc(t){let e=await cc(),r=await e.get(t);if(!r){let n=tA;try{r=await iN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=nN;else throw i}if(sN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function oN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await cc();await r.delete(t),e&&await r.store(t,e,tA)}var uf={};v(uf,{generateAppID:()=>rA,generateAppUserID:()=>lc,generateDevInfoID:()=>cA,generateGlobalUserID:()=>ts,generatePluginID:()=>lA,generateRoleID:()=>sf,generateRowID:()=>nf,generateTableID:()=>nA,generateTemplateID:()=>uA,generateUserMetadataID:()=>oA,generateWorkspaceID:()=>iA,getDocParams:()=>rs,getGlobalIDFromUserMetadataID:()=>aA,getGlobalUserParams:()=>Yn,getPluginParams:()=>TA,getQueryIndex:()=>dA,getRoleParams:()=>pc,getRowParams:()=>of,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>EA,getUserMetadataParams:()=>yA,getUsersByAppParams:()=>dc,getWorkspaceParams:()=>gA,isDatasourceId:()=>mA,isExternalTableId:()=>af,isGlobalUserID:()=>sA,isQueryId:()=>hA,isTableId:()=>pA,isViewId:()=>fA,prefixRoleID:()=>ur});var rA=t=>{let e=gt;return t&&(e+=`${t}${N}`),`${e}${Ie()}`};function nA(){return`ta${N}${Ie()}`}function nf(t,e){return e=e||Ie(),`ro${N}${t}${N}${e}`}function iA(){return`workspace${N}${Ie()}`}function ts(t){return`us${N}${t||Ie()}`}var aN=new RegExp(`^us${N}.+`);function sA(t){return aN.test(t)}function oA(t){return nf("ta_users",t)}function aA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function uA(t){return`template${N}${t}${N}${Ie()}`}function lc(t,e){return`${t}${N}${e}`}function sf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function ur(t){return sf(t)}var cA=t=>`devinfo${N}${t}`,lA=t=>`plg${N}${t}`;var uN=new RegExp("^datasource_plus_(.+)__(.+)$");function rs(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${ke}`}}function of(t,e,r={}){if(t==null)return rs("ro",null,r);let n=e??`${t}${N}`;return rs("ro",n,r)}function dA(t){return`database/${t}`}var af=t=>{let e=t.match(uN);return!!t&&e!==null},pA=t=>!!t&&(t.startsWith(`ta${N}`)||af(t));function fA(t){return!!t&&t.startsWith(`view${N}`)}function mA(t){return!!t&&t.startsWith(`datasource${N}`)}function hA(t){return!!t&&t.startsWith(`query${N}`)}function gA(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${ke}`}}function Yn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${ke}`}}function yA(t,e={}){return of("ta_users",t,e)}function dc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function EA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${ke}`}}function pc(t,e={}){return rs("role",t,e)}function Lo(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var TA=(t,e={})=>rs("plg",t,e);async function AA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Vp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ye?await n():(await n(Lo("app",i)),await n(Lo("app_dev",i)),r.push(ar(i))),r}async function Mo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ye);let o=(await AA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(N);if(c[0]==="app"){let l=c[c.length-2],p=c.length===2||l==="dev";return i===ye&&p||l===i}return!1});if(r){let u=o.filter(l=>kr(l)),c=o.filter(l=>!kr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>uc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:bo(l)?"development":"published"})):c.filter(l=>t?bo(l):!bo(l))}}async function cN(t){return(await Promise.allSettled(t.map(r=>uc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function lN(){return(await Mo({idsOnly:!0})).filter(e=>!kr(e))}async function dN(){return(await Mo({idsOnly:!0})).filter(e=>kr(e))}function pN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function fN(t){return at(t,async e=>await e.exists(),{skip_setup:!0})}function cf(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 lf="_design/database";function mN(){return{_id:lf,views:{}}}async function hN(t,e){if(Wi[e])try{let r=await t.get(lf);for(let n of Wi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(lf)}catch{n=mN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var _A=async()=>{let t=ie(),e=`function(doc) {
|
|
4
|
+
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Mg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Mg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Fg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Fg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Lg.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=Ci.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ci.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=Ci.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,mu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,TR.default)(e).map(s=>new yR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new gR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,mu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Ci.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,mu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Ci.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,mu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};hu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,ER.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var $g=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Gg;Ks.default=void 0;var AR=_R(er());function _R(t){return t&&t.__esModule?t:{default:t}}var od=AR.default,SR=od;Ks.default=SR;function Gg(){return new od}Gg.prototype=od.prototype});var vi=H(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var OR=t=>t==null;gu.default=OR});var jg=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Qg;zs.default=void 0;var IR=Wg(er()),Vg=Zt(),qg=Wg(vi());function Wg(t){return t&&t.__esModule?t:{default:t}}function Qg(){return new Js}var Js=class extends IR.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=Vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,qg.default)(r)||r===!0}})}isFalse(e=Vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,qg.default)(r)||r===!1}})}};zs.default=Js;Qg.prototype=Js.prototype});var Kg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Yg;Xs.default=void 0;var Vt=Zt(),tr=Hg(vi()),xR=Hg(er());function Hg(t){return t&&t.__esModule?t:{default:t}}var RR=/^((([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,wR=/^((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,bR=/^(?:[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,DR=t=>(0,tr.default)(t)||t===t.trim(),CR={}.toString();function Yg(){return new Zs}var Zs=class extends xR.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===CR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Vt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,tr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Vt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,tr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Vt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,tr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Vt.string.matches,params:{regex:e},test:o=>(0,tr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(RR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(wR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(bR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Vt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:DR})}lowercase(e=Vt.string.lowercase){return this.transform(r=>(0,tr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toLowerCase()})}uppercase(e=Vt.string.uppercase){return this.transform(r=>(0,tr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;Yg.prototype=Zs.prototype});var Zg=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=zg;to.default=void 0;var Cn=Zt(),vn=Jg(vi()),vR=Jg(er());function Jg(t){return t&&t.__esModule?t:{default:t}}var NR=t=>t!=+t;function zg(){return new eo}var eo=class extends vR.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"&&!NR(e)}min(e,r=Cn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,vn.default)(n)||n>=this.resolve(e)}})}max(e,r=Cn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,vn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Cn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,vn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Cn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,vn.default)(n)||n>this.resolve(e)}})}positive(e=Cn.number.positive){return this.moreThan(0,e)}negative(e=Cn.number.negative){return this.lessThan(0,e)}integer(e=Cn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,vn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,vn.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,vn.default)(i)?i:Math[e](i))}};to.default=eo;zg.prototype=eo.prototype});var Xg=H(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=UR;var PR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function UR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=PR.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 ry=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=cd;ro.default=void 0;var LR=yu(Xg()),ey=Zt(),ty=yu(vi()),MR=yu(Dn()),kR=yu(er());function yu(t){return t&&t.__esModule?t:{default:t}}var ud=new Date(""),FR=t=>Object.prototype.toString.call(t)==="[object Date]";function cd(){return new Ni}var Ni=class extends kR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,LR.default)(e),isNaN(e)?ud:new Date(e))})})}_typeCheck(e){return FR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(MR.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=ey.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,ty.default)(i)||i>=this.resolve(n)}})}max(e,r=ey.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,ty.default)(i)||i<=this.resolve(n)}})}};ro.default=Ni;Ni.INVALID_DATE=ud;cd.prototype=Ni.prototype;cd.INVALID_DATE=ud});var iy=H((vW,ld)=>{"use strict";ld.exports=function(t){return ny(BR(t),t)};ld.exports.array=ny;function ny(t,e){var r=t.length,n=new Array(r),i={},s=r,o=GR(e),a=$R(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),l=p.length){d.add(c);do{var f=p[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function BR(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 GR(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 $R(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var sy=H(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=HR;var VR=Eu(require("lodash/has")),qR=Eu(iy()),WR=Qs(),QR=Eu(Dn()),jR=Eu(Di());function Eu(t){return t&&t.__esModule?t:{default:t}}function HR(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,WR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,VR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),QR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,jR.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return qR.default.array(n,r).reverse()}});var ay=H(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=YR;function oy(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 YR(t){return(e,r)=>oy(t,e)-oy(t,r)}});var my=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=fy;io.default=void 0;var uy=qt(require("lodash/has")),cy=qt(require("lodash/snakeCase")),KR=qt(require("lodash/camelCase")),JR=qt(require("lodash/mapKeys")),zR=qt(require("lodash/mapValues")),ZR=Qs(),ly=Zt(),XR=qt(sy()),py=qt(ay()),ew=qt(cu()),tw=qt(wn()),fd=qt(er());function qt(t){return t&&t.__esModule?t:{default:t}}function Pi(){return Pi=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},Pi.apply(this,arguments)}var dy=t=>Object.prototype.toString.call(t)==="[object Object]";function rw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var nw=(0,py.default)([]),no=class extends fd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=nw,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 dy(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Pi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,uy.default)(i,d);if(m){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||d in i;continue}f=!r.__validating||!y?m.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else p&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!tw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!dy(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Pi({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,ew.default)({sync:s,tests:m,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Pi({},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 fd.default&&s instanceof fd.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,py.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,XR.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,ZR.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,uy.default)(s,e)&&(o=Pi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=ly.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=rw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=ly.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,JR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(KR.default)}snakeCase(){return this.transformKeys(cy.default)}constantCase(){return this.transformKeys(e=>(0,cy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,zR.default)(this.fields,r=>r.describe()),e}};io.default=no;function fy(t){return new no(t)}fy.prototype=no.prototype});var gy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=hy;oo.default=void 0;var md=Ui(vi()),iw=Ui(Di()),sw=Ui(Ws()),hd=Zt(),ow=Ui(cu()),aw=Ui(wn()),uw=Ui(er());function Ui(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Tu.apply(this,arguments)}function hy(t){return new so(t)}var so=class extends uw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Tu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!aw.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],S=`${r.path||""}[${E}]`,_=Tu({},r,{path:S,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,_,T)}(0,ow.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,iw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,sw.default)(e));return r.innerType=e,r}length(e,r=hd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,md.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||hd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,md.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||hd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,md.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};oo.default=so;hy.prototype=so.prototype});var yy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=dw;ao.default=void 0;var cw=lw(Di());function lw(t){return t&&t.__esModule?t:{default:t}}function dw(t){return new Au(t)}var Au=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,cw.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)}},pw=Au;ao.default=pw});var Ey=H(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.default=hw;var fw=mw(Zt());function mw(t){return t&&t.__esModule?t:{default:t}}function hw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{fw.default[e][r]=t[e][r]})})}});var Ed=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Sw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return yd.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return yd.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return yd.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return _y.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Sy.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Sy.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return gw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return yw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return Ew.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return Tw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return Aw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return _w.default}});var Ty=Nn($g()),yd=Nn(jg()),Ay=Nn(Kg()),_y=Nn(Zg()),Sy=Nn(ry()),Oy=Nn(my()),Iy=Nn(gy()),gw=Dn(),yw=yy(),Ew=uo(wn()),Tw=uo(id()),xy=uo(Di()),Aw=uo(Ey()),_w=uo(er());function uo(t){return t&&t.__esModule?t:{default:t}}function Ry(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Ry=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=Ry();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 Sw(t,e,r){if(!t||!(0,xy.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 wy=H(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});var Td=_d();Ad.default=()=>{(0,Td.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,Td.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,Td.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 _d=H(Ce=>{"use strict";var Ow=Ce&&Ce.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Iw=Ce&&Ce.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),xw=Ce&&Ce.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Ow(e,t,r);return Iw(e,t),e},Rw=Ce&&Ce.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ce,"__esModule",{value:!0});Ce.validateOptions=Ce.registerOptionPreset=Ce.getOptionPresets=Ce.getOptionPreset=void 0;var R=xw(Ed());Ed();var co=It(),ww=Rw(wy());xt();var Pn={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},by=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),bw=t=>Pn[t]?(0,co.valid)(Pn[t]):(0,co.err)(`Option preset '${t}' not found.`);Ce.getOptionPreset=bw;var Dw=()=>Pn;Ce.getOptionPresets=Dw;var Cw=(t,e)=>{Pn[t]=by.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Ce.registerOptionPreset=Cw;var vw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,S,_,M;try{(0,ww.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Pn[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Pn[t.preset]}else T=t.preset;else T=Pn.default;let O=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(_=T.years.lowerLimit)!==null&&_!==void 0?_:T.years.minValue,upperLimit:(M=T.years.upperLimit)!==null&&M!==void 0?M:T.years.maxValue}}),t.override),w=R.object({presetId:R.string().required(),preset:by.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(O,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(T){return(0,co.err)(T.errors)}};Ce.validateOptions=vw});var $t=H((lo,Od)=>{"use strict";var Ln=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Un=It(),Nw=Ln(ng()),Pw=Ln(ig()),Uw=Ln(sg()),Lw=Ln(og()),Mw=Ln(ag()),kw=Ln(ug()),Fw=Ln(cg()),Bw=_d();xt();var Gw=(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)},Sd=(t,e={})=>{let r=(0,Bw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Gw(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,Nw.default)(s,n)),o.push((0,Pw.default)(s,n)),o.push((0,Uw.default)(s,n)),o.push((0,Lw.default)(s,n)),o.push((0,Mw.default)(s,n)),o.push((0,kw.default)(s,n)),n.useYears&&o.push((0,Fw.default)(s,n)),o.every(u=>u.isValid()))return(0,Un.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Un.err)(a)};lo.default=Sd;Od.exports=Sd;Od.exports.default=Sd});var ZE=H(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var nr=class extends Error{},Nd=class extends nr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Pd=class extends nr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Ud=class extends nr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Fn=class extends nr{},wu=class extends nr{constructor(e){super(`Invalid unit ${e}`)}},je=class extends nr{},Wt=class extends nr{constructor(){super("Zone is an abstract class")}},b="numeric",Dt="short",rt="long",bu={year:b,month:b,day:b},eE={year:b,month:Dt,day:b},$w={year:b,month:Dt,day:b,weekday:Dt},tE={year:b,month:rt,day:b},rE={year:b,month:rt,day:b,weekday:rt},nE={hour:b,minute:b},iE={hour:b,minute:b,second:b},sE={hour:b,minute:b,second:b,timeZoneName:Dt},oE={hour:b,minute:b,second:b,timeZoneName:rt},aE={hour:b,minute:b,hourCycle:"h23"},uE={hour:b,minute:b,second:b,hourCycle:"h23"},cE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Dt},lE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:rt},dE={year:b,month:b,day:b,hour:b,minute:b},pE={year:b,month:b,day:b,hour:b,minute:b,second:b},fE={year:b,month:Dt,day:b,hour:b,minute:b},mE={year:b,month:Dt,day:b,hour:b,minute:b,second:b},Vw={year:b,month:Dt,day:b,weekday:Dt,hour:b,minute:b},hE={year:b,month:rt,day:b,hour:b,minute:b,timeZoneName:Dt},gE={year:b,month:rt,day:b,hour:b,minute:b,second:b,timeZoneName:Dt},yE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,timeZoneName:rt},EE={year:b,month:rt,day:b,weekday:rt,hour:b,minute:b,second:b,timeZoneName:rt},Nr=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,r){throw new Wt}formatOffset(e,r){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},Id=null,Eo=class t extends Nr{static get instance(){return Id===null&&(Id=new t),Id}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return AE(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},xu={};function qw(t){return xu[t]||(xu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),xu[t]}var Ww={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Qw(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 jw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Ww[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var _u={},ir=class t extends Nr{static create(e){return _u[e]||(_u[e]=new t(e)),_u[e]}static resetCache(){_u={},xu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return AE(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=qw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?jw(n,r):Qw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=jd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,f=p%1e3;return p-=f>=0?f:1e3+f,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Dy={};function Hw(t,e={}){let r=JSON.stringify([t,e]),n=Dy[r];return n||(n=new Intl.ListFormat(t,e),Dy[r]=n),n}var Ld={};function Md(t,e={}){let r=JSON.stringify([t,e]),n=Ld[r];return n||(n=new Intl.DateTimeFormat(t,e),Ld[r]=n),n}var kd={};function Yw(t,e={}){let r=JSON.stringify([t,e]),n=kd[r];return n||(n=new Intl.NumberFormat(t,e),kd[r]=n),n}var Fd={};function Kw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Fd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Fd[i]=s),s}var ho=null;function Jw(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function zw(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=Md(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Md(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Zw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Xw(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function eb(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function tb(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 Bd=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=Yw(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):Qd(e,3);return Re(r,this.padTo)}}},Gd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ir.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Md(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},$d=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&TE()&&(this.rtf=Kw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):yb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||ge.defaultLocale,o=s||(i?"en-US":Jw()),a=r||ge.defaultNumberingSystem,u=n||ge.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Ld={},kd={},Fd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=zw(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Zw(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=tb(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Su(this,e,n,OE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Xw(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,RE,()=>{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]=eb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>wE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Su(this,e,r,bE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Bd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Gd(e,this.intl,r)}relFormatter(e={}){return new $d(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Hw(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}},xd=null,nt=class t extends Nr{static get utcInstance(){return xd===null&&(xd=new t(0)),xd}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Uu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Du=class extends Nr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function vr(t,e){if(ne(t)||t===null)return e;if(t instanceof Nr)return t;if(rb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||ir.create(t)}else return Gn(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Du(t)}var Cy=()=>Date.now(),vy="system",Ny=null,Py=null,Uy=null,Ly=60,My,ge=class{static get now(){return Cy}static set now(e){Cy=e}static set defaultZone(e){vy=e}static get defaultZone(){return vr(vy,Eo.instance)}static get defaultLocale(){return Ny}static set defaultLocale(e){Ny=e}static get defaultNumberingSystem(){return Py}static set defaultNumberingSystem(e){Py=e}static get defaultOutputCalendar(){return Uy}static set defaultOutputCalendar(e){Uy=e}static get twoDigitCutoffYear(){return Ly}static set twoDigitCutoffYear(e){Ly=e%100}static get throwOnInvalid(){return My}static set throwOnInvalid(e){My=e}static resetCaches(){Ae.resetCache(),ir.resetCache()}};function ne(t){return typeof t>"u"}function Gn(t){return typeof t=="number"}function Pu(t){return typeof t=="number"&&t%1===0}function rb(t){return typeof t=="string"}function nb(t){return Object.prototype.toString.call(t)==="[object Date]"}function TE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function ib(t){return Array.isArray(t)?t:[t]}function ky(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 sb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Fi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function rr(t,e,r){return Pu(t)&&t>=e&&t<=r}function ob(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Cr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Mn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Wd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Qd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Cu(t,e){let r=ob(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function jd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function vu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Vd(t){return t>99?t:t>ge.twoDigitCutoffYear?1900+t:2e3+t}function AE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Uu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function _E(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new je(`Invalid unit value ${t}`);return e}function Nu(t,e){let r={};for(let n in t)if(Fi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=_E(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Lu(t){return sb(t,["hour","minute","second","millisecond"])}var ab=["January","February","March","April","May","June","July","August","September","October","November","December"],SE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ub=["J","F","M","A","M","J","J","A","S","O","N","D"];function OE(t){switch(t){case"narrow":return[...ub];case"short":return[...SE];case"long":return[...ab];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 IE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],xE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],cb=["M","T","W","T","F","S","S"];function RE(t){switch(t){case"narrow":return[...cb];case"short":return[...xE];case"long":return[...IE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var wE=["AM","PM"],lb=["Before Christ","Anno Domini"],db=["BC","AD"],pb=["B","A"];function bE(t){switch(t){case"narrow":return[...pb];case"short":return[...db];case"long":return[...lb];default:return null}}function fb(t){return wE[t.hour<12?0:1]}function mb(t,e){return RE(e)[t.weekday-1]}function hb(t,e){return OE(e)[t.month-1]}function gb(t,e){return bE(e)[t.year<0?0:1]}function yb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function Fy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Eb={D:bu,DD:eE,DDD:tE,DDDD:rE,t:nE,tt:iE,ttt:sE,tttt:oE,T:aE,TT:uE,TTT:cE,TTTT:lE,f:dE,ff:fE,fff:hE,ffff:yE,F:pE,FF:mE,FFF:gE,FFFF:EE},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 Eb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?fb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?hb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?mb(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?gb(e,p):s({era:p},"era"),m=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(p)}};return Fy(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 Fy(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},DE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Bi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Gi(...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 $i(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 CE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Cr(e[r+i]);return[n,null,r+i]}}var vE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Tb=`(?:${vE.source}?(?:\\[(${DE.source})\\])?)?`,Hd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,NE=RegExp(`${Hd.source}${Tb}`),Yd=RegExp(`(?:T${NE.source})?`),Ab=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,_b=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Sb=/(\d{4})-?(\d{3})/,Ob=CE("weekYear","weekNumber","weekDay"),Ib=CE("year","ordinal"),xb=/(\d{4})-(\d\d)-(\d\d)/,PE=RegExp(`${Hd.source} ?(?:${vE.source}|(${DE.source}))?`),Rb=RegExp(`(?: ${PE.source})?`);function ki(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function wb(t,e){return[{year:ki(t,e),month:ki(t,e+1,1),day:ki(t,e+2,1)},null,e+3]}function Vi(t,e){return[{hours:ki(t,e,0),minutes:ki(t,e+1,0),seconds:ki(t,e+2,0),milliseconds:Wd(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Uu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?ir.create(t[e]):null;return[{},r,e+1]}var bb=RegExp(`^T?${Hd.source}$`),Db=/^-?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 Cb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(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(Wd(c),d)}]}var vb={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 Kd(t,e,r,n,i,s,o){let a={year:e.length===2?Vd(Cr(e)):Cr(e),month:SE.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?IE.indexOf(t)+1:xE.indexOf(t)+1),a}var Nb=/^(?:(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 Pb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Kd(e,i,n,r,s,o,a),p;return u?p=vb[u]:c?p=0:p=Uu(l,d),[m,new nt(p)]}function Ub(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Lb=/^(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$/,Mb=/^(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$/,kb=/^(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 By(t){let[,e,r,n,i,s,o,a]=t;return[Kd(e,i,n,r,s,o,a),nt.utcInstance]}function Fb(t){let[,e,r,n,i,s,o,a]=t;return[Kd(e,a,r,n,i,s,o),nt.utcInstance]}var Bb=Bi(Ab,Yd),Gb=Bi(_b,Yd),$b=Bi(Sb,Yd),Vb=Bi(NE),UE=Gi(wb,Vi,Ao,_o),qb=Gi(Ob,Vi,Ao,_o),Wb=Gi(Ib,Vi,Ao,_o),Qb=Gi(Vi,Ao,_o);function jb(t){return $i(t,[Bb,UE],[Gb,qb],[$b,Wb],[Vb,Qb])}function Hb(t){return $i(Ub(t),[Nb,Pb])}function Yb(t){return $i(t,[Lb,By],[Mb,By],[kb,Fb])}function Kb(t){return $i(t,[Db,Cb])}var Jb=Gi(Vi);function zb(t){return $i(t,[bb,Jb])}var Zb=Bi(xb,Rb),Xb=Bi(PE),eD=Gi(Vi,Ao,_o);function tD(t){return $i(t,[Zb,UE],[Xb,eD])}var rD="Invalid Duration",LE={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}},nD={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},...LE},mt=146097/400,Li=146097/4800,iD={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:Li/7,days:Li,hours:Li*24,minutes:Li*24*60,seconds:Li*24*60*60,milliseconds:Li*24*60*60*1e3},...LE},kn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],sD=kn.slice(0).reverse();function Dr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new be(n)}function oD(t){return t<0?Math.floor(t):Math.ceil(t)}function ME(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?oD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function aD(t,e){sD.reduce((r,n)=>ne(e[n])?r:(r&&ME(t,e,r,e,n),n),null)}function uD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var be=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?iD:nD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new je(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Nu(e,t.normalizeUnit),loc:Ae.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Gn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new je(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=Kb(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]=zb(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new je("need to specify a reason the Duration is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Ud(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 wu(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):rD}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+=Qd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of kn)(Fi(r.values,i)||Fi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Dr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=_E(e(this.values[n],n));return Dr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Nu(e,t.normalizeUnit)};return Dr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Dr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return aD(this.matrix,e),Dr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=uD(this.normalize().shiftToAll().toObject());return Dr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of kn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;Gn(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)kn.indexOf(c)>kn.indexOf(o)&&ME(this.matrix,i,c,r,o)}else Gn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return Dr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Dr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of kn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Mi="Invalid Interval";function cD(t,e){return!t||!t.isValid?$n.invalid("missing or invalid start"):!e||!e.isValid?$n.invalid("missing or invalid end"):e<t?$n.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var $n=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new je("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Pd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=cD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=be.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=be.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=be.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=be.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=be.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Mi}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Mi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Mi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Mi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Mi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Mi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):be.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Bn=class{static hasDST(e=ge.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ir.isValidZone(e)}static normalizeZone(e){return vr(e,ge.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.create(r,null,"gregory").eras(e)}static features(){return{relative:TE()}}};function Gy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(be.fromMillis(n).as("days"))}function lD(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=Gy(u,c);return(l-l%7)/7}],["days",Gy]],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 dD(t,e,r,n){let[i,s,o,a]=lD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=be.fromObject(s,n);return c.length>0?be.fromMillis(u,n).shiftTo(...c).plus(l):l}var Jd={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"},$y={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]},pD=Jd.hanidec.replace(/[\[|\]]/g,"").split("");function fD(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(Jd.hanidec)!==-1)e+=pD.indexOf(t[r]);else for(let i in $y){let[s,o]=$y[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Jd[t||"latn"]}${e}`)}var mD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(fD(r))}}var hD=String.fromCharCode(160),kE=`[ ${hD}]`,FE=new RegExp(kE,"g");function gD(t){return t.replace(/\./g,"\\.?").replace(FE,kE)}function Vy(t){return t.replace(/\./g,"").replace(FE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(gD).join("|")),deser:([r])=>t.findIndex(n=>Vy(r)===Vy(n))+e}}function qy(t,e){return{regex:t,deser:([,r,n])=>Uu(r,n),groups:e}}function Rd(t){return{regex:t,deser:([e])=>e}}function yD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function ED(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),d=wt(e,"{2,4}"),m=wt(e,"{4,6}"),p=E=>({regex:RegExp(yD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ce(c);case"yy":return ce(d,Vd);case"yyyy":return ce(s);case"yyyyy":return ce(m);case"yyyyyy":return ce(o);case"M":return ce(a);case"MM":return ce(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ce(a);case"LL":return ce(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ce(a);case"dd":return ce(n);case"o":return ce(u);case"ooo":return ce(i);case"HH":return ce(n);case"H":return ce(a);case"hh":return ce(n);case"h":return ce(a);case"mm":return ce(n);case"m":return ce(a);case"q":return ce(a);case"qq":return ce(n);case"s":return ce(a);case"ss":return ce(n);case"S":return ce(u);case"SSS":return ce(i);case"u":return Rd(l);case"uu":return Rd(a);case"uuu":return ce(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(d,Vd);case"W":return ce(a);case"WW":return ce(n);case"E":case"c":return ce(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return qy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return qy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Rd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:mD};return g.token=t,g}var TD={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=TD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function _D(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function SD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Fi(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 OD(t){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},r=null,n;return ne(t.z)||(r=ir.create(t.z)),ne(t.Z)||(r||(r=new nt(t.Z)),n=t.Z),ne(t.q)||(t.M=(t.q-1)*3+1),ne(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),ne(t.u)||(t.S=Wd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var wd=null;function ID(){return wd||(wd=_e.fromMillis(1555555555555)),wd}function xD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=$E(r,e);return n==null||n.includes(void 0)?t:n}function BE(t,e){return Array.prototype.concat(...t.map(r=>xD(r,e)))}function GE(t,e,r){let n=BE(et.parseFormat(r),t),i=n.map(o=>ED(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=_D(i),u=RegExp(o,"i"),[c,l]=SD(e,u,a),[d,m,p]=l?OD(l):[null,null,void 0];if(Fi(l,"a")&&Fi(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:d,zone:m,specificOffset:p}}}function RD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=GE(t,e,r);return[n,i,s,o]}function $E(t,e){return t?et.create(e,t).formatDateTimeParts(ID()).map(i=>AD(i,t)):null}var VE=[0,31,59,90,120,151,181,212,243,273,304,334],qE=[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 WE(t,e,r){let n=new Date(Date.UTC(t,e-1,r));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);let i=n.getUTCDay();return i===0?7:i}function QE(t,e,r){return r+(To(t)?qE:VE)[e-1]}function jE(t,e){let r=To(t)?qE:VE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function qd(t){let{year:e,month:r,day:n}=t,i=QE(e,r,n),s=WE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=vu(a)):o>vu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function Wy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=WE(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=jE(a,o);return{year:a,month:u,day:c,...Lu(t)}}function bd(t){let{year:e,month:r,day:n}=t,i=QE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Qy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=jE(e,r);return{year:e,month:n,day:i,...Lu(t)}}function wD(t){let e=Pu(t.weekYear),r=rr(t.weekNumber,1,vu(t.weekYear)),n=rr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function bD(t){let e=Pu(t.year),r=rr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function HE(t){let e=Pu(t.year),r=rr(t.month,1,12),n=rr(t.day,1,Cu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function YE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=rr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=rr(r,0,59),a=rr(n,0,59),u=rr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Dd="Invalid DateTime",jy=864e13;function Ou(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function Cd(t){return t.weekData===null&&(t.weekData=qd(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function KE(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 Hy(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 Ru(t,e,r){return KE(jd(t),e,r)}function Yy(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,Cu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=be.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=jd(s),[u,c]=KE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Iu(t,e,r=!0){return t.isValid?et.create(Ae.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function vd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function Ky(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var JE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},DD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},CD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},zE=["year","month","day","hour","minute","second","millisecond"],vD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ND=["year","ordinal","hour","minute","second","millisecond"];function Jy(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 wu(t);return e}function zy(t,e){let r=vr(e.zone,ge.defaultZone),n=Ae.fromObject(e),i=ge.now(),s,o;if(ne(t.year))s=i;else{for(let c of zE)ne(t[c])&&(t[c]=JE[c]);let a=HE(t)||YE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=Ru(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function Zy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Qd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function Xy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||ge.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Ou(r));this.ts=ne(e.ts)?ge.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=Hy(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Ae.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Xy(arguments),[n,i,s,o,a,u,c]=r;return zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Xy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=nb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=vr(r.zone,ge.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(Ou(i))}static fromMillis(e,r={}){if(Gn(e))return e<-jy||e>jy?t.invalid("Timestamp out of range"):new t({ts:e,zone:vr(r.zone,ge.defaultZone),loc:Ae.fromObject(r)});throw new je(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Gn(e))return new t({ts:e*1e3,zone:vr(r.zone,ge.defaultZone),loc:Ae.fromObject(r)});throw new je("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=vr(r.zone,ge.defaultZone);if(!n.isValid)return t.invalid(Ou(n));let i=ge.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Nu(e,Jy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Ae.fromObject(r);if((l||a)&&d)throw new 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 p=d||o.weekday&&!l,f,g,E=Hy(i,s);p?(f=vD,g=DD,E=qd(E)):a?(f=ND,g=CD,E=bd(E)):(f=zE,g=JE);let y=!1;for(let w of f){let B=o[w];ne(B)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let S=p?wD(o):a?bD(o):HE(o),_=S||YE(o);if(_)return t.invalid(_);let M=p?Wy(o):a?Qy(o):o,[T,O]=Ru(M,s,n),x=new t({ts:T,zone:n,o:O,loc:m});return o.weekday&&l&&e.weekday!==x.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${x.toISO()}`):x}static fromISO(e,r={}){let[n,i]=jb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Hb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=Yb(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new je("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=RD(o,e,r);return l?t.invalid(l):fo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=tD(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new je("need to specify a reason the DateTime is invalid");let n=e instanceof tt?e:new tt(e,r);if(ge.throwOnInvalid)throw new Nd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=$E(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return BE(et.parseFormat(e),Ae.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Cd(this).weekYear:NaN}get weekNumber(){return this.isValid?Cd(this).weekNumber:NaN}get weekday(){return this.isValid?Cd(this).weekday:NaN}get ordinal(){return this.isValid?bd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Bn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Bn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Bn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Bn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return To(this.year)}get daysInMonth(){return Cu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?vu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(nt.instance(e),r)}toLocal(){return this.setZone(ge.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=vr(e,ge.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=Ru(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Ou(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Nu(e,Jy),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=Wy({...qd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Cu(c.year,c.month),c.day))):c=Qy({...bd(this.c),...r});let[l,d]=Ru(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e);return po(this,Yy(this,r))}minus(e){if(!this.isValid)return this;let r=be.fromDurationLike(e).negate();return po(this,Yy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=be.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?et.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Dd}toLocaleString(e=bu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Dd}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=vd(this,o);return a+="T",a+=Ky(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?vd(this,e==="extended"):null}toISOWeekDate(){return Iu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+Ky(this,o==="extended",r,e,n,s):null}toRFC2822(){return Iu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Iu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?vd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Iu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Dd}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return be.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=ib(r).map(be.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=dD(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),Zy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Zy(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new je("min requires all arguments be DateTimes");return ky(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new je("max requires all arguments be DateTimes");return ky(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return GE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return bu}static get DATE_MED(){return eE}static get DATE_MED_WITH_WEEKDAY(){return $w}static get DATE_FULL(){return tE}static get DATE_HUGE(){return rE}static get TIME_SIMPLE(){return nE}static get TIME_WITH_SECONDS(){return iE}static get TIME_WITH_SHORT_OFFSET(){return sE}static get TIME_WITH_LONG_OFFSET(){return oE}static get TIME_24_SIMPLE(){return aE}static get TIME_24_WITH_SECONDS(){return uE}static get TIME_24_WITH_SHORT_OFFSET(){return cE}static get TIME_24_WITH_LONG_OFFSET(){return lE}static get DATETIME_SHORT(){return dE}static get DATETIME_SHORT_WITH_SECONDS(){return pE}static get DATETIME_MED(){return fE}static get DATETIME_MED_WITH_SECONDS(){return mE}static get DATETIME_MED_WITH_WEEKDAY(){return Vw}static get DATETIME_FULL(){return hE}static get DATETIME_FULL_WITH_SECONDS(){return gE}static get DATETIME_HUGE(){return yE}static get DATETIME_HUGE_WITH_SECONDS(){return EE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&Gn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new je(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var PD="3.2.1";it.DateTime=_e;it.Duration=be;it.FixedOffsetZone=nt;it.IANAZone=ir;it.Info=Bn;it.Interval=$n;it.InvalidZone=Du;it.Settings=ge;it.SystemZone=Eo;it.VERSION=PD;it.Zone=Nr});var eT=H((VW,XE)=>{"use strict";var Vn=ZE();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};z.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=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))}XE.exports=z});var nT=H((qW,rT)=>{"use strict";function qn(t){return{start:t,count:1}}function tT(t,e){t.end=e,t.step=e-t.start,t.count=2}function zd(t,e,r){e&&(e.count===2?(t.push(qn(e.start)),t.push(qn(e.end))):t.push(e)),r&&t.push(r)}function UD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(zd(e,r,qn(i)),r=void 0):r?r.count===1?tT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(qn(r.start)),r=qn(r.end),tT(r,i)):(zd(e,r),r=qn(i)):r=qn(i)}return zd(e,r),e}rT.exports=UD});var sT=H((WW,iT)=>{"use strict";var LD=nT();function MD(t,e,r){var n=LD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,p){var f=c.start+p;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}iT.exports=MD});var uT=H((QW,aT)=>{"use strict";var Wn=eT(),kD=sT(),oT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Wn(e.currentDate,this._tz),this._startDate=e.startDate?new Wn(e.startDate,this._tz):null,this._endDate=e.endDate?new Wn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(U._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(U._isValidConstraintChar(n,f)){c.push(f);return}var S=+f;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(y,S){for(var _=0,M=S.length;_<M;_++)if(S[_]>=y)return S[_]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var _=y.getDate()%7?1:0,M=y.getDate()-y.getDate()%7,T=Math.floor(M/7)+_;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Wn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(S){if(!i([S]))return!1;var _=Number.parseInt(S[0])%7;if(Number.isNaN(_))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===_&&o.isLastWeekdayOfMonth()})}for(;l<oT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=oT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Wn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new Wn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(kD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Wn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,d=U.map.length;l<d;++l){var m=U.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?S(p):p;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var E=U.map[l];g[E]=a[l]}var y=U._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new U(g,o);function S(_){var M=_.split("#");if(M.length>1){var T=+M[M.length-1];if(/,/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(_))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(M.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,M[0]}return _}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};aT.exports=U});var lT=H((jW,cT)=>{"use strict";var Mu=uT();function Pr(){}Pr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Mu.parse(e)};if(r.length>6)return{interval:Mu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Pr.parseExpression=function(e,r){return Mu.parse(e,r)};Pr.fieldsToExpression=function(e,r){return Mu.fieldsToExpression(e,r)};Pr.parseString=function(e){for(var r=e.split(`
|
|
5
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Pr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Pr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Pr.parseString(i.toString()))})};cT.exports=Pr});var pF={};v(pF,{APP_DEV:()=>Wu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>qu,BUDIBASE_DATASOURCE_TYPE:()=>Tp,BadRequestError:()=>xc,BudibaseError:()=>ms,Config:()=>xp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Sp,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Ap,DEFAULT_TENANT_ID:()=>ye,DeprecatedViews:()=>Qi,DocumentType:()=>Te,Duration:()=>we,DurationType:()=>Yf,EmailUnavailableError:()=>mr,ErrorCode:()=>bc,FeatureDisabledError:()=>wc,GlobalRole:()=>Ip,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Or,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>IT,NotFoundError:()=>Ic,RedisClient:()=>$e,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>Ep,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Rc,UserStatus:()=>Qu,ViewName:()=>Mr,accounts:()=>ai,auth:()=>lh,blacklist:()=>mh,cache:()=>ba,configs:()=>tn,constants:()=>Rp,context:()=>Ee,db:()=>$r,docIds:()=>uf,docUpdates:()=>gh,encryption:()=>ah,env:()=>h,errors:()=>Cc,events:()=>Ts,features:()=>Zm,getPublicError:()=>Dc,init:()=>dF,installation:()=>$c,locks:()=>oi,logging:()=>yc,middleware:()=>ch,objectStore:()=>If,permissions:()=>Km,platform:()=>ca,plugins:()=>ph,queue:()=>gm,redis:()=>fh,roles:()=>dm,security:()=>Pm,sessions:()=>Yc,setEnv:()=>wo,sql:()=>xh,tenancy:()=>lF,timers:()=>jo,userUtils:()=>pm,users:()=>As,utils:()=>cs,withEnv:()=>CT});module.exports=xO(pF);var tn={};v(tn,{analyticsEnabled:()=>Fc,generateConfigID:()=>Qm,getAIConfig:()=>MM,getConfig:()=>Ft,getDefaultGoogleConfig:()=>qm,getGoogleConfig:()=>Xc,getGoogleDatasourceConfig:()=>Hm,getOIDCConfig:()=>PM,getOIDCConfigById:()=>Ym,getOIDCLogosDoc:()=>vM,getPlatformUrl:()=>Pa,getSCIMConfig:()=>LM,getSMTPConfig:()=>UM,getSMTPConfigDoc:()=>bS,getSettingsConfig:()=>jm,getSettingsConfigDoc:()=>qc,save:()=>DM});var RO=["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"],wh=[...RO],bh={"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 Sl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Sl||{}),Ol=(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))(Ol||{}),Ba=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Ba||{});var Il=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Il||{});var wO=j(require("lodash")),_r=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(_r||{}),Yt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Yt||{}),cn=(e=>(e.RANGE="range",e))(cn||{}),yi=(r=>(r.AND="$and",r.OR="$or",r))(yi||{});function Ga(t){return Object.values(yi).includes(t)}function Dh(t){return Object.values(_r).includes(t)}function Ch(t){return Object.values(Yt).includes(t)}function xl(t){return Object.values(cn).includes(t)}var Ei=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ei||{});var vh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var Nh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,OAUTH2_CONFIG:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var fB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var $a=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))($a||{});var Va=t=>t.hosting==="cloud";var qa=t=>t.authType==="sso";var N="_",ke="\uFFF0",Sr=t=>`${t}${N}`,Te=(q=>(q.USER="us",q.GROUP="gr",q.WORKSPACE="workspace",q.CONFIG="config",q.TEMPLATE="template",q.APP="app",q.DEV="dev",q.APP_DEV="app_dev",q.APP_METADATA="app_metadata",q.ROLE="role",q.MIGRATIONS="migrations",q.DEV_INFO="devinfo",q.AUTOMATION_LOG="log_au",q.ACCOUNT_METADATA="acc_metadata",q.PLUGIN="plg",q.DATASOURCE="datasource",q.DATASOURCE_PLUS="datasource_plus",q.APP_BACKUP="backup",q.TABLE="ta",q.ROW="ro",q.AUTOMATION="au",q.LINK="li",q.WEBHOOK="wh",q.INSTANCE="inst",q.LAYOUT="layout",q.SCREEN="screen",q.QUERY="query",q.DEPLOYMENTS="deployments",q.METADATA="metadata",q.MEM_VIEW="view",q.USER_FLAG="flag",q.AUTOMATION_METADATA="meta_au",q.AUDIT_LOG="al",q.APP_MIGRATION_METADATA="_design/migrations",q.SCIM_LOG="scimlog",q.ROW_ACTIONS="ra",q.OAUTH2_CONFIG="oauth2",q))(Te||{}),eG=Object.values(Te).sort((t,e)=>e.length-t.length);var Or=(e=>(e.USER_METADATA="ta_users",e))(Or||{}),Rl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Rl||{}),tG=Object.values(Rl).sort((t,e)=>e.length-t.length);var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),he=(_=>(_.TABLE="table",_.ROW="row",_.ROWS="rows",_.WIDE="wide",_.QUERY="query",_.QUERY_PARAMS="queryParams",_.QUERY_LIMIT="queryLimit",_.LOOP_OPTION="loopOption",_.ITEM="item",_.CODE="code",_.FILTERS="filters",_.COLUMN="column",_.TRIGGER_SCHEMA="triggerSchema",_.CRON="cron",_.WEBHOOK_URL="webhookUrl",_.AUTOMATION="automation",_.AUTOMATION_FIELDS="automationFields",_.MULTI_ATTACHMENTS="multi_attachments",_.TRIGGER_FILTER="trigger_filter",_))(he||{}),St=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(St||{});var de=(x=>(x.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",x.CREATE_ROW="CREATE_ROW",x.UPDATE_ROW="UPDATE_ROW",x.DELETE_ROW="DELETE_ROW",x.EXECUTE_BASH="EXECUTE_BASH",x.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",x.EXECUTE_SCRIPT="EXECUTE_SCRIPT",x.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",x.EXECUTE_QUERY="EXECUTE_QUERY",x.SERVER_LOG="SERVER_LOG",x.DELAY="DELAY",x.FILTER="FILTER",x.QUERY_ROWS="QUERY_ROWS",x.LOOP="LOOP",x.COLLECT="COLLECT",x.OPENAI="OPENAI",x.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",x.BRANCH="BRANCH",x.discord="discord",x.slack="slack",x.zapier="zapier",x.integromat="integromat",x.n8n="n8n",x))(de||{}),Ph=[...Object.values(de),...Object.values(St)];var wl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(wl||{});var bl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(bl||{});var Uh=["attachment_single","attachment","bb_reference","json","array"];var Dl="bb_internal";function Wa(t){return!!t.providerType}var Cl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Cl||{});var f$=Object.values(Cl);var E$=["rows","queries","automations"],T$=["queries","automations"];var dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(dn||{}),Qa=(r=>(r.STRING="string",r.NUMBER="number",r))(Qa||{});var te;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(te||(te={}));var Nl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Nl||(Nl={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ir=t=>{switch(typeof t){case"undefined":return k.undefined;case"string":return k.string;case"number":return isNaN(t)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(t)?k.array:t===null?k.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?k.promise:typeof Map<"u"&&t instanceof Map?k.map:typeof Set<"u"&&t instanceof Set?k.set:typeof Date<"u"&&t instanceof Date?k.date:k.object;default:return k.unknown}},I=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),CO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Je=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Je.create=t=>new Je(t);var _i=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===k.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},kh=_i;function vO(t){kh=t}function ja(){return kh}var Ha=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}},NO=[];function P(t,e){let r=ja(),n=Ha({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===_i?void 0:_i].filter(i=>!!i)});t.common.issues.push(n)}var Me=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),Ai=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),Pl=t=>t.status==="aborted",Ul=t=>t.status==="dirty",Cs=t=>t.status==="valid",vs=t=>typeof Promise<"u"&&t instanceof Promise;function Ya(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 Fh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var bs,Ds,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Lh=(t,e)=>{if(Cs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Je(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Ir(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Ir(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:Ir(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(vs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Ir(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Lh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Ir(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(vs(i)?i:Promise.resolve(i));return Lh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new ze({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return zt.create(this,this._def)}promise(){return wr.create(this,this._def)}or(e){return En.create([this,e],this._def)}and(e){return Tn.create(this,e,this._def)}transform(e){return new ze({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new In({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},PO=/^c[^\s-]{8,}$/i,UO=/^[0-9a-z]+$/,LO=/^[0-9A-HJKMNP-TV-Z]{26}$/,MO=/^[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,kO=/^[a-z0-9_-]{21}$/i,FO=/^[-+]?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)?)??$/,BO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,GO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",vl,$O=/^(?:(?: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])$/,VO=/^(([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})))$/,qO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Bh="((\\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])))",WO=new RegExp(`^${Bh}$`);function Gh(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 QO(t){return new RegExp(`^${Gh(t)}$`)}function $h(t){let e=`${Bh}T${Gh(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 jO(t,e){return!!((e==="v4"||!e)&&$O.test(t)||(e==="v6"||!e)&&VO.test(t))}var xr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.string,received:s.parsedType}),J}let n=new Me,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")BO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")vl||(vl=new RegExp(GO,"u")),vl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")MO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")kO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")PO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")UO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")LO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:I.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:I.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?$h(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?WO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?QO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?FO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?jO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?qO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:I.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:I.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};xr.create=t=>{var e;return new xr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function HO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var pn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==k.number){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.number,received:s.parsedType}),J}let n,i=new Me;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:I.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?HO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};pn.create=t=>new pn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==k.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.bigint,received:s.parsedType}),J}let n,i=new Me;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};fn.create=t=>{var e;return new fn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var mn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.boolean,received:n.parsedType}),J}return Fe(e.data)}};mn.create=t=>new mn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var hn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_type,expected:k.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:I.invalid_date}),J}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};hn.create=t=>new hn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==k.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.symbol,received:n.parsedType}),J}return Fe(e.data)}};Si.create=t=>new Si({typeName:Y.ZodSymbol,...Z(t)});var gn=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.undefined,received:n.parsedType}),J}return Fe(e.data)}};gn.create=t=>new gn({typeName:Y.ZodUndefined,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==k.null){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.null,received:n.parsedType}),J}return Fe(e.data)}};yn.create=t=>new yn({typeName:Y.ZodNull,...Z(t)});var Rr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};Rr.create=t=>new Rr({typeName:Y.ZodAny,...Z(t)});var Jt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Jt.create=t=>new Jt({typeName:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:I.invalid_type,expected:k.never,received:r.parsedType}),J}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.void,received:n.parsedType}),J}return Fe(e.data)}};Oi.create=t=>new Oi({typeName:Y.ZodVoid,...Z(t)});var zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==k.array)return P(r,{code:I.invalid_type,expected:k.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};zt.create=(t,e)=>new zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Ti(t){if(t instanceof We){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ti(n))}return new We({...t._def,shape:()=>e})}else return t instanceof zt?new zt({...t._def,type:Ti(t.element)}):t instanceof dt?dt.create(Ti(t.unwrap())):t instanceof Gt?Gt.create(Ti(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ti(e))):t}var We=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==k.object){let c=this._getOrReturnCtx(e);return P(c,{code:I.invalid_type,expected:k.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Me.mergeObjectSync(n,c)):Me.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ti(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 Vh(te.objectKeys(this.shape))}};We.create=(t,e)=>new We({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});We.strictCreate=(t,e)=>new We({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});We.lazycreate=(t,e)=>new We({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var En=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new Je(a.ctx.common.issues));return P(r,{code:I.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new Je(u));return P(r,{code:I.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};En.create=(t,e)=>new En({options:t,typeName:Y.ZodUnion,...Z(e)});var Kt=t=>t instanceof An?Kt(t.schema):t instanceof ze?Kt(t.innerType()):t instanceof _n?[t.value]:t instanceof Sn?t.options:t instanceof On?te.objectValues(t.enum):t instanceof In?Kt(t._def.innerType):t instanceof gn?[void 0]:t instanceof yn?[null]:t instanceof dt?[void 0,...Kt(t.unwrap())]:t instanceof Gt?[null,...Kt(t.unwrap())]:t instanceof Ns||t instanceof Rn?Kt(t.unwrap()):t instanceof xn?Kt(t._def.innerType):[],Ka=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.object)return P(r,{code:I.invalid_type,expected:k.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Kt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Ll(t,e){let r=Ir(t),n=Ir(e);if(t===e)return{valid:!0,data:t};if(r===k.object&&n===k.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Ll(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===k.array&&n===k.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Ll(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===k.date&&n===k.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var Tn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Pl(s)||Pl(o))return J;let a=Ll(s.value,o.value);return a.valid?((Ul(s)||Ul(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:I.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Tn.create=(t,e,r)=>new Tn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.array)return P(n,{code:I.invalid_type,expected:k.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Me.mergeArray(r,o)):Me.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Bt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Ja=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.object)return P(n,{code:I.invalid_type,expected:k.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Me.mergeObjectAsync(r,i):Me.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:Y.ZodRecord,...Z(n)}):new t({keyType:xr.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},Ii=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.map)return P(n,{code:I.invalid_type,expected:k.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ii.create=(t,e,r)=>new Ii({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var xi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.set)return P(n,{code:I.invalid_type,expected:k.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new 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:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};xi.create=(t,e)=>new xi({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var za=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.function)return P(r,{code:I.invalid_type,expected:k.function,received:r.parsedType}),J;function n(a,u){return Ha({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),_i].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Ha({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,ja(),_i].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof wr){let a=this;return Fe(async function(...u){let c=new Je([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),c})})}else{let a=this;return Fe(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new Je([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Je([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Bt.create(e).rest(Jt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Bt.create([]).rest(Jt.create()),returns:r||Jt.create(),typeName:Y.ZodFunction,...Z(n)})}},An=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};An.create=(t,e)=>new An({getter:t,typeName:Y.ZodLazy,...Z(e)});var _n=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};_n.create=(t,e)=>new _n({value:t,typeName:Y.ZodLiteral,...Z(e)});function Vh(t,e){return new Sn({values:t,typeName:Y.ZodEnum,...Z(e)})}var Sn=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),J}if(Ya(this,bs,"f")||Fh(this,bs,new Set(this._def.values),"f"),!Ya(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:I.invalid_enum_value,options:n}),J}return Fe(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};bs=new WeakMap;Sn.create=Vh;var On=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==k.string&&n.parsedType!==k.number){let i=te.objectValues(r);return P(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),J}if(Ya(this,Ds,"f")||Fh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ya(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:I.invalid_enum_value,options:i}),J}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;On.create=(t,e)=>new On({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var wr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:I.invalid_type,expected:k.promise,received:r.parsedType}),J;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};wr.create=(t,e)=>new wr({type:t,typeName:Y.ZodPromise,...Z(e)});var ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?Ai(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?Ai(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Cs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Cs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};ze.create=(t,e,r)=>new ze({schema:t,typeName:Y.ZodEffects,effect:e,...Z(r)});ze.createWithPreprocess=(t,e,r)=>new ze({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===k.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===k.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var In=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===k.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};In.create=(t,e)=>new In({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return vs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Je(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Je(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var Ri=class extends X{_parse(e){if(this._getType(e)!==k.nan){let n=this._getOrReturnCtx(e);return P(n,{code:I.invalid_type,expected:k.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};Ri.create=t=>new Ri({typeName:Y.ZodNaN,...Z(t)});var YO=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),Ai(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},Rn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Cs(i)&&(i.value=Object.freeze(i.value)),i);return vs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function qh(t,e={},r){return t?Rr.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):Rr.create()}var KO={object:We.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var JO=(t,e={message:`Input not instance of ${t.name}`})=>qh(r=>r instanceof t,e),Wh=xr.create,Qh=pn.create,zO=Ri.create,ZO=fn.create,jh=mn.create,XO=hn.create,eI=Si.create,tI=gn.create,rI=yn.create,nI=Rr.create,iI=Jt.create,sI=Ot.create,oI=Oi.create,aI=zt.create,uI=We.create,cI=We.strictCreate,lI=En.create,dI=Ka.create,pI=Tn.create,fI=Bt.create,mI=Ja.create,hI=Ii.create,gI=xi.create,yI=za.create,EI=An.create,TI=_n.create,AI=Sn.create,_I=On.create,SI=wr.create,Mh=ze.create,OI=dt.create,II=Gt.create,xI=ze.createWithPreprocess,RI=Ps.create,wI=()=>Wh().optional(),bI=()=>Qh().optional(),DI=()=>jh().optional(),CI={string:t=>xr.create({...t,coerce:!0}),number:t=>pn.create({...t,coerce:!0}),boolean:t=>mn.create({...t,coerce:!0}),bigint:t=>fn.create({...t,coerce:!0}),date:t=>hn.create({...t,coerce:!0})},vI=J,ee=Object.freeze({__proto__:null,defaultErrorMap:_i,setErrorMap:vO,getErrorMap:ja,makeIssue:Ha,EMPTY_PATH:NO,addIssueToContext:P,ParseStatus:Me,INVALID:J,DIRTY:Ai,OK:Fe,isAborted:Pl,isDirty:Ul,isValid:Cs,isAsync:vs,get util(){return te},get objectUtil(){return Nl},ZodParsedType:k,getParsedType:Ir,ZodType:X,datetimeRegex:$h,ZodString:xr,ZodNumber:pn,ZodBigInt:fn,ZodBoolean:mn,ZodDate:hn,ZodSymbol:Si,ZodUndefined:gn,ZodNull:yn,ZodAny:Rr,ZodUnknown:Jt,ZodNever:Ot,ZodVoid:Oi,ZodArray:zt,ZodObject:We,ZodUnion:En,ZodDiscriminatedUnion:Ka,ZodIntersection:Tn,ZodTuple:Bt,ZodRecord:Ja,ZodMap:Ii,ZodSet:xi,ZodFunction:za,ZodLazy:An,ZodLiteral:_n,ZodEnum:Sn,ZodNativeEnum:On,ZodPromise:wr,ZodEffects:ze,ZodTransformer:ze,ZodOptional:dt,ZodNullable:Gt,ZodDefault:In,ZodCatch:xn,ZodNaN:Ri,BRAND:YO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Rn,custom:qh,Schema:X,ZodSchema:X,late:KO,get ZodFirstPartyTypeKind(){return Y},coerce:CI,any:nI,array:aI,bigint:ZO,boolean:jh,date:XO,discriminatedUnion:dI,effect:Mh,enum:AI,function:yI,instanceof:JO,intersection:pI,lazy:EI,literal:TI,map:hI,nan:zO,nativeEnum:_I,never:sI,null:rI,nullable:II,number:Qh,object:uI,oboolean:DI,onumber:bI,optional:OI,ostring:wI,pipeline:RI,preprocess:xI,promise:SI,record:mI,set:gI,strictObject:cI,string:Wh,symbol:eI,transformer:Mh,tuple:fI,undefined:tI,union:lI,unknown:iI,void:oI,NEVER:vI,ZodIssueCode:I,quotelessJson:CO,ZodError:Je});var tu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Hh=ee.record(tu,ee.string()),Za=ee.record(tu,ee.any()),Xa=ee.record(tu,ee.union([ee.any().array(),ee.string()])),Yh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Kh))})),eu=ee.union([ee.string(),ee.number()]),Kh={string:Hh.optional(),fuzzy:Hh.optional(),range:ee.record(tu,ee.union([ee.object({high:eu,low:eu}),ee.object({high:eu}),ee.object({low:eu})])).optional(),equal:Za.optional(),notEqual:Za.optional(),empty:Za.optional(),notEmpty:Za.optional(),oneOf:Xa.optional(),contains:Xa.optional(),notContains:Xa.optional(),containsAny:Xa.optional(),$and:Yh.optional(),$or:Yh.optional()},dV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ei).optional(),...Kh}).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(Qa).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Rp={};v(Rp,{APP_DEV:()=>Wu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>qu,BUDIBASE_DATASOURCE_TYPE:()=>Tp,Config:()=>xp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Sp,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Ap,DEFAULT_TENANT_ID:()=>ye,DeprecatedViews:()=>Qi,DocumentType:()=>Te,GlobalRole:()=>Ip,Header:()=>Ze,InternalTable:()=>Or,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>IT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>Ep,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>Qu,ViewName:()=>Mr});var Sq={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Ze=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Ze||{});var Rq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var Nq="darkest",Pq="light",UI=[{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"}},Jh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var wi="datasource_internal_bb_default";var Ur={};v(Ur,{ColumnSplitter:()=>ip,NoEmptyFilterStrings:()=>yT,buildQuery:()=>ET,cleanupQuery:()=>ap,fixupFilterArrays:()=>cp,getKeyNumbering:()=>up,getValidOperatorsForType:()=>nC,hasFilters:()=>sp,limit:()=>AT,recurseLogicalOperators:()=>op,removeKeyNumbering:()=>ru,runQuery:()=>ku,search:()=>oC,sort:()=>TT,splitFiltersArray:()=>nu});var qi=j(zh());var bi={};v(bi,{filterValueToLabel:()=>GI,hasSchema:()=>$I,isSupportedUserSearch:()=>Xh,parallelForeach:()=>BI,processSearchFilters:()=>Fl,trimOtherProps:()=>VI,unreachable:()=>FI});var Zh=j(require("lodash")),kI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function FI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function BI(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 GI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function $I(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function VI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Xh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(Ga(s)){for(let c of t[s].conditions)if(!Xh(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Fl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=nu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Zh.default.pick(i,kI);return s.field=ru(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>eg,cron:()=>Zd,deepGet:()=>Bl,getUserColor:()=>WI,getUserInitials:()=>qI,getUserLabel:()=>QI,isGoogleSheets:()=>HI,isSQL:()=>YI,lists:()=>np,retry:()=>KI,roles:()=>rp,schema:()=>So,views:()=>tp,wait:()=>Gl,withTimeout:()=>jI});var Bl=(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},qI=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"},WI=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%)`},QI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function eg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function jI(t,e){let[r,n]=eg(t),i=await Promise.race([e(),r]);return n(),i}function HI(t){return t==="GOOGLE_SHEETS"}function YI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Gl(t){return new Promise(e=>setTimeout(e,t))}async function KI(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 Gl(s);try{return await t()}catch(o){n=o}}throw n}var Zd={};v(Zd,{getNextExecutionDates:()=>GD,validate:()=>$D});var pT=j($t()),fT=j(lT()),dT="(Input cron: ",FD={"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 BD(t){let e=[];for(let r of t){r.includes(dT)&&(r=r.split(dT)[0].trim());for(let[n,i]of Object.entries(FD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function GD(t,e=4){let r=fT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function $D(t){let e=(0,pT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:BD(e.getError())}}var So={};v(So,{decodeNonAscii:()=>Xd,encodeNonAscii:()=>WD,isDeprecatedSingleUserColumn:()=>VD,isNumeric:()=>QD,isRequired:()=>qD});function VD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function qD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function WD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Xd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function QD(t){return t.type==="number"||t.type==="bigint"}var tp={};v(tp,{basicFields:()=>JD,calculationFields:()=>KD,hasCalculationFields:()=>YD,isBasicViewField:()=>jD,isCalculationField:()=>Oo,isCalculationView:()=>HD,isV2:()=>zD,isVisible:()=>mT});var ep=require("lodash");function Oo(t){return"calculationType"in t}function jD(t){return!Oo(t)}function HD(t){return t.type==="calculation"}function YD(t){return Object.values(t.schema||{}).some(Oo)}function KD(t){return(0,ep.pickBy)(t.schema||{},Oo)}function mT(t){return t.visible!==!1}function JD(t,e){let{visible:r=!0}=e||{};return(0,ep.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||mT(n)))}function zD(t){return t.version===2}var rp={};v(rp,{checkForRoleInheritanceLoops:()=>XD});function ZD(t){return`role${N}${t}`}function XD(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=ZD(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 np={};v(np,{punctuateList:()=>eC});function eC(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}var Qn=require("lodash");var tC=/{{([^{].*?)}}/g,gT=Object.values(yi),rC=[...Object.values(_r),...Object.values(Yt),...Object.values(cn)],nC=(t,e,r)=>{let n=Xe,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||So.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"&&(o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},yT=[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 op(t,e){for(let r of gT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var ap=t=>{for(let e of yT)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===""||iC(s))&&delete t[e][i]}return t=op(t,ap),t};function iC(t){return Array.isArray(t)&&t.length===0}var ru=t=>up(t).key,up=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}},ip=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}=up(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=Xd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function sC(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(tC)||[]).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(xl(r)){let c=Jh[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(Dh(r)||Ch(r)||xl(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function nu(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function ET(t){if(!t)return{};if(Array.isArray(t)&&(t=Fl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=hT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=ET(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=nu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=hT(n.logicalOperator)),{[a]:{conditions:o.map(sC).filter(u=>u)}}})},e}function hT(t){return t==="all"?"$and":"$or"}function cp(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 op(t,cp),t}function oC(t,e){let r=ku(t,e.query);e.sort&&(r=TT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=AT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function ku(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=ap(e),e=cp(e),!sp(e)&&e.onEmptyFilter==="none")return[];let r=(T,O)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Ga(T)?x:Bl(x,ru(w)),on=O(le,B);if(e.allOr&&on)return!0;if(!e.allOr&&!on)return!1}return!e.allOr},n=r("string",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().startsWith(O.toLowerCase())),i=r("fuzzy",(T,O)=>typeof T!="string"||typeof O!="string"?!1:T.toLowerCase().includes(O.toLowerCase())),s=r("range",(T,O)=>{if(T==null||T===""||((0,Qn.isPlainObject)(O.low)&&(0,Qn.isEmpty)(O.low)&&(O.low=void 0),(0,Qn.isPlainObject)(O.high)&&(0,Qn.isEmpty)(O.high)&&(O.high=void 0),O.low==null&&O.high==null))return!1;let x=+T;if(!isNaN(x)){let B=+O.low,le=+O.high;if(!isNaN(B)&&!isNaN(le))return x>=B&&x<=le;if(isNaN(B)){if(!isNaN(le))return x<=le}else return x>=B}let w=(0,qi.default)(T);if(w.isValid()){let B=(0,qi.default)(O.low||"0000-00-00T00:00:00.000Z"),le=(0,qi.default)(O.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&le.isValid())return w.isAfter(B)&&w.isBefore(le)||w.isSame(B)||w.isSame(le);if(B.isValid())return w.isAfter(B)||w.isSame(B);if(le.isValid())return w.isBefore(le)||w.isSame(le)}return O.low!=null&&O.high!=null?T>=O.low&&T<=O.high:O.low!=null?T>=O.low:O.high!=null?T<=O.high:!1}),o=(T,O)=>{if(Array.isArray(T)){for(let w of T)if(o(w,O))return!0;return!1}if(T&&typeof T=="object"&&typeof O=="string")return T._id===O;if(T===O)return!0;if(T==null&&O!=null||T!=null&&O==null)return!1;let x=(0,qi.default)(T);if(x.isValid()){let w=(0,qi.default)(O);if(w.isValid())return x.isSame(w)}return!1},a=T=>(...O)=>!T(...O),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,O)=>(typeof O=="string"&&(O=O.split(",")),typeof T=="number"&&(O=O.map(x=>parseFloat(x))),Array.isArray(O)?O.some(x=>o(T,x)):!1)),f=T=>(O,x)=>!Array.isArray(O)||(typeof x=="string"&&(x=x.split(","),typeof O[0]=="number"&&(x=x.map(w=>parseFloat(w)))),!Array.isArray(x))?!1:x.length===0?!0:x[T](w=>o(O,w)),g=r("contains",(T,O)=>Array.isArray(O)&&O.length===0?!0:f("every")(T,O)),E=r("notContains",(T,O)=>Array.isArray(O)&&O.length===0?!0:a(f("every"))(T,O)),y=r("containsAny",f("some")),S=r("$and",(T,O)=>{if(!O.length)return!1;for(let x of O)if(!ku([T],x).length)return!1;return!0}),_=r("$or",(T,O)=>{if(!O.length)return!1;for(let x of O)if(ku([T],{...x,allOr:!0}).length)return!0;return!1}),M=T=>{let O={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:S,$or:_},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>O[w]?.(T)??!1);return sp(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function TT(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 AT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var sp=t=>{if(!t)return!1;let e=r=>{for(let n of gT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of rC){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var st={};v(st,{applications:()=>dp,automations:()=>pp,screens:()=>yp,users:()=>gp});var dp={};v(dp,{getDevAppID:()=>aC,getProdAppID:()=>Fu});var lp=Sr("app"),Io=Sr("app_dev");function aC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(lp);e.shift();let r=e.join(lp);return`${Io}${r}`}function Fu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Io))return t;let e=t.split(Io);e.shift();let r=e.join(Io);return`${lp}${r}`}var pp={};v(pp,{isAppAction:()=>lC,isRowAction:()=>uC,isWebhookAction:()=>cC});function uC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function cC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function lC(t){return t.definition.trigger?.stepId==="APP"}var gp={};v(gp,{canCreateApps:()=>dC,containsUserID:()=>yC,getGlobalUserID:()=>gC,getUserAppGroups:()=>EC,getUserGroups:()=>hp,hasAdminPermissions:()=>mp,hasAppBuilderPermissions:()=>$u,hasAppCreatorPermissions:()=>_T,hasBuilderPermissions:()=>mC,hasCreatorPermissions:()=>Vu,isAdmin:()=>Gu,isAdminOrBuilder:()=>pC,isAdminOrGlobalBuilder:()=>fC,isBuilder:()=>fp,isCreator:()=>hC,isGlobalBuilder:()=>Bu,userAppAccessList:()=>TC});var Lr=j(require("lodash/fp"));function fp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Fu(e))):!1}function Bu(t){return fp(t)&&!$u(t)||Gu(t)}function dC(t){return Bu(t)||Vu(t)}function Gu(t){return t?mp(t):!1}function pC(t,e){return fp(t,e)||Gu(t)}function fC(t){return Bu(t)||Gu(t)}function $u(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function _T(t){return t?Lr.flow(Lr.get("roles"),Lr.values,Lr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function mC(t){return t?t.builder?.global||$u(t)||Vu(t):!1}function mp(t){return t?!!t.admin?.global:!1}function Vu(t){return t?!!t.builder?.creator:!1}function hC(t){return t?Bu(t)||mp(t)||Vu(t)||$u(t)||_T(t):!1}function gC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function yC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function hp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function EC(t,e,r){let n=Fu(t);return hp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function TC(t,e){let n=hp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var yp={};v(yp,{findInSettings:()=>AC});function AC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var VQ={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},qQ={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},WQ={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 ZQ={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 tj={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 ij={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 aj={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 lj={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 fj={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 gj={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 Tj={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 Sj={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var xj={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!0,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var vC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},bj={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(wl),pretty:Object.values(vC)},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 vj={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 Uj={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 kj={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(bl)},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 ST=(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))(ST||{}),Gj={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(ST)}},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 OT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(OT||{}),qj={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(OT),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 FC={ascending:"Ascending",descending:"Descending"},jj={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(FC)},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 Kj={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 Zj={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 tH={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 iH={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 aH={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 lH={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 HC={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var KC={name:"Cron Trigger",event:"cron:trigger",icon:"Clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var zC={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var XC={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var tv={name:"Row Updated",event:"row:update",icon:"Refresh",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var nv={name:"Webhook",event:"web:trigger",icon:"Send",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var sv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var qu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(qu||{}),Mr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(Mr||{}),Qi={by_email2:["by_email"]},Se={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"}},gt=Sr("app"),Wu=Sr("app_dev"),yt=Wu,Ep="internal",Tp="budibase",sr="_design/sqlite",Ap="ta_bb_jobs",_p="ta_bb_inventory",Sp="ta_bb_expenses",Op="ta_bb_employee";var Qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Qu||{}),ji=(s=>(s.Auth="budibase:auth",s.Init="budibase:init",s.ACCOUNT_RETURN_URL="budibase:account:returnurl",s.DatasourceAuth="budibase:datasourceauth",s.OIDC_CONFIG="budibase:oidc:config",s))(ji||{}),Ip=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Ip||{}),xp=(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))(xp||{}),IT=new Date(-2147483647e3),ju=new Date(2147483647e3),ye="default";var ba={};v(ba,{CacheKey:()=>pr,TTL:()=>ri,app:()=>rf,bustCache:()=>as,destroy:()=>ia,docWritethrough:()=>Vm,generic:()=>sa,get:()=>ni,invite:()=>tm,keys:()=>Ec,passwordReset:()=>Gm,store:()=>fr,user:()=>rn,withCache:()=>Yr,writethrough:()=>Bm});var sa={};v(sa,{CacheKey:()=>pr,TTL:()=>ri,bustCache:()=>as,destroy:()=>ia,get:()=>ni,keys:()=>Ec,store:()=>fr,withCache:()=>Yr});var Ee={};v(Ee,{DEFAULT_TENANT_ID:()=>ye,baseGlobalDBName:()=>No,doInAppContext:()=>Gv,doInAppMigrationContext:()=>Vv,doInAutomationContext:()=>Bv,doInContext:()=>Qp,doInEnvironmentContext:()=>Wv,doInIPContext:()=>Yp,doInIdentityContext:()=>Ro,doInScimContext:()=>Qv,doInTenant:()=>Ge,ensureSnippetContext:()=>YT,getAppDB:()=>Zi,getAppId:()=>Ne,getAuditLogDBName:()=>jT,getAuditLogsDB:()=>Hv,getAutomationId:()=>jp,getCurrentContext:()=>Xi,getDevAppDB:()=>Kv,getEnvironmentVariables:()=>jv,getFeatureFlags:()=>Kp,getGlobalDB:()=>ie,getGlobalDBName:()=>ar,getIP:()=>Hp,getIdentity:()=>or,getPlatformURL:()=>Wp,getProdAppDB:()=>Yv,getProdAppId:()=>qv,getScimDBName:()=>Lv,getTableForView:()=>Jv,getTenantIDFromAppID:()=>zi,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Br,isScim:()=>Nt,isTenancyEnabled:()=>kv,isTenantIdSet:()=>Mv,setFeatureFlags:()=>Jp,setTableForView:()=>zv});var xo={};v(xo,{doInAccountContext:()=>cv,doInIdentityContext:()=>bp,doInUserContext:()=>Dp,getAccountUserId:()=>xT,getIdentity:()=>wp});function wp(){return or()}function bp(t,e){return Ro(t,e)}function Dp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return bp(n,r)}function cv(t,e){let r=xT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return bp(i,e)}function xT(t){let e;return Va(t)?e=t.budibaseUserId:e=t.accountId,e}var Ku=require("fs");var bT=require("lodash"),Cp=require("crypto");function vp(){return DT()}function DT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Yu(){return process.env.NODE_ENV!=="production"}function lv(t){if(t)return parseInt(t)}var RT=!1;!RT&&Yu()&&!vp()&&(require("dotenv").config(),RT=!0);var Hi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},wT=!!parseInt(process.env.SELF_HOSTED||"");function dv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function pv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function fv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Ku.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Ku.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Yu()&&!vp())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 Ct.SERVICE_TYPE==="worker"}function hv(){return Ct.SERVICE_TYPE==="apps"}function gv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}var Ct={isTest:vp,isJest:DT,isDev:Yu,isWorker:mv,isApps:hv,isQA:gv,isProd:()=>!Yu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Cp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Cp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:dv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:wT,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||Hi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Hi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Hi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Hi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Hi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Hi.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:pv(),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:wT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...fv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Ct[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:lv(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,bT.cloneDeep)(Ct),r;for(r in t)Ct._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Ct._set(n,i)}}function CT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var vT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Ct))e==="0"&&(Ct[t]=0),e==="false"&&(Ct[t]=0);var h=Ct;var NT=require("async_hooks"),ve=class t{static{this.storage=new NT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Np="No app provided";function kr(t){if(!t)throw Np;return t.startsWith(yt)}function yv(t){if(!t)throw Np;return t.startsWith(gt)&&!kr(t)}function bo(t){if(!t)throw Np;return kr(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 Ev=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 Tv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Pp(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:Pp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Pp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var WT=j(require("@budibase/nano"));var PT=j(require("node-fetch"));function zu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function UT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,PT.default)(zu(encodeURI(t)),i)}async function Zu(t,e="GET",r){let n=await UT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var jn=j(require("pouchdb"));var LT,MT=!1,Up=(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 Xu(t){LT=Up(t),MT=!0}var _v=()=>{if(!MT)throw new Error("init has not been called")};function Et(t,e){_v();let r=new LT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Co(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var kT=require("uuid");function Oe(){return(0,kT.v4)().replace(/-/g,"")}var xe=j(require("dd-trace")),Yi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return xe.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return xe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return xe.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return xe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return xe.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return xe.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return xe.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return xe.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return xe.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var $p={};v($p,{breakExternalTableId:()=>kp,breakRowIdField:()=>vv,buildExternalTableId:()=>xv,convertRowId:()=>Cv,encodeTableId:()=>Rv,encodeViewId:()=>wv,generateRowIdField:()=>bv,getNativeSql:()=>Ki,isExternalTable:()=>Mp,isExternalTableID:()=>ec,isInternalTableID:()=>Iv,isInvalidISODateString:()=>Fp,isRowId:()=>Dv,isValidFilter:()=>tc,isValidISODateString:()=>Bp,isValidTime:()=>Nv,sqlLog:()=>vo,validateManyToMany:()=>Gp});var Lp=`${N}${N}`,BT=/^\[.*]$/g,Sv=encodeURIComponent(" "),GT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,Ov=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ec(t){return t.startsWith("datasource"+N)}function Iv(t){return!ec(t)}function Ki(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 Mp(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==wi||t?.sourceType==="external"?!0:!!(t?._id&&ec(t._id))}function xv(t,e){return`${t}${Lp}${encodeURIComponent(e)}`}function Rv(t){return ec(t)?encodeURIComponent(t):t}function wv(t){return encodeURIComponent(t)}function kp(t){let e=t.split(Lp),r=e.shift(),n=e.join(Lp);if(n.includes(Sv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function bv(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 Dv(t){return Array.isArray(t)||typeof t=="string"&&t.match(BT)!=null}function Cv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(BT)!=null?t.substring(1,t.length-1):t}function vv(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 Fp(t){let e=t.trim();if(!GT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Bp(t){return GT.test(t.trim())}function tc(t){return t!=null&&t!==""}function Nv(t){return Ov.test(t)}function vo(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function Pv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Gp(t){if(Pv(t))return t}var $T="Database does not exist.";function VT(t){return(0,WT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Fr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function Uv(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Ji(t,r,e);return new Yi(n)}var Ji=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=VT(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=VT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Fr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===$T)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Fr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Fr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(vh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Fr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===$T)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=zu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Fr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${sr}`;return vo("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(sr)){let e=await this.get(sr);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Fr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function He(t,e){return new Yi(new Ji(t,e))}async function at(t,e,r){let n=He(t,r);return await e(n)}async function Vp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Zu(e)}async function qp(t,e){let r=await Zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var QT=null;function ar(t){return t||(t=Q()),No(t)}function jT(t){return t||(t=Q()),t===ye?Se.AUDIT_LOGS.name:`${t}${N}${Se.AUDIT_LOGS.name}`}function Lv(t){return t||(t=Q()),t===ye?Se.SCIM_LOGS.name:`${t}${N}${Se.SCIM_LOGS.name}`}function No(t){return!t||t===ye?Se.GLOBAL.name:`${t}${N}${Se.GLOBAL.name}`}function Wp(){return h.PLATFORM_URL}function Br(){return!!h.MULTI_TENANCY}function Mv(){return!!ve.get()?.tenantId}function kv(){return h.MULTI_TENANCY}function zi(t){if(!t)return;if(!Br())return ye;let e=t.split(N),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Fv(t){let e;try{e=ve.get()}catch{e={}}return e={...e,...t},e}async function Gr(t,e){$v();let r=Fv(t);return ve.run(r,e)}async function Bv(t){return await YT(),await Gr({tenantId:zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Qp(t,e){let r=zi(t);return Gr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||ye),Gr(t?{tenantId:t}:{},e)}async function Gv(t,e){return HT(t,e)}async function HT(t,e,r){if(!t)throw new Error("appId is required");let n=zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Gr(i,e)}async function Ro(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Gr(r,e)}function $v(){if(ve.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function Vv(t,e){return HT(t,e,{isMigrating:!0})}function or(){try{return ve.get()?.identity}catch{}}function Q(){if(!Br())return ye;let e=ve.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function jp(){return ve.get()?.automationId}function Ne(){let e=ve.get()?.appId;return!e&&h.isTest()&&QT?QT:e}function Hp(){return ve.get()?.ip}var qv=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function Wv(t,e){if(!t)throw new Error("Must supply environment variables.");return Gr({environmentVariables:t},e)}function Qv(t){return Gr({isScim:!0},t)}function Yp(t,e){return Gr({ip:t},e)}async function YT(t=!h.isTest()){let e=Xi();if(!e||e.snippets)return;let r,n=Zi();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function jv(){let t=ve.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=ve.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return He(No(t?.tenantId))}function Hv(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return He(jT())}function Zi(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return He(e,t)}function Yv(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return He(ot(e),t)}function Kv(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return He(Ju(e),t)}function Nt(){return!!ve.get()?.isScim}function Xi(){try{return ve.get()}catch{return}}function Kp(t){let e=Xi();if(e)return e.featureFlagCache?.[t]}function Jp(t,e){let r=Xi();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function Jv(t){let e=Xi();if(e)return e.viewToTableCache?.[t]}function zv(t,e){let r=Xi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Hr={};v(Hr,{getAppClient:()=>cc,getCacheClient:()=>kf,getDocWritethroughClient:()=>eP,getInviteClient:()=>ei,getLockClient:()=>Bf,getPasswordResetClient:()=>na,getSessionClient:()=>jr,getSocketClient:()=>XN,getUserClient:()=>ra,getWritethroughClient:()=>Ff,init:()=>Ut,shutdown:()=>u_});var o_=j(require("ioredis"));var ic={};v(ic,{Databases:()=>zp,SEPARATOR:()=>es,SelectableDatabase:()=>rc,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>nc,getRedisOptions:()=>ts,removeDbPrefix:()=>Zp});var Zv=2e3,KT=1e4,es="-",zp=(y=>(y.PW_RESETS="pwReset",y.VERIFICATIONS="verification",y.INVITATIONS="invitation",y.DEV_LOCKS="devLocks",y.DEBOUNCE="debounce",y.SESSIONS="session",y.USER_CACHE="users",y.FLAGS="flags",y.APP_METADATA="appMetadata",y.QUERY_VARS="queryVars",y.LICENSES="license",y.GENERIC_CACHE="data_cache",y.WRITE_THROUGH="writeThrough",y.LOCKS="locks",y.SOCKET_IO="socket_io",y.BPM_EVENTS="bpmEvents",y.DOC_WRITE_THROUGH="docWriteThrough",y))(zp||{}),rc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(rc||{});function nc(){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 ts(){let{host:t,password:e,port:r}=nc(),n={connectTimeout:KT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:KT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:Zv,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${es}${e}`}function Zp(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var yc={};v(yc,{correlation:()=>Po,logAlert:()=>zn,logAlertWithInfo:()=>HN,logWarn:()=>ss,logger:()=>gc,system:()=>wf});var Po={};v(Po,{getId:()=>Xp,setHeader:()=>Xv});var JT=require("correlation-id"),Xv=t=>{let e=JT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Xp(){return JT.getId()}var hc=j(require("pino")),i_=j(require("pino-pretty"));var bf=j(require("dd-trace")),s_=require("dd-trace/ext");var wf={};v(wf,{getLogReadStream:()=>$N,getSingleFileMaxSizeInfo:()=>n_,localFileDestination:()=>Rf});var Vo=j(require("fs")),xf=j(require("path")),XA=j(require("rotating-file-stream"));var If={};v(If,{ObjectStore:()=>Pt,ObjectStoreBuckets:()=>tN,SIGNED_FILE_PREFIX:()=>Af,bucketTTLConfig:()=>sc,budibaseTempDir:()=>Hn,clientLibraryCDNUrl:()=>UN,clientLibraryPath:()=>QA,clientLibraryUrl:()=>LN,createBucketIfNotExists:()=>$o,deleteFile:()=>wN,deleteFiles:()=>bN,deleteFolder:()=>VA,downloadTarball:()=>CN,downloadTarballDirect:()=>DN,enrichPluginURLs:()=>FN,extractBucketAndPath:()=>ef,getAppFileUrl:()=>MN,getGlobalFileS3Key:()=>jA,getGlobalFileUrl:()=>kN,getObjectMetadata:()=>vN,getPluginIconKey:()=>KA,getPluginJSKey:()=>YA,getPluginS3Dir:()=>zA,getPresignedUrl:()=>Wr,getReadStream:()=>oc,listAllObjects:()=>$A,processAutomationAttachment:()=>nN,processObjectStoreAttachment:()=>tA,retrieve:()=>GA,retrieveDirectory:()=>RN,retrieveToTmp:()=>xN,sanitizeBucket:()=>Ke,sanitizeKey:()=>Pe,streamUpload:()=>BA,upload:()=>IN,uploadDirectory:()=>_f});var fc=require("@aws-sdk/client-s3"),hf=require("@aws-sdk/lib-storage"),LA=require("@aws-sdk/s3-request-presigner"),Go=j(require("stream")),gf=j(require("node-fetch")),yf=j(require("tar-fs")),Ef=j(require("zlib")),MA=require("util"),qr=require("path"),dr=j(require("fs"));var Uo=j(require("path")),zT=require("os"),ZT=j(require("fs"));var XT=j(require("stream")),tN={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},eA=(0,Uo.join)((0,zT.tmpdir)(),".budibase");try{ZT.default.mkdirSync(eA)}catch(t){if(t.code!=="EEXIST")throw t}function Hn(){return eA}var sc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function rN(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Uo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:XT.default.Readable.fromWeb(e.body)}}async function tA(t){let e=ef(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await oc(r,n),s=Uo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function nN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await rN(t):await tA(t)}var Tf=require("uuid");var $r={};v($r,{APP_DEV:()=>Wu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>qu,BUDIBASE_DATASOURCE_TYPE:()=>Tp,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Sp,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Ap,DatabaseImpl:()=>Ji,DatabaseWithConnection:()=>Uv,DeprecatedViews:()=>Qi,DocumentType:()=>Te,InternalTable:()=>Or,QueryBuilder:()=>lr,Replication:()=>CA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>Ep,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>Mr,baseGlobalDBName:()=>No,checkErrorCode:()=>UA,closePouchDB:()=>Co,createApiKeyView:()=>xA,createNewUserEmailView:()=>OA,createPlatformAccountEmailView:()=>wA,createPlatformUserView:()=>bA,createUserAppView:()=>IA,createView:()=>ns,dbExists:()=>mN,directCouchAllDbs:()=>Vp,directCouchCall:()=>UT,directCouchFind:()=>qp,directCouchQuery:()=>Zu,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>Tv,fullSearch:()=>EN,generateAppID:()=>nA,generateAppUserID:()=>lc,generateDevInfoID:()=>lA,generateGlobalUserID:()=>rs,generatePluginID:()=>dA,generateRoleID:()=>sf,generateRowID:()=>nf,generateTableID:()=>iA,generateTemplateID:()=>cA,generateUserMetadataID:()=>aA,generateWorkspaceID:()=>sA,getAllApps:()=>Mo,getAllDbs:()=>SA,getAppsByIDs:()=>lN,getCouchInfo:()=>vt,getDB:()=>He,getDevAppID:()=>Ev,getDevAppIDs:()=>pN,getDevelopmentAppID:()=>Ju,getDocParams:()=>Yn,getGlobalDBName:()=>ar,getGlobalIDFromUserMetadataID:()=>uA,getGlobalUserParams:()=>Kn,getOAuth2ConfigParams:()=>_A,getPluginParams:()=>AA,getPouch:()=>Up,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>dN,getQueryIndex:()=>pA,getRoleParams:()=>pc,getRowParams:()=>of,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>TA,getUrlInfo:()=>Pp,getUserMetadataParams:()=>EA,getUsersByAppParams:()=>dc,getWorkspaceParams:()=>yA,init:()=>Xu,isDatasourceId:()=>hA,isDevApp:()=>bo,isDevAppID:()=>kr,isDocumentConflictError:()=>AN,isExternalTableId:()=>af,isGlobalUserID:()=>oA,isProdAppID:()=>yv,isQueryId:()=>gA,isSameAppID:()=>fN,isTableId:()=>fA,isViewId:()=>mA,paginatedSearch:()=>yN,pagination:()=>cf,prefixRoleID:()=>ur,queryGlobalView:()=>cr,queryGlobalViewRaw:()=>pf,queryPlatformView:()=>Fo,queryView:()=>df,queryViewRaw:()=>ko,removeKeyNumbering:()=>Bo,searchIndexes:()=>mf});var rf={};v(rf,{AppState:()=>tf,getAppMetadata:()=>uc,invalidateAppMetadata:()=>aN});var tf=(e=>(e.INVALID="invalid",e))(tf||{}),rA=3600,iN=60;async function sN(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function oN(t){return!t||t.state==="invalid"}async function uc(t){let e=await cc(),r=await e.get(t);if(!r){let n=rA;try{r=await sN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=iN;else throw i}if(oN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function aN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await cc();await r.delete(t),e&&await r.store(t,e,rA)}var uf={};v(uf,{generateAppID:()=>nA,generateAppUserID:()=>lc,generateDevInfoID:()=>lA,generateGlobalUserID:()=>rs,generatePluginID:()=>dA,generateRoleID:()=>sf,generateRowID:()=>nf,generateTableID:()=>iA,generateTemplateID:()=>cA,generateUserMetadataID:()=>aA,generateWorkspaceID:()=>sA,getDocParams:()=>Yn,getGlobalIDFromUserMetadataID:()=>uA,getGlobalUserParams:()=>Kn,getOAuth2ConfigParams:()=>_A,getPluginParams:()=>AA,getQueryIndex:()=>pA,getRoleParams:()=>pc,getRowParams:()=>of,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>TA,getUserMetadataParams:()=>EA,getUsersByAppParams:()=>dc,getWorkspaceParams:()=>yA,isDatasourceId:()=>hA,isExternalTableId:()=>af,isGlobalUserID:()=>oA,isQueryId:()=>gA,isTableId:()=>fA,isViewId:()=>mA,prefixRoleID:()=>ur});var nA=t=>{let e=gt;return t&&(e+=`${t}${N}`),`${e}${Oe()}`};function iA(){return`ta${N}${Oe()}`}function nf(t,e){return e=e||Oe(),`ro${N}${t}${N}${e}`}function sA(){return`workspace${N}${Oe()}`}function rs(t){return`us${N}${t||Oe()}`}var uN=new RegExp(`^us${N}.+`);function oA(t){return uN.test(t)}function aA(t){return nf("ta_users",t)}function uA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function cA(t){return`template${N}${t}${N}${Oe()}`}function lc(t,e){return`${t}${N}${e}`}function sf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function ur(t){return sf(t)}var lA=t=>`devinfo${N}${t}`,dA=t=>`plg${N}${t}`;var cN=new RegExp("^datasource_plus_(.+)__(.+)$");function Yn(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${ke}`}}function of(t,e,r={}){if(t==null)return Yn("ro",null,r);let n=e??`${t}${N}`;return Yn("ro",n,r)}function pA(t){return`database/${t}`}var af=t=>{let e=t.match(cN);return!!t&&e!==null},fA=t=>!!t&&(t.startsWith(`ta${N}`)||af(t));function mA(t){return!!t&&t.startsWith(`view${N}`)}function hA(t){return!!t&&t.startsWith(`datasource${N}`)}function gA(t){return!!t&&t.startsWith(`query${N}`)}function yA(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${ke}`}}function Kn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${ke}`}}function EA(t,e={}){return of("ta_users",t,e)}function dc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function TA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${ke}`}}function pc(t,e={}){return Yn("role",t,e)}function Lo(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var AA=(t,e={})=>Yn("plg",t,e),_A=(t,e={})=>Yn("oauth2",t,e);async function SA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Vp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ye?await n():(await n(Lo("app",i)),await n(Lo("app_dev",i)),r.push(ar(i))),r}async function Mo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ye);let o=(await SA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(N);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===ye&&d||l===i}return!1});if(r){let u=o.filter(l=>kr(l)),c=o.filter(l=>!kr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>uc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:bo(l)?"development":"published"})):c.filter(l=>t?bo(l):!bo(l))}}async function lN(t){return(await Promise.allSettled(t.map(r=>uc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function dN(){return(await Mo({idsOnly:!0})).filter(e=>!kr(e))}async function pN(){return(await Mo({idsOnly:!0})).filter(e=>kr(e))}function fN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function mN(t){return at(t,async e=>await e.exists(),{skip_setup:!0})}function cf(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 lf="_design/database";function hN(){return{_id:lf,views:{}}}async function gN(t,e){if(Qi[e])try{let r=await t.get(lf);for(let n of Qi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(lf)}catch{n=hN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var OA=async()=>{let t=ie(),e=`function(doc) {
|
|
6
6
|
if (doc._id.startsWith("us${N}")) {
|
|
7
7
|
emit(doc.email.toLowerCase(), doc._id)
|
|
8
8
|
}
|
|
9
|
-
}`;await ns(t,e,"by_email2")},
|
|
9
|
+
}`;await ns(t,e,"by_email2")},IA=async()=>{let t=ie(),e=`function(doc) {
|
|
10
10
|
if (doc._id.startsWith("us${N}") && doc.roles) {
|
|
11
11
|
for (let prodAppId of Object.keys(doc.roles)) {
|
|
12
12
|
let emitted = prodAppId + "${N}" + doc._id
|
|
13
13
|
emit(emitted, null)
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
}`;await ns(t,e,"by_app")},
|
|
16
|
+
}`;await ns(t,e,"by_app")},xA=async()=>{let t=ie(),e=`function(doc) {
|
|
17
17
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
18
18
|
emit(doc.apiKey, doc.userId)
|
|
19
19
|
}
|
|
20
|
-
}`;await ns(t,e,"by_api_key")};async function ko(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await
|
|
20
|
+
}`;await ns(t,e,"by_api_key")};async function ko(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await gN(r,t),await n(),ko(t,e,r,n,i);if(s.status===409)return ko(t,e,r,n,i);throw s}}var df=async(t,e,r,n,i)=>{let a=(await ko(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function RA(t,e){try{await at(Se.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var wA=async()=>{let t=`function(doc) {
|
|
21
21
|
if (doc._id.startsWith("acc_metadata${N}")) {
|
|
22
22
|
emit(doc.email.toLowerCase(), doc._id)
|
|
23
23
|
}
|
|
24
|
-
}`;await
|
|
24
|
+
}`;await RA(t,"account_by_email")},bA=async()=>{await RA(`function(doc) {
|
|
25
25
|
if (doc.tenantId) {
|
|
26
26
|
emit(doc._id.toLowerCase(), doc._id)
|
|
27
27
|
}
|
|
@@ -29,10 +29,10 @@ attempted value: ${s}
|
|
|
29
29
|
if (doc.ssoId) {
|
|
30
30
|
emit(doc.ssoId, doc._id)
|
|
31
31
|
}
|
|
32
|
-
}`,"platform_users_lowercase_2")},Fo=async(t,e)=>{let r={account_by_email:xA,platform_users_lowercase_2:RA};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return df(t,e,n,i,{arrayResponse:!0})})},wA={by_email2:_A,by_api_key:IA,by_app:SA},cr=async(t,e,r,n)=>{r||(r=ie());let i=wA[t];return df(t,e,r,i,n)};async function pf(t,e,r){let n=ie(),i=wA[t];return ko(t,e,n,i,r)}var ff=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Co(this.source),Co(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},bA=ff;var CA=j(require("node-fetch"));var Bo=Ur.removeKeyNumbering;function Kn(t){return t==null||t===""}var lr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Bo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>Kn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(Kn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>Kn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},p=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(Kn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function d(f,g,E){let y="";for(let[S,_]of Object.entries(f)){S=Bo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let M=g(S,_);if(M!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=M,(typeof _!="string"&&_!=null||typeof _=="string"&&_!==o&&_!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&d(this.#e.string,(f,g)=>Kn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&d(this.#e.range,(f,g)=>{if(Kn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&d(this.#e.fuzzy,c),this.#e.equal&&d(this.#e.equal,a),this.#e.notEqual&&d(this.#e.notEqual,(f,g)=>Kn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&d(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&d(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&d(this.#e.oneOf,m),this.#e.contains&&d(this.#e.contains,u),this.#e.notContains&&d(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&d(this.#e.containsAny,p),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,d({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await DA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await DA(n,i,r);throw s}}};async function DA(t,e,r){let n=await(0,CA.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 vA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=lr.maxLimit;n.limit&&s.length>n.limit-lr.maxLimit&&(o=n.limit-s.length);let a=new lr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<lr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await vA(t,e,r,c)}async function gN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,lr.maxLimit);let s=new lr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function yN(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 vA(t,e,r,n)}}var mf={};v(mf,{createUserIndex:()=>EN});async function EN(){let t=ie(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function NA(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 TN(t){return NA(t,409)}var LA=j(require("fs/promises")),AN=require("sanitize-s3-objectkey"),MA=(0,UA.promisify)(Go.default.pipeline),_N={bucketCreationPromises:{}},Af="/files/signed",Vr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},SN=[Vr.html,Vr.css,Vr.js,Vr.json];function Pe(t){return AN(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(yt,"g"),gt)}function Pt(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new fc.S3(e)}async function $o(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=_N.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}async function IN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await LA.default.open(r)).createReadStream():s,c=Pt(),l=await $o(c,t);if(o&&l.created){let g=sc(t,o);await c.putBucketLifecycleConfiguration(g)}let p=n,m=p||(a?Vr[a.toLowerCase()]:Vr.txt),d={Bucket:Ke(t),Key:Pe(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];d.Metadata=i}return new hf.Upload({client:c,params:d}).done()}async function kA({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Pt(),u=await $o(a,t);if(s&&u.created){let E=sc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Vr[o.toLowerCase()]:Vr.txt);let l=Ke(t),p=Pe(r),m={Bucket:l,Key:p,Body:e,ContentType:c,...i},f=await new hf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:p});return{...f,ContentLength:g.ContentLength}}async function FA(t,e){let r=Pt(),n={Bucket:Ke(t),Key:Pe(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(SN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Go.default.Readable.fromWeb(s)}}async function BA(t,e){let r=Pt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Pe(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Wr(t,e,r=3600){let n=Pt({presigning:!0}),i={Bucket:Ke(t),Key:Pe(e)},s=await(0,PA.getSignedUrl)(n,new fc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Af}${a}${u}`}else return s}async function ON(t,e){t=Ke(t),e=Pe(e);let r=await FA(t,e),n=(0,qr.join)(Hn(),(0,Tf.v4)());return r instanceof Go.default.Readable?r.pipe(dr.default.createWriteStream(n)):dr.default.writeFileSync(n,r),n}async function xN(t,e){let r=(0,qr.join)(Hn(),(0,Tf.v4)());dr.default.mkdirSync(r);let n=await BA(t,e),i=await Promise.all(n.map(a=>oc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),p=l.slice(0,l.length-1),m=(0,qr.join)(r,...p);l.length>1&&!dr.default.existsSync(m)&&dr.default.mkdirSync(m,{recursive:!0});let d=dr.default.createWriteStream((0,qr.join)(r,...l),{mode:420});c.pipe(d),o.push(new Promise((f,g)=>{d.on("finish",f),c.on("error",g),d.on("error",g)}))}return await Promise.all(o),r}async function RN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Key:Pe(e)};return r.deleteObject(n)}async function wN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Pe(i)}))}};return r.deleteObjects(n)}async function GA(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return GA(t,e)}async function _f(t,e,r){t=Ke(t);let n=[],i=dr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Pe((0,qr.join)(r,s.name)),a=(0,qr.join)(e,s.name);s.isDirectory()?n.push(_f(t,a,o)):n.push(kA({bucket:t,filename:o,stream:dr.default.createReadStream(a)}))}return await Promise.all(n),i}async function bN(t,e,r={}){e=Pe(e);let n=await(0,gf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await MA(n.body,Ef.default.createUnzip(),yf.default.extract(e))}async function DN(t,e,r){e=Ke(e),r=Pe(r);let n=await(0,gf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,qr.join)(Hn(),r);return await MA(n.body,Ef.default.createUnzip(),yf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await _f(e,i,r),i}async function oc(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof Go.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function CN(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function ef(t){let e=t.split("?")[0],r=new RegExp(`^${Af}/(?<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 $A=j(require("aws-cloudfront-sign")),mc;function vN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return mc||(mc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),mc)}var NN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:vN(),expireTime:new Date().getTime()+1e3*60*60*24}),is=t=>{let e=Sf(t);return $A.getSignedUrl(e,NN())},Sf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var VA=j(require("querystring"));function qA(t){return`${Pe(t)}/budibase-client.js`}async function PN(t,e){let r=qA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Sf(r)):await Wr(h.APPS_BUCKET_NAME,r)}function UN(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ye&&(n.tenantId=r),`/api/assets/client?${VA.default.encode(n)}`}async function LN(t){return h.CLOUDFRONT_CDN?is(t):await Wr(h.APPS_BUCKET_NAME,t)}var MN=async(t,e,r)=>{let n=WA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),is(n)):await Wr(h.GLOBAL_BUCKET_NAME,n)},WA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function kN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await FN(e),n=await BN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function FN(t){let e=jA(t);return QA(e)}async function BN(t){let e=HA(t);if(e)return QA(e)}async function QA(t){return h.CLOUDFRONT_CDN?is(t):await Wr(h.PLUGIN_BUCKET_NAME,t)}function jA(t){return YA(t,"plugin.min.js")}function HA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return YA(t,e)}function YA(t,e){return`${KA(t.name)}/${e}`}function KA(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var ZA="budibase.log",XA="budibase-logs-history.txt",e_=xf.default.join(Hn(),"systemlogs");function JA(t){return xf.default.join(e_,t)}function t_(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 Rf(){let t=t_(h.ROLLING_LOG_MAX_SIZE);return zA.createStream(ZA,{size:t?.size,path:e_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:XA,initialRotation:!1})}function GN(){let t=[],e=JA(XA);if(Vo.default.existsSync(e)){let i=Vo.default.readFileSync(e,"utf-8").split(`
|
|
33
|
-
`);for(let s of i.filter(o=>o))t.push(Vo.default.readFileSync(s))}return t.push(Vo.default.readFileSync(
|
|
32
|
+
}`,"platform_users_lowercase_2")},Fo=async(t,e)=>{let r={account_by_email:wA,platform_users_lowercase_2:bA};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return df(t,e,n,i,{arrayResponse:!0})})},DA={by_email2:OA,by_api_key:xA,by_app:IA},cr=async(t,e,r,n)=>{r||(r=ie());let i=DA[t];return df(t,e,r,i,n)};async function pf(t,e,r){let n=ie(),i=DA[t];return ko(t,e,n,i,r)}var ff=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Co(this.source),Co(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},CA=ff;var NA=j(require("node-fetch"));var Bo=Ur.removeKeyNumbering;function Jn(t){return t==null||t===""}var lr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Bo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>Jn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(Jn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>Jn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(Jn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function p(f,g,E){let y="";for(let[S,_]of Object.entries(f)){S=Bo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let M=g(S,_);if(M!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=M,(typeof _!="string"&&_!=null||typeof _=="string"&&_!==o&&_!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>Jn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(Jn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>Jn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await vA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await vA(n,i,r);throw s}}};async function vA(t,e,r){let n=await(0,NA.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 PA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=lr.maxLimit;n.limit&&s.length>n.limit-lr.maxLimit&&(o=n.limit-s.length);let a=new lr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<lr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await PA(t,e,r,c)}async function yN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,lr.maxLimit);let s=new lr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function EN(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 PA(t,e,r,n)}}var mf={};v(mf,{createUserIndex:()=>TN});async function TN(){let t=ie(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function UA(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 AN(t){return UA(t,409)}var kA=j(require("fs/promises")),_N=require("sanitize-s3-objectkey"),FA=(0,MA.promisify)(Go.default.pipeline),SN={bucketCreationPromises:{}},Af="/files/signed",Vr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},ON=[Vr.html,Vr.css,Vr.js,Vr.json];function Pe(t){return _N(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(yt,"g"),gt)}function Pt(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new fc.S3(e)}async function $o(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=SN.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}async function IN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await kA.default.open(r)).createReadStream():s,c=Pt(),l=await $o(c,t);if(o&&l.created){let g=sc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Vr[a.toLowerCase()]:Vr.txt),p={Bucket:Ke(t),Key:Pe(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new hf.Upload({client:c,params:p}).done()}async function BA({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Pt(),u=await $o(a,t);if(s&&u.created){let E=sc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Vr[o.toLowerCase()]:Vr.txt);let l=Ke(t),d=Pe(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new hf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function GA(t,e){let r=Pt(),n={Bucket:Ke(t),Key:Pe(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(ON.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Go.default.Readable.fromWeb(s)}}async function $A(t,e){let r=Pt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Pe(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Wr(t,e,r=3600){let n=Pt({presigning:!0}),i={Bucket:Ke(t),Key:Pe(e)},s=await(0,LA.getSignedUrl)(n,new fc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Af}${a}${u}`}else return s}async function xN(t,e){t=Ke(t),e=Pe(e);let r=await GA(t,e),n=(0,qr.join)(Hn(),(0,Tf.v4)());return r instanceof Go.default.Readable?r.pipe(dr.default.createWriteStream(n)):dr.default.writeFileSync(n,r),n}async function RN(t,e){let r=(0,qr.join)(Hn(),(0,Tf.v4)());dr.default.mkdirSync(r);let n=await $A(t,e),i=await Promise.all(n.map(a=>oc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,qr.join)(r,...d);l.length>1&&!dr.default.existsSync(m)&&dr.default.mkdirSync(m,{recursive:!0});let p=dr.default.createWriteStream((0,qr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",f),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function wN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Key:Pe(e)};return r.deleteObject(n)}async function bN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Pe(i)}))}};return r.deleteObjects(n)}async function VA(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return VA(t,e)}async function _f(t,e,r){t=Ke(t);let n=[],i=dr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Pe((0,qr.join)(r,s.name)),a=(0,qr.join)(e,s.name);s.isDirectory()?n.push(_f(t,a,o)):n.push(BA({bucket:t,filename:o,stream:dr.default.createReadStream(a)}))}return await Promise.all(n),i}async function DN(t,e,r={}){e=Pe(e);let n=await(0,gf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await FA(n.body,Ef.default.createUnzip(),yf.default.extract(e))}async function CN(t,e,r){e=Ke(e),r=Pe(r);let n=await(0,gf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,qr.join)(Hn(),r);return await FA(n.body,Ef.default.createUnzip(),yf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await _f(e,i,r),i}async function oc(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof Go.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function vN(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function ef(t){let e=t.split("?")[0],r=new RegExp(`^${Af}/(?<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 qA=j(require("aws-cloudfront-sign")),mc;function NN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return mc||(mc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),mc)}var PN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:NN(),expireTime:new Date().getTime()+1e3*60*60*24}),is=t=>{let e=Sf(t);return qA.getSignedUrl(e,PN())},Sf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var WA=j(require("querystring"));function QA(t){return`${Pe(t)}/budibase-client.js`}async function UN(t,e){let r=QA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Sf(r)):await Wr(h.APPS_BUCKET_NAME,r)}function LN(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ye&&(n.tenantId=r),`/api/assets/client?${WA.default.encode(n)}`}async function MN(t){return h.CLOUDFRONT_CDN?is(t):await Wr(h.APPS_BUCKET_NAME,t)}var kN=async(t,e,r)=>{let n=jA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),is(n)):await Wr(h.GLOBAL_BUCKET_NAME,n)},jA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function FN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await BN(e),n=await GN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function BN(t){let e=YA(t);return HA(e)}async function GN(t){let e=KA(t);if(e)return HA(e)}async function HA(t){return h.CLOUDFRONT_CDN?is(t):await Wr(h.PLUGIN_BUCKET_NAME,t)}function YA(t){return JA(t,"plugin.min.js")}function KA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return JA(t,e)}function JA(t,e){return`${zA(t.name)}/${e}`}function zA(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var e_="budibase.log",t_="budibase-logs-history.txt",r_=xf.default.join(Hn(),"systemlogs");function ZA(t){return xf.default.join(r_,t)}function n_(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 Rf(){let t=n_(h.ROLLING_LOG_MAX_SIZE);return XA.createStream(e_,{size:t?.size,path:r_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:t_,initialRotation:!1})}function $N(){let t=[],e=ZA(t_);if(Vo.default.existsSync(e)){let i=Vo.default.readFileSync(e,"utf-8").split(`
|
|
33
|
+
`);for(let s of i.filter(o=>o))t.push(Vo.default.readFileSync(s))}return t.push(Vo.default.readFileSync(ZA(e_))),Buffer.concat(t)}function VN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function qN(t){return t instanceof Error}function WN(t){return typeof t=="string"}var Qr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,i_.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Rf(),level:t}),Qr=r.length?(0,hc.default)(e,hc.default.multistream(r)):(0,hc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{WN(E)&&(d=`${d} ${E}`.trimStart()),VN(E)&&l.push(E),qN(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Xp()};let f=bf.default.scope().active();f&&bf.default.inject(f.context(),s_.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let _=l[S],M=_._logKey;M?(delete _._logKey,g[M]=_):(E[y]=_,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Qr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Qr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Qr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Qr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Qr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Qr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ne()}catch{}return u},o=()=>{let u;try{u=jp()}catch{}return u},a=()=>{let u;try{u=or()}catch{}return u}}var gc=Qr;var QN=["AccountError"];function jN(t){return t&&t.suppressAlert}function zn(t,e){e&&QN.includes(e.name)&&jN(e)||console.error(`bb-alert: ${t}`,e)}function HN(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,zn(t,n)}function ss(t,e){console.warn(`bb-warn: ${t}`,e)}var jo={};v(jo,{cleanup:()=>YN,clear:()=>Qo,set:()=>Wo});var qo=[];function Wo(t,e){let r=setInterval(t,e);return qo.push(r),r}function Qo(t){let e=qo.indexOf(t);e!==-1&&qo.splice(e,1),clearInterval(t)}function YN(){for(let t of qo)clearInterval(t);qo=[]}var Cf;if(h.MOCK_REDIS)try{Cf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var KN=2e3,JN=5e3,a_=h.REDIS_CLUSTERED,Pf=0,Ho=!1,vf={},Zn=!1;h.MOCK_REDIS&&(Zn=!0);function Uf(t){return vf[t]}function Df(t,e){Ho||(Ho=!0,clearTimeout(t),Zn=!1,zn("Redis connection failed",e),setTimeout(()=>{Lf()},KN))}function Lf(t=Pf){let e=h.MOCK_REDIS&&Cf?Cf:o_.default,r;Ho=!1;let n=Uf(t);if(n&&Zn)return;h.MOCK_REDIS&&(vf[t]=new e(ts())),r=setTimeout(()=>{Zn||Df(r,"Did not successfully connect in timeout")},JN),n&&n.disconnect();let{host:i,port:s}=nc(),o=ts();a_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Df(r,a)}),n.on("error",a=>{Df(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),Zn=!0}),vf[t]=n}function zN(t=Pf){return new Promise(e=>{if(Uf(t)==null)Lf();else if(Zn){e("");return}let r=Wo(()=>{Zn&&(Qo(r),e(""))},500)})}function ZN(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",s=>{s.forEach(o=>{i.add(o)})}),t.on("error",s=>{n(s)}),t.on("end",async()=>{let s=Array.from(i);try{let o=[];for(let u of s)o.push(e.get(u));let a=await Promise.all(o);r(s.map(u=>({key:Zp(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var Nf=class{constructor(e,r=null){this._db=e,this._select=r||Pf}getClient(){return Uf(this._select)}async init(){return Ho=!1,Lf(this._select),await zN(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Ho=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${es}${e}`;let n;return a_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),ZN(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ye(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ye(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ye(r,e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}}async bulkGet(e){let r=this._db;if(e.length===0)return{};let n=e.map(s=>Ye(r,s)),i=await this.getClient().mget(n);if(Array.isArray(i)){let s={},o=0;for(let a of i){if(a){let u;try{u=JSON.parse(a)}catch{u=a}s[e[o]]=u}o++}return s}else throw new Error(`Invalid response: ${i}`)}async store(e,r,n=null){let i=this._db;typeof r=="object"&&(r=JSON.stringify(r));let s=Ye(i,e);await this.getClient().set(s,r),n&&await this.getClient().expire(s,n)}async bulkStore(e,r=null){let n=this.getClient(),i=Object.entries(e).reduce((o,[a,u])=>(o[Ye(this._db,a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=n.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()}async getTTL(e){let r=this._db,n=Ye(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ye(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ye(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ye(r,n)))}async clear(){let e=await this.scan();await Promise.all(e.map(r=>this.delete(r.key)))}async increment(e){let r=await this.getClient().incr(Ye(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
|
|
34
34
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
35
35
|
redis.call('DEL', KEYS[1])
|
|
36
36
|
end
|
|
37
|
-
`;await n.eval(i,1,Ye(this._db,e),r)}},$e=Nf;var Yo,Ko,Jo,zo,Zn,Zo,Xo,ea,ta,Mf;async function Ut(){Yo=await new $e("users").init(),Ko=await new $e("session").init(),Jo=await new $e("appMetadata").init(),zo=await new $e("data_cache").init(),Zo=await new $e("locks").init(),Zn=await new $e("writeThrough").init(),ea=await new $e("invitation").init(),ta=await new $e("pwReset").init(),Xo=await new $e("socket_io",1).init(),Mf=await new $e("docWriteThrough").init()}async function o_(){Yo&&await Yo.finish(),Ko&&await Ko.finish(),Jo&&await Jo.finish(),zo&&await zo.finish(),Zn&&await Zn.finish(),Zo&&await Zo.finish(),ea&&await ea.finish(),ta&&await ta.finish(),Xo&&await Xo.finish(),Mf&&await Mf.finish()}process.on("exit",async()=>{await o_()});async function ra(){return Yo||await Ut(),Yo}async function jr(){return Ko||await Ut(),Ko}async function cc(){return Jo||await Ut(),Jo}async function kf(){return zo||await Ut(),zo}async function Ff(){return Zn||await Ut(),Zn}async function Bf(){return Zo||await Ut(),Zo}async function ZN(){return Xo||await Ut(),Xo}async function Xn(){return ea||await Ut(),ea}async function na(){return ta||await Ut(),ta}async function XN(){return Zn||await Ut(),Zn}function jt(t){let e=Q();return`${t}:${e}`}var ei=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await kf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?jt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[jt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(jt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?jt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var os=new ei,pr=(a=>(a.CHECKLIST="checklist",a.INSTALLATION="installation",a.ANALYTICS_ENABLED="analyticsEnabled",a.UNIQUE_TENANT_ID="uniqueTenantId",a.EVENTS="events",a.BACKFILL_METADATA="backfillMetadata",a.EVENTS_RATE_LIMIT="eventsRateLimit",a))(pr||{}),ti=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ti||{}),Ec=(...t)=>os.keys(...t),ri=(...t)=>os.get(...t),fr=(...t)=>os.store(...t),ia=(...t)=>os.delete(...t),Yr=(...t)=>os.withCache(...t),as=(...t)=>os.bustCache(...t);var rn={};v(rn,{getUser:()=>Ca,getUsers:()=>EM,invalidateUser:()=>va});var aa={};v(aa,{addTenantToUrl:()=>eP,getTenantDB:()=>Gf,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>tP});function Gf(t){return He(ar(t))}function eP(t){let e=Q();if(Br()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var tP=(t,e)=>{let r;return e?r=e.tenantId||ye:r=Q(),(Ji(t)||ye)===r},rP=Object.values(Rs),oa=(t,e)=>{if(!Br())return ye;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=rP),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(Wp()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var ca={};v(ca,{getPlatformDB:()=>ut,tenants:()=>zf,users:()=>Lt});var Lt={};v(Lt,{addSsoUser:()=>u_,addUser:()=>uP,getUserDoc:()=>a_,lookupTenantId:()=>nP,removeUser:()=>cP,updateUserDoc:()=>iP});function ut(){return He(Se.PLATFORM_INFO.name)}async function nP(t){return h.MULTI_TENANCY?(await a_(t)).tenantId:ye}async function a_(t){return ut().get(t)}async function iP(t){await ut().put(t)}function sP(t,e){return{_id:t,tenantId:e}}function oP(t,e,r){return{_id:e,userId:t,tenantId:r}}function aP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function $f(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 u_(t,e,r,n){return $f(t,()=>aP(t,e,r,n))}async function uP(t,e,r,n){let i=[$f(e,()=>sP(e,t)),$f(r,()=>oP(e,r,t))];n&&i.push(u_(n,r,e,t)),await Promise.all(i)}async function cP(t){let e=ut(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}var zf={};v(zf,{addTenant:()=>CP,exists:()=>wP,getTenantIds:()=>RP,removeTenant:()=>vP,tenacyLockOptions:()=>Jf});var si={};v(si,{AUTO_EXTEND_POLLING_MS:()=>y_,doWithLock:()=>ds,newRedlock:()=>ii});var g_=j(require("redlock"));var cs={};v(cs,{Duration:()=>we,DurationType:()=>Yf,clearCookie:()=>Kr,compare:()=>Wf,getAppIdFromCtx:()=>yP,getCookie:()=>ni,hasCircularStructure:()=>AP,hash:()=>qf,isAudited:()=>jf,isClient:()=>EP,isPublicApiRequest:()=>gP,isServingApp:()=>fP,isServingBuilder:()=>mP,isServingBuilderPreview:()=>hP,isValidInternalAPIKey:()=>ua,newid:()=>Ie,openJwt:()=>Ac,resolveAppUrl:()=>f_,setCookie:()=>m_,time:()=>SP,timeout:()=>TP,urlHasProtocol:()=>_P,validEmail:()=>Hf});var Vf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),lP=h.SALT_ROUNDS||10;async function qf(t){let e=await Vf.genSalt(lP);return Vf.hash(t,e)}async function Wf(t,e){return Vf.compare(t,e)}var Tc=j(require("jsonwebtoken")),Qf="app"+N,l_="/app/",d_="/app/preview",dP="/builder",p_=`${dP}/app/`,pP="/api/public/v";function us(t){return t&&t.startsWith(Qf)?t:void 0}async function f_(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=oa(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Mo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function fP(t){return t.path.startsWith(`/${Qf}`)?!0:t.path.startsWith(l_)}function mP(t){return t.path.startsWith(p_)}function hP(t){return t.path.startsWith(d_)}function gP(t){return t.path.startsWith(pP)}async function yP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=us(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=us(t.request.body.appId));let n=c_(t.path);!r&&n&&(r=us(n)),!r&&t.query?.appId&&(r=us(t.query?.appId));let i=t.path.startsWith(d_),s=t.path.startsWith(l_)&&!i;!r&&s&&(r=us(await f_(t)));let o=t.request.headers.referer;if(!r&&o?.includes(p_)){let a=c_(t.request.headers.referer);r=us(a)}return r}function c_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Qf))}function Ac(t){if(t)try{return Tc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Tc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function ua(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function ni(t,e){let r=t.cookies.get(e);if(r)return Ac(r)}function m_(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Tc.default.sign(e,h.JWT_SECRET));let i={expires:ju,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Kr(t,e){m_(t,null,e)}function EP(t){return t.headers["x-budibase-type"]==="client"}function TP(t){return new Promise(e=>setTimeout(e,t))}function jf(t){return!!bh[t]}function AP(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 _P(t){return!!t.match(/^.+:\/\/.+$/)}function Hf(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 Yf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Yf||{}),_c={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},we=class t{constructor(e){this.ms=e}to(e){return this.ms/_c[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*_c[e]/_c[r]}static from(e,r){return new t(r*_c[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function SP(t){let e=performance.now();return[await t(),we.fromMilliseconds(performance.now()-e)]}async function IP(t,e){if(t==="custom")return ii(e);switch(t){case"try_once":return ii(ls.TRY_ONCE);case"try_twice":return ii(ls.TRY_TWICE);case"default":return ii(ls.DEFAULT);case"delay_500":return ii(ls.DELAY_500);case"auto_extend":return ii(ls.AUTO_EXTEND);default:throw wi.unreachable(t)}}var ls={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function ii(t={}){let e={...ls.DEFAULT,...t},n=(await Bf()).getClient();return new g_.default([n],e)}function OP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var y_=we.fromSeconds(10).toMs();async function ds(t,e){let r=await IP(t.type,t.customOptions),n,i;try{let s=OP(t),o=t.type==="auto_extend"?y_: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=Se.PLATFORM_INFO.docs.tenants,Jf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function RP(){return(await Sc()).tenantIds}async function Sc(){let t=ut(),e;try{e=await t.get(Kf)}catch(r){if(r.status===404)e=await DP();else throw r}return e}async function wP(t){return(await Sc()).tenantIds.indexOf(t)!==-1}function bP(){return{_id:Kf,tenantIds:[]}}async function DP(){let t=ut(),e=bP();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 CP(t){let e=ut();await ds(Jf,async()=>{let r=await Sc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function vP(t){try{await ds(Jf,async()=>{let e=ut(),r=await Sc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var oi={};v(oi,{getAccount:()=>Jr,getAccountByTenantId:()=>ps,getStatus:()=>NP});var E_=j(require("node-fetch"));var la=class{constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Po.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,E_.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var Zf=new la(h.ACCOUNT_PORTAL_URL),Xf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(Xf)return;let e={email:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ps=async t=>{if(Xf)return;let e={tenantId:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},NP=async()=>{if(Xf)return;let t=await Zf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var As={};v(As,{UserDB:()=>Ht,addAppBuilder:()=>mM,bulkGetGlobalUsersById:()=>Kc,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>Lm,creatorsInList:()=>ui,doesUserExist:()=>cM,getAccountHolderFromUsers:()=>Lc,getAllUserIds:()=>aM,getAllUsers:()=>uM,getById:()=>pi,getCreatorCount:()=>pM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>S_,getExistingTenantUsers:()=>__,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>TS,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>Ic,getUserCount:()=>dM,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>v_,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>C_,isBuilder:()=>gs,isCreatorAsync:()=>ha,isCreatorSync:()=>Pc,isGlobalBuilder:()=>D_,paginatedUsers:()=>_S,removeAppBuilder:()=>hM,removePortalUserPermissions:()=>fM,searchExistingEmails:()=>rm,searchGlobalUsersByApp:()=>Jc,searchGlobalUsersByAppAccess:()=>Um,searchGlobalUsersByEmail:()=>AS,validateUniqueUser:()=>Uc});var pm={};v(pm,{creatorsInList:()=>ui,getAccountHolderFromUsers:()=>Lc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>v_,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>C_,isBuilder:()=>gs,isCreatorAsync:()=>ha,isCreatorSync:()=>Pc,isGlobalBuilder:()=>D_,validateUniqueUser:()=>Uc});var tm={};v(tm,{createCode:()=>UP,deleteCode:()=>MP,getCode:()=>LP,getExistingInvites:()=>em,getInviteCodes:()=>A_,updateCode:()=>PP});var T_=we.fromDays(7).toSeconds();async function PP(t,e){await(await Xn()).store(t,e,T_)}async function UP(t,e){let r=Ie();return await(await Xn()).store(r,{email:t,info:e},T_),r}async function LP(t){let r=await(await Xn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function MP(t){await(await Xn()).delete(t)}async function A_(){let r=(await(await Xn()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function em(t){return(await A_()).filter(e=>t.includes(e.email))}async function rm(t){let e=[],r=await __(t);e.push(...r.map(o=>o.email));let n=await S_(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await em(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Ic(t){return await Fo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Ic(t))[0]??null}async function __(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await cr("by_email2",r,void 0,n)}async function S_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("account_by_email",r)}var Cc={};v(Cc,{BadRequestError:()=>xc,BudibaseError:()=>ms,EmailUnavailableError:()=>mr,ErrorCode:()=>bc,FeatureDisabledError:()=>wc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Oc,UsageLimitError:()=>Rc,getPublicError:()=>Dc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},bc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(bc||{}),Dc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends ms{constructor(r,n,i="http"){super(r,i);this.status=n}},Oc=class extends ct{constructor(e){super(e,404)}},xc=class extends ct{constructor(e){super(e,400)}},Rc=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},wc=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var dm={};v(dm,{AccessController:()=>sm,BUILTIN_ROLE_IDS:()=>ma,Role:()=>zr,RoleHierarchyTraversal:()=>vc,RoleIDVersion:()=>om,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>R_,externalRole:()=>VP,findRole:()=>fa,getAllRoleIds:()=>jP,getAllRoles:()=>lm,getBuiltinRole:()=>O_,getBuiltinRoles:()=>um,getDBRoleID:()=>w_,getExternalRoleID:()=>Zr,getExternalRoleIDs:()=>b_,getRole:()=>qP,getUserRoleHierarchy:()=>cm,getUserRoleIdHierarchy:()=>x_,isBuiltin:()=>ai,lowerBuiltinRoleID:()=>$P,prefixRoleIDNoBuiltin:()=>im,roleIDsAreEqual:()=>Tt,roleToNumber:()=>GP,saveRoles:()=>WP,validInherits:()=>BP});var nm=j(require("semver"));var Nc=j(require("lodash/fp/cloneDeep"));var I_=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ma,BUILDER:"BUILDER"},om={UUID:void 0,NAME:"name"};function FP(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var zr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=om.NAME}addInheritance(e){return e&&typeof e=="string"?e=im(e):e&&Array.isArray(e)&&(e=e.map(im)),this.inherits=e,this}},vc=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=fa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!FP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=fa(o.inherits,n,r),o&&i.push(o),Qt.roles.checkForRoleInheritanceLoops(i))break}}return(0,I_.uniqBy)(i,s=>s._id)}},am={ADMIN:new zr(fe.ADMIN,fe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(fe.POWER),POWER:new zr(fe.POWER,fe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(fe.BASIC),BASIC:new zr(fe.BASIC,fe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(fe.PUBLIC),PUBLIC:new zr(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new zr(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function um(){return(0,Nc.default)(am)}function ai(t){return Object.values(ma).includes(t)}function im(t){return ai(t)?t:ur(t)}function O_(t){let e=Object.values(am).find(r=>t.includes(r._id));if(e)return(0,Nc.default)(e)}function BP(t,e){if(!e)return!1;let r=n=>t.find(i=>Tt(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function pa(t){let e=um(),r=Object.values(e).length+1;if(Tt(t,fe.ADMIN)||Tt(t,fe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function GP(t){if(ai(t))return pa(t);let e=await cm(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>Tt(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(ai(n.inherits))return pa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function $P(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return ur(t)===ur(e)}function VP(t){let e;return t._id&&(e=Zr(t._id)),{...t,_id:e,inherits:b_(t.inherits,t.version)}}function fa(t,e,r){let n=O_(t);n||(t=ur(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ai(t)&&r?.defaultPublic?(0,Nc.default)(am.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 qP(t,e){let r=zi(),n=[];if(!ai(t)){let i=await r.tryGet(w_(t));i&&n.push(i)}return fa(t,n,e)}async function WP(t){await zi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:ur(r._id)})))}async function QP(t,e){let r=await lm();if(Tt(t,fe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new vc(r,e).walk(n)),i}async function x_(t){return(await cm(t)).map(r=>r._id)}async function cm(t,e){return QP(t,e)}function R_(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 jP(t){return(await lm(t)).map(r=>r._id)}async function lm(t){if(t)return at(t,e);{let r;try{r=zi()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(pc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Zr(a._id,a.version)));let i=um(),s=[];!r||await HP(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Zr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Zr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=R_(o.permissions,a);return n}}async function HP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!nm.default.valid(r)?!0:!nm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var sm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,fe.BUILDER)||Tt(r,e)||Tt(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await x_(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 w_(t){return t?.startsWith("role")?t:ur(t)}function Zr(t,e){if(t.startsWith(`role${N}`)&&(ai(t)||e===om.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function b_(t,e){return t&&(typeof t=="string"?Zr(t,e):t.map(r=>Zr(r,e)))}var gs=st.users.isBuilder,Xr=st.users.isAdmin,D_=st.users.isGlobalBuilder,C_=st.users.isAdminOrBuilder,en=st.users.hasAdminPermissions,At=st.users.hasBuilderPermissions,v_=st.users.hasAppBuilderPermissions;async function ui(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>Pc(i,e))}async function ha(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Pc(t,e)}function Pc(t,e){let r=st.users.isCreator(t);return!r&&t?YP(t,e):r}function YP(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes(ma.ADMIN)):!1}async function Uc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Jr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function Lc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await fs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ts={};v(Ts,{account:()=>H_,ai:()=>Z_,analytics:()=>kc,app:()=>Y_,auditLog:()=>fS,auth:()=>jc,automation:()=>K_,backfill:()=>uS,backfillCache:()=>Wc,backup:()=>dS,datasource:()=>J_,email:()=>z_,environmentVariable:()=>pS,group:()=>cS,identification:()=>Mt,initAsyncEvents:()=>j0,installation:()=>_a,layout:()=>eS,license:()=>X_,org:()=>tS,plugin:()=>lS,processors:()=>ym,publishEvent:()=>A,query:()=>rS,role:()=>Ra,rowAction:()=>mS,rows:()=>iS,screen:()=>nS,serve:()=>oS,shutdown:()=>H0,table:()=>sS,user:()=>Ve,view:()=>aS});var ym={};v(ym,{analyticsProcessor:()=>V_,init:()=>dU,processors:()=>hr});var kc={};v(kc,{enabled:()=>Mc});var Mc=async()=>Fc();var M_=require("posthog-node");var KP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",JP=t=>t==="served:app:preview"||t==="served:app";var P_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},U_=async t=>{if(!KP(t))return!1;let e=await zP(t);if(e){let r=new Date(e.timestamp);switch(P_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await N_(t,{timestamp:Date.now()}),!1):!0}}else return await N_(t,{timestamp:Date.now()}),!1},L_=t=>{let e=`eventsRateLimit:${t}`;return JP(t)&&(e=e+":"+Ne()),e},zP=async t=>{let e=L_(t);return await ri(e)},N_=async(t,e)=>{let r=L_(t),n=P_[t],i;switch(n){case"calendarDay":i=86400}await fr(r,e,i)};var XP=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ga=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new M_.PostHog(e)}async processEvent(e,r,n,i){if(XP.includes(e)||await U_(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 k_=ga;var eU=["installation:version:upgraded","installation:version:downgraded"],tU=["installation","tenant"],ya=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new k_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!eU.includes(e)&&!await Mc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!tU.includes(e.type)&&!await Mc()||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 fm=h.SELF_HOSTED&&!h.isDev(),Ea=class{async processEvent(e,r,n){fm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){fm||console.log("[audit] identified",e)}async identifyGroup(e){fm||console.log("[audit] group identified",e)}shutdown(){}};var gm={};v(gm,{InMemoryQueue:()=>Bc,JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>uU});var F_=j(require("events"));function rU(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var Bc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new F_.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a){try{await a}catch{await Qt.wait(50),await s(r(n))}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Ie(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>rU(e))}},B_=Bc;var mm=j(require("bull"));var ys=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(ys||{});function G_(t,e,r){sU(t,e),r&&nU(t,r)}function nU(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function _t(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var iU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function sU(t,e){let r=iU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Qp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(..._t(r,"stalled",{job:i}))})}).on("error",i=>{console.error(..._t(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(..._t(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(..._t(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(..._t(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(..._t(r,"paused"))}).on("resumed",()=>{console.info(..._t(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(..._t(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(..._t(r,"drained"))}).on("removed",i=>{console.info(..._t(r,"removed",{job:i}))})}var oU=we.fromMinutes(5).toMs(),aU=we.fromSeconds(30).toMs(),hm=we.fromSeconds(60).toMs(),Ta=[],Gc;async function $_(){for(let t of Ta)await t.clean(hm,"completed"),await t.clean(hm,"failed")}function ci(t,e={}){let n={redis:es(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:oU,lockRenewTime:aU}};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 mm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new B_(t,n):i=new mm.default(t,n),G_(i,t,e?.removeStalledCb),Ta.push(i),!Gc&&!h.isTest()&&(Gc=Wo($_,hm),$_().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function uU(){if(Gc&&Qo(Gc),Ta.length){for(let t of Ta)await t.close();Ta=[]}console.log("Queues shutdown")}var Es=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ci("auditLogQueue"),t.auditLogQueue.process(async n=>Ge(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:s})}))}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&jf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ne(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Aa=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}shutdown(){for(let e of this.processors)e.shutdown&&e.shutdown()}};var V_=new ya,cU=new Ea,lU=new Es;function dU(t){return Es.init(t)}var hr=new Aa([V_,cU,lU]);var $c={};v($c,{checkInstallVersion:()=>mU,getInstall:()=>Sa,getInstallFromDB:()=>Tm});var Em=j(require("semver"));var Sa=async()=>Yr("installation",86400,Tm,{useTenancy:!1});async function pU(t){let e={_id:Se.PLATFORM_INFO.docs.install,installId:Ie(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Tm();throw r}}var Tm=async()=>at(Se.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Se.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await pU(t);else throw r}return e}),fU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await as("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},mU=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Em.default.gt(r,e),i=Em.default.lt(r,e);await fU(r)&&(await Ro({_id:t.installId,type:"installation"},async()=>{n?await _a.upgraded(e,r):i&&await _a.downgraded(e,r)}),await Mt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Jn(`Invalid version "${r}" - is it semver?`):Jn("Failed to retrieve version",n)}};var hU=async()=>{let t=wp(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Ia();return{id:q_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Vc(Q()),s=Ia();return{id:q_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Vc(Q()),s=await li(),o=n.account,a;return o?a=o.hosting:a=Ia(),{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")},gU=async(t,e)=>{let r=t,n="installation",i=Ia(),s=h.VERSION,o=xa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Am(a,e),await Oa({...a,id:`$${n}_${r}`},e)},yU=async(t,e,r)=>{let n=await Vc(t),i="tenant",s=await li(),o=xa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Am(a,r),await Oa({...a,id:`$${i}_${n}`},r)},EU=async(t,e,r)=>{let n=t._id,i=await Vc(t.tenantId),s="user",o=At(t),a=en(t),u;Wa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,p=!!e&&l&&e.verified,m=await li(),d=e?e.hosting:Ia(),f=xa();await Oa({id:n,type:s,hosting:d,installationId:m,tenantId:i,verified:p,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},TU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=qa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await li(),c=xa();if(Va(t)){let p=await kt(t.email);p?._id&&(e=p._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await hr.identify(t,e)},Am=async(t,e)=>{await hr.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ia=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>AU()?"account-portal":(await Sa()).installId,Vc=async t=>h.SELF_HOSTED?W_(t):t,W_=async t=>Ge(t,()=>Yr("uniqueTenantId",86400,async()=>{let e=ie(),r=await qc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Ie()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),AU=()=>h.SERVICE==="account-portal",q_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Mt={getCurrentIdentity:hU,identifyInstallationGroup:gU,identifyTenantGroup:yU,identifyUser:EU,identifyAccount:TU,identify:Oa,identifyGroup:Am,getInstallationId:li,getUniqueTenantId:W_};var Wc={};v(Wc,{end:()=>SU,isAlreadySent:()=>Im,isBackfillingEvent:()=>Sm,recordEvent:()=>_m,start:()=>_U});var _U=async t=>OU({eventWhitelist:t}),_m=async(t,e)=>{let r=Om(t,e);await fr(r,e,void 0,{useTenancy:!1})},SU=async()=>{await xU(),await RU()},IU=async()=>ri("backfillMetadata"),OU=async t=>fr("backfillMetadata",t),xU=async()=>{await ia("backfillMetadata")},RU=async()=>{let t=Om(),e=await Ec(t);for(let r of e)await ia(r,{useTenancy:!1})},Sm=async t=>{let r=(await IU())?.eventWhitelist;return!!(r&&r.includes(t))},Im=async(t,e)=>{let r=Om(t,e);return!!await ri(r,{useTenancy:!1})},wU={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Om=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=wU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var gr;function Qc(){gr=ci("systemEventQueue")}async function Q_(){gr&&await gr.close()}async function j_(t){gr||Qc();let{event:e,identity:r}=t;wh.indexOf(e)!==-1&&r.tenantId&&await gr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Mt.getCurrentIdentity();if(!(n?!1:await Sm(t))){await j_({event:t,identity:i,properties:e,timestamp:r}),await hr.processEvent(t,i,e,r);return}await Im(t,e)||(await hr.processEvent(t,i,e,r),await _m(t,e))};async function bU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function DU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function CU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var H_={created:bU,deleted:DU,verified:CU};var vU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function NU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function PU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function UU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function LU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function MU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function kU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function FU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function BU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function GU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function $U(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function VU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var Y_={created:vU,updated:NU,deleted:PU,published:UU,unpublished:LU,fileImported:MU,duplicated:kU,templateImported:FU,versionUpdated:BU,versionReverted:GU,reverted:$U,exported:VU};async function qU(t,e){let n={userId:(await Mt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function WU(t){let r={userId:(await Mt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function QU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function jU(t){let e={type:t};await A("auth:sso:updated",e)}async function HU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function YU(t){let e={type:t};await A("auth:sso:deactivated",e)}var jc={login:qU,logout:WU,SSOCreated:QU,SSOUpdated:jU,SSOActivated:HU,SSODeactivated:YU};async function KU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}async function JU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}async function zU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function ZU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var XU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function eL(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}async function tL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var K_={created:KU,triggerUpdated:JU,deleted:zU,tested:ZU,run:XU,stepCreated:eL,stepDeleted:tL};function xm(t){return!Object.values(Ba).includes(t.source)}async function rL(t,e){let r={datasourceId:t._id,source:t.source,custom:xm(t)};await A("datasource:created",r,e)}async function nL(t){let e={datasourceId:t._id,source:t.source,custom:xm(t)};await A("datasource:updated",e)}async function iL(t){let e={datasourceId:t._id,source:t.source,custom:xm(t)};await A("datasource:deleted",e)}var J_={created:rL,updated:nL,deleted:iL};async function sL(t){let e={};await A("email:smtp:created",e,t)}async function oL(){let t={};await A("email:smtp:updated",t)}var z_={SMTPCreated:sL,SMTPUpdated:oL};async function aL(t){let e={};await A("ai:config:created",e,t)}async function uL(){let t={};await A("ai:config:updated",t)}var Z_={AIConfigCreated:aL,AIConfigUpdated:uL};async function cL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function lL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function dL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function pL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function fL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function mL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function hL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var X_={planChanged:cL,activated:lL,checkoutOpened:dL,checkoutSuccess:pL,portalOpened:fL,paymentFailed:mL,paymentRecovered:hL};async function gL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function yL(t){let e={layoutId:t};await A("layout:deleted",e)}var eS={created:gL,deleted:yL};async function EL(t){let e={};await A("org:info:name:updated",e,t)}async function TL(t){let e={};await A("org:info:logo:updated",e,t)}async function AL(t){let e={};await A("org:platformurl:updated",e,t)}async function _L(){let t={};await A("analytics:opt:out",t)}async function SL(){let t={};await A("analytics:opt:out",t)}var tS={nameUpdated:EL,logoUpdated:TL,platformURLUpdated:AL,analyticsOptOut:_L,analyticsOptIn:SL};var IL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},OL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},xL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},RL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},wL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},bL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},rS={created:IL,updated:OL,deleted:xL,imported:RL,run:wL,previewed:bL};async function DL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function CL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function vL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function NL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function PL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Ra={created:DL,updated:CL,deleted:vL,assigned:NL,unassigned:PL};async function UL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}async function LL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var nS={created:UL,deleted:LL};var ML=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},kL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},iS={created:ML,imported:kL};async function FL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function BL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function GL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function $L(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function VL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var sS={created:FL,updated:BL,deleted:GL,exported:$L,imported:VL};async function qL(t){let e={timezone:t};await A("served:builder",e)}async function WL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function QL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var oS={servedBuilder:qL,servedApp:WL,servedAppPreview:QL};async function jL(t,e){let r={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:created",r,e)}async function HL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:updated",e)}async function YL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:deleted",e)}async function KL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function JL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function zL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function ZL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function XL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function e0(t){let e={audited:{email:t}};await A("user:invited",e)}async function t0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function r0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function n0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function i0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function s0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function o0(t){let e={users:t};await A("user:data:collaboration",e)}var Ve={created:jL,updated:HL,deleted:YL,permissionAdminAssigned:JL,permissionAdminRemoved:zL,permissionBuilderAssigned:ZL,permissionBuilderRemoved:XL,onboardingComplete:KL,invited:e0,inviteAccepted:t0,passwordForceReset:r0,passwordUpdated:n0,passwordResetRequested:i0,passwordReset:s0,dataCollaboration:o0};async function a0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function u0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function c0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function l0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function d0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function p0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function f0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function m0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function h0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function g0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function y0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var aS={created:a0,updated:u0,deleted:c0,exported:l0,filterCreated:d0,filterUpdated:p0,filterDeleted:f0,calculationCreated:m0,calculationUpdated:h0,calculationDeleted:g0,viewJoinCreated:y0};async function E0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function T0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function A0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function _0(){let t={};await A("installation:firstStartup",t)}var _a={versionChecked:E0,upgraded:T0,downgraded:A0,firstStartup:_0};var _s=!h.SELF_HOSTED&&!h.isDev();async function S0(t){_s||await A("app:backfill:succeeded",t)}async function I0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function O0(t){_s||await A("tenant:backfill:succeeded",t)}async function x0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function R0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function w0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var uS={appSucceeded:S0,appFailed:I0,tenantSucceeded:O0,tenantFailed:x0,installationSucceeded:R0,installationFailed:w0};async function b0(t,e){let r={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function D0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:updated",e)}async function C0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function v0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function N0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function P0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function U0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var cS={created:b0,updated:D0,deleted:C0,usersAdded:v0,usersDeleted:N0,createdOnboarding:P0,permissionsEdited:U0};async function L0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function M0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}async function k0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var lS={init:L0,imported:M0,deleted:k0};async function F0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function B0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var dS={appBackupRestored:F0,appBackupTriggered:B0};async function G0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function $0(t){let e={name:t};await A("environment_variable:deleted",e)}async function V0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var pS={created:G0,deleted:$0,upgradePanelOpened:V0};async function q0(t){let e={filters:t};await A("audit_log:filtered",e)}async function W0(t){let e={filters:t};await A("audit_log:downloaded",e)}var fS={filtered:q0,downloaded:W0};async function Q0(t,e){await A("row_action:created",t,e)}var mS={created:Q0};function j0(){}var H0=()=>{hr.shutdown(),console.log("Events shutdown")};var Rm=async t=>{await Ve.deleted(t),At(t)&&await Ve.permissionBuilderRemoved(t),en(t)&&await Ve.permissionAdminRemoved(t)},Y0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ra.assigned(t,i)},K0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ra.unassigned(t,i)},J0=async(t,e)=>{let r=t.roles,n=e?.roles;await Y0(t,r,n),await K0(t,r,n)},wm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Mt.identifyUser(t,n),e?(await Ve.updated(t),Z0(t,e)&&await Ve.permissionBuilderRemoved(t),eM(t,e)&&await Ve.permissionAdminRemoved(t),tM(t,e)&&await Ve.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ve.passwordForceReset(t),t.password!==e.password&&await Ve.passwordUpdated(t)):await Ve.created(t),z0(t,e)&&await Ve.permissionBuilderAssigned(t),X0(t,e)&&await Ve.permissionAdminAssigned(t),await J0(t,e)},z0=(t,e)=>hS(t,e,At),Z0=(t,e)=>gS(t,e,At),X0=(t,e)=>hS(t,e,en),eM=(t,e)=>gS(t,e,en),tM=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",hS=(t,e,r)=>!(!r(t)||e&&r(e)),gS=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};v(Yc,{createASession:()=>nM,endSession:()=>iM,getSession:()=>Dm,getSessionsForUser:()=>Hc,invalidateSessions:()=>di,updateSessionTTL:()=>bm});var yS=require("uuid");var ES=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):we.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function Hc(t){return t?(await(await jr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function di(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Hc(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await jr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ss(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function nM(t,e){await di(t,{reason:"creation"});let r=await jr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,yS.v4)(),s=Ss(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,ES),o}async function bm(t){let e=await jr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,ES)}async function iM(t,e){await(await jr()).delete(Ss(t,e))}async function Dm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await jr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Pm={};v(Pm,{PASSWORD_MAX_LENGTH:()=>vm,PASSWORD_MIN_LENGTH:()=>Cm,validatePassword:()=>Nm});var Cm=+(h.PASSWORD_MIN_LENGTH||12),vm=+(h.PASSWORD_MAX_LENGTH||512);function Nm(t){return!t||t.length<Cm?{valid:!1,error:`Password invalid. Minimum ${Cm} characters.`}:t.length>vm?{valid:!1,error:`Password invalid. Maximum ${vm} characters.`}:{valid:!0}}var sM=async t=>{let e=t._id;await Lt.removeUser(t),await Rm(t),await rn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Ht=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&Xr(e)?!1:await t.features.isSSOEnforced()||Wa(e)?!0:(r||(r=await ps(Q())),!!(r&&r.email===e.email&&qa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new ct("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let p=Nm(o);if(!p.valid)throw new ct(p.error,400)}u=r.hashPassword?await qf(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||ts();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ie().allDocs(Yn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Jc(e,{})).length}}static async getUsersByAppAccess(e){return await Um(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await pi(e);return r&&delete r.password,r}static async bulkGet(e){return await Kc(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ie(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await pi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await kt(s),c&&c._id!==o))throw new mr(s);let l=c?0:1,p=0;if(c){let[m,d]=await ui([c,e]);p=m!==d?1:0}return t.quotas.addUsers(l,p,async()=>{r.isAccountHolder||await Uc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Lm(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 wm(m,c),c&&m.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.addUser(n,m._id,m.email,m.ssoId),await rn.invalidateUser(f.id),await Promise.all(d),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(p=>p.email),u=await rm(a),c=[];for(let p of e){if(s.find(m=>m.email.toLowerCase()===p.email.toLowerCase())||u.includes(p.email.toLowerCase())){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await ha(p)&&o.push(p)}let l=await ps(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(d=>{i.push(t.buildUser(d,{hashPassword:!0,requirePassword:d.requirePassword},n,void 0,l))});let p=await Promise.all(i);await wa(p);for(let d of p)await Lt.addUser(n,d._id,d.email),await wm(d,void 0);let m=p.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(m)&&r){let d=[],f=m.map(g=>g._id);for(let g of r)d.push(t.groups.addUsers(g,f));await Promise.all(d)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Lc(e);i&&(e=e.filter(d=>d.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(d=>d.userId)})).rows.map(d=>d.doc),a=o.map(d=>({...d,_deleted:!0})),u=await wa(a),l=(await ui(o)).filter(d=>d).length,p=[];for(let d of o){let g=(await da(d._id)).ssoId;g&&(await Ic(g)).filter(y=>y.ssoId==null).forEach(y=>{p.push({...y,_deleted:!0})}),await sM(d)}await ut().bulkDocs(p),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((d,f)=>(d[f._id]=f,d),m),u.forEach(d=>{let f=m[d.id].email;d.ok?n.successful.push({_id:d.id,email:f}):n.unsuccessful.push({_id:d.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Jr(o))throw n.userId===or()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Lt.removeUser(n),await r.remove(i,n._rev);let s=await ha(n)?1:0;await t.quotas.removeUsers(1,s),await Rm(n),await rn.invalidateUser(i),await di(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await as("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Kc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function aM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function uM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(t){return await ie().bulkDocs(t)}async function pi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Da(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await cr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Da(n)),n}async function cM(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Jc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=dc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await cr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Da(s)),s}async function Um(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 qp(ar(),i)).rows}function TS(t,e){if(e)return lc(ot(t),e._id)}async function AS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await cr("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var lM=8;async function _S({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??lM,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await pi(e.equal._id)]:r?(u=await Jc(r,a),l=p=>TS(r,p)):e?.string?.email?(u=await AS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Kc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Yn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Ur.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Yn(null,a))).rows.map(m=>m.doc),cf(u,s,{paginate:!0,property:c,getKey:l})}async function dM(){return(await pf("by_email2",{limit:0,include_docs:!1})).total_rows}async function pM(){let t=0;async function e(r){let n=await _S({bookmark:r}),i=await ui(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function fM(t){return delete t.admin,delete t.builder,t}function Lm(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 mM(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ht.save(t,{hashPassword:!1})}async function hM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ht.save(t,{hashPassword:!1})}var SS=3600;async function gM(t,e){let n=await Gf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Jr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function yM(t){let e=await Ht.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Ca({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=gM),!e)try{e=Q()}catch{e=await Lt.lookupTenantId(t)}let i=await ra(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,SS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await Ht.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function EM(t){let e=await ra(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await yM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,SS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ra()).delete(t)}var Bm={};v(Bm,{Writethrough:()=>km});var IS=1e4,Mm=null;async function Fm(){if(!Mm){let t=await Ff();Mm=new ei(t)}return Mm}function zc(t,e){return t.name+e}function OS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function TM(t,e,r=IS){let n=await Fm(),i=e._id,s;i&&(s=await n.get(zc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let p=await t.put(l,{force:!0});a._id=p.id,a._rev=p.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;ss("Ignoring conflict in write-through cache")}})).executed||ss("Ignoring redlock conflict in write-through cache")),s=OS(a,o?null:s?.lastWrite),a._id&&await n.store(zc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function AM(t,e){let r=await Fm(),n=zc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=OS(s),await r.store(n,i)}return i.doc}async function _M(t,e,r){let n=await Fm();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(zc(t,i))}finally{await t.remove(i,r)}}var km=class{constructor(e,r=IS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return TM(this.db,e,r)}async get(e){return AM(this.db,e)}async remove(e,r){return _M(this.db,e,r)}};var Gm={};v(Gm,{createCode:()=>IM,getCode:()=>OM,invalidateCode:()=>xM});var SM=we.fromHours(1).toSeconds();async function IM(t,e){let r=Ie();return await(await na()).store(r,{userId:t,info:e},SM),r}async function OM(t){let r=await(await na()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function xM(t){await(await na()).delete(t)}var Vm={};v(Vm,{DocWritethrough:()=>$m,DocWritethroughProcessor:()=>Na,getProcessor:()=>wM,init:()=>xS});var RM=100,Zc,Na=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:RM}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){let i=He(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},$m=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Na.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function xS(){return Zc=new Na().init(),Zc}function wM(){return Zc||xS()}function Qm(t){return`config${N}${t}`}async function Ft(t){let e=ie();try{return await e.get(Qm(t))}catch(r){if(r.status===404)return;throw r}}async function bM(t){return ie().put(t)}async function qc(){let t=await Ft("settings");return t||(t={_id:Qm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Pa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Fc({config:t.config}),t}async function jm(){return(await qc()).config}async function Pa(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Ft("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Fc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Yr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await Ft("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function DM(){return await Ft("google")}async function Xc(){return(await DM())?.config}async function Hm(){if(!h.SELF_HOSTED)return qm();let t=await Xc();return(!t||!t.activated)&&(t=qm()),t}function qm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function CM(){return Ft("logos_oidc")}async function vM(){return Ft("oidc")}async function NM(){let t=(await vM())?.config;return t?.configs&&t.configs[0]}async function Ym(t){let e=(await Ft("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function RS(){return Ft("smtp")}async function PM(t){let e=await RS();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 UM(){return(await Ft("scim"))?.config}async function LM(){return Ft("ai")}var Km={};v(Km,{BUILDER:()=>GM,BUILTIN_PERMISSIONS:()=>el,CREATOR:()=>$M,GLOBAL_BUILDER:()=>VM,PermissionImpl:()=>me,PermissionLevel:()=>ws,PermissionType:()=>$a,doesHaveBasePermission:()=>FM,getAllowedLevels:()=>CS,getBuiltinPermissionByID:()=>kM,getBuiltinPermissions:()=>MM,isPermissionLevelHigherThanRead:()=>BM,levelToNumber:()=>DS});var wS=j(require("lodash/flatten")),bS=j(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function DS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function CS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var el={PUBLIC:{_id:"public",name:"Public",permissions:[new me("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new me("query","read"),new me("table","read"),new me("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new me("query","write"),new me("table","write"),new me("automation","execute"),new me("legacy_view","read"),new me("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new me("table","write"),new me("user","read"),new me("automation","execute"),new me("webhook","read"),new me("legacy_view","read"),new me("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new me("table","admin"),new me("user","admin"),new me("automation","admin"),new me("webhook","read"),new me("query","admin"),new me("legacy_view","read"),new me("app","read")]}};function MM(){return(0,bS.default)(el)}function kM(t){return Object.values(el).find(r=>r._id===t)}function FM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(el),s=(0,wS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&CS(o.level).indexOf(e)!==-1)return!0;return!1}function BM(t){return DS(t)>1}var GM="builder",$M="creator",VM="globalBuilder";var Zm={};v(Zm,{FlagSet:()=>rl,all:()=>jM,flags:()=>Jm,init:()=>qM,isEnabled:()=>QM,parseEnvFlags:()=>il,shutdown:()=>WM,testutils:()=>zm});var nl=j(require("crypto"));var vS=require("posthog-node"),NS=j(require("dd-trace"));var PS=require("lodash");var tl;function qM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),tl=new vS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:we.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function WM(){tl?.shutdown()}function il(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 rl=class{constructor(e){this.flagSchema=e;this.setId=nl.randomUUID()}defaults(){return(0,PS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await NS.default.trace("features.fetch",async e=>{let r=Kp(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 il(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=m,n[`flags.${p}.source`]="environment"}let a=or(),u=a?._id;if(!u){let l=Hp();l&&(u=nl.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,tl&&u){n.readFromPostHog=!0;let l={tenantId:c},p=await tl.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)}}}Jp(this.setId,i);for(let[l,p]of Object.entries(i))n[`flags.${l}.value`]=p;return e?.addTags(n),i})}},Jm=new rl(Nh);async function QM(t){return await Jm.isEnabled(t)}async function jM(){return await Jm.fetch()}var zm={};v(zm,{setFeatureFlags:()=>US,withFeatureFlags:()=>KM});function HM(){let t={};for(let{tenantId:e,key:r,value:n}of il(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function YM(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 US(t,e){let r=HM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=YM(r);return wo({TENANT_FEATURE_FLAGS:n})}function KM(t,e,r){let n=US(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var lh={};v(lh,{adminOnly:()=>hl,auditLog:()=>dl,authError:()=>Ue,buildAuthMiddleware:()=>Mk,buildCsrfMiddleware:()=>Fk,buildTenancyMiddleware:()=>kk,builderOnly:()=>yl,builderOrAdmin:()=>gl,google:()=>yr,internalApi:()=>fl,joiValidator:()=>La,oidc:()=>Er,passport:()=>Bk,platformLogout:()=>Wk,refreshOAuthToken:()=>Vk,ssoCallbackUrl:()=>nn,updateUserOAuth:()=>qk});var ch={};v(ch,{adminOnly:()=>hl,auditLog:()=>dl,authError:()=>Ue,authenticated:()=>ll,builderOnly:()=>yl,builderOrAdmin:()=>gl,correlation:()=>YS,csp:()=>eI,csrf:()=>ml,datasource:()=>Uk,errorHandling:()=>JS,google:()=>yr,internalApi:()=>fl,ip:()=>rI,joiValidator:()=>La,local:()=>Is,oidc:()=>Er,pino:()=>jS,querystringToBody:()=>zS,ssoCallbackUrl:()=>nn,tenancy:()=>pl});var Is={};v(Is,{authenticate:()=>ZM,options:()=>zM});function Ue(t,e,r){return t(r,null,{message:e})}async function nn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await jm(),n="/api/global/auth";return Br()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Xm="Invalid credentials",JM="This account has expired. Please reset your password",zM={passReqToCallback:!0};async function ZM(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await kt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,Xm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Xm)):i.password?await Wf(r,i.password)?(delete i.password,n(null,i)):Ue(n,Xm):(console.info(`user=${e} has no password set`,i),Ue(n,JM))}var yr={};v(yr,{buildVerifyFn:()=>kS,getCallbackUrl:()=>tk,strategyFactory:()=>eh});var Ua=t=>Promise.resolve(t);async function sl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ue(r,"sso user id required");if(!t.email)return Ue(r,"sso user email required");let i=ts(t.userId),s;try{s=await pi(i)}catch(a){if(!a.status||a.status!==404)return Ue(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await kt(t.email)),!s&&e)return Ue(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await XM(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ue(r,"Error saving user",a)}return r(null,o)}async function XM(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 ek=require("passport-google-oauth").OAuth2Strategy;function kS(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 sl(s,!0,i,t)}}async function eh(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=kS(r);return new ek({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function tk(t){return nn("google",t)}var Er={};v(Er,{buildVerifyFn:()=>BS,fetchStrategyConfig:()=>sk,getCallbackUrl:()=>ok,strategyFactory:()=>ik});var FS=j(require("node-fetch"));var rk=require("@techpass/passport-openidconnect").Strategy;function BS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:nk(n,i),oauth2:{accessToken:s,refreshToken:o}};return sl(l,!1,c,t)}}function nk(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Hf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function ik(t,e){try{let r=BS(e),n=new rk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function sk(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,FS.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 ok(){return nn("oidc")}var th={};v(th,{postAuth:()=>ck,preAuth:()=>uk});var ak=require("passport-google-oauth").OAuth2Strategy;async function GS(){let t=await Hm();if(!t)throw new Error("No google configuration found");return t}async function uk(t,e,r){let n=await GS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await eh(n,s,Ua);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function ck(t,e,r){let n=await GS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ni(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new ak({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=Ie();await fr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var lk=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(lk);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],mi=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var ah={};v(ah,{SecretOption:()=>qS,decrypt:()=>oh,decryptFile:()=>gk,encrypt:()=>fk,encryptFile:()=>mk,getSecret:()=>sh});var Tr=j(require("crypto")),sn=j(require("fs")),nh=j(require("zlib"));var rh=require("path"),ol="aes-256-ctr",VS="-",dk=1e4,pk=32,al=16,ih=16,qS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(qS||{});function sh(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 ul(t,e){return Tr.default.pbkdf2Sync(t,e,dk,pk,"sha512")}function fk(t,e="api"){let r=Tr.default.randomBytes(al),n=ul(sh(e),r),i=Tr.default.createCipheriv(ol,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${VS}${a}`}function oh(t,e="api"){let[r,n]=t.split(VS),i=Buffer.from(r,"hex"),s=ul(sh(e),i),o=Tr.default.createDecipheriv(ol,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function mk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,rh.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,rh.join)(t,n)),a=Tr.default.randomBytes(al),u=Tr.default.randomBytes(ih),c=ul(r,a),l=Tr.default.createCipheriv(ol,c,u);return o.write(a),o.write(u),s.pipe(nh.default.createGzip()).pipe(l).pipe(o),new Promise(p=>{o.on("finish",()=>{p({filename:n,dir:t})})})}async function hk(t){let e=sn.default.createReadStream(t),r=await $S(e,al),n=await $S(e,ih);return e.close(),{salt:r,iv:n}}async function gk(t,e,r){if(sn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await hk(t),s=sn.default.createReadStream(t,{start:al+ih}),o=sn.default.createWriteStream(e),a=ul(r,n),u=Tr.default.createDecipheriv(ol,a,i),c=nh.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 $S(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 QS=j(require("dd-trace")),yk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function Ek(){return new Date(Date.now()-yk).toISOString()}function WS(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 Tk(t,e){if(ua(t))return{valid:!0,user:void 0};let n=oh(t).split(N)[0];return Ge(n,async()=>{let i;try{let s=ie();i=await cr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ca({userId:i,tenantId:n,populateUser:e})};throw new hs})}function cl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ll(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=cl(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=cl(n,"x-budibase-token"),c=ni(n,"budibase:auth")||Ac(u),l=cl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let p=cl(n,"x-budibase-tenant-id"),m=!1,d,f=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,_;try{_=await Dm(S,y),e&&e.populateUser?d=await Ca({userId:S,tenantId:_.tenantId,email:_.email,populateUser:e.populateUser(n)}):d=await Ca({userId:S,tenantId:_.tenantId,email:_.email}),d.csrfToken=_.csrfToken,g="cookie",_?.lastAccessedAt<Ek()&&await bm(_),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:_}=await Tk(l,y);S&&(m=!0,g="api_key",d=_,f=!_)}!d&&p?d={tenantId:p}:d&&"password"in d&&delete d.password,m||(m=!1);let E=y=>y&&y.email;return E(d)&&QS.default.setUser({id:d._id,tenantId:d.tenantId,budibaseAccess:d.budibaseAccess,status:d.status}),WS(n,{authenticated:m,user:d,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(d)?Dp(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 WS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Ak=async(t,e)=>e(),dl=Ak;function pl(t,e,r={noTenancyRequired:!1}){let n=fi(t),i=fi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!mi(s,i)};!!mi(s,n)||(u.excludeStrategies=["query"]);let l=oa(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var fl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),ua(r)||t.throw(403,"Unauthorized"),e()};var _k=["GET","HEAD","OPTIONS"],Sk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ml(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||_k.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!Sk.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 hl=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var gl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Xr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var yl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var Ik=require("koa-pino-logger"),Ok=require("correlation-id");function xk(){return{logger:gc,genReqId:Ok.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}function Rk(){return h.HTTP_LOGGING?Ik(xk()):(t,e)=>e()}var wk=Rk(),jS=wk;var HS=require("uuid"),bk=require("correlation-id"),Dk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,HS.v4)()),bk.withId(r,()=>e())},YS=Dk;function KS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of CT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Ck(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:Dc(r)};if(KS(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var JS=Ck;function zS(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}var XS=j(require("crypto")),ZS={"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 vk(t,e){try{let r=XS.default.randomBytes(16).toString("base64"),n={...ZS};n["script-src"]=[...ZS["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 eI=vk;var La={};v(La,{body:()=>Nk,params:()=>Pk});var uh=j(require("joi"));function tI(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:uh.default.any().optional(),updatedAt:uh.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 Nk(t,e){return tI(t,"body",e)}function Pk(t,e){return tI(t,"params",e)}var rI=async(t,e)=>t.ip?await Yp(t.ip,()=>e()):e();var Uk={google:th};var nI=require("koa-passport"),Lk=require("passport-local").Strategy,El=require("passport-oauth2-refresh"),Mk=ll,kk=pl,Fk=ml,Bk=nI;nI.use(new Lk(Is.options,Is.authenticate));async function Gk(t,e){let r=await Er.getCallbackUrl(),n,i;try{if(n=await Er.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Er.strategyFactory(n,Ua)}catch{throw new Error("Could not refresh OAuth Token")}return El.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{El.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function $k(t,e){let r=await yr.getCallbackUrl(t),n;try{n=await yr.strategyFactory(t,r,Ua)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return El.use(n),new Promise(i=>{El.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Vk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Ym(r);return n?Gk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Xc();return n?$k(n,t):{err:{data:"Google configuration not found"}}}}}async function qk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Wk(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 Hc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await di(r,{sessionIds:o,reason:"logout"}),await jc.logout(e.user?.email),await va(r)}var ph={};v(ph,{validate:()=>Kk});var D=j(require("joi")),Qk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function dh(t,e){let{error:r}=t.validate(e);if(r)throw r}function jk(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});dh(e,t)}function Hk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Il)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(Sl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(Ol).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...Qk),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});dh(n,t)}function Yk(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(oe)).required(),customType:D.default.string().allow(...Object.values(he)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...Ph).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});dh(n,t)}function Kk(t){switch(t?.type){case"component":jk(t);break;case"datasource":Hk(t);break;case"automation":Yk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var fh={};v(fh,{Client:()=>$e,clients:()=>Hr,locks:()=>si,utils:()=>ic});var mh={};v(mh,{isBlacklisted:()=>zk,refreshBlacklist:()=>aI});var iI=j(require("dns")),Al=j(require("net"));var sI=require("util"),Tl,Jk=(0,sI.promisify)(iI.default.lookup);async function oI(t){return Al.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Jk(t,{all:!0})).map(r=>r.address)}async function aI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Al.default.isIP(i))r.push(i);else{let s=await oI(i);r=r.concat(s)}}Tl=r}async function zk(t){if(Tl||await aI(),Tl?.length===0)return!1;let e;return Al.default.isIP(t)?e=[t]:e=await oI(t),!!Tl?.find(r=>e.includes(r))}var gh={};v(gh,{init:()=>Xk});var Zk={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId};function uI(t,e){let r=Zk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ma=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=uI(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 Q_()}};var cI,hh;function Xk(t){gr||Qc(),hh||(hh=new Ma(t)),cI||(cI=gr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await hh.processEvent(r,n,i)}))}var xh={};v(xh,{COUNT_FIELD_NAME:()=>Ih,Sql:()=>yI,SqlTable:()=>_l,designDoc:()=>Oh,utils:()=>$p});var fI=require("knex");var eF=require("knex");function yh(t){return["link","formula","ai"].indexOf(t)!==-1}function lI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,d]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=d.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(d.meta&&d.meta.toKey&&d.meta.toTable){let{toKey:E,toTable:y}=d.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":d.timeOnly?t.time(m):t.datetime(m,{useTz:!d.ignoreTimezones});break;case"array":case"bb_reference":Qt.schema.isDeprecatedSingleUserColumn(d)?t.text(m):t.json(m);break;case"link":if(d.relationshipType!=="many-to-one"&&d.relationshipType!=="many-to-many"){if(!d.foreignKey||!d.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=kp(d.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],_=y.schema[S].externalType;_?t.specificType(d.foreignKey,_):t.integer(d.foreignKey).unsigned(),t.foreign(d.foreignKey).references(`${E}.${S}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${d.type} is not a valid SQL type`;default:wi.unreachable(g)}}let p=i?n?.schema[i.old].type:void 0;return i&&p&&!yh(p)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([d,f])=>!yh(f.type)&&e.schema[d]==null).forEach(([d,f])=>{i?.old===d||yh(f.type)||(n.constrained&&n.constrained.indexOf(d)!==-1&&t.dropForeign(d),t.dropColumn(d))}),t}function rF(t,e,r){return t.createTable(e.name,n=>{lI(n,e,r)})}function nF(t,e,r,n,i){return t.alterTable(e.name,s=>{lI(s,e,r,n,i)})}function iF(t,e){return t.dropTable(e.name)}var Eh=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,eF.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=rF(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=nF(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=Yi(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=iF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Yi(n)}},_l=Eh;var mI=require("lodash"),Ih="__bb_total";function dI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Th(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function sF(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 hI(t){return Array.isArray(t)?t.map(e=>hI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function pI(t){return t.sourceType==="internal"||t.sourceId===Dl}function oF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function gI(t,e='"'){return`${e}${oF(t,e)}${e}`}function Ah(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=gI(t[r],e));return`[${t.join(",")}]`}var aF={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},_h=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Ur.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime"){if(Fp(e))return null;if(Bp(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,mI.cloneDeep)(e);for(let r of Object.values(_r)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Yt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(cn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=p=>n.match(new RegExp(`^${p}\\.`));if(!s)return e;for(let p of s){let m=p.tableName,d=a?.[m]||m,f=l(m)||l(d),g=l(p.column);if((f||g)&&p.to&&p.tableName){let E=this.knex.select(this.knex.raw(1)).from({[d]:m}),y=E.clone(),S=Gp(p),_;if(f?_=n:_=n.replace(new RegExp(`^${p.column}.`),`${a?.[p.tableName]||p.tableName}.`),S){let M=a?.[S.through]||p.through,T=this.tableNameWithSchema(S.through,{alias:M,schema:o});y=y.innerJoin(T,function(){this.on(`${d}.${S.toPrimary}`,"=",`${M}.${S.to}`)}).where(`${M}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(I=>{I.whereExists(i(_,y)),r&&I.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${M}.${S.from}`)}))})}else{let M=`${d}.${p.to}`,T=`${c}.${p.from}`;y=y.where(M,"=",this.rawQuotedIdentifier(T)),e=e.where(I=>{I.whereExists(i(_,y.clone())),r&&I.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let S=(_,M,T)=>{let[I,...x]=M.split("."),w=x.join("."),B=c(I);return _.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let _ in f){let M=f[_],T=Bo(_),I=T.includes("."),x=n?.relationship&&I,w;if(_==="_complexIdOperator"&&(w=f[_])&&y){let B=c(u);e=y(e,w.id.map(le=>B?`${B}.${le}`:le),w.values)}else if(I)x&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,aF[g],T,(B,le)=>S(le,B,M)));else{let B=c(u);e=E(e,B?`${B}.${T}`:T,M)}}}let p=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,S,_)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ah(_,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ah(_))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,S,_)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(gI(Ah(_)))])):l(f,"contains",(y,S,_)=>(_.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let I of _){f===r?.containsAny?T=T.or:T=T.and;let x=typeof I=="string"?`"${I.toLowerCase()}"`:I;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${x}%`)}}),f===r?.notContains&&(M=M.or.whereNull(this.rawQuotedIdentifier(S))),M))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let _ of S)_!=null?f=f.or.whereLike(g,`${_.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,S)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",p),r.range&&l(r.range,"range",(f,g,E)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=tc(E.low),_=tc(E.high),M=this.getFieldSchema(g),T=g,I=E.high,x=E.low;return this.client==="sqlite3"&&M?.type==="datetime"&&M.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),x!=null&&(x=x.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&M?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[E.high]),x=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),S&&_?f.whereBetween(T,[x,I]):S?f.where(T,">=",x):_?f.where(T,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(_=>_.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(_=>_.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let d=s?.[this.table._id]||this.table._id;return r.documentType&&!Mp(this.table)&&d&&e.andWhereLike(`${d}._id`,`${Sr(r.documentType)}%`),e}isSqs(){return pI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;pI(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 ${Ih}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let p=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(p):m=this.rawQuotedIdentifier(p),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let p of n){let{tableName:m,through:d,to:f,from:g,fromPrimary:E,toPrimary:y}=p;if(!m||!r)continue;let S=c[m];if(!S)throw new Error(`related table "${m}" not found in datasource`);let _=a?.[m]||m,M=a?.[r]||r,T=d&&a?.[d]||d,I=this.tableNameWithSchema(m,{alias:_,schema:u}),x=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),w=sF(l.filter(V=>V.split(".")[0]===_),x);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map(V=>this.buildJsonField(S,V));if(!B.length)continue;let le=B.map(V=>{let se=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${se}??`,[V[0],V[1]]).toString()}).join(","),on=`${_}.${y||f}`,$=s.from(I).orderBy(on),F=d&&y&&E,C=F?`${T}.${g}`:`${_}.${f}`,W=F?`${M}.${E}`:`${M}.${g}`;if(F){let V=this.tableNameWithSchema(d,{alias:T,schema:u});$=$.join(V,function(){this.on(`${_}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(C),"=",this.rawQuotedIdentifier(W));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Th()),s.select(V).from({[_]:$})),K;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,p),K=L(this.knex.raw(`json_group_array(json_object(${le}))`));break;case"pg":K=L(this.knex.raw(`json_agg(json_build_object(${le}))`));break;case"mariadb":K=$.select(s.raw(`json_arrayagg(json_object(${le}) LIMIT ${Th()})`));break;case"mysql2":case"oracledb":K=L(this.knex.raw(`json_arrayagg(json_object(${le}))`));break;case"mssql":{let V=s.select("*").from({[M]:$.select(B.map(se=>s.ref(se[1]).as(se[0]))).limit(Th())});K=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[p.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,p=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),d=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(d,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${p}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${p}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let d=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=d}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let p=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):p.length>0?u=this.addAggregations(u,p):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&p.length===0){let m=this.query.tableAliases?.[o.name]||o.name,d=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(d,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Sh=class extends _l{constructor(r,n=dI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Yi(r);return i==="sqlite3"&&(s=hI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,fI.knex)(s),a,u=new _h(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:dI()}});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===Dl){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 Uh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){vo(this.getSqlClient(),r,n)}},yI=Sh;var Oh={};v(Oh,{base:()=>uF});function uF(t){return{_id:sr,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var cF={...aa,...Ee},lF=(t={})=>{Xu(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,ErrorCode,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
37
|
+
`;await n.eval(i,1,Ye(this._db,e),r)}},$e=Nf;var Yo,Ko,Jo,zo,Xn,Zo,Xo,ea,ta,Mf;async function Ut(){Yo=await new $e("users").init(),Ko=await new $e("session").init(),Jo=await new $e("appMetadata").init(),zo=await new $e("data_cache").init(),Zo=await new $e("locks").init(),Xn=await new $e("writeThrough").init(),ea=await new $e("invitation").init(),ta=await new $e("pwReset").init(),Xo=await new $e("socket_io",1).init(),Mf=await new $e("docWriteThrough").init()}async function u_(){Yo&&await Yo.finish(),Ko&&await Ko.finish(),Jo&&await Jo.finish(),zo&&await zo.finish(),Xn&&await Xn.finish(),Zo&&await Zo.finish(),ea&&await ea.finish(),ta&&await ta.finish(),Xo&&await Xo.finish(),Mf&&await Mf.finish()}process.on("exit",async()=>{await u_()});async function ra(){return Yo||await Ut(),Yo}async function jr(){return Ko||await Ut(),Ko}async function cc(){return Jo||await Ut(),Jo}async function kf(){return zo||await Ut(),zo}async function Ff(){return Xn||await Ut(),Xn}async function Bf(){return Zo||await Ut(),Zo}async function XN(){return Xo||await Ut(),Xo}async function ei(){return ea||await Ut(),ea}async function na(){return ta||await Ut(),ta}async function eP(){return Xn||await Ut(),Xn}function jt(t){let e=Q();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await kf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?jt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[jt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(jt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?jt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var os=new ti,pr=(a=>(a.CHECKLIST="checklist",a.INSTALLATION="installation",a.ANALYTICS_ENABLED="analyticsEnabled",a.UNIQUE_TENANT_ID="uniqueTenantId",a.EVENTS="events",a.BACKFILL_METADATA="backfillMetadata",a.EVENTS_RATE_LIMIT="eventsRateLimit",a))(pr||{}),ri=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ri||{}),Ec=(...t)=>os.keys(...t),ni=(...t)=>os.get(...t),fr=(...t)=>os.store(...t),ia=(...t)=>os.delete(...t),Yr=(...t)=>os.withCache(...t),as=(...t)=>os.bustCache(...t);var rn={};v(rn,{getUser:()=>Ca,getUsers:()=>TM,invalidateUser:()=>va});var aa={};v(aa,{addTenantToUrl:()=>tP,getTenantDB:()=>Gf,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>rP});function Gf(t){return He(ar(t))}function tP(t){let e=Q();if(Br()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var rP=(t,e)=>{let r;return e?r=e.tenantId||ye:r=Q(),(zi(t)||ye)===r},nP=Object.values(Rs),oa=(t,e)=>{if(!Br())return ye;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=nP),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(Wp()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var ca={};v(ca,{getPlatformDB:()=>ut,tenants:()=>zf,users:()=>Lt});var Lt={};v(Lt,{addSsoUser:()=>l_,addUser:()=>cP,getUserDoc:()=>c_,lookupTenantId:()=>iP,removeUser:()=>lP,updateUserDoc:()=>sP});function ut(){return He(Se.PLATFORM_INFO.name)}async function iP(t){return h.MULTI_TENANCY?(await c_(t)).tenantId:ye}async function c_(t){return ut().get(t)}async function sP(t){await ut().put(t)}function oP(t,e){return{_id:t,tenantId:e}}function aP(t,e,r){return{_id:e,userId:t,tenantId:r}}function uP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function $f(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 l_(t,e,r,n){return $f(t,()=>uP(t,e,r,n))}async function cP(t,e,r,n){let i=[$f(e,()=>oP(e,t)),$f(r,()=>aP(e,r,t))];n&&i.push(l_(n,r,e,t)),await Promise.all(i)}async function lP(t){let e=ut(),r=[t._id,t.email],n=await e.allDocs({keys:r,include_docs:!0});await e.bulkRemove(n.rows.map(i=>i.doc),{silenceErrors:!0})}var zf={};v(zf,{addTenant:()=>vP,exists:()=>bP,getTenantIds:()=>wP,removeTenant:()=>NP,tenacyLockOptions:()=>Jf});var oi={};v(oi,{AUTO_EXTEND_POLLING_MS:()=>T_,doWithLock:()=>ds,newRedlock:()=>si});var E_=j(require("redlock"));var cs={};v(cs,{Duration:()=>we,DurationType:()=>Yf,clearCookie:()=>Kr,compare:()=>Wf,getAppIdFromCtx:()=>EP,getCookie:()=>ii,hasCircularStructure:()=>_P,hash:()=>qf,isAudited:()=>jf,isClient:()=>TP,isPublicApiRequest:()=>yP,isServingApp:()=>mP,isServingBuilder:()=>hP,isServingBuilderPreview:()=>gP,isValidInternalAPIKey:()=>ua,newid:()=>Oe,openJwt:()=>Ac,resolveAppUrl:()=>h_,setCookie:()=>g_,time:()=>OP,timeout:()=>AP,urlHasProtocol:()=>SP,validEmail:()=>Hf});var Vf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),dP=h.SALT_ROUNDS||10;async function qf(t){let e=await Vf.genSalt(dP);return Vf.hash(t,e)}async function Wf(t,e){return Vf.compare(t,e)}var Tc=j(require("jsonwebtoken")),Qf="app"+N,p_="/app/",f_="/app/preview",pP="/builder",m_=`${pP}/app/`,fP="/api/public/v";function us(t){return t&&t.startsWith(Qf)?t:void 0}async function h_(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=oa(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Mo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function mP(t){return t.path.startsWith(`/${Qf}`)?!0:t.path.startsWith(p_)}function hP(t){return t.path.startsWith(m_)}function gP(t){return t.path.startsWith(f_)}function yP(t){return t.path.startsWith(fP)}async function EP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=us(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=us(t.request.body.appId));let n=d_(t.path);!r&&n&&(r=us(n)),!r&&t.query?.appId&&(r=us(t.query?.appId));let i=t.path.startsWith(f_),s=t.path.startsWith(p_)&&!i;!r&&s&&(r=us(await h_(t)));let o=t.request.headers.referer;if(!r&&o?.includes(m_)){let a=d_(t.request.headers.referer);r=us(a)}return r}function d_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Qf))}function Ac(t){if(t)try{return Tc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Tc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function ua(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function ii(t,e){let r=t.cookies.get(e);if(r)return Ac(r)}function g_(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Tc.default.sign(e,h.JWT_SECRET));let i={expires:ju,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Kr(t,e){g_(t,null,e)}function TP(t){return t.headers["x-budibase-type"]==="client"}function AP(t){return new Promise(e=>setTimeout(e,t))}function jf(t){return!!bh[t]}function _P(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 SP(t){return!!t.match(/^.+:\/\/.+$/)}function Hf(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 Yf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Yf||{}),_c={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},we=class t{constructor(e){this.ms=e}to(e){return this.ms/_c[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*_c[e]/_c[r]}static from(e,r){return new t(r*_c[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function OP(t){let e=performance.now();return[await t(),we.fromMilliseconds(performance.now()-e)]}async function IP(t,e){if(t==="custom")return si(e);switch(t){case"try_once":return si(ls.TRY_ONCE);case"try_twice":return si(ls.TRY_TWICE);case"default":return si(ls.DEFAULT);case"delay_500":return si(ls.DELAY_500);case"auto_extend":return si(ls.AUTO_EXTEND);default:throw bi.unreachable(t)}}var ls={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function si(t={}){let e={...ls.DEFAULT,...t},n=(await Bf()).getClient();return new E_.default([n],e)}function xP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var T_=we.fromSeconds(10).toMs();async function ds(t,e){let r=await IP(t.type,t.customOptions),n,i;try{let s=xP(t),o=t.type==="auto_extend"?T_: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=Se.PLATFORM_INFO.docs.tenants,Jf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function wP(){return(await Sc()).tenantIds}async function Sc(){let t=ut(),e;try{e=await t.get(Kf)}catch(r){if(r.status===404)e=await CP();else throw r}return e}async function bP(t){return(await Sc()).tenantIds.indexOf(t)!==-1}function DP(){return{_id:Kf,tenantIds:[]}}async function CP(){let t=ut(),e=DP();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 vP(t){let e=ut();await ds(Jf,async()=>{let r=await Sc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function NP(t){try{await ds(Jf,async()=>{let e=ut(),r=await Sc();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var ai={};v(ai,{getAccount:()=>Jr,getAccountByTenantId:()=>ps,getStatus:()=>PP});var A_=j(require("node-fetch"));var la=class{constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Po.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,A_.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var Zf=new la(h.ACCOUNT_PORTAL_URL),Xf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(Xf)return;let e={email:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ps=async t=>{if(Xf)return;let e={tenantId:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},PP=async()=>{if(Xf)return;let t=await Zf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var As={};v(As,{UserDB:()=>Ht,addAppBuilder:()=>hM,bulkGetGlobalUsersById:()=>Kc,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>Lm,creatorsInList:()=>ci,doesUserExist:()=>lM,getAccountHolderFromUsers:()=>Lc,getAllUserIds:()=>uM,getAllUsers:()=>cM,getById:()=>fi,getCreatorCount:()=>fM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>I_,getExistingTenantUsers:()=>O_,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>_S,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>Oc,getUserCount:()=>pM,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>P_,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>N_,isBuilder:()=>gs,isCreatorAsync:()=>ha,isCreatorSync:()=>Pc,isGlobalBuilder:()=>v_,paginatedUsers:()=>OS,removeAppBuilder:()=>gM,removePortalUserPermissions:()=>mM,searchExistingEmails:()=>rm,searchGlobalUsersByApp:()=>Jc,searchGlobalUsersByAppAccess:()=>Um,searchGlobalUsersByEmail:()=>SS,validateUniqueUser:()=>Uc});var pm={};v(pm,{creatorsInList:()=>ci,getAccountHolderFromUsers:()=>Lc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>P_,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>N_,isBuilder:()=>gs,isCreatorAsync:()=>ha,isCreatorSync:()=>Pc,isGlobalBuilder:()=>v_,validateUniqueUser:()=>Uc});var tm={};v(tm,{createCode:()=>LP,deleteCode:()=>kP,getCode:()=>MP,getExistingInvites:()=>em,getInviteCodes:()=>S_,updateCode:()=>UP});var __=we.fromDays(7).toSeconds();async function UP(t,e){await(await ei()).store(t,e,__)}async function LP(t,e){let r=Oe();return await(await ei()).store(r,{email:t,info:e},__),r}async function MP(t){let r=await(await ei()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function kP(t){await(await ei()).delete(t)}async function S_(){let r=(await(await ei()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function em(t){return(await S_()).filter(e=>t.includes(e.email))}async function rm(t){let e=[],r=await O_(t);e.push(...r.map(o=>o.email));let n=await I_(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await em(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Oc(t){return await Fo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Oc(t))[0]??null}async function O_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await cr("by_email2",r,void 0,n)}async function I_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Fo("account_by_email",r)}var Cc={};v(Cc,{BadRequestError:()=>xc,BudibaseError:()=>ms,EmailUnavailableError:()=>mr,ErrorCode:()=>bc,FeatureDisabledError:()=>wc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Ic,UsageLimitError:()=>Rc,getPublicError:()=>Dc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},bc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(bc||{}),Dc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends ms{constructor(r,n,i="http"){super(r,i);this.status=n}},Ic=class extends ct{constructor(e){super(e,404)}},xc=class extends ct{constructor(e){super(e,400)}},Rc=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},wc=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var dm={};v(dm,{AccessController:()=>sm,BUILTIN_ROLE_IDS:()=>ma,Role:()=>zr,RoleHierarchyTraversal:()=>vc,RoleIDVersion:()=>om,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>b_,externalRole:()=>qP,findRole:()=>fa,getAllRoleIds:()=>HP,getAllRoles:()=>lm,getBuiltinRole:()=>R_,getBuiltinRoles:()=>um,getDBRoleID:()=>D_,getExternalRoleID:()=>Zr,getExternalRoleIDs:()=>C_,getRole:()=>WP,getUserRoleHierarchy:()=>cm,getUserRoleIdHierarchy:()=>w_,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>VP,prefixRoleIDNoBuiltin:()=>im,roleIDsAreEqual:()=>Tt,roleToNumber:()=>$P,saveRoles:()=>QP,validInherits:()=>GP});var nm=j(require("semver"));var Nc=j(require("lodash/fp/cloneDeep"));var x_=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ma,BUILDER:"BUILDER"},om={UUID:void 0,NAME:"name"};function BP(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var zr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=om.NAME}addInheritance(e){return e&&typeof e=="string"?e=im(e):e&&Array.isArray(e)&&(e=e.map(im)),this.inherits=e,this}},vc=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=fa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!BP(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=fa(o.inherits,n,r),o&&i.push(o),Qt.roles.checkForRoleInheritanceLoops(i))break}}return(0,x_.uniqBy)(i,s=>s._id)}},am={ADMIN:new zr(fe.ADMIN,fe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(fe.POWER),POWER:new zr(fe.POWER,fe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(fe.BASIC),BASIC:new zr(fe.BASIC,fe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(fe.PUBLIC),PUBLIC:new zr(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new zr(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function um(){return(0,Nc.default)(am)}function ui(t){return Object.values(ma).includes(t)}function im(t){return ui(t)?t:ur(t)}function R_(t){let e=Object.values(am).find(r=>t.includes(r._id));if(e)return(0,Nc.default)(e)}function GP(t,e){if(!e)return!1;let r=n=>t.find(i=>Tt(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function pa(t){let e=um(),r=Object.values(e).length+1;if(Tt(t,fe.ADMIN)||Tt(t,fe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function $P(t){if(ui(t))return pa(t);let e=await cm(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>Tt(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(ui(n.inherits))return pa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function VP(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return ur(t)===ur(e)}function qP(t){let e;return t._id&&(e=Zr(t._id)),{...t,_id:e,inherits:C_(t.inherits,t.version)}}function fa(t,e,r){let n=R_(t);n||(t=ur(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,Nc.default)(am.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 WP(t,e){let r=Zi(),n=[];if(!ui(t)){let i=await r.tryGet(D_(t));i&&n.push(i)}return fa(t,n,e)}async function QP(t){await Zi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:ur(r._id)})))}async function jP(t,e){let r=await lm();if(Tt(t,fe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new vc(r,e).walk(n)),i}async function w_(t){return(await cm(t)).map(r=>r._id)}async function cm(t,e){return jP(t,e)}function b_(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 HP(t){return(await lm(t)).map(r=>r._id)}async function lm(t){if(t)return at(t,e);{let r;try{r=Zi()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(pc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Zr(a._id,a.version)));let i=um(),s=[];!r||await YP(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Zr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Zr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=b_(o.permissions,a);return n}}async function YP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!nm.default.valid(r)?!0:!nm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var sm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,fe.BUILDER)||Tt(r,e)||Tt(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await w_(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 D_(t){return t?.startsWith("role")?t:ur(t)}function Zr(t,e){if(t.startsWith(`role${N}`)&&(ui(t)||e===om.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function C_(t,e){return t&&(typeof t=="string"?Zr(t,e):t.map(r=>Zr(r,e)))}var gs=st.users.isBuilder,Xr=st.users.isAdmin,v_=st.users.isGlobalBuilder,N_=st.users.isAdminOrBuilder,en=st.users.hasAdminPermissions,At=st.users.hasBuilderPermissions,P_=st.users.hasAppBuilderPermissions;async function ci(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>Pc(i,e))}async function ha(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Pc(t,e)}function Pc(t,e){let r=st.users.isCreator(t);return!r&&t?KP(t,e):r}function KP(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes(ma.ADMIN)):!1}async function Uc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Jr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function Lc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await fs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ts={};v(Ts,{account:()=>K_,ai:()=>eS,analytics:()=>kc,app:()=>J_,auditLog:()=>hS,auth:()=>jc,automation:()=>z_,backfill:()=>lS,backfillCache:()=>Wc,backup:()=>fS,datasource:()=>Z_,email:()=>X_,environmentVariable:()=>mS,group:()=>dS,identification:()=>Mt,initAsyncEvents:()=>H0,installation:()=>_a,layout:()=>rS,license:()=>tS,org:()=>nS,plugin:()=>pS,processors:()=>ym,publishEvent:()=>A,query:()=>iS,role:()=>Ra,rowAction:()=>gS,rows:()=>oS,screen:()=>sS,serve:()=>uS,shutdown:()=>Y0,table:()=>aS,user:()=>Ve,view:()=>cS});var ym={};v(ym,{analyticsProcessor:()=>W_,init:()=>pU,processors:()=>hr});var kc={};v(kc,{enabled:()=>Mc});var Mc=async()=>Fc();var F_=require("posthog-node");var JP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",zP=t=>t==="served:app:preview"||t==="served:app";var L_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},M_=async t=>{if(!JP(t))return!1;let e=await ZP(t);if(e){let r=new Date(e.timestamp);switch(L_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await U_(t,{timestamp:Date.now()}),!1):!0}}else return await U_(t,{timestamp:Date.now()}),!1},k_=t=>{let e=`eventsRateLimit:${t}`;return zP(t)&&(e=e+":"+Ne()),e},ZP=async t=>{let e=k_(t);return await ni(e)},U_=async(t,e)=>{let r=k_(t),n=L_[t],i;switch(n){case"calendarDay":i=86400}await fr(r,e,i)};var eU=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ga=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new F_.PostHog(e)}async processEvent(e,r,n,i){if(eU.includes(e)||await M_(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 B_=ga;var tU=["installation:version:upgraded","installation:version:downgraded"],rU=["installation","tenant"],ya=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new B_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!tU.includes(e)&&!await Mc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!rU.includes(e.type)&&!await Mc()||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 fm=h.SELF_HOSTED&&!h.isDev(),Ea=class{async processEvent(e,r,n){fm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){fm||console.log("[audit] identified",e)}async identifyGroup(e){fm||console.log("[audit] group identified",e)}shutdown(){}};var gm={};v(gm,{InMemoryQueue:()=>Bc,JobQueue:()=>ys,createQueue:()=>li,shutdown:()=>cU});var G_=j(require("events"));function nU(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var Bc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new G_.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a){try{await a}catch{await Qt.wait(50),await s(r(n))}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>nU(e))}},$_=Bc;var mm=j(require("bull"));var ys=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(ys||{});function V_(t,e,r){oU(t,e),r&&iU(t,r)}function iU(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function _t(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var sU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function oU(t,e){let r=sU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Qp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(..._t(r,"stalled",{job:i}))})}).on("error",i=>{console.error(..._t(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(..._t(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(..._t(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(..._t(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(..._t(r,"paused"))}).on("resumed",()=>{console.info(..._t(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(..._t(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(..._t(r,"drained"))}).on("removed",i=>{console.info(..._t(r,"removed",{job:i}))})}var aU=we.fromMinutes(5).toMs(),uU=we.fromSeconds(30).toMs(),hm=we.fromSeconds(60).toMs(),Ta=[],Gc;async function q_(){for(let t of Ta)await t.clean(hm,"completed"),await t.clean(hm,"failed")}function li(t,e={}){let n={redis:ts(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:aU,lockRenewTime:uU}};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 mm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new $_(t,n):i=new mm.default(t,n),V_(i,t,e?.removeStalledCb),Ta.push(i),!Gc&&!h.isTest()&&(Gc=Wo(q_,hm),q_().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function cU(){if(Gc&&Qo(Gc),Ta.length){for(let t of Ta)await t.close();Ta=[]}console.log("Queues shutdown")}var Es=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=li("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&&jf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ne(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Aa=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}shutdown(){for(let e of this.processors)e.shutdown&&e.shutdown()}};var W_=new ya,lU=new Ea,dU=new Es;function pU(t){return Es.init(t)}var hr=new Aa([W_,lU,dU]);var $c={};v($c,{checkInstallVersion:()=>hU,getInstall:()=>Sa,getInstallFromDB:()=>Tm});var Em=j(require("semver"));var Sa=async()=>Yr("installation",86400,Tm,{useTenancy:!1});async function fU(t){let e={_id:Se.PLATFORM_INFO.docs.install,installId:Oe(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Tm();throw r}}var Tm=async()=>at(Se.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Se.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await fU(t);else throw r}return e}),mU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await as("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},hU=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Em.default.gt(r,e),i=Em.default.lt(r,e);await mU(r)&&(await Ro({_id:t.installId,type:"installation"},async()=>{n?await _a.upgraded(e,r):i&&await _a.downgraded(e,r)}),await Mt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?zn(`Invalid version "${r}" - is it semver?`):zn("Failed to retrieve version",n)}};var gU=async()=>{let t=wp(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await di(),i=Oa();return{id:Q_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await di(),i=await Vc(Q()),s=Oa();return{id:Q_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Vc(Q()),s=await di(),o=n.account,a;return o?a=o.hosting:a=Oa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},yU=async(t,e)=>{let r=t,n="installation",i=Oa(),s=h.VERSION,o=xa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Am(a,e),await Ia({...a,id:`$${n}_${r}`},e)},EU=async(t,e,r)=>{let n=await Vc(t),i="tenant",s=await di(),o=xa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await Am(a,r),await Ia({...a,id:`$${i}_${n}`},r)},TU=async(t,e,r)=>{let n=t._id,i=await Vc(t.tenantId),s="user",o=At(t),a=en(t),u;Wa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,d=!!e&&l&&e.verified,m=await di(),p=e?e.hosting:Oa(),f=xa();await Ia({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},AU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=qa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await di(),c=xa();if(Va(t)){let d=await kt(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await hr.identify(t,e)},Am=async(t,e)=>{await hr.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Oa=()=>h.SELF_HOSTED?"self":"cloud",di=async()=>_U()?"account-portal":(await Sa()).installId,Vc=async t=>h.SELF_HOSTED?j_(t):t,j_=async t=>Ge(t,()=>Yr("uniqueTenantId",86400,async()=>{let e=ie(),r=await qc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),_U=()=>h.SERVICE==="account-portal",Q_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Mt={getCurrentIdentity:gU,identifyInstallationGroup:yU,identifyTenantGroup:EU,identifyUser:TU,identifyAccount:AU,identify:Ia,identifyGroup:Am,getInstallationId:di,getUniqueTenantId:j_};var Wc={};v(Wc,{end:()=>OU,isAlreadySent:()=>Om,isBackfillingEvent:()=>Sm,recordEvent:()=>_m,start:()=>SU});var SU=async t=>xU({eventWhitelist:t}),_m=async(t,e)=>{let r=Im(t,e);await fr(r,e,void 0,{useTenancy:!1})},OU=async()=>{await RU(),await wU()},IU=async()=>ni("backfillMetadata"),xU=async t=>fr("backfillMetadata",t),RU=async()=>{await ia("backfillMetadata")},wU=async()=>{let t=Im(),e=await Ec(t);for(let r of e)await ia(r,{useTenancy:!1})},Sm=async t=>{let r=(await IU())?.eventWhitelist;return!!(r&&r.includes(t))},Om=async(t,e)=>{let r=Im(t,e);return!!await ni(r,{useTenancy:!1})},bU={"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}`},Im=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=bU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var gr;function Qc(){gr=li("systemEventQueue")}async function H_(){gr&&await gr.close()}async function Y_(t){gr||Qc();let{event:e,identity:r}=t;wh.indexOf(e)!==-1&&r.tenantId&&await gr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Mt.getCurrentIdentity();if(!(n?!1:await Sm(t))){await Y_({event:t,identity:i,properties:e,timestamp:r}),await hr.processEvent(t,i,e,r);return}await Om(t,e)||(await hr.processEvent(t,i,e,r),await _m(t,e))};async function DU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function CU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function vU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var K_={created:DU,deleted:CU,verified:vU};var NU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function PU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function UU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function LU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function MU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function kU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function FU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function BU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function GU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function $U(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function VU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function qU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var J_={created:NU,updated:PU,deleted:UU,published:LU,unpublished:MU,fileImported:kU,duplicated:FU,templateImported:BU,versionUpdated:GU,versionReverted:$U,reverted:VU,exported:qU};async function WU(t,e){let n={userId:(await Mt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function QU(t){let r={userId:(await Mt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function jU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function HU(t){let e={type:t};await A("auth:sso:updated",e)}async function YU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function KU(t){let e={type:t};await A("auth:sso:deactivated",e)}var jc={login:WU,logout:QU,SSOCreated:jU,SSOUpdated:HU,SSOActivated:YU,SSODeactivated:KU};async function JU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}async function zU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}async function ZU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function XU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var eL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function tL(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}async function rL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var z_={created:JU,triggerUpdated:zU,deleted:ZU,tested:XU,run:eL,stepCreated:tL,stepDeleted:rL};function xm(t){return!Object.values(Ba).includes(t.source)}async function nL(t,e){let r={datasourceId:t._id,source:t.source,custom:xm(t)};await A("datasource:created",r,e)}async function iL(t){let e={datasourceId:t._id,source:t.source,custom:xm(t)};await A("datasource:updated",e)}async function sL(t){let e={datasourceId:t._id,source:t.source,custom:xm(t)};await A("datasource:deleted",e)}var Z_={created:nL,updated:iL,deleted:sL};async function oL(t){let e={};await A("email:smtp:created",e,t)}async function aL(){let t={};await A("email:smtp:updated",t)}var X_={SMTPCreated:oL,SMTPUpdated:aL};async function uL(t){let e={};await A("ai:config:created",e,t)}async function cL(){let t={};await A("ai:config:updated",t)}var eS={AIConfigCreated:uL,AIConfigUpdated:cL};async function lL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function dL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function pL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function fL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function mL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function hL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function gL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var tS={planChanged:lL,activated:dL,checkoutOpened:pL,checkoutSuccess:fL,portalOpened:mL,paymentFailed:hL,paymentRecovered:gL};async function yL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function EL(t){let e={layoutId:t};await A("layout:deleted",e)}var rS={created:yL,deleted:EL};async function TL(t){let e={};await A("org:info:name:updated",e,t)}async function AL(t){let e={};await A("org:info:logo:updated",e,t)}async function _L(t){let e={};await A("org:platformurl:updated",e,t)}async function SL(){let t={};await A("analytics:opt:out",t)}async function OL(){let t={};await A("analytics:opt:out",t)}var nS={nameUpdated:TL,logoUpdated:AL,platformURLUpdated:_L,analyticsOptOut:SL,analyticsOptIn:OL};var IL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},xL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},RL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},wL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},bL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},DL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},iS={created:IL,updated:xL,deleted:RL,imported:wL,run:bL,previewed:DL};async function CL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function vL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function NL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function PL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function UL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Ra={created:CL,updated:vL,deleted:NL,assigned:PL,unassigned:UL};async function LL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}async function ML(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var sS={created:LL,deleted:ML};var kL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},FL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},oS={created:kL,imported:FL};async function BL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function GL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function $L(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function VL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function qL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var aS={created:BL,updated:GL,deleted:$L,exported:VL,imported:qL};async function WL(t){let e={timezone:t};await A("served:builder",e)}async function QL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function jL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var uS={servedBuilder:WL,servedApp:QL,servedAppPreview:jL};async function HL(t,e){let r={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:created",r,e)}async function YL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:updated",e)}async function KL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:deleted",e)}async function JL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function zL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function ZL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function XL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function e0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function t0(t){let e={audited:{email:t}};await A("user:invited",e)}async function r0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function n0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function i0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function s0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function o0(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function a0(t){let e={users:t};await A("user:data:collaboration",e)}var Ve={created:HL,updated:YL,deleted:KL,permissionAdminAssigned:zL,permissionAdminRemoved:ZL,permissionBuilderAssigned:XL,permissionBuilderRemoved:e0,onboardingComplete:JL,invited:t0,inviteAccepted:r0,passwordForceReset:n0,passwordUpdated:i0,passwordResetRequested:s0,passwordReset:o0,dataCollaboration:a0};async function u0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function c0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function l0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function d0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function p0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function f0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function m0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function h0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function g0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function y0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function E0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var cS={created:u0,updated:c0,deleted:l0,exported:d0,filterCreated:p0,filterUpdated:f0,filterDeleted:m0,calculationCreated:h0,calculationUpdated:g0,calculationDeleted:y0,viewJoinCreated:E0};async function T0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function A0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function _0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function S0(){let t={};await A("installation:firstStartup",t)}var _a={versionChecked:T0,upgraded:A0,downgraded:_0,firstStartup:S0};var _s=!h.SELF_HOSTED&&!h.isDev();async function O0(t){_s||await A("app:backfill:succeeded",t)}async function I0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function x0(t){_s||await A("tenant:backfill:succeeded",t)}async function R0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function w0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function b0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var lS={appSucceeded:O0,appFailed:I0,tenantSucceeded:x0,tenantFailed:R0,installationSucceeded:w0,installationFailed:b0};async function D0(t,e){let r={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function C0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:updated",e)}async function v0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function N0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function P0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function U0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function L0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var dS={created:D0,updated:C0,deleted:v0,usersAdded:N0,usersDeleted:P0,createdOnboarding:U0,permissionsEdited:L0};async function M0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function k0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}async function F0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var pS={init:M0,imported:k0,deleted:F0};async function B0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function G0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var fS={appBackupRestored:B0,appBackupTriggered:G0};async function $0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function V0(t){let e={name:t};await A("environment_variable:deleted",e)}async function q0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var mS={created:$0,deleted:V0,upgradePanelOpened:q0};async function W0(t){let e={filters:t};await A("audit_log:filtered",e)}async function Q0(t){let e={filters:t};await A("audit_log:downloaded",e)}var hS={filtered:W0,downloaded:Q0};async function j0(t,e){await A("row_action:created",t,e)}var gS={created:j0};function H0(){}var Y0=()=>{hr.shutdown(),console.log("Events shutdown")};var Rm=async t=>{await Ve.deleted(t),At(t)&&await Ve.permissionBuilderRemoved(t),en(t)&&await Ve.permissionAdminRemoved(t)},K0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ra.assigned(t,i)},J0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ra.unassigned(t,i)},z0=async(t,e)=>{let r=t.roles,n=e?.roles;await K0(t,r,n),await J0(t,r,n)},wm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Mt.identifyUser(t,n),e?(await Ve.updated(t),X0(t,e)&&await Ve.permissionBuilderRemoved(t),tM(t,e)&&await Ve.permissionAdminRemoved(t),rM(t,e)&&await Ve.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Ve.passwordForceReset(t),t.password!==e.password&&await Ve.passwordUpdated(t)):await Ve.created(t),Z0(t,e)&&await Ve.permissionBuilderAssigned(t),eM(t,e)&&await Ve.permissionAdminAssigned(t),await z0(t,e)},Z0=(t,e)=>yS(t,e,At),X0=(t,e)=>ES(t,e,At),eM=(t,e)=>yS(t,e,en),tM=(t,e)=>ES(t,e,en),rM=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",yS=(t,e,r)=>!(!r(t)||e&&r(e)),ES=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};v(Yc,{createASession:()=>iM,endSession:()=>sM,getSession:()=>Dm,getSessionsForUser:()=>Hc,invalidateSessions:()=>pi,updateSessionTTL:()=>bm});var TS=require("uuid");var AS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):we.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function Hc(t){return t?(await(await jr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function pi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Hc(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await jr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ss(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function iM(t,e){await pi(t,{reason:"creation"});let r=await jr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,TS.v4)(),s=Ss(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,AS),o}async function bm(t){let e=await jr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,AS)}async function sM(t,e){await(await jr()).delete(Ss(t,e))}async function Dm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await jr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Pm={};v(Pm,{PASSWORD_MAX_LENGTH:()=>vm,PASSWORD_MIN_LENGTH:()=>Cm,validatePassword:()=>Nm});var Cm=+(h.PASSWORD_MIN_LENGTH||12),vm=+(h.PASSWORD_MAX_LENGTH||512);function Nm(t){return!t||t.length<Cm?{valid:!1,error:`Password invalid. Minimum ${Cm} characters.`}:t.length>vm?{valid:!1,error:`Password invalid. Maximum ${vm} characters.`}:{valid:!0}}var oM=async t=>{let e=t._id;await Lt.removeUser(t),await Rm(t),await rn.invalidateUser(e),await pi(e,{reason:"bulk-deletion"})},Ht=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&Xr(e)?!1:await t.features.isSSOEnforced()||Wa(e)?!0:(r||(r=await ps(Q())),!!(r&&r.email===e.email&&qa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new ct("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Nm(o);if(!d.valid)throw new ct(d.error,400)}u=r.hashPassword?await qf(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||rs();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ie().allDocs(Kn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Jc(e,{})).length}}static async getUsersByAppAccess(e){return await Um(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await fi(e);return r&&delete r.password,r}static async bulkGet(e){return await Kc(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ie(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await fi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await kt(s),c&&c._id!==o))throw new mr(s);let l=c?0:1,d=0;if(c){let[m,p]=await ci([c,e]);d=m!==p?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Uc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Lm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await wm(m,c),c&&m.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.addUser(n,m._id,m.email,m.ssoId),await rn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await rm(a),c=[];for(let d of e){if(s.find(m=>m.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await ha(d)&&o.push(d)}let l=await ps(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await wa(d);for(let p of d)await Lt.addUser(n,p._id,p.email),await wm(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Lc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await wa(a),l=(await ci(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await da(p._id)).ssoId;g&&(await Oc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await oM(p)}await ut().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Jr(o))throw n.userId===or()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Lt.removeUser(n),await r.remove(i,n._rev);let s=await ha(n)?1:0;await t.quotas.removeUsers(1,s),await Rm(n),await rn.invalidateUser(i),await pi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await as("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Kc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function uM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function cM(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(t){return await ie().bulkDocs(t)}async function fi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Da(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await cr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Da(n)),n}async function lM(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Jc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=dc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await cr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Da(s)),s}async function Um(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 qp(ar(),i)).rows}function _S(t,e){if(e)return lc(ot(t),e._id)}async function SS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await cr("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var dM=8;async function OS({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??dM,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await fi(e.equal._id)]:r?(u=await Jc(r,a),l=d=>_S(r,d)):e?.string?.email?(u=await SS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Kc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Kn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Ur.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Kn(null,a))).rows.map(m=>m.doc),cf(u,s,{paginate:!0,property:c,getKey:l})}async function pM(){return(await pf("by_email2",{limit:0,include_docs:!1})).total_rows}async function fM(){let t=0;async function e(r){let n=await OS({bookmark:r}),i=await ci(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function mM(t){return delete t.admin,delete t.builder,t}function Lm(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 hM(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ht.save(t,{hashPassword:!1})}async function gM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ht.save(t,{hashPassword:!1})}var IS=3600;async function yM(t,e){let n=await Gf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Jr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function EM(t){let e=await Ht.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Ca({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=yM),!e)try{e=Q()}catch{e=await Lt.lookupTenantId(t)}let i=await ra(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,IS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await Ht.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function TM(t){let e=await ra(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await EM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,IS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ra()).delete(t)}var Bm={};v(Bm,{Writethrough:()=>km});var xS=1e4,Mm=null;async function Fm(){if(!Mm){let t=await Ff();Mm=new ti(t)}return Mm}function zc(t,e){return t.name+e}function RS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function AM(t,e,r=xS){let n=await Fm(),i=e._id,s;i&&(s=await n.get(zc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;ss("Ignoring conflict in write-through cache")}})).executed||ss("Ignoring redlock conflict in write-through cache")),s=RS(a,o?null:s?.lastWrite),a._id&&await n.store(zc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function _M(t,e){let r=await Fm(),n=zc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=RS(s),await r.store(n,i)}return i.doc}async function SM(t,e,r){let n=await Fm();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(zc(t,i))}finally{await t.remove(i,r)}}var km=class{constructor(e,r=xS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return AM(this.db,e,r)}async get(e){return _M(this.db,e)}async remove(e,r){return SM(this.db,e,r)}};var Gm={};v(Gm,{createCode:()=>IM,getCode:()=>xM,invalidateCode:()=>RM});var OM=we.fromHours(1).toSeconds();async function IM(t,e){let r=Oe();return await(await na()).store(r,{userId:t,info:e},OM),r}async function xM(t){let r=await(await na()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function RM(t){await(await na()).delete(t)}var Vm={};v(Vm,{DocWritethrough:()=>$m,DocWritethroughProcessor:()=>Na,getProcessor:()=>bM,init:()=>wS});var wM=100,Zc,Na=class t{static get queue(){return t._queue||(t._queue=li("docWritethroughQueue",{jobOptions:{attempts:wM}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){let i=He(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},$m=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Na.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function wS(){return Zc=new Na().init(),Zc}function bM(){return Zc||wS()}function Qm(t){return`config${N}${t}`}async function Ft(t){let e=ie();try{return await e.get(Qm(t))}catch(r){if(r.status===404)return;throw r}}async function DM(t){return ie().put(t)}async function qc(){let t=await Ft("settings");return t||(t={_id:Qm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Pa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Fc({config:t.config}),t}async function jm(){return(await qc()).config}async function Pa(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Ft("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Fc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Yr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await Ft("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function CM(){return await Ft("google")}async function Xc(){return(await CM())?.config}async function Hm(){if(!h.SELF_HOSTED)return qm();let t=await Xc();return(!t||!t.activated)&&(t=qm()),t}function qm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function vM(){return Ft("logos_oidc")}async function NM(){return Ft("oidc")}async function PM(){let t=(await NM())?.config;return t?.configs&&t.configs[0]}async function Ym(t){let e=(await Ft("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function bS(){return Ft("smtp")}async function UM(t){let e=await bS();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 LM(){return(await Ft("scim"))?.config}async function MM(){return Ft("ai")}var Km={};v(Km,{BUILDER:()=>$M,BUILTIN_PERMISSIONS:()=>el,CREATOR:()=>VM,GLOBAL_BUILDER:()=>qM,PermissionImpl:()=>me,PermissionLevel:()=>ws,PermissionType:()=>$a,doesHaveBasePermission:()=>BM,getAllowedLevels:()=>NS,getBuiltinPermissionByID:()=>FM,getBuiltinPermissions:()=>kM,isPermissionLevelHigherThanRead:()=>GM,levelToNumber:()=>vS});var DS=j(require("lodash/flatten")),CS=j(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function vS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function NS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var el={PUBLIC:{_id:"public",name:"Public",permissions:[new me("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new me("query","read"),new me("table","read"),new me("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new me("query","write"),new me("table","write"),new me("automation","execute"),new me("legacy_view","read"),new me("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new me("table","write"),new me("user","read"),new me("automation","execute"),new me("webhook","read"),new me("legacy_view","read"),new me("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new me("table","admin"),new me("user","admin"),new me("automation","admin"),new me("webhook","read"),new me("query","admin"),new me("legacy_view","read"),new me("app","read")]}};function kM(){return(0,CS.default)(el)}function FM(t){return Object.values(el).find(r=>r._id===t)}function BM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(el),s=(0,DS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&NS(o.level).indexOf(e)!==-1)return!0;return!1}function GM(t){return vS(t)>1}var $M="builder",VM="creator",qM="globalBuilder";var Zm={};v(Zm,{FlagSet:()=>rl,all:()=>HM,flags:()=>Jm,init:()=>WM,isEnabled:()=>jM,parseEnvFlags:()=>il,shutdown:()=>QM,testutils:()=>zm});var nl=j(require("crypto"));var PS=require("posthog-node"),US=j(require("dd-trace"));var LS=require("lodash");var tl;function WM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),tl=new PS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:we.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function QM(){tl?.shutdown()}function il(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 rl=class{constructor(e){this.flagSchema=e;this.setId=nl.randomUUID()}defaults(){return(0,LS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await US.default.trace("features.fetch",async e=>{let r=Kp(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:l,key:d,value:m}of il(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(d),!!this.isFlagName(d))){if(typeof i[d]!="boolean")throw new Error(`Feature: ${d} is not a boolean`);i[d]=m,n[`flags.${d}.source`]="environment"}let a=or(),u=a?._id;if(!u){let l=Hp();l&&(u=nl.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,tl&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await tl.getAllFlags(u,{personProperties:l});for(let[m,p]of Object.entries(d))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${p}`,f)}}}Jp(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},Jm=new rl(Nh);async function jM(t){return await Jm.isEnabled(t)}async function HM(){return await Jm.fetch()}var zm={};v(zm,{setFeatureFlags:()=>MS,withFeatureFlags:()=>JM});function YM(){let t={};for(let{tenantId:e,key:r,value:n}of il(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function KM(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function MS(t,e){let r=YM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=KM(r);return wo({TENANT_FEATURE_FLAGS:n})}function JM(t,e,r){let n=MS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var lh={};v(lh,{adminOnly:()=>hl,auditLog:()=>dl,authError:()=>Ue,buildAuthMiddleware:()=>kk,buildCsrfMiddleware:()=>Bk,buildTenancyMiddleware:()=>Fk,builderOnly:()=>yl,builderOrAdmin:()=>gl,google:()=>yr,internalApi:()=>fl,joiValidator:()=>La,oidc:()=>Er,passport:()=>Gk,platformLogout:()=>Qk,refreshOAuthToken:()=>qk,ssoCallbackUrl:()=>nn,updateUserOAuth:()=>Wk});var ch={};v(ch,{adminOnly:()=>hl,auditLog:()=>dl,authError:()=>Ue,authenticated:()=>ll,builderOnly:()=>yl,builderOrAdmin:()=>gl,correlation:()=>JS,csp:()=>rO,csrf:()=>ml,datasource:()=>Lk,errorHandling:()=>ZS,google:()=>yr,internalApi:()=>fl,ip:()=>iO,joiValidator:()=>La,local:()=>Os,oidc:()=>Er,pino:()=>YS,querystringToBody:()=>XS,ssoCallbackUrl:()=>nn,tenancy:()=>pl});var Os={};v(Os,{authenticate:()=>XM,options:()=>ZM});function Ue(t,e,r){return t(r,null,{message:e})}async function nn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await jm(),n="/api/global/auth";return Br()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Xm="Invalid credentials",zM="This account has expired. Please reset your password",ZM={passReqToCallback:!0};async function XM(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await kt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,Xm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Xm)):i.password?await Wf(r,i.password)?(delete i.password,n(null,i)):Ue(n,Xm):(console.info(`user=${e} has no password set`,i),Ue(n,zM))}var yr={};v(yr,{buildVerifyFn:()=>BS,getCallbackUrl:()=>rk,strategyFactory:()=>eh});var Ua=t=>Promise.resolve(t);async function sl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ue(r,"sso user id required");if(!t.email)return Ue(r,"sso user email required");let i=rs(t.userId),s;try{s=await fi(i)}catch(a){if(!a.status||a.status!==404)return Ue(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await kt(t.email)),!s&&e)return Ue(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await ek(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ue(r,"Error saving user",a)}return r(null,o)}async function ek(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 tk=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 sl(s,!0,i,t)}}async function eh(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 tk({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function rk(t){return nn("google",t)}var Er={};v(Er,{buildVerifyFn:()=>$S,fetchStrategyConfig:()=>ok,getCallbackUrl:()=>ak,strategyFactory:()=>sk});var GS=j(require("node-fetch"));var nk=require("@techpass/passport-openidconnect").Strategy;function $S(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:ik(n,i),oauth2:{accessToken:s,refreshToken:o}};return sl(l,!1,c,t)}}function ik(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Hf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function sk(t,e){try{let r=$S(e),n=new nk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function ok(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,GS.default)(i);if(!s.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${s.statusText}`);let o=await s.json();return{issuer:o.issuer,authorizationURL:o.authorization_endpoint,tokenURL:o.token_endpoint,userInfoURL:o.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function ak(){return nn("oidc")}var th={};v(th,{postAuth:()=>lk,preAuth:()=>ck});var uk=require("passport-google-oauth").OAuth2Strategy;async function VS(){let t=await Hm();if(!t)throw new Error("No google configuration found");return t}async function ck(t,e,r){let n=await VS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await eh(n,s,Ua);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function lk(t,e,r){let n=await VS(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ii(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new uk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Kr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await fr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var dk=/\/:(.*?)(\/.*)?$/g,mi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(dk);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}}):[],hi=(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 ah={};v(ah,{SecretOption:()=>QS,decrypt:()=>oh,decryptFile:()=>yk,encrypt:()=>mk,encryptFile:()=>hk,getSecret:()=>sh});var Tr=j(require("crypto")),sn=j(require("fs")),nh=j(require("zlib"));var rh=require("path"),ol="aes-256-ctr",WS="-",pk=1e4,fk=32,al=16,ih=16,QS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(QS||{});function sh(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 ul(t,e){return Tr.default.pbkdf2Sync(t,e,pk,fk,"sha512")}function mk(t,e="api"){let r=Tr.default.randomBytes(al),n=ul(sh(e),r),i=Tr.default.createCipheriv(ol,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${WS}${a}`}function oh(t,e="api"){let[r,n]=t.split(WS),i=Buffer.from(r,"hex"),s=ul(sh(e),i),o=Tr.default.createDecipheriv(ol,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function hk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,rh.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,rh.join)(t,n)),a=Tr.default.randomBytes(al),u=Tr.default.randomBytes(ih),c=ul(r,a),l=Tr.default.createCipheriv(ol,c,u);return o.write(a),o.write(u),s.pipe(nh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function gk(t){let e=sn.default.createReadStream(t),r=await qS(e,al),n=await qS(e,ih);return e.close(),{salt:r,iv:n}}async function yk(t,e,r){if(sn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await gk(t),s=sn.default.createReadStream(t,{start:al+ih}),o=sn.default.createWriteStream(e),a=ul(r,n),u=Tr.default.createDecipheriv(ol,a,i),c=nh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),d(m)}),u.on("error",m=>{o.close(),d(m)}),c.on("error",m=>{o.close(),d(m)}),o.on("error",m=>{o.close(),d(m)})})}function qS(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 HS=j(require("dd-trace")),Ek=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function Tk(){return new Date(Date.now()-Ek).toISOString()}function jS(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 Ak(t,e){if(ua(t))return{valid:!0,user:void 0};let n=oh(t).split(N)[0];return Ge(n,async()=>{let i;try{let s=ie();i=await cr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ca({userId:i,tenantId:n,populateUser:e})};throw new hs})}function cl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ll(t=[],e={publicAllowed:!1}){let r=t?mi(t):[];return async(n,i)=>{let s=!1,o=cl(n,"x-budibase-api-version");hi(n,r)&&(s=!0);try{let u=cl(n,"x-budibase-token"),c=ii(n,"budibase:auth")||Ac(u),l=cl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=cl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,_;try{_=await Dm(S,y),e&&e.populateUser?p=await Ca({userId:S,tenantId:_.tenantId,email:_.email,populateUser:e.populateUser(n)}):p=await Ca({userId:S,tenantId:_.tenantId,email:_.email}),p.csrfToken=_.csrfToken,g="cookie",_?.lastAccessedAt<Tk()&&await bm(_),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:_}=await Ak(l,y);S&&(m=!0,g="api_key",p=_,f=!_)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&HS.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),jS(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Dp(p,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 jS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var _k=async(t,e)=>e(),dl=_k;function pl(t,e,r={noTenancyRequired:!1}){let n=mi(t),i=mi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!hi(s,i)};!!hi(s,n)||(u.excludeStrategies=["query"]);let l=oa(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var fl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),ua(r)||t.throw(403,"Unauthorized"),e()};var Sk=["GET","HEAD","OPTIONS"],Ok=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ml(t={noCsrfPatterns:[]}){let e=mi(t.noCsrfPatterns);return async(r,n)=>{if(hi(r,e)||Sk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!Ok.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 hl=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var gl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Xr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var yl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var Ik=require("koa-pino-logger"),xk=require("correlation-id");function Rk(){return{logger:gc,genReqId:xk.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 wk(){return h.HTTP_LOGGING?Ik(Rk()):(t,e)=>e()}var bk=wk(),YS=bk;var KS=require("uuid"),Dk=require("correlation-id"),Ck=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,KS.v4)()),Dk.withId(r,()=>e())},JS=Ck;function zS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of vT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function vk(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:Dc(r)};if(zS(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 ZS=vk;function XS(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 tO=j(require("crypto")),eO={"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 Nk(t,e){try{let r=tO.default.randomBytes(16).toString("base64"),n={...eO};n["script-src"]=[...eO["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 rO=Nk;var La={};v(La,{body:()=>Pk,params:()=>Uk});var uh=j(require("joi"));function nO(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:uh.default.any().optional(),updatedAt:uh.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 Pk(t,e){return nO(t,"body",e)}function Uk(t,e){return nO(t,"params",e)}var iO=async(t,e)=>t.ip?await Yp(t.ip,()=>e()):e();var Lk={google:th};var sO=require("koa-passport"),Mk=require("passport-local").Strategy,El=require("passport-oauth2-refresh"),kk=ll,Fk=pl,Bk=ml,Gk=sO;sO.use(new Mk(Os.options,Os.authenticate));async function $k(t,e){let r=await Er.getCallbackUrl(),n,i;try{if(n=await Er.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Er.strategyFactory(n,Ua)}catch{throw new Error("Could not refresh OAuth Token")}return El.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{El.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Vk(t,e){let r=await yr.getCallbackUrl(t),n;try{n=await yr.strategyFactory(t,r,Ua)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return El.use(n),new Promise(i=>{El.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function qk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Ym(r);return n?$k(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Xc();return n?Vk(n,t):{err:{data:"Google configuration not found"}}}}}async function Wk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Qk(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=ii(e,"budibase:auth"),s=await Hc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await pi(r,{sessionIds:o,reason:"logout"}),await jc.logout(e.user?.email),await va(r)}var ph={};v(ph,{validate:()=>Jk});var D=j(require("joi")),jk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function dh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Hk(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});dh(e,t)}function Yk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Ol)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(Sl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(Il).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...jk),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});dh(n,t)}function Kk(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(oe)).required(),customType:D.default.string().allow(...Object.values(he)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...Ph).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});dh(n,t)}function Jk(t){switch(t?.type){case"component":Hk(t);break;case"datasource":Yk(t);break;case"automation":Kk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var fh={};v(fh,{Client:()=>$e,clients:()=>Hr,locks:()=>oi,utils:()=>ic});var mh={};v(mh,{isBlacklisted:()=>Zk,refreshBlacklist:()=>cO});var oO=j(require("dns")),Al=j(require("net"));var aO=require("util"),Tl,zk=(0,aO.promisify)(oO.default.lookup);async function uO(t){return Al.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await zk(t,{all:!0})).map(r=>r.address)}async function cO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Al.default.isIP(i))r.push(i);else{let s=await uO(i);r=r.concat(s)}}Tl=r}async function Zk(t){if(Tl||await cO(),Tl?.length===0)return!1;let e;return Al.default.isIP(t)?e=[t]:e=await uO(t),!!Tl?.find(r=>e.includes(r))}var gh={};v(gh,{init:()=>eF});var Xk={"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 lO(t,e){let r=Xk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ma=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=lO(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 H_()}};var dO,hh;function eF(t){gr||Qc(),hh||(hh=new Ma(t)),dO||(dO=gr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await hh.processEvent(r,n,i)}))}var xh={};v(xh,{COUNT_FIELD_NAME:()=>Oh,Sql:()=>TO,SqlTable:()=>_l,designDoc:()=>Ih,utils:()=>$p});var hO=require("knex");var tF=require("knex");function yh(t){return["link","formula","ai"].indexOf(t)!==-1}function pO(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,p]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=p.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":p.timeOnly?t.time(m):t.datetime(m,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":Qt.schema.isDeprecatedSingleUserColumn(p)?t.text(m):t.json(m);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=kp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],_=y.schema[S].externalType;_?t.specificType(p.foreignKey,_):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(m);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:bi.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!yh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!yh(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||yh(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function nF(t,e,r){return t.createTable(e.name,n=>{pO(n,e,r)})}function iF(t,e,r,n,i){return t.alterTable(e.name,s=>{pO(s,e,r,n,i)})}function sF(t,e){return t.dropTable(e.name)}var Eh=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,tF.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=nF(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=iF(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=Ki(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=sF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ki(n)}},_l=Eh;var gO=require("lodash"),Oh="__bb_total";function fO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Th(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function oF(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 yO(t){return Array.isArray(t)?t.map(e=>yO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function mO(t){return t.sourceType==="internal"||t.sourceId===Dl}function aF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function EO(t,e='"'){return`${e}${aF(t,e)}${e}`}function Ah(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=EO(t[r],e));return`[${t.join(",")}]`}var uF={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},_h=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Ur.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime"){if(Fp(e))return null;if(Bp(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,gO.cloneDeep)(e);for(let r of Object.values(_r)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Yt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(cn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),S=Gp(d),_;if(f?_=n:_=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),S){let M=a?.[S.through]||d.through,T=this.tableNameWithSchema(S.through,{alias:M,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${S.toPrimary}`,"=",`${M}.${S.to}`)}).where(`${M}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(O=>{O.whereExists(i(_,y)),r&&O.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${M}.${S.from}`)}))})}else{let M=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(M,"=",this.rawQuotedIdentifier(T)),e=e.where(O=>{O.whereExists(i(_,y.clone())),r&&O.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let S=(_,M,T)=>{let[O,...x]=M.split("."),w=x.join("."),B=c(O);return _.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let _ in f){let M=f[_],T=Bo(_),O=T.includes("."),x=n?.relationship&&O,w;if(_==="_complexIdOperator"&&(w=f[_])&&y){let B=c(u);e=y(e,w.id.map(le=>B?`${B}.${le}`:le),w.values)}else if(O)x&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,uF[g],T,(B,le)=>S(le,B,M)));else{let B=c(u);e=E(e,B?`${B}.${T}`:T,M)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,S,_)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ah(_,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Ah(_))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,S,_)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(EO(Ah(_)))])):l(f,"contains",(y,S,_)=>(_.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let O of _){f===r?.containsAny?T=T.or:T=T.and;let x=typeof O=="string"?`"${O.toLowerCase()}"`:O;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${x}%`)}}),f===r?.notContains&&(M=M.or.whereNull(this.rawQuotedIdentifier(S))),M))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let _ of S)_!=null?f=f.or.whereLike(g,`${_.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,S)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=tc(E.low),_=tc(E.high),M=this.getFieldSchema(g),T=g,O=E.high,x=E.low;return this.client==="sqlite3"&&M?.type==="datetime"&&M.dateOnly&&(O!=null&&(O=`${O.toISOString().slice(0,10)}T23:59:59.999Z`),x!=null&&(x=x.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&M?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),O=this.knex.raw("CAST(? AS INTEGER)",[E.high]),x=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),S&&_?f.whereBetween(T,[x,O]):S?f.where(T,">=",x):_?f.where(T,"<=",O):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(_=>_.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return f.where(_=>_.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!Mp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Sr(r.documentType)}%`),e}isSqs(){return mO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;mO(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 ${Oh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let S=c[m];if(!S)throw new Error(`related table "${m}" not found in datasource`);let _=a?.[m]||m,M=a?.[r]||r,T=p&&a?.[p]||p,O=this.tableNameWithSchema(m,{alias:_,schema:u}),x=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),w=oF(l.filter(V=>V.split(".")[0]===_),x);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map(V=>this.buildJsonField(S,V));if(!B.length)continue;let le=B.map(V=>{let se=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${se}??`,[V[0],V[1]]).toString()}).join(","),on=`${_}.${y||f}`,$=s.from(O).orderBy(on),F=p&&y&&E,C=F?`${T}.${g}`:`${_}.${f}`,W=F?`${M}.${E}`:`${M}.${g}`;if(F){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${_}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(C),"=",this.rawQuotedIdentifier(W));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Th()),s.select(V).from({[_]:$})),K;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),K=L(this.knex.raw(`json_group_array(json_object(${le}))`));break;case"pg":K=L(this.knex.raw(`json_agg(json_build_object(${le}))`));break;case"mariadb":K=$.select(s.raw(`json_arrayagg(json_object(${le}) LIMIT ${Th()})`));break;case"mysql2":case"oracledb":K=L(this.knex.raw(`json_arrayagg(json_object(${le}))`));break;case"mssql":{let V=s.select("*").from({[M]:$.select(B.map(se=>s.ref(se[1]).as(se[0]))).limit(Th())});K=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(_)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Sh=class extends _l{constructor(r,n=fO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Ki(r);return i==="sqlite3"&&(s=yO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,hO.knex)(s),a,u=new _h(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:fO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let m of a)d.push(await n(m,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Dl){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 Uh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){vo(this.getSqlClient(),r,n)}},TO=Sh;var Ih={};v(Ih,{base:()=>cF});function cF(t){return{_id:sr,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var lF={...aa,...Ee},dF=(t={})=>{Xu(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
|