@budibase/backend-core 3.4.17 → 3.4.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -7
- package/dist/index.js.map +3 -3
- package/dist/package.json +2 -2
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +3 -3
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var hO=Object.create;var ka=Object.defineProperty;var gO=Object.getOwnPropertyDescriptor;var yO=Object.getOwnPropertyNames;var EO=Object.getPrototypeOf,TO=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)ka(t,r,{get:e[r],enumerable:!0})},Sh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of yO(e))!TO.call(t,i)&&i!==r&&ka(t,i,{get:()=>e[i],enumerable:!(n=gO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?hO(EO(t)):{},Sh(e||!t||!t.__esModule?ka(r,"default",{value:t,enumerable:!0}):r,t)),AO=t=>Sh(ka({},"__esModule",{value:!0}),t);var Hh=H((Pl,Ul)=>{"use strict";(function(t,e){typeof Pl=="object"&&typeof Ul<"u"?Ul.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Pl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",m="date",p="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var k=["th","st","nd","rd"],D=V%100;return"["+V+(k[(D-20)%10]||k[D]||k[0])+"]"}},y=function(V,k,D){var W=String(V);return!W||W.length>=k?V:""+Array(k+1-W.length).join(D)+V},O={s:y,z:function(V){var k=-V.utcOffset(),D=Math.abs(k),W=Math.floor(D/60),U=D%60;return(k<=0?"+":"-")+y(W,2,"0")+":"+y(U,2,"0")},m:function V(k,D){if(k.date()<D.date())return-V(D,k);var W=12*(D.year()-k.year())+(D.month()-k.month()),U=k.clone().add(W,c),K=D-U<0,q=k.clone().add(W+(K?-1:1),c);return+(-(W+(D-U)/(K?U-q:q-U))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",L={};L[S]=E;var T="$isDayjsObject",_=function(V){return V instanceof ce||!(!V||!V[T])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},R=function(V,k){if(_(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ce(D)},F=O;F.l=B,F.i=_,F.w=function(V,k){return R(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ce=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[T]=!0}var k=V.prototype;return k.parse=function(D){this.$d=function(W){var U=W.date,K=W.utc;if(U===null)return new Date(NaN);if(F.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var q=U.match(f);if(q){var ie=q[2]-1||0,G=(q[7]||"0").substring(0,3);return K?new Date(Date.UTC(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)):new Date(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)}}return new Date(U)}(D),this.init()},k.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==p},k.isSame=function(D,W){var U=R(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return R(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<R(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(cn,Ve){var _r=F.w(U.$u?Date.UTC(U.$y,Ve,cn):new Date(U.$y,Ve,cn),U);return K?_r:_r.endOf(a)},G=function(cn,Ve){return F.w(U.toDate()[cn].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Ve)),U)},be=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(q){case d:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Le):ie(0,Le+1);case u:var un=this.$locale().weekStart||0,Is=(be<un?be+7:be)-un;return ie(K?lt-Is:lt+(6-Is),Le);case a:case m:return G(hi+"Hours",0);case o:return G(hi+"Minutes",1);case s:return G(hi+"Seconds",2);case i:return G(hi+"Milliseconds",3);default:return this.clone()}},k.endOf=function(D){return this.startOf(D,!1)},k.$set=function(D,W){var U,K=F.p(D),q="set"+(this.$u?"UTC":""),ie=(U={},U[a]=q+"Date",U[m]=q+"Date",U[c]=q+"Month",U[d]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[K],G=K===a?this.$D+(W-this.$W):W;if(K===c||K===d){var be=this.clone().set(m,1);be.$d[ie](G),be.init(),this.$d=be.set(m,Math.min(this.$D,be.daysInMonth())).$d}else ie&&this.$d[ie](G);return this.init(),this},k.set=function(D,W){return this.clone().$set(D,W)},k.get=function(D){return this[F.p(D)]()},k.add=function(D,W){var U,K=this;D=Number(D);var q=F.p(W),ie=function(Le){var lt=R(K);return F.w(lt.date(lt.date()+Math.round(Le*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===d)return this.set(d,this.$y+D);if(q===a)return ie(1);if(q===u)return ie(7);var G=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,be=this.$d.getTime()+D*G;return F.w(be,this)},k.subtract=function(D,W){return this.add(-1*D,W)},k.format=function(D){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||p;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,be=this.$M,Le=U.weekdays,lt=U.months,hi=U.meridiem,un=function(Ve,_r,xs,Ma){return Ve&&(Ve[_r]||Ve(W,K))||xs[_r].slice(0,Ma)},Is=function(Ve){return F.s(ie%12||12,Ve,"0")},cn=hi||function(Ve,_r,xs){var Ma=Ve<12?"AM":"PM";return xs?Ma.toLowerCase():Ma};return K.replace(g,function(Ve,_r){return _r||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return be+1;case"MM":return F.s(be+1,2,"0");case"MMM":return un(U.monthsShort,be,lt,3);case"MMMM":return un(lt,be);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return un(U.weekdaysMin,W.$W,Le,2);case"ddd":return un(U.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return cn(ie,G,!0);case"A":return cn(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=R(D),be=(G.utcOffset()-this.utcOffset())*e,Le=this-G,lt=function(){return F.m(q,G)};switch(ie){case d:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-be)/6048e5;break;case a:K=(Le-be)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return U?K:F.a(K)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(D,W){if(!D)return this.$L;var U=this.clone(),K=B(D,W,!0);return K&&(U.$L=K),U},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},V}(),an=ce.prototype;return R.prototype=an,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function(V){an[V[1]]=function(k){return this.$g(k,V[0],V[1])}}),R.extend=function(V,k){return V.$i||(V(k,ce,R),V.$i=!0),R},R.locale=B,R.isDayjs=_,R.unix=function(V){return R(1e3*V)},R.en=L[S],R.Ls=L,R.p={},R})});var It=H(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var WI=t=>new nu(t);We.valid=WI;var QI=t=>new iu(t);We.err=QI;var nu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,We.valid)(e(this.value))}mapErr(e){return(0,We.valid)(this.value)}};We.Valid=nu;var iu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,We.err)(this.error)}mapErr(e){return(0,We.err)(e(this.error))}};We.Err=iu});var xt=H(Jh=>{"use strict";Object.defineProperty(Jh,"__esModule",{value:!0})});var Dr=H(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});$t();var re=It();xt();var jI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],HI=["sun","mon","tue","wed","thu","fri","sat"],YI=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Us=(t,e,r)=>{if(e==="months"&&r.useAliases&&jI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&HI.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)},KI=(t,e,r)=>{if(t==="*")return YI(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Us(n,e,r)}return Us(t,e,r)},Zh=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Us(t,e,r),zI=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return KI(n[0],e,r);if(n.length===2){let i=Zh(n[0],e,r,0),s=Zh(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,re.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,re.valid)(!0)}return(0,re.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},JI=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '/')`);let i=zI(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,re.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,re.valid)(!0)},ZI=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,re.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,re.valid)(!0):(0,re.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,re.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(JI(o,e,r))}),i.every(o=>o.isValid()))return(0,re.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,re.err)(s)};Fl.default=ZI});var Xh=H(Ls=>{"use strict";var XI=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var ex=It(),tx=XI(Dr());xt();var rx=(t,e)=>{if(!t.seconds)return(0,ex.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,tx.default)(r,"seconds",e)};Ls.default=rx});var eg=H(Ms=>{"use strict";var nx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var ix=It(),sx=nx(Dr());xt();var ox=(t,e)=>{if(!t.minutes)return(0,ix.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,sx.default)(r,"minutes",e)};Ms.default=ox});var tg=H(ks=>{"use strict";var ax=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var ux=It(),cx=ax(Dr());xt();var lx=(t,e)=>{if(!t.hours)return(0,ux.err)(["hours field is undefined."]);let{hours:r}=t;return(0,cx.default)(r,"hours",e)};ks.default=lx});var rg=H(Bs=>{"use strict";var dx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=It(),px=dx(Dr());xt();var fx=(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,px.default)(r,"daysOfMonth",e)};Bs.default=fx});var ng=H(Gs=>{"use strict";var mx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var hx=It(),gx=mx(Dr());xt();var yx=(t,e)=>{if(!t.months)return(0,hx.err)(["months field is undefined."]);let{months:r}=t;return(0,gx.default)(r,"months",e)};Gs.default=yx});var ig=H(Vs=>{"use strict";var Ex=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=It(),Tx=Ex(Dr());xt();var Ax=(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,Tx.default)(r,"daysOfWeek",e)};Vs.default=Ax});var sg=H(qs=>{"use strict";var _x=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var Sx=It(),Ox=_x(Dr());xt();var Ix=(t,e)=>{if(!t.years)return(0,Sx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Ox.default)(r,"years",e)};qs.default=Ix});var cg=H((zq,ug)=>{"use strict";var Bl;try{Bl=Map}catch{}var Gl;try{Gl=Set}catch{}function og(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(ag);if(Bl&&t instanceof Bl)return new Map(Array.from(t.entries()));if(Gl&&t instanceof Gl)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]:og(t[i],e,r)}return n}return t}function ag(t){return og(t,[],[])}ug.exports=ag});var Ws=H($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$l.default=Cx;var xx=Object.prototype.toString,Rx=Error.prototype.toString,wx=RegExp.prototype.toString,bx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Dx=/^Symbol\((.*)\)(.*)$/;function vx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function lg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return vx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return bx.call(t).replace(Dx,"Symbol($1)");let n=xx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Rx.call(t)+"]":n==="RegExp"?wx.call(t):null}function Cx(t,e){let r=lg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=lg(this[n],e);return s!==null?s:i},2)}});var Xt=H(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.default=De.array=De.object=De.boolean=De.date=De.number=De.string=De.mixed=void 0;var dg=Nx(Ws());function Nx(t){return t&&t.__esModule?t:{default:t}}var pg={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,dg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,dg.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=pg;var fg={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=fg;var mg={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=mg;var hg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};De.date=hg;var gg={isValue:"${path} field must be ${value}"};De.boolean=gg;var yg={noUnknown:"${path} field has unspecified keys: ${unknown}"};De.object=yg;var Eg={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=Eg;var Px=Object.assign(Object.create(null),{mixed:pg,string:fg,number:mg,date:hg,object:yg,array:Eg,boolean:gg});De.default=Px});var bi=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Ux=t=>t&&t.__isYupSchema__;su.default=Ux});var Ag=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Lx=Tg(require("lodash/has")),Mx=Tg(bi());function Tg(t){return t&&t.__esModule?t:{default:t}}var Vl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Lx.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,Mx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},kx=Vl;ou.default=kx});var Wl=H(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.default=Fx;function Fx(t){return t==null?[]:[].concat(t)}});var bn=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Bx=_g(Ws()),Gx=_g(Wl());function _g(t){return t&&t.__esModule?t:{default:t}}function Ql(){return Ql=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ql.apply(this,arguments)}var $x=/\$\{\s*(\w+)\s*\}/g,jl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Ql({},r,{path:n})),typeof e=="string"?e.replace($x,(i,s)=>(0,Bx.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,Gx.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};au.default=jl});var uu=H(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});Yl.default=Wx;var Hl=Vx(bn());function Vx(t){return t&&t.__esModule?t:{default:t}}var qx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Wx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=qx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Hl.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(!Hl.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 Hl.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((iW,Rg)=>{"use strict";function Dn(t){this._maxSize=t,this.clear()}Dn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Dn.prototype.get=function(t){return this._values[t]};Dn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Qx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,xg=/^\d+$/,jx=/^\d/,Hx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Yx=/^\s*(['"]?)(.*?)(\1)\s*$/,Jl=512,Sg=new Dn(Jl),Og=new Dn(Jl),Ig=new Dn(Jl);Rg.exports={Cache:Dn,split:zl,normalizePath:Kl,setter:function(t){var e=Kl(t);return Og.get(t)||Og.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=Kl(t);return Ig.get(t)||Ig.set(t,function(i){for(var s=0,o=r.length;s<o;)if(i!=null||!e)i=i[r[s++]];else return;return i})},join:function(t){return t.reduce(function(e,r){return e+(Zl(r)||xg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Kx(Array.isArray(t)?t:zl(t),e,r)}};function Kl(t){return Sg.get(t)||Sg.set(t,zl(t).map(function(e){return e.replace(Yx,"$2")}))}function zl(t){return t.match(Qx)||[""]}function Kx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Zx(i)&&(i='"'+i+'"'),a=Zl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Zl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function zx(t){return t.match(jx)&&!t.match(xg)}function Jx(t){return Hx.test(t)}function Zx(t){return!Zl(t)&&(zx(t)||Jx(t))}});var vn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=eR;Hs.default=void 0;var Xx=Qs(),cu={context:"$",value:"."};function eR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,Xx.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 wg=H(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=iR;var tR=Xl(require("lodash/mapValues")),lu=Xl(bn()),rR=Xl(vn());function Xl(t){return t&&t.__esModule?t:{default:t}}function du(){return du=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},du.apply(this,arguments)}function nR(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 iR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=nR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(_){return rR.default.isRef(_)?_.getValue(i,g,E):_}function O(_={}){let B=(0,tR.default)(du({value:i,originalValue:u,label:o,path:_.path||s},p,_.params),y),R=new lu.default(lu.default.formatError(_.message||f,B),i,B.path,_.type||d);return R.params=B,R}let S=du({path:s,parent:g,type:d,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(_=>{lu.default.isError(_)?n(_):_?n(null,_):n(O())})}catch(_){n(_)}return}let L;try{var T;if(L=m.call(S,i,S),typeof((T=L)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}lu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var td=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=bg;Ys.default=void 0;var sR=Qs(),oR=t=>t.substr(0,t.length-1).substr(1);function bg(t,e,r,n=r){let i,s,o;return e?((0,sR.forEach)(e,(a,u,c)=>{let l=u?oR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var aR=(t,e,r,n)=>bg(t,e,r,n).schema,uR=aR;Ys.default=uR});var vg=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Dg=cR(vn());function cR(t){return t&&t.__esModule?t:{default:t}}var rd=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){Dg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Dg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};pu.default=rd});var tr=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Cg=er(cg()),Di=Xt(),lR=er(Ag()),Ng=er(uu()),fu=er(wg()),Pg=er(Ws()),dR=er(vn()),pR=td(),fR=er(Wl()),Ug=er(bn()),Lg=er(vg());function er(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Lg.default,this._blacklist=new Lg.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,Cg.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,Pg.default)(e),o=(0,Pg.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 hO=Object.create;var ka=Object.defineProperty;var gO=Object.getOwnPropertyDescriptor;var yO=Object.getOwnPropertyNames;var EO=Object.getPrototypeOf,TO=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)ka(t,r,{get:e[r],enumerable:!0})},Sh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of yO(e))!TO.call(t,i)&&i!==r&&ka(t,i,{get:()=>e[i],enumerable:!(n=gO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?hO(EO(t)):{},Sh(e||!t||!t.__esModule?ka(r,"default",{value:t,enumerable:!0}):r,t)),AO=t=>Sh(ka({},"__esModule",{value:!0}),t);var Hh=H((Pl,Ul)=>{"use strict";(function(t,e){typeof Pl=="object"&&typeof Ul<"u"?Ul.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Pl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",m="date",p="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var k=["th","st","nd","rd"],D=V%100;return"["+V+(k[(D-20)%10]||k[D]||k[0])+"]"}},y=function(V,k,D){var W=String(V);return!W||W.length>=k?V:""+Array(k+1-W.length).join(D)+V},O={s:y,z:function(V){var k=-V.utcOffset(),D=Math.abs(k),W=Math.floor(D/60),U=D%60;return(k<=0?"+":"-")+y(W,2,"0")+":"+y(U,2,"0")},m:function V(k,D){if(k.date()<D.date())return-V(D,k);var W=12*(D.year()-k.year())+(D.month()-k.month()),U=k.clone().add(W,c),K=D-U<0,q=k.clone().add(W+(K?-1:1),c);return+(-(W+(D-U)/(K?U-q:q-U))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",L={};L[S]=E;var T="$isDayjsObject",_=function(V){return V instanceof ce||!(!V||!V[T])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},R=function(V,k){if(_(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ce(D)},F=O;F.l=B,F.i=_,F.w=function(V,k){return R(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ce=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[T]=!0}var k=V.prototype;return k.parse=function(D){this.$d=function(W){var U=W.date,K=W.utc;if(U===null)return new Date(NaN);if(F.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var q=U.match(f);if(q){var ie=q[2]-1||0,G=(q[7]||"0").substring(0,3);return K?new Date(Date.UTC(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)):new Date(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)}}return new Date(U)}(D),this.init()},k.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==p},k.isSame=function(D,W){var U=R(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return R(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<R(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(cn,Ve){var _r=F.w(U.$u?Date.UTC(U.$y,Ve,cn):new Date(U.$y,Ve,cn),U);return K?_r:_r.endOf(a)},G=function(cn,Ve){return F.w(U.toDate()[cn].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Ve)),U)},be=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(q){case d:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Le):ie(0,Le+1);case u:var un=this.$locale().weekStart||0,Is=(be<un?be+7:be)-un;return ie(K?lt-Is:lt+(6-Is),Le);case a:case m:return G(hi+"Hours",0);case o:return G(hi+"Minutes",1);case s:return G(hi+"Seconds",2);case i:return G(hi+"Milliseconds",3);default:return this.clone()}},k.endOf=function(D){return this.startOf(D,!1)},k.$set=function(D,W){var U,K=F.p(D),q="set"+(this.$u?"UTC":""),ie=(U={},U[a]=q+"Date",U[m]=q+"Date",U[c]=q+"Month",U[d]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[K],G=K===a?this.$D+(W-this.$W):W;if(K===c||K===d){var be=this.clone().set(m,1);be.$d[ie](G),be.init(),this.$d=be.set(m,Math.min(this.$D,be.daysInMonth())).$d}else ie&&this.$d[ie](G);return this.init(),this},k.set=function(D,W){return this.clone().$set(D,W)},k.get=function(D){return this[F.p(D)]()},k.add=function(D,W){var U,K=this;D=Number(D);var q=F.p(W),ie=function(Le){var lt=R(K);return F.w(lt.date(lt.date()+Math.round(Le*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===d)return this.set(d,this.$y+D);if(q===a)return ie(1);if(q===u)return ie(7);var G=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,be=this.$d.getTime()+D*G;return F.w(be,this)},k.subtract=function(D,W){return this.add(-1*D,W)},k.format=function(D){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||p;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,be=this.$M,Le=U.weekdays,lt=U.months,hi=U.meridiem,un=function(Ve,_r,xs,Ma){return Ve&&(Ve[_r]||Ve(W,K))||xs[_r].slice(0,Ma)},Is=function(Ve){return F.s(ie%12||12,Ve,"0")},cn=hi||function(Ve,_r,xs){var Ma=Ve<12?"AM":"PM";return xs?Ma.toLowerCase():Ma};return K.replace(g,function(Ve,_r){return _r||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return be+1;case"MM":return F.s(be+1,2,"0");case"MMM":return un(U.monthsShort,be,lt,3);case"MMMM":return un(lt,be);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return un(U.weekdaysMin,W.$W,Le,2);case"ddd":return un(U.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return cn(ie,G,!0);case"A":return cn(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=R(D),be=(G.utcOffset()-this.utcOffset())*e,Le=this-G,lt=function(){return F.m(q,G)};switch(ie){case d:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-be)/6048e5;break;case a:K=(Le-be)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return U?K:F.a(K)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(D,W){if(!D)return this.$L;var U=this.clone(),K=B(D,W,!0);return K&&(U.$L=K),U},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},V}(),an=ce.prototype;return R.prototype=an,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function(V){an[V[1]]=function(k){return this.$g(k,V[0],V[1])}}),R.extend=function(V,k){return V.$i||(V(k,ce,R),V.$i=!0),R},R.locale=B,R.isDayjs=_,R.unix=function(V){return R(1e3*V)},R.en=L[S],R.Ls=L,R.p={},R})});var It=H(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var QI=t=>new nu(t);We.valid=QI;var jI=t=>new iu(t);We.err=jI;var nu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,We.valid)(e(this.value))}mapErr(e){return(0,We.valid)(this.value)}};We.Valid=nu;var iu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,We.err)(this.error)}mapErr(e){return(0,We.err)(e(this.error))}};We.Err=iu});var xt=H(Jh=>{"use strict";Object.defineProperty(Jh,"__esModule",{value:!0})});var Dr=H(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});$t();var re=It();xt();var HI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],YI=["sun","mon","tue","wed","thu","fri","sat"],KI=(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&&HI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&YI.indexOf(t.toLowerCase())!==-1)return(0,re.valid)(!0);let n=Number(t);if(isNaN(n))return(0,re.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,re.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,re.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,re.valid)(!0)},zI=(t,e,r)=>{if(t==="*")return KI(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Us(n,e,r)}return Us(t,e,r)},Zh=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Us(t,e,r),JI=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return zI(n[0],e,r);if(n.length===2){let i=Zh(n[0],e,r,0),s=Zh(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,re.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,re.valid)(!0)}return(0,re.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},ZI=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '/')`);let i=JI(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)},XI=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,re.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,re.valid)(!0):(0,re.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,re.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(ZI(o,e,r))}),i.every(o=>o.isValid()))return(0,re.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,re.err)(s)};Fl.default=XI});var Xh=H(Ls=>{"use strict";var ex=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var tx=It(),rx=ex(Dr());xt();var nx=(t,e)=>{if(!t.seconds)return(0,tx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,rx.default)(r,"seconds",e)};Ls.default=nx});var eg=H(Ms=>{"use strict";var ix=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var sx=It(),ox=ix(Dr());xt();var ax=(t,e)=>{if(!t.minutes)return(0,sx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ox.default)(r,"minutes",e)};Ms.default=ax});var tg=H(ks=>{"use strict";var ux=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var cx=It(),lx=ux(Dr());xt();var dx=(t,e)=>{if(!t.hours)return(0,cx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,lx.default)(r,"hours",e)};ks.default=dx});var rg=H(Bs=>{"use strict";var px=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=It(),fx=px(Dr());xt();var mx=(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,fx.default)(r,"daysOfMonth",e)};Bs.default=mx});var ng=H(Gs=>{"use strict";var hx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var gx=It(),yx=hx(Dr());xt();var Ex=(t,e)=>{if(!t.months)return(0,gx.err)(["months field is undefined."]);let{months:r}=t;return(0,yx.default)(r,"months",e)};Gs.default=Ex});var ig=H(Vs=>{"use strict";var Tx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=It(),Ax=Tx(Dr());xt();var _x=(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,Ax.default)(r,"daysOfWeek",e)};Vs.default=_x});var sg=H(qs=>{"use strict";var Sx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var Ox=It(),Ix=Sx(Dr());xt();var xx=(t,e)=>{if(!t.years)return(0,Ox.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Ix.default)(r,"years",e)};qs.default=xx});var cg=H((Jq,ug)=>{"use strict";var Bl;try{Bl=Map}catch{}var Gl;try{Gl=Set}catch{}function og(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(ag);if(Bl&&t instanceof Bl)return new Map(Array.from(t.entries()));if(Gl&&t instanceof Gl)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]:og(t[i],e,r)}return n}return t}function ag(t){return og(t,[],[])}ug.exports=ag});var Ws=H($l=>{"use strict";Object.defineProperty($l,"__esModule",{value:!0});$l.default=Nx;var Rx=Object.prototype.toString,wx=Error.prototype.toString,bx=RegExp.prototype.toString,Dx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",vx=/^Symbol\((.*)\)(.*)$/;function Cx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function lg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Cx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Dx.call(t).replace(vx,"Symbol($1)");let n=Rx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+wx.call(t)+"]":n==="RegExp"?bx.call(t):null}function Nx(t,e){let r=lg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=lg(this[n],e);return s!==null?s:i},2)}});var Xt=H(De=>{"use strict";Object.defineProperty(De,"__esModule",{value:!0});De.default=De.array=De.object=De.boolean=De.date=De.number=De.string=De.mixed=void 0;var dg=Px(Ws());function Px(t){return t&&t.__esModule?t:{default:t}}var pg={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,dg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,dg.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=pg;var fg={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=fg;var mg={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=mg;var hg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};De.date=hg;var gg={isValue:"${path} field must be ${value}"};De.boolean=gg;var yg={noUnknown:"${path} field has unspecified keys: ${unknown}"};De.object=yg;var Eg={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=Eg;var Ux=Object.assign(Object.create(null),{mixed:pg,string:fg,number:mg,date:hg,object:yg,array:Eg,boolean:gg});De.default=Ux});var bi=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Lx=t=>t&&t.__isYupSchema__;su.default=Lx});var Ag=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Mx=Tg(require("lodash/has")),kx=Tg(bi());function Tg(t){return t&&t.__esModule?t:{default:t}}var Vl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Mx.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.getValue(r?.value,r?.parent,r?.context)),i=this.fn.apply(e,n.concat(e,r));if(i===void 0||i===e)return e;if(!(0,kx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Fx=Vl;ou.default=Fx});var Wl=H(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.default=Bx;function Bx(t){return t==null?[]:[].concat(t)}});var bn=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Gx=_g(Ws()),$x=_g(Wl());function _g(t){return t&&t.__esModule?t:{default:t}}function Ql(){return Ql=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ql.apply(this,arguments)}var Vx=/\$\{\s*(\w+)\s*\}/g,jl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Ql({},r,{path:n})),typeof e=="string"?e.replace(Vx,(i,s)=>(0,Gx.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,$x.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};au.default=jl});var uu=H(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});Yl.default=Qx;var Hl=qx(bn());function qx(t){return t&&t.__esModule?t:{default:t}}var Wx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Qx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Wx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Hl.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(!Hl.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 Hl.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((sW,Rg)=>{"use strict";function Dn(t){this._maxSize=t,this.clear()}Dn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Dn.prototype.get=function(t){return this._values[t]};Dn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var jx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,xg=/^\d+$/,Hx=/^\d/,Yx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Kx=/^\s*(['"]?)(.*?)(\1)\s*$/,Jl=512,Sg=new Dn(Jl),Og=new Dn(Jl),Ig=new Dn(Jl);Rg.exports={Cache:Dn,split:zl,normalizePath:Kl,setter:function(t){var e=Kl(t);return Og.get(t)||Og.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=Kl(t);return Ig.get(t)||Ig.set(t,function(i){for(var s=0,o=r.length;s<o;)if(i!=null||!e)i=i[r[s++]];else return;return i})},join:function(t){return t.reduce(function(e,r){return e+(Zl(r)||xg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){zx(Array.isArray(t)?t:zl(t),e,r)}};function Kl(t){return Sg.get(t)||Sg.set(t,zl(t).map(function(e){return e.replace(Kx,"$2")}))}function zl(t){return t.match(jx)||[""]}function zx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Xx(i)&&(i='"'+i+'"'),a=Zl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Zl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function Jx(t){return t.match(Hx)&&!t.match(xg)}function Zx(t){return Yx.test(t)}function Xx(t){return!Zl(t)&&(Jx(t)||Zx(t))}});var vn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=tR;Hs.default=void 0;var eR=Qs(),cu={context:"$",value:"."};function tR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,eR.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 wg=H(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=sR;var rR=Xl(require("lodash/mapValues")),lu=Xl(bn()),nR=Xl(vn());function Xl(t){return t&&t.__esModule?t:{default:t}}function du(){return du=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},du.apply(this,arguments)}function iR(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 sR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=iR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(_){return nR.default.isRef(_)?_.getValue(i,g,E):_}function O(_={}){let B=(0,rR.default)(du({value:i,originalValue:u,label:o,path:_.path||s},p,_.params),y),R=new lu.default(lu.default.formatError(_.message||f,B),i,B.path,_.type||d);return R.params=B,R}let S=du({path:s,parent:g,type:d,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(_=>{lu.default.isError(_)?n(_):_?n(null,_):n(O())})}catch(_){n(_)}return}let L;try{var T;if(L=m.call(S,i,S),typeof((T=L)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}lu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var td=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=bg;Ys.default=void 0;var oR=Qs(),aR=t=>t.substr(0,t.length-1).substr(1);function bg(t,e,r,n=r){let i,s,o;return e?((0,oR.forEach)(e,(a,u,c)=>{let l=u?aR(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 uR=(t,e,r,n)=>bg(t,e,r,n).schema,cR=uR;Ys.default=cR});var vg=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Dg=lR(vn());function lR(t){return t&&t.__esModule?t:{default:t}}var rd=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){Dg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Dg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};pu.default=rd});var tr=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Cg=er(cg()),Di=Xt(),dR=er(Ag()),Ng=er(uu()),fu=er(wg()),Pg=er(Ws()),pR=er(vn()),fR=td(),mR=er(Wl()),Ug=er(bn()),Lg=er(vg());function er(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Lg.default,this._blacklist=new Lg.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,Cg.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,Pg.default)(e),o=(0,Pg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
2
2
|
|
|
3
3
|
attempted value: ${s}
|
|
4
|
-
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Ng.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Ng.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(Ug.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Ug.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Cg.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Di.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Di.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Di.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,fu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,fR.default)(e).map(s=>new dR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new lR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Di.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,fu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Di.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,fu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};mu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,pR.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 kg=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Mg;Ks.default=void 0;var mR=hR(tr());function hR(t){return t&&t.__esModule?t:{default:t}}var nd=mR.default,gR=nd;Ks.default=gR;function Mg(){return new nd}Mg.prototype=nd.prototype});var vi=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var yR=t=>t==null;hu.default=yR});var Vg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=$g;Js.default=void 0;var ER=Gg(tr()),Fg=Xt(),Bg=Gg(vi());function Gg(t){return t&&t.__esModule?t:{default:t}}function $g(){return new zs}var zs=class extends ER.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=Fg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Bg.default)(r)||r===!0}})}isFalse(e=Fg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Bg.default)(r)||r===!1}})}};Js.default=zs;$g.prototype=zs.prototype});var Qg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Wg;Xs.default=void 0;var Vt=Xt(),rr=qg(vi()),TR=qg(tr());function qg(t){return t&&t.__esModule?t:{default:t}}var AR=/^((([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,_R=/^((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,SR=/^(?:[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,OR=t=>(0,rr.default)(t)||t===t.trim(),IR={}.toString();function Wg(){return new Zs}var Zs=class extends TR.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===IR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Vt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,rr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Vt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,rr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Vt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,rr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Vt.string.matches,params:{regex:e},test:o=>(0,rr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(AR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(_R,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(SR,{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:OR})}lowercase(e=Vt.string.lowercase){return this.transform(r=>(0,rr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toLowerCase()})}uppercase(e=Vt.string.uppercase){return this.transform(r=>(0,rr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;Wg.prototype=Zs.prototype});var Yg=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Hg;to.default=void 0;var Cn=Xt(),Nn=jg(vi()),xR=jg(tr());function jg(t){return t&&t.__esModule?t:{default:t}}var RR=t=>t!=+t;function Hg(){return new eo}var eo=class extends xR.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"&&!RR(e)}min(e,r=Cn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Nn.default)(n)||n>=this.resolve(e)}})}max(e,r=Cn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Nn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Cn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Nn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Cn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Nn.default)(n)||n>this.resolve(e)}})}positive(e=Cn.number.positive){return this.moreThan(0,e)}negative(e=Cn.number.negative){return this.lessThan(0,e)}integer(e=Cn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Nn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Nn.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Nn.default)(i)?i:Math[e](i))}};to.default=eo;Hg.prototype=eo.prototype});var Kg=H(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=bR;var wR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function bR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=wR.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}});var Zg=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=od;ro.default=void 0;var DR=gu(Kg()),zg=Xt(),Jg=gu(vi()),vR=gu(vn()),CR=gu(tr());function gu(t){return t&&t.__esModule?t:{default:t}}var sd=new Date(""),NR=t=>Object.prototype.toString.call(t)==="[object Date]";function od(){return new Ci}var Ci=class extends CR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,DR.default)(e),isNaN(e)?sd:new Date(e))})})}_typeCheck(e){return NR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(vR.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=zg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Jg.default)(i)||i>=this.resolve(n)}})}max(e,r=zg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Jg.default)(i)||i<=this.resolve(n)}})}};ro.default=Ci;Ci.INVALID_DATE=sd;od.prototype=Ci.prototype;od.INVALID_DATE=sd});var ey=H((yW,ad)=>{"use strict";ad.exports=function(t){return Xg(PR(t),t)};ad.exports.array=Xg;function Xg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=UR(e),a=LR(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 PR(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 UR(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 LR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ty=H(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=$R;var MR=yu(require("lodash/has")),kR=yu(ey()),FR=Qs(),BR=yu(vn()),GR=yu(bi());function yu(t){return t&&t.__esModule?t:{default:t}}function $R(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,FR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,MR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),BR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,GR.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return kR.default.array(n,r).reverse()}});var ny=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=VR;function ry(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 VR(t){return(e,r)=>ry(t,e)-ry(t,r)}});var ly=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=cy;io.default=void 0;var iy=qt(require("lodash/has")),sy=qt(require("lodash/snakeCase")),qR=qt(require("lodash/camelCase")),WR=qt(require("lodash/mapKeys")),QR=qt(require("lodash/mapValues")),jR=Qs(),oy=Xt(),HR=qt(ty()),uy=qt(ny()),YR=qt(uu()),KR=qt(bn()),ld=qt(tr());function qt(t){return t&&t.__esModule?t:{default:t}}function Ni(){return Ni=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ni.apply(this,arguments)}var ay=t=>Object.prototype.toString.call(t)==="[object Object]";function zR(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var JR=(0,uy.default)([]),no=class extends ld.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=JR,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 ay(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,iy.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(!KR.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!ay(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Ni({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,YR.default)({sync:s,tests:m,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ni({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof ld.default&&s instanceof ld.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,uy.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,HR.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,iy.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=oy.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=zR(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=oy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,WR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(qR.default)}snakeCase(){return this.transformKeys(sy.default)}constantCase(){return this.transformKeys(e=>(0,sy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,QR.default)(this.fields,r=>r.describe()),e}};io.default=no;function cy(t){return new no(t)}cy.prototype=no.prototype});var py=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=dy;oo.default=void 0;var dd=Pi(vi()),ZR=Pi(bi()),XR=Pi(Ws()),pd=Xt(),ew=Pi(uu()),tw=Pi(bn()),rw=Pi(tr());function Pi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Eu.apply(this,arguments)}function dy(t){return new so(t)}var so=class extends rw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!tw.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],O=`${r.path||""}[${E}]`,S=Eu({},r,{path:O,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(L,T)=>c.validate(y,S,T)}(0,ew.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,ZR.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,XR.default)(e));return r.innerType=e,r}length(e,r=pd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,dd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||pd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,dd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||pd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,dd.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;dy.prototype=so.prototype});var fy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=sw;ao.default=void 0;var nw=iw(bi());function iw(t){return t&&t.__esModule?t:{default:t}}function sw(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,nw.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)}},ow=Tu;ao.default=ow});var my=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=cw;var aw=uw(Xt());function uw(t){return t&&t.__esModule?t:{default:t}}function cw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{aw.default[e][r]=t[e][r]})})}});var hd=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=gw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return hy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return hy.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return md.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return md.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return md.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return gy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return gy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return yy.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return yy.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Ey.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Ey.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return lw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return dw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return pw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return fw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return mw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return hw.default}});var hy=Pn(kg()),md=Pn(Vg()),gy=Pn(Qg()),yy=Pn(Yg()),Ey=Pn(Zg()),Ty=Pn(ly()),Ay=Pn(py()),lw=vn(),dw=fy(),pw=uo(bn()),fw=uo(td()),_y=uo(bi()),mw=uo(my()),hw=uo(tr());function uo(t){return t&&t.__esModule?t:{default:t}}function Sy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Sy=function(){return t},t}function Pn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Sy();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 gw(t,e,r){if(!t||!(0,_y.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}});var Oy=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});var gd=Ed();yd.default=()=>{(0,gd.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,gd.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,gd.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 Ed=H(ve=>{"use strict";var yw=ve&&ve.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Ew=ve&&ve.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Tw=ve&&ve.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&yw(e,t,r);return Ew(e,t),e},Aw=ve&&ve.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ve,"__esModule",{value:!0});ve.validateOptions=ve.registerOptionPreset=ve.getOptionPresets=ve.getOptionPreset=void 0;var x=Tw(hd());hd();var co=It(),_w=Aw(Oy());xt();var Un={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Iy=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),Sw=t=>Un[t]?(0,co.valid)(Un[t]):(0,co.err)(`Option preset '${t}' not found.`);ve.getOptionPreset=Sw;var Ow=()=>Un;ve.getOptionPresets=Ow;var Iw=(t,e)=>{Un[t]=Iy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};ve.registerOptionPreset=Iw;var xw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,O,S,L;try{(0,_w.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Un[t.preset]}else T=t.preset;else T=Un.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(O=T.daysOfWeek.upperLimit)!==null&&O!==void 0?O:T.daysOfWeek.maxValue},years:{lowerLimit:(S=T.years.lowerLimit)!==null&&S!==void 0?S:T.years.minValue,upperLimit:(L=T.years.upperLimit)!==null&&L!==void 0?L:T.years.maxValue}}),t.override),R=x.object({presetId:x.string().required(),preset:Iy.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:x.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:x.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(R)}catch(T){return(0,co.err)(T.errors)}};ve.validateOptions=xw});var $t=H((lo,Ad)=>{"use strict";var Mn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Ln=It(),Rw=Mn(Xh()),ww=Mn(eg()),bw=Mn(tg()),Dw=Mn(rg()),vw=Mn(ng()),Cw=Mn(ig()),Nw=Mn(sg()),Pw=Ed();xt();var Uw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Ln.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Ln.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Ln.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,Ln.valid)(n)},Td=(t,e={})=>{let r=(0,Pw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Uw(t,n);if(i.isError())return(0,Ln.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Rw.default)(s,n)),o.push((0,ww.default)(s,n)),o.push((0,bw.default)(s,n)),o.push((0,Dw.default)(s,n)),o.push((0,vw.default)(s,n)),o.push((0,Cw.default)(s,n)),n.useYears&&o.push((0,Nw.default)(s,n)),o.every(u=>u.isValid()))return(0,Ln.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Ln.err)(a)};lo.default=Td;Ad.exports=Td;Ad.exports.default=Td});var YE=H(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var ir=class extends Error{},Dd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},vd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Cd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Bn=class extends ir{},Ru=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends ir{},Wt=class extends ir{constructor(){super("Zone is an abstract class")}},w="numeric",Dt="short",rt="long",wu={year:w,month:w,day:w},zy={year:w,month:Dt,day:w},Lw={year:w,month:Dt,day:w,weekday:Dt},Jy={year:w,month:rt,day:w},Zy={year:w,month:rt,day:w,weekday:rt},Xy={hour:w,minute:w},eE={hour:w,minute:w,second:w},tE={hour:w,minute:w,second:w,timeZoneName:Dt},rE={hour:w,minute:w,second:w,timeZoneName:rt},nE={hour:w,minute:w,hourCycle:"h23"},iE={hour:w,minute:w,second:w,hourCycle:"h23"},sE={hour:w,minute:w,second:w,hourCycle:"h23",timeZoneName:Dt},oE={hour:w,minute:w,second:w,hourCycle:"h23",timeZoneName:rt},aE={year:w,month:w,day:w,hour:w,minute:w},uE={year:w,month:w,day:w,hour:w,minute:w,second:w},cE={year:w,month:Dt,day:w,hour:w,minute:w},lE={year:w,month:Dt,day:w,hour:w,minute:w,second:w},Mw={year:w,month:Dt,day:w,weekday:Dt,hour:w,minute:w},dE={year:w,month:rt,day:w,hour:w,minute:w,timeZoneName:Dt},pE={year:w,month:rt,day:w,hour:w,minute:w,second:w,timeZoneName:Dt},fE={year:w,month:rt,day:w,weekday:rt,hour:w,minute:w,timeZoneName:rt},mE={year:w,month:rt,day:w,weekday:rt,hour:w,minute:w,second:w,timeZoneName:rt},Pr=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,r){throw new Wt}formatOffset(e,r){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},_d=null,Eo=class t extends Pr{static get instance(){return _d===null&&(_d=new t),_d}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return gE(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Iu={};function kw(t){return Iu[t]||(Iu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Iu[t]}var Fw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Bw(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 Gw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Fw[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Au={},sr=class t extends Pr{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},Iu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return gE(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=kw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Gw(n,r):Bw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=qd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),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}},xy={};function $w(t,e={}){let r=JSON.stringify([t,e]),n=xy[r];return n||(n=new Intl.ListFormat(t,e),xy[r]=n),n}var Nd={};function Pd(t,e={}){let r=JSON.stringify([t,e]),n=Nd[r];return n||(n=new Intl.DateTimeFormat(t,e),Nd[r]=n),n}var Ud={};function Vw(t,e={}){let r=JSON.stringify([t,e]),n=Ud[r];return n||(n=new Intl.NumberFormat(t,e),Ud[r]=n),n}var Ld={};function qw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Ld[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Ld[i]=s),s}var ho=null;function Ww(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function Qw(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=Pd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Pd(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 Hw(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Yw(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function _u(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Kw(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 Md=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=Vw(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):Vd(e,3);return xe(r,this.padTo)}}},kd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&sr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Pd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Fd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&hE()&&(this.rtf=qw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):db(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||he.defaultLocale,o=s||(i?"en-US":Ww()),a=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Nd={},Ud={},Ld={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Qw(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=Kw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return _u(this,e,n,TE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Hw(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return _u(this,e,n,SE,()=>{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]=Yw(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return _u(this,void 0,e,()=>OE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return _u(this,e,r,IE,()=>{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 Md(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new kd(e,this.intl,r)}relFormatter(e={}){return new Fd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return $w(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}},Sd=null,nt=class t extends Pr{static get utcInstance(){return Sd===null&&(Sd=new t(0)),Sd}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},bu=class extends Pr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Nr(t,e){if(ne(t)||t===null)return e;if(t instanceof Pr)return t;if(zw(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||sr.create(t)}else return $n(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new bu(t)}var Ry=()=>Date.now(),wy="system",by=null,Dy=null,vy=null,Cy=60,Ny,he=class{static get now(){return Ry}static set now(e){Ry=e}static set defaultZone(e){wy=e}static get defaultZone(){return Nr(wy,Eo.instance)}static get defaultLocale(){return by}static set defaultLocale(e){by=e}static get defaultNumberingSystem(){return Dy}static set defaultNumberingSystem(e){Dy=e}static get defaultOutputCalendar(){return vy}static set defaultOutputCalendar(e){vy=e}static get twoDigitCutoffYear(){return Cy}static set twoDigitCutoffYear(e){Cy=e%100}static get throwOnInvalid(){return Ny}static set throwOnInvalid(e){Ny=e}static resetCaches(){Ae.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function $n(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function zw(t){return typeof t=="string"}function Jw(t){return Object.prototype.toString.call(t)==="[object Date]"}function hE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Zw(t){return Array.isArray(t)?t:[t]}function Py(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 Xw(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return Nu(t)&&t>=e&&t<=r}function eb(t,e){return t-e*Math.floor(t/e)}function xe(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Cr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function $d(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Vd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Du(t,e){let r=eb(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function qd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function 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 Bd(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function gE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Pu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function yE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Qe(`Invalid unit value ${t}`);return e}function Cu(t,e){let r={};for(let n in t)if(ki(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=yE(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${xe(r,2)}:${xe(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${xe(r,2)}${xe(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Uu(t){return Xw(t,["hour","minute","second","millisecond"])}var tb=["January","February","March","April","May","June","July","August","September","October","November","December"],EE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],rb=["J","F","M","A","M","J","J","A","S","O","N","D"];function TE(t){switch(t){case"narrow":return[...rb];case"short":return[...EE];case"long":return[...tb];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 AE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],_E=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],nb=["M","T","W","T","F","S","S"];function SE(t){switch(t){case"narrow":return[...nb];case"short":return[..._E];case"long":return[...AE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var OE=["AM","PM"],ib=["Before Christ","Anno Domini"],sb=["BC","AD"],ob=["B","A"];function IE(t){switch(t){case"narrow":return[...ob];case"short":return[...sb];case"long":return[...ib];default:return null}}function ab(t){return OE[t.hour<12?0:1]}function ub(t,e){return SE(e)[t.weekday-1]}function cb(t,e){return TE(e)[t.month-1]}function lb(t,e){return IE(e)[t.year<0?0:1]}function db(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 Uy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var pb={D:wu,DD:zy,DDD:Jy,DDDD:Zy,t:Xy,tt:eE,ttt:tE,tttt:rE,T:nE,TT:iE,TTT:sE,TTTT:oE,f:aE,ff:cE,fff:dE,ffff:fE,F:uE,FF:lE,FFF:pE,FFFF:mE},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 pb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return xe(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?ab(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?cb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?ub(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?lb(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 Uy(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 Uy(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},xE=/[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 RE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Cr(e[r+i]);return[n,null,r+i]}}var wE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,fb=`(?:${wE.source}?(?:\\[(${xE.source})\\])?)?`,Wd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,bE=RegExp(`${Wd.source}${fb}`),Qd=RegExp(`(?:T${bE.source})?`),mb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,hb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,gb=/(\d{4})-?(\d{3})/,yb=RE("weekYear","weekNumber","weekDay"),Eb=RE("year","ordinal"),Tb=/(\d{4})-(\d\d)-(\d\d)/,DE=RegExp(`${Wd.source} ?(?:${wE.source}|(${xE.source}))?`),Ab=RegExp(`(?: ${DE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function _b(t,e){return[{year:Mi(t,e),month:Mi(t,e+1,1),day:Mi(t,e+2,1)},null,e+3]}function $i(t,e){return[{hours:Mi(t,e,0),minutes:Mi(t,e+1,0),seconds:Mi(t,e+2,0),milliseconds:$d(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Pu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Sb=RegExp(`^T?${Wd.source}$`),Ob=/^-?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 Ib(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(kn(r)),months:m(kn(n)),weeks:m(kn(i)),days:m(kn(s)),hours:m(kn(o)),minutes:m(kn(a)),seconds:m(kn(u),u==="-0"),milliseconds:m($d(c),d)}]}var xb={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 jd(t,e,r,n,i,s,o){let a={year:e.length===2?Bd(Cr(e)):Cr(e),month:EE.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?AE.indexOf(t)+1:_E.indexOf(t)+1),a}var Rb=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function wb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=jd(e,i,n,r,s,o,a),p;return u?p=xb[u]:c?p=0:p=Pu(l,d),[m,new nt(p)]}function bb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Db=/^(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$/,vb=/^(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$/,Cb=/^(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 Ly(t){let[,e,r,n,i,s,o,a]=t;return[jd(e,i,n,r,s,o,a),nt.utcInstance]}function Nb(t){let[,e,r,n,i,s,o,a]=t;return[jd(e,a,r,n,i,s,o),nt.utcInstance]}var Pb=Fi(mb,Qd),Ub=Fi(hb,Qd),Lb=Fi(gb,Qd),Mb=Fi(bE),vE=Bi(_b,$i,Ao,_o),kb=Bi(yb,$i,Ao,_o),Fb=Bi(Eb,$i,Ao,_o),Bb=Bi($i,Ao,_o);function Gb(t){return Gi(t,[Pb,vE],[Ub,kb],[Lb,Fb],[Mb,Bb])}function $b(t){return Gi(bb(t),[Rb,wb])}function Vb(t){return Gi(t,[Db,Ly],[vb,Ly],[Cb,Nb])}function qb(t){return Gi(t,[Ob,Ib])}var Wb=Bi($i);function Qb(t){return Gi(t,[Sb,Wb])}var jb=Fi(Tb,Ab),Hb=Fi(DE),Yb=Bi($i,Ao,_o);function Kb(t){return Gi(t,[jb,vE],[Hb,Yb])}var zb="Invalid Duration",CE={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Jb={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...CE},mt=146097/400,Ui=146097/4800,Zb={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:Ui/7,days:Ui,hours:Ui*24,minutes:Ui*24*60,seconds:Ui*24*60*60,milliseconds:Ui*24*60*60*1e3},...CE},Fn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Xb=Fn.slice(0).reverse();function vr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new we(n)}function eD(t){return t<0?Math.floor(t):Math.ceil(t)}function NE(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?eD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function tD(t,e){Xb.reduce((r,n)=>ne(e[n])?r:(r&&NE(t,e,r,e,n),n),null)}function rD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var we=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?Zb:Jb;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Qe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Cu(e,t.normalizeUnit),loc:Ae.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if($n(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=qb(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]=Qb(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the Duration is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Cd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Ru(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?et.create(this.loc,n).formatDurationFromString(this,e):zb}toHuman(e={}){let r=Fn.map(n=>{let i=this.values[n];return ne(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(i)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=Vd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Fn)(ki(r.values,i)||ki(this.values,i))&&(n[i]=r.get(i)+this.get(i));return vr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=yE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Cu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return tD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=rD(this.normalize().shiftToAll().toObject());return vr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Fn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;$n(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)Fn.indexOf(c)>Fn.indexOf(o)&&NE(this.matrix,i,c,r,o)}else $n(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return vr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return vr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Fn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function nD(t,e){return!t||!t.isValid?Vn.invalid("missing or invalid start"):!e||!e.isValid?Vn.invalid("missing or invalid end"):e<t?Vn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var Vn=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new vd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=nD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=we.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=we.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=we.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Li}toLocaleString(e=wu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Li}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Li}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Li}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Li}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Li}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):we.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Gn=class{static hasDST(e=he.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return sr.isValidZone(e)}static normalizeZone(e){return Nr(e,he.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.create(r,null,"gregory").eras(e)}static features(){return{relative:hE()}}};function My(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(we.fromMillis(n).as("days"))}function iD(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=My(u,c);return(l-l%7)/7}],["days",My]],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 sD(t,e,r,n){let[i,s,o,a]=iD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=we.fromObject(s,n);return c.length>0?we.fromMillis(u,n).shiftTo(...c).plus(l):l}var Hd={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"},ky={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]},oD=Hd.hanidec.replace(/[\[|\]]/g,"").split("");function aD(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(Hd.hanidec)!==-1)e+=oD.indexOf(t[r]);else for(let i in ky){let[s,o]=ky[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Hd[t||"latn"]}${e}`)}var uD="missing Intl.DateTimeFormat.formatToParts support";function ue(t,e=r=>r){return{regex:t,deser:([r])=>e(aD(r))}}var cD=String.fromCharCode(160),PE=`[ ${cD}]`,UE=new RegExp(PE,"g");function lD(t){return t.replace(/\./g,"\\.?").replace(UE,PE)}function Fy(t){return t.replace(/\./g,"").replace(UE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(lD).join("|")),deser:([r])=>t.findIndex(n=>Fy(r)===Fy(n))+e}}function By(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Od(t){return{regex:t,deser:([e])=>e}}function dD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function pD(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(dD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ue(c);case"yy":return ue(d,Bd);case"yyyy":return ue(s);case"yyyyy":return ue(m);case"yyyyyy":return ue(o);case"M":return ue(a);case"MM":return ue(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ue(a);case"LL":return ue(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ue(a);case"dd":return ue(n);case"o":return ue(u);case"ooo":return ue(i);case"HH":return ue(n);case"H":return ue(a);case"hh":return ue(n);case"h":return ue(a);case"mm":return ue(n);case"m":return ue(a);case"q":return ue(a);case"qq":return ue(n);case"s":return ue(a);case"ss":return ue(n);case"S":return ue(u);case"SSS":return ue(i);case"u":return Od(l);case"uu":return Od(a);case"uuu":return ue(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ue(s);case"kk":return ue(d,Bd);case"W":return ue(a);case"WW":return ue(n);case"E":case"c":return ue(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return By(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return By(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Od(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:uD};return g.token=t,g}var fD={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 mD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=fD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function hD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function gD(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 yD(t){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},r=null,n;return ne(t.z)||(r=sr.create(t.z)),ne(t.Z)||(r||(r=new nt(t.Z)),n=t.Z),ne(t.q)||(t.M=(t.q-1)*3+1),ne(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),ne(t.u)||(t.S=$d(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Id=null;function ED(){return Id||(Id=_e.fromMillis(1555555555555)),Id}function TD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=kE(r,e);return n==null||n.includes(void 0)?t:n}function LE(t,e){return Array.prototype.concat(...t.map(r=>TD(r,e)))}function ME(t,e,r){let n=LE(et.parseFormat(r),t),i=n.map(o=>pD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=hD(i),u=RegExp(o,"i"),[c,l]=gD(e,u,a),[d,m,p]=l?yD(l):[null,null,void 0];if(ki(l,"a")&&ki(l,"H"))throw new Bn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function AD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=ME(t,e,r);return[n,i,s,o]}function kE(t,e){return t?et.create(e,t).formatDateTimeParts(ED()).map(i=>mD(i,t)):null}var FE=[0,31,59,90,120,151,181,212,243,273,304,334],BE=[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 GE(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 $E(t,e,r){return r+(To(t)?BE:FE)[e-1]}function VE(t,e){let r=To(t)?BE:FE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Gd(t){let{year:e,month:r,day:n}=t,i=$E(e,r,n),s=GE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=vu(a)):o>vu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Uu(t)}}function Gy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=GE(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}=VE(a,o);return{year:a,month:u,day:c,...Uu(t)}}function xd(t){let{year:e,month:r,day:n}=t,i=$E(e,r,n);return{year:e,ordinal:i,...Uu(t)}}function $y(t){let{year:e,ordinal:r}=t,{month:n,day:i}=VE(e,r);return{year:e,month:n,day:i,...Uu(t)}}function _D(t){let e=Nu(t.weekYear),r=nr(t.weekNumber,1,vu(t.weekYear)),n=nr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function SD(t){let e=Nu(t.year),r=nr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function qE(t){let e=Nu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,Du(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function WE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=nr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=nr(r,0,59),a=nr(n,0,59),u=nr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Rd="Invalid DateTime",Vy=864e13;function Su(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function wd(t){return t.weekData===null&&(t.weekData=Gd(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 QE(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function qy(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function xu(t,e,r){return QE(qd(t),e,r)}function Wy(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Du(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=we.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=qd(s),[u,c]=QE(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 bd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=xe(t.c.year,r?6:4),e?(n+="-",n+=xe(t.c.month),n+="-",n+=xe(t.c.day)):(n+=xe(t.c.month),n+=xe(t.c.day)),n}function Qy(t,e,r,n,i,s){let o=xe(t.c.hour);return e?(o+=":",o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=xe(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=xe(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=xe(Math.trunc(-t.o/60)),o+=":",o+=xe(Math.trunc(-t.o%60))):(o+="+",o+=xe(Math.trunc(t.o/60)),o+=":",o+=xe(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var jE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},OD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},ID={ordinal:1,hour:0,minute:0,second:0,millisecond:0},HE=["year","month","day","hour","minute","second","millisecond"],xD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],RD=["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 Ru(t);return e}function Hy(t,e){let r=Nr(e.zone,he.defaultZone),n=Ae.fromObject(e),i=he.now(),s,o;if(ne(t.year))s=i;else{for(let c of HE)ne(t[c])&&(t[c]=jE[c]);let a=qE(t)||WE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function Yy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Vd(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 Ky(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||he.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Su(r));this.ts=ne(e.ts)?he.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=qy(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Ae.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Ky(arguments),[n,i,s,o,a,u,c]=r;return Hy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Ky(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,Hy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Jw(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Nr(r.zone,he.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if($n(e))return e<-Vy||e>Vy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nr(r.zone,he.defaultZone),loc:Ae.fromObject(r)});throw new Qe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if($n(e))return new t({ts:e*1e3,zone:Nr(r.zone,he.defaultZone),loc:Ae.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Nr(r.zone,he.defaultZone);if(!n.isValid)return t.invalid(Su(n));let i=he.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Cu(e,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 Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Bn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=qy(i,s);p?(f=xD,g=OD,E=Gd(E)):a?(f=RD,g=ID,E=xd(E)):(f=HE,g=jE);let y=!1;for(let R of f){let F=o[R];ne(F)?y?o[R]=g[R]:o[R]=E[R]:y=!0}let O=p?_D(o):a?SD(o):qE(o),S=O||WE(o);if(S)return t.invalid(S);let L=p?Gy(o):a?$y(o):o,[T,_]=xu(L,s,n),B=new t({ts:T,zone:n,o:_,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=Gb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=$b(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=Vb(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Qe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=AD(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]=Kb(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the DateTime is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Dd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=kE(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return LE(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?wd(this).weekYear:NaN}get weekNumber(){return this.isValid?wd(this).weekNumber:NaN}get weekday(){return this.isValid?wd(this).weekday:NaN}get ordinal(){return this.isValid?xd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Gn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Gn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Gn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Gn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return To(this.year)}get daysInMonth(){return Du(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?vu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(nt.instance(e),r)}toLocal(){return this.setZone(he.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Nr(e,he.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=xu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Su(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Cu(e,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 Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Bn("Can't mix ordinal dates with month/day");let c;n?c=Gy({...Gd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=$y({...xd(this.c),...r});let[l,d]=xu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e);return po(this,Wy(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,Wy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=we.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?et.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Rd}toLocaleString(e=wu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Rd}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=bd(this,o);return a+="T",a+=Qy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?bd(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":"")+Qy(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?bd(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():Rd}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return we.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Zw(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=sD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?Vn.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),Yy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Yy(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Qe("min requires all arguments be DateTimes");return Py(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return Py(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 ME(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return zy}static get DATE_MED_WITH_WEEKDAY(){return Lw}static get DATE_FULL(){return Jy}static get DATE_HUGE(){return Zy}static get TIME_SIMPLE(){return Xy}static get TIME_WITH_SECONDS(){return eE}static get TIME_WITH_SHORT_OFFSET(){return tE}static get TIME_WITH_LONG_OFFSET(){return rE}static get TIME_24_SIMPLE(){return nE}static get TIME_24_WITH_SECONDS(){return iE}static get TIME_24_WITH_SHORT_OFFSET(){return sE}static get TIME_24_WITH_LONG_OFFSET(){return oE}static get DATETIME_SHORT(){return aE}static get DATETIME_SHORT_WITH_SECONDS(){return uE}static get DATETIME_MED(){return cE}static get DATETIME_MED_WITH_SECONDS(){return lE}static get DATETIME_MED_WITH_WEEKDAY(){return Mw}static get DATETIME_FULL(){return dE}static get DATETIME_FULL_WITH_SECONDS(){return pE}static get DATETIME_HUGE(){return fE}static get DATETIME_HUGE_WITH_SECONDS(){return mE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&$n(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var wD="3.2.1";it.DateTime=_e;it.Duration=we;it.FixedOffsetZone=nt;it.IANAZone=sr;it.Info=Gn;it.Interval=Vn;it.InvalidZone=bu;it.Settings=he;it.SystemZone=Eo;it.VERSION=wD;it.Zone=Pr});var zE=H((bW,KE)=>{"use strict";var qn=YE();J.prototype.addYear=function(){this._date=this._date.plus({years:1})};J.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};J.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};J.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};J.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};J.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};J.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};J.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};J.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};J.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};J.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};J.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};J.prototype.getDate=function(){return this._date.day};J.prototype.getFullYear=function(){return this._date.year};J.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};J.prototype.getMonth=function(){return this._date.month-1};J.prototype.getHours=function(){return this._date.hour};J.prototype.getMinutes=function(){return this._date.minute};J.prototype.getSeconds=function(){return this._date.second};J.prototype.getMilliseconds=function(){return this._date.millisecond};J.prototype.getTime=function(){return this._date.valueOf()};J.prototype.getUTCDate=function(){return this._getUTC().day};J.prototype.getUTCFullYear=function(){return this._getUTC().year};J.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};J.prototype.getUTCMonth=function(){return this._getUTC().month-1};J.prototype.getUTCHours=function(){return this._getUTC().hour};J.prototype.getUTCMinutes=function(){return this._getUTC().minute};J.prototype.getUTCSeconds=function(){return this._getUTC().second};J.prototype.toISOString=function(){return this._date.toUTC().toISO()};J.prototype.toJSON=function(){return this._date.toJSON()};J.prototype.setDate=function(t){this._date=this._date.set({day:t})};J.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};J.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};J.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};J.prototype.setHours=function(t){this._date=this._date.set({hour:t})};J.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};J.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};J.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};J.prototype._getUTC=function(){return this._date.toUTC()};J.prototype.toString=function(){return this.toDate().toString()};J.prototype.toDate=function(){return this._date.toJSDate()};J.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};J.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function J(t,e){var r={zone:e};if(t?t instanceof J?this._date=t._date:t instanceof Date?this._date=qn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=qn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=qn.DateTime.fromISO(t,r),this._date.isValid||(this._date=qn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=qn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=qn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=qn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}KE.exports=J});var XE=H((DW,ZE)=>{"use strict";function Wn(t){return{start:t,count:1}}function JE(t,e){t.end=e,t.step=e-t.start,t.count=2}function Yd(t,e,r){e&&(e.count===2?(t.push(Wn(e.start)),t.push(Wn(e.end))):t.push(e)),r&&t.push(r)}function bD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Yd(e,r,Wn(i)),r=void 0):r?r.count===1?JE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Wn(r.start)),r=Wn(r.end),JE(r,i)):(Yd(e,r),r=Wn(i)):r=Wn(i)}return Yd(e,r),e}ZE.exports=bD});var tT=H((vW,eT)=>{"use strict";var DD=XE();function vD(t,e,r){var n=DD(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(",")}eT.exports=vD});var iT=H((CW,nT)=>{"use strict";var Qn=zE(),CD=tT(),rT=1e4;function P(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Qn(e.currentDate,this._tz),this._startDate=e.startDate?new Qn(e.startDate,this._tz):null,this._endDate=e.endDate?new Qn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=P._freezeFields(t)}P.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];P.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};P.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];P.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];P.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};P.parseDefaults=["0","*","*","*","*","*"];P.standardValidCharacters=/^[,*\d/-]+$/;P.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;P.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;P.validCharacters={second:P.standardValidCharacters,minute:P.standardValidCharacters,hour:P.standardValidCharacters,dayOfMonth:P.dayOfMonthValidCharacters,month:P.standardValidCharacters,dayOfWeek:P.dayOfWeekValidCharacters};P._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};P._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=P.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!P.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(P._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(P._isValidConstraintChar(n,f)){c.push(f);return}var O=+f;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));else l(o(u));return c.sort(P._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};P._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};P._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=P.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(P._sortCompareFn)}};P._freezeFields=function(t){for(var e=0,r=P.map.length;e<r;++e){var n=P.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};P.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};P.prototype._findSchedule=function(e){function r(y,O){for(var S=0,L=O.length;S<L;S++)if(O[S]>=y)return O[S]===y;return O[0]===y}function n(y,O){if(O<6){if(y.getDate()<8&&O===1)return!0;var S=y.getDate()%7?1:0,L=y.getDate()-y.getDate()%7,T=Math.floor(L/7)+S;return T===O}return!1}function i(y){return y.length>0&&y.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Qn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(O){if(!i([O]))return!1;var S=Number.parseInt(O[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+O);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<rT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=rT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Qn(o,this._tz),this._hasIterated=!0,o};P.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};P.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};P.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};P.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};P.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};P.prototype.reset=function(e){this._currentDate=new Qn(e||this._options.currentDate)};P.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=P.map.length;n<i;++n){var s=P.map[n],o=this.fields[s],a=P.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:P.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(CD(o,a.min,a.max))}return r.join(" ")};P.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Qn(void 0,n._tz)),P.predefined[s]&&(s=P.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=P.map.length-u.length,l=0,d=P.map.length;l<d;++l){var m=P.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var f=m==="dayOfWeek"?O(p):p;a.push(P._parseField(m,f,P.constraints[l]))}}for(var g={},l=0,d=P.map.length;l<d;l++){var E=P.map[l];g[E]=a[l]}var y=P._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new P(g,o);function O(S){var L=S.split("#");if(L.length>1){var T=+L[L.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(L.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,L[0]}return S}}return i(e,r)};P.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!P._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=P.map.length;s<o;++s){var a=P.map[s],u=e[a];n(a,u,P.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(P._sortCompareFn).filter(function(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=P._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new P(i,r||{})};nT.exports=P});var oT=H((NW,sT)=>{"use strict";var Lu=iT();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Lu.parse(e)};if(r.length>6)return{interval:Lu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return Lu.parse(e,r)};Ur.fieldsToExpression=function(e,r){return Lu.fieldsToExpression(e,r)};Ur.parseString=function(e){for(var r=e.split(`
|
|
5
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Ur._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Ur.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Ur.parseString(i.toString()))})};sT.exports=Ur});var nF={};v(nF,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>hp,BadRequestError:()=>Oc,BudibaseError:()=>ms,Config:()=>_p,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Tp,DEFAULT_EXPENSES_TABLE_ID:()=>Ep,DEFAULT_INVENTORY_TABLE_ID:()=>yp,DEFAULT_JOBS_TABLE_ID:()=>gp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Wi,DocumentType:()=>Te,Duration:()=>Re,DurationType:()=>Wf,EmailUnavailableError:()=>hr,ErrorCode:()=>Rc,FeatureDisabledError:()=>xc,GlobalRole:()=>Ap,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ir,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>TT,NotFoundError:()=>Sc,RedisClient:()=>Ge,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>mp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Ic,UserStatus:()=>qu,ViewName:()=>kr,accounts:()=>ai,auth:()=>oh,blacklist:()=>lh,cache:()=>wa,configs:()=>rn,constants:()=>Sp,context:()=>ye,db:()=>Vr,docIds:()=>nf,docUpdates:()=>ph,encryption:()=>nh,env:()=>h,errors:()=>bc,events:()=>Ts,features:()=>Ym,getPublicError:()=>wc,init:()=>rF,installation:()=>Fc,locks:()=>oi,logging:()=>hc,middleware:()=>sh,objectStore:()=>Af,permissions:()=>Qm,platform:()=>ca,plugins:()=>uh,queue:()=>pm,redis:()=>ch,roles:()=>am,security:()=>Dm,sessions:()=>Qc,setEnv:()=>wo,sql:()=>_h,tenancy:()=>tF,timers:()=>jo,userUtils:()=>um,users:()=>As,utils:()=>cs,withEnv:()=>xT});module.exports=AO(nF);var rn={};v(rn,{analyticsEnabled:()=>Lc,generateConfigID:()=>$m,getAIConfig:()=>wM,getConfig:()=>Ft,getDefaultGoogleConfig:()=>Bm,getGoogleConfig:()=>zc,getGoogleDatasourceConfig:()=>qm,getOIDCConfig:()=>IM,getOIDCConfigById:()=>Wm,getOIDCLogosDoc:()=>SM,getPlatformUrl:()=>Na,getSCIMConfig:()=>RM,getSMTPConfig:()=>xM,getSMTPConfigDoc:()=>OS,getSettingsConfig:()=>Vm,getSettingsConfigDoc:()=>Gc,save:()=>AM});var _O=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],Oh=[..._O],Ih={"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 Tl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Tl||{}),Al=(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))(Al||{}),Fa=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Fa||{});var _l=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(_l||{});var Sr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Sr||{}),Kt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Kt||{}),ln=(e=>(e.RANGE="range",e))(ln||{}),gi=(r=>(r.AND="$and",r.OR="$or",r))(gi||{});function Ba(t){return Object.values(gi).includes(t)}function xh(t){return Object.values(Sr).includes(t)}function Rh(t){return Object.values(Kt).includes(t)}function Sl(t){return Object.values(ln).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var wh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var bh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var iB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var Ga=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Ga||{});var $a=t=>t.hosting==="cloud";var Va=t=>t.authType==="sso";var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),Ee=(S=>(S.TABLE="table",S.ROW="row",S.ROWS="rows",S.WIDE="wide",S.QUERY="query",S.QUERY_PARAMS="queryParams",S.QUERY_LIMIT="queryLimit",S.LOOP_OPTION="loopOption",S.ITEM="item",S.CODE="code",S.FILTERS="filters",S.COLUMN="column",S.TRIGGER_SCHEMA="triggerSchema",S.CRON="cron",S.WEBHOOK_URL="webhookUrl",S.AUTOMATION="automation",S.AUTOMATION_FIELDS="automationFields",S.MULTI_ATTACHMENTS="multi_attachments",S.TRIGGER_FILTER="trigger_filter",S))(Ee||{}),St=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(St||{});var de=(_=>(_.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",_.CREATE_ROW="CREATE_ROW",_.UPDATE_ROW="UPDATE_ROW",_.DELETE_ROW="DELETE_ROW",_.EXECUTE_BASH="EXECUTE_BASH",_.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",_.EXECUTE_SCRIPT="EXECUTE_SCRIPT",_.EXECUTE_QUERY="EXECUTE_QUERY",_.SERVER_LOG="SERVER_LOG",_.DELAY="DELAY",_.FILTER="FILTER",_.QUERY_ROWS="QUERY_ROWS",_.LOOP="LOOP",_.COLLECT="COLLECT",_.OPENAI="OPENAI",_.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",_.BRANCH="BRANCH",_.discord="discord",_.slack="slack",_.zapier="zapier",_.integromat="integromat",_.n8n="n8n",_))(de||{}),Dh=[...Object.values(de),...Object.values(St)];var Ol=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Ol||{});var Il=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Il||{});var xl="bb_internal";var vh=["attachment_single","attachment","bb_reference","json","array"];var C="_",ke="\uFFF0",Or=t=>`${t}${C}`,Te=(G=>(G.USER="us",G.GROUP="gr",G.WORKSPACE="workspace",G.CONFIG="config",G.TEMPLATE="template",G.APP="app",G.DEV="dev",G.APP_DEV="app_dev",G.APP_METADATA="app_metadata",G.ROLE="role",G.MIGRATIONS="migrations",G.DEV_INFO="devinfo",G.AUTOMATION_LOG="log_au",G.ACCOUNT_METADATA="acc_metadata",G.PLUGIN="plg",G.DATASOURCE="datasource",G.DATASOURCE_PLUS="datasource_plus",G.APP_BACKUP="backup",G.TABLE="ta",G.ROW="ro",G.AUTOMATION="au",G.LINK="li",G.WEBHOOK="wh",G.INSTANCE="inst",G.LAYOUT="layout",G.SCREEN="screen",G.QUERY="query",G.DEPLOYMENTS="deployments",G.METADATA="metadata",G.MEM_VIEW="view",G.USER_FLAG="flag",G.AUTOMATION_METADATA="meta_au",G.AUDIT_LOG="al",G.APP_MIGRATION_METADATA="_design/migrations",G.SCIM_LOG="scimlog",G.ROW_ACTIONS="ra",G))(Te||{}),SG=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||{}),OG=Object.values(Rl).sort((t,e)=>e.length-t.length);function qa(t){return!!t.providerType}var wl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(wl||{});var r$=Object.values(wl);var a$=["rows","queries","automations"],u$=["queries","automations"];var pn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(pn||{}),Wa=(r=>(r.STRING="string",r.NUMBER="number",r))(Wa||{});var te;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(te||(te={}));var Dl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Dl||(Dl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},I=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),IO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Ai=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Ph=Ai;function xO(t){Ph=t}function Qa(){return Ph}var ja=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},RO=[];function N(t,e){let r=Qa(),n=ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ai?void 0:Ai].filter(i=>!!i)});t.common.issues.push(n)}var Me=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return z;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return z;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},z=Object.freeze({status:"aborted"}),Ti=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),vl=t=>t.status==="aborted",Cl=t=>t.status==="dirty",vs=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Ha(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Uh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var $;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})($||($={}));var bs,Ds,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ch=(t,e)=>{if(vs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return xr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Cs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Ch(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return Ch(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Je({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return br.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return An.create(this,e,this._def)}transform(e){return new Je({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},wO=/^c[^\s-]{8,}$/i,bO=/^[0-9a-z]+$/,DO=/^[0-9A-HJKMNP-TV-Z]{26}$/,vO=/^[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,CO=/^[a-z0-9_-]{21}$/i,NO=/^[-+]?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)?)??$/,PO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,UO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",bl,LO=/^(?:(?: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])$/,MO=/^(([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})))$/,kO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Lh="((\\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])))",FO=new RegExp(`^${Lh}$`);function Mh(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 BO(t){return new RegExp(`^${Mh(t)}$`)}function kh(t){let e=`${Lh}T${Mh(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 GO(t,e){return!!((e==="v4"||!e)&&LO.test(t)||(e==="v6"||!e)&&MO.test(t))}var Rr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.string,received:s.parsedType}),z}let n=new Me,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")PO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")bl||(bl=new RegExp(UO,"u")),bl.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")vO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")CO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")wO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")bO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")DO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ulid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),N(i,{validation:"url",code:I.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"regex",code:I.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?kh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?FO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?BO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?NO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?GO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?kO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"base64",code:I.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:I.invalid_string,...$.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...$.errToObj(e)})}url(e){return this._addCheck({kind:"url",...$.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...$.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...$.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...$.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...$.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...$.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...$.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...$.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...$.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...$.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...$.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...$.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...$.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...$.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...$.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...$.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...$.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...$.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...$.errToObj(r)})}nonempty(e){return this.min(1,$.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Rr.create=t=>{var e;return new Rr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function $O(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.number,received:s.parsedType}),z}let n,i=new Me;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?$O(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:$.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};fn.create=t=>new fn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.bigint,received:s.parsedType}),z}let n,i=new Me;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};mn.create=t=>{var e;return new mn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.boolean,received:n.parsedType}),z}return Fe(e.data)}};hn.create=t=>new hn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_date}),z}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:$.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:$.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var _i=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),z}return Fe(e.data)}};_i.create=t=>new _i({typeName:Y.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),z}return Fe(e.data)}};yn.create=t=>new yn({typeName:Y.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.null,received:n.parsedType}),z}return Fe(e.data)}};En.create=t=>new En({typeName:Y.ZodNull,...Z(t)});var wr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};wr.create=t=>new wr({typeName:Y.ZodAny,...Z(t)});var Jt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Jt.create=t=>new Jt({typeName:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),z}return Fe(e.data)}};Si.create=t=>new Si({typeName:Y.ZodVoid,...Z(t)});var Zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return N(r,{code:I.invalid_type,expected:M.array,received:r.parsedType}),z;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(N(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(N(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(N(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Ei(t){if(t instanceof qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ei(n))}return new qe({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:Ei(t.element)}):t instanceof dt?dt.create(Ei(t.unwrap())):t instanceof Gt?Gt.create(Ei(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ei(e))):t}var qe=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return N(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(N(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Me.mergeObjectSync(n,c)):Me.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return $.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=$.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ei(this)}partial(e){let r={};return te.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return te.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Fh(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return N(r,{code:I.invalid_union,unionErrors:o}),z}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return N(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:Y.ZodUnion,...Z(e)});var zt=t=>t instanceof _n?zt(t.schema):t instanceof Je?zt(t.innerType()):t instanceof Sn?[t.value]:t instanceof On?t.options:t instanceof In?te.objectValues(t.enum):t instanceof xn?zt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...zt(t.unwrap())]:t instanceof Gt?[null,...zt(t.unwrap())]:t instanceof Ns||t instanceof wn?zt(t.unwrap()):t instanceof Rn?zt(t._def.innerType):[],Ya=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return N(r,{code:I.invalid_type,expected:M.object,received:r.parsedType}),z;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(N(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Nl(t,e){let r=xr(t),n=xr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Nl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Nl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var An=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(vl(s)||vl(o))return z;let a=Nl(s.value,o.value);return a.valid?((Cl(s)||Cl(o))&&r.dirty(),{status:r.value,value:a.data}):(N(n,{code:I.invalid_intersection_types}),z)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};An.create=(t,e,r)=>new An({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return N(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return N(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),z;!this._def.rest&&n.data.length>this._def.items.length&&(N(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Me.mergeArray(r,o)):Me.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Bt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Ka=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return N(n,{code:I.invalid_type,expected:M.object,received:n.parsedType}),z;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Me.mergeObjectAsync(r,i):Me.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:Y.ZodRecord,...Z(n)}):new t({keyType:Rr.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},Oi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return N(n,{code:I.invalid_type,expected:M.map,received:n.parsedType}),z;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Oi.create=(t,e,r)=>new Oi({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var Ii=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return N(n,{code:I.invalid_type,expected:M.set,received:n.parsedType}),z;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(N(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(N(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return z;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:$.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Ii.create=(t,e)=>new Ii({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var za=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return N(r,{code:I.invalid_type,expected:M.function,received:r.parsedType}),z;function n(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof br){let a=this;return Fe(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),c})})}else{let a=this;return Fe(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Bt.create(e).rest(Jt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Bt.create([]).rest(Jt.create()),returns:r||Jt.create(),typeName:Y.ZodFunction,...Z(n)})}},_n=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:Y.ZodLazy,...Z(e)});var Sn=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return N(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Sn.create=(t,e)=>new Sn({value:t,typeName:Y.ZodLiteral,...Z(e)});function Fh(t,e){return new On({values:t,typeName:Y.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Ha(this,bs,"f")||Uh(this,bs,new Set(this._def.values),"f"),!Ha(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{received:r.data,code:I.invalid_enum_value,options:n}),z}return Fe(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};bs=new WeakMap;On.create=Fh;var In=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=te.objectValues(r);return N(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),z}if(Ha(this,Ds,"f")||Uh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ha(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return N(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;In.create=(t,e)=>new In({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var br=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return N(r,{code:I.invalid_type,expected:M.promise,received:r.parsedType}),z;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};br.create=(t,e)=>new br({type:t,typeName:Y.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{N(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return z;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?z:u.status==="dirty"||r.value==="dirty"?Ti(u.value):u});{if(r.value==="aborted")return z;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?z:a.status==="dirty"||r.value==="dirty"?Ti(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?z:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?z:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>vs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};Je.create=(t,e,r)=>new Je({schema:t,typeName:Y.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===M.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.nan,received:n.parsedType}),z}return{status:"valid",value:e.data}}};xi.create=t=>new xi({typeName:Y.ZodNaN,...Z(t)});var VO=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?z:s.status==="dirty"?(r.dirty(),Ti(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?z:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},wn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Bh(t,e={},r){return t?wr.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):wr.create()}var qO={object:qe.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var WO=(t,e={message:`Input not instance of ${t.name}`})=>Bh(r=>r instanceof t,e),Gh=Rr.create,$h=fn.create,QO=xi.create,jO=mn.create,Vh=hn.create,HO=gn.create,YO=_i.create,KO=yn.create,zO=En.create,JO=wr.create,ZO=Jt.create,XO=Ot.create,eI=Si.create,tI=Zt.create,rI=qe.create,nI=qe.strictCreate,iI=Tn.create,sI=Ya.create,oI=An.create,aI=Bt.create,uI=Ka.create,cI=Oi.create,lI=Ii.create,dI=za.create,pI=_n.create,fI=Sn.create,mI=On.create,hI=In.create,gI=br.create,Nh=Je.create,yI=dt.create,EI=Gt.create,TI=Je.createWithPreprocess,AI=Ps.create,_I=()=>Gh().optional(),SI=()=>$h().optional(),OI=()=>Vh().optional(),II={string:t=>Rr.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>hn.create({...t,coerce:!0}),bigint:t=>mn.create({...t,coerce:!0}),date:t=>gn.create({...t,coerce:!0})},xI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:Ai,setErrorMap:xO,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:RO,addIssueToContext:N,ParseStatus:Me,INVALID:z,DIRTY:Ti,OK:Fe,isAborted:vl,isDirty:Cl,isValid:vs,isAsync:Cs,get util(){return te},get objectUtil(){return Dl},ZodParsedType:M,getParsedType:xr,ZodType:X,datetimeRegex:kh,ZodString:Rr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:_i,ZodUndefined:yn,ZodNull:En,ZodAny:wr,ZodUnknown:Jt,ZodNever:Ot,ZodVoid:Si,ZodArray:Zt,ZodObject:qe,ZodUnion:Tn,ZodDiscriminatedUnion:Ya,ZodIntersection:An,ZodTuple:Bt,ZodRecord:Ka,ZodMap:Oi,ZodSet:Ii,ZodFunction:za,ZodLazy:_n,ZodLiteral:Sn,ZodEnum:On,ZodNativeEnum:In,ZodPromise:br,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Gt,ZodDefault:xn,ZodCatch:Rn,ZodNaN:xi,BRAND:VO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:wn,custom:Bh,Schema:X,ZodSchema:X,late:qO,get ZodFirstPartyTypeKind(){return Y},coerce:II,any:JO,array:tI,bigint:jO,boolean:Vh,date:HO,discriminatedUnion:sI,effect:Nh,enum:mI,function:dI,instanceof:WO,intersection:oI,lazy:pI,literal:fI,map:cI,nan:QO,nativeEnum:hI,never:XO,null:zO,nullable:EI,number:$h,object:rI,oboolean:OI,onumber:SI,optional:yI,ostring:_I,pipeline:AI,preprocess:TI,promise:gI,record:uI,set:lI,strictObject:nI,string:Gh,symbol:YO,transformer:Nh,tuple:aI,undefined:KO,union:iI,unknown:ZO,void:eI,NEVER:xI,ZodIssueCode:I,quotelessJson:IO,ZodError:ze});var eu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),qh=ee.record(eu,ee.string()),Ja=ee.record(eu,ee.any()),Za=ee.record(eu,ee.union([ee.any().array(),ee.string()])),Wh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Qh))})),Xa=ee.union([ee.string(),ee.number()]),Qh={string:qh.optional(),fuzzy:qh.optional(),range:ee.record(eu,ee.union([ee.object({high:Xa,low:Xa}),ee.object({high:Xa}),ee.object({low:Xa})])).optional(),equal:Ja.optional(),notEqual:Ja.optional(),empty:Ja.optional(),notEmpty:Ja.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:Wh.optional(),$or:Wh.optional()},X$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Qh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(pn).optional(),sortType:ee.nativeEnum(Wa).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Sp={};v(Sp,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>hp,Config:()=>_p,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Tp,DEFAULT_EXPENSES_TABLE_ID:()=>Ep,DEFAULT_INVENTORY_TABLE_ID:()=>yp,DEFAULT_JOBS_TABLE_ID:()=>gp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Wi,DocumentType:()=>Te,GlobalRole:()=>Ap,Header:()=>Ze,InternalTable:()=>Ir,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>TT,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>mp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>qu,ViewName:()=>kr});var uq={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Ze=(O=>(O.API_KEY="x-budibase-api-key",O.LICENSE_KEY="x-budibase-license-key",O.API_VER="x-budibase-api-version",O.APP_ID="x-budibase-app-id",O.SESSION_ID="x-budibase-session-id",O.TYPE="x-budibase-type",O.PREVIEW_ROLE="x-budibase-role",O.TENANT_ID="x-budibase-tenant-id",O.VERIFICATION_CODE="x-budibase-verification-code",O.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",O.RESET_PASSWORD_CODE="x-budibase-reset-password-code",O.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",O.TOKEN="x-budibase-token",O.CSRF_TOKEN="x-csrf-token",O.CORRELATION_ID="x-budibase-correlation-id",O.AUTHORIZATION="authorization",O.MIGRATING_APP="x-budibase-migrating-app",O.COOKIE="cookie",O))(Ze||{});var pq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var Eq="darkest",Tq="light",bI=[{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 Lr={};v(Lr,{ColumnSplitter:()=>ep,NoEmptyFilterStrings:()=>fT,buildQuery:()=>XD,cleanupQuery:()=>np,fixupFilterArrays:()=>sp,getKeyNumbering:()=>ip,getValidOperatorsForType:()=>zD,hasFilters:()=>tp,limit:()=>hT,recurseLogicalOperators:()=>rp,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>ev,sort:()=>mT,splitFiltersArray:()=>ru});var Vi=j(Hh());var wi={};v(wi,{filterValueToLabel:()=>UI,hasSchema:()=>LI,isSupportedUserSearch:()=>Kh,parallelForeach:()=>PI,processSearchFilters:()=>Ll,trimOtherProps:()=>MI,unreachable:()=>NI});var Yh=j(require("lodash")),CI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function NI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function PI(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 UI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function LI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function MI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Kh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(Ba(r)){for(let o of t[r].conditions)if(!Kh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function Ll(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Yh.default.pick(i,CI);return s.field=tu(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>zh,cron:()=>Kd,deepGet:()=>Ml,getUserColor:()=>FI,getUserInitials:()=>kI,getUserLabel:()=>BI,isGoogleSheets:()=>$I,isSQL:()=>VI,retry:()=>qI,roles:()=>Xd,schema:()=>So,views:()=>Zd,wait:()=>kl,withTimeout:()=>GI});var Ml=(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},kI=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"},FI=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%)`},BI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function zh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function GI(t,e){let[r,n]=zh(t),i=await Promise.race([e(),r]);return n(),i}function $I(t){return t==="GOOGLE_SHEETS"}function VI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function kl(t){return new Promise(e=>setTimeout(e,t))}async function qI(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 kl(s);try{return await t()}catch(o){n=o}}throw n}var Kd={};v(Kd,{getNextExecutionDates:()=>UD,validate:()=>LD});var uT=j($t()),cT=j(oT()),aT="(Input cron: ",ND={"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 PD(t){let e=[];for(let r of t){r.includes(aT)&&(r=r.split(aT)[0].trim());for(let[n,i]of Object.entries(ND))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function UD(t,e=4){let r=cT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function LD(t){let e=(0,uT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:PD(e.getError())}}var So={};v(So,{decodeNonAscii:()=>zd,encodeNonAscii:()=>FD,isDeprecatedSingleUserColumn:()=>MD,isNumeric:()=>BD,isRequired:()=>kD});function MD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function kD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function FD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function zd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function BD(t){return t.type==="number"||t.type==="bigint"}var Zd={};v(Zd,{basicFields:()=>WD,calculationFields:()=>qD,hasCalculationFields:()=>VD,isBasicViewField:()=>GD,isCalculationField:()=>Oo,isCalculationView:()=>$D,isV2:()=>QD,isVisible:()=>lT});var Jd=require("lodash");function Oo(t){return"calculationType"in t}function GD(t){return!Oo(t)}function $D(t){return t.type==="calculation"}function VD(t){return Object.values(t.schema||{}).some(Oo)}function qD(t){return(0,Jd.pickBy)(t.schema||{},Oo)}function lT(t){return t.visible!==!1}function WD(t,e){let{visible:r=!0}=e||{};return(0,Jd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||lT(n)))}function QD(t){return t.version===2}var Xd={};v(Xd,{checkForRoleInheritanceLoops:()=>HD});function jD(t){return`role${C}${t}`}function HD(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 jn=require("lodash");var YD=/{{([^{].*?)}}/g,pT=Object.values(gi),KD=[...Object.values(Sr),...Object.values(Kt),...Object.values(ln)],zD=(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},fT=[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 rp(t,e){for(let r of pT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var np=t=>{for(let e of fT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||JD(s))&&delete t[e][i]}return t=rp(t,np),t};function JD(t){return Array.isArray(t)&&t.length===0}var tu=t=>ip(t).key,ip=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}},ep=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}=ip(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=zd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function ZD(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(YD)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;o=new Date(o).toISOString()}break;case"number":typeof o=="string"&&!a&&(r==="oneOf"?o=o.split(",").map(parseFloat):o=parseFloat(o));break;case"boolean":o=`${o}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof o=="string"&&(o=o.split(","));break}if(Sl(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(xh(r)||Rh(r)||Sl(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function ru(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function XD(t){if(!t)return{};if(Array.isArray(t)&&(t=Ll(t),!t))return{};let e=dT(t.logicalOperator||"all"),r={};return t.onEmptyFilter?r.onEmptyFilter=t.onEmptyFilter:r.onEmptyFilter="all",r[e]={conditions:(t.groups||[]).map(n=>{let{allOr:i,onEmptyFilter:s,filters:o}=ru(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=dT(n.logicalOperator)),{[a]:{conditions:o.map(ZD).filter(u=>u)}}})},r}function dT(t){return t==="all"?"$and":"$or"}function sp(t){if(!t)return t;for(let e of Object.values(Kt)){let r=t[e];if(!(r==null||!(0,jn.isPlainObject)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return rp(t,sp),t}function ev(t,e){let r=Mu(t,e.query);e.sort&&(r=mT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=hT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=np(e),e=sp(e),!tp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[R,F]of Object.entries(e[T]||{})){let ce=Ba(T)?B:Ml(B,tu(R)),an=_(ce,F);if(e.allOr&&an)return!0;if(!e.allOr&&!an)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,jn.isPlainObject)(_.low)&&(0,jn.isEmpty)(_.low)&&(_.low=void 0),(0,jn.isPlainObject)(_.high)&&(0,jn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let F=+_.low,ce=+_.high;if(!isNaN(F)&&!isNaN(ce))return B>=F&&B<=ce;if(isNaN(F)){if(!isNaN(ce))return B<=ce}else return B>=F}let R=(0,Vi.default)(T);if(R.isValid()){let F=(0,Vi.default)(_.low||"0000-00-00T00:00:00.000Z"),ce=(0,Vi.default)(_.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ce.isValid())return R.isAfter(F)&&R.isBefore(ce)||R.isSame(F)||R.isSame(ce);if(F.isValid())return R.isAfter(F)||R.isSame(F);if(ce.isValid())return R.isBefore(ce)||R.isSame(ce)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let R of T)if(o(R,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,Vi.default)(T);if(B.isValid()){let R=(0,Vi.default)(_);if(R.isValid())return B.isSame(R)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),f=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(R=>parseFloat(R)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](R=>o(_,R)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:f("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(f("every"))(T,_)),y=r("containsAny",f("some")),O=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Mu([T],B).length)return!1;return!0}),S=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Mu([T],{...B,allOr:!0}).length)return!0;return!1}),L=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:O,$or:S},B=Object.entries(e||{}).filter(([R,F])=>!["allOr","onEmptyFilter"].includes(R)&&F&&Object.keys(F).length>0).map(([R])=>_[R]?.(T)??!1);return tp(e)?e.allOr?B.some(R=>R===!0):B.every(R=>R===!0):!0};return t.filter(L)}function mT(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 hT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var tp=t=>{if(!t)return!1;let e=r=>{for(let n of pT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of KD){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:()=>up,automations:()=>cp,screens:()=>fp,users:()=>pp});var up={};v(up,{getDevAppID:()=>tv,getProdAppID:()=>ap});var op=Or("app"),Io=Or("app_dev");function tv(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(op);e.shift();let r=e.join(op);return`${Io}${r}`}function ap(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`${op}${r}`}var cp={};v(cp,{isAppAction:()=>iv,isRowAction:()=>rv,isWebhookAction:()=>nv});function rv(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function nv(t){return t.definition.trigger?.stepId==="WEBHOOK"}function iv(t){return t.definition.trigger?.stepId==="APP"}var pp={};v(pp,{canCreateApps:()=>sv,containsUserID:()=>dv,getGlobalUserID:()=>lv,hasAdminPermissions:()=>dp,hasAppBuilderPermissions:()=>Bu,hasAppCreatorPermissions:()=>gT,hasBuilderPermissions:()=>uv,hasCreatorPermissions:()=>Gu,isAdmin:()=>Fu,isAdminOrBuilder:()=>ov,isAdminOrGlobalBuilder:()=>av,isBuilder:()=>lp,isCreator:()=>cv,isGlobalBuilder:()=>ku});var Mr=j(require("lodash/fp"));function lp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ap(e))):!1}function ku(t){return lp(t)&&!Bu(t)||Fu(t)}function sv(t){return ku(t)||Gu(t)}function Fu(t){return t?dp(t):!1}function ov(t,e){return lp(t,e)||Fu(t)}function av(t){return ku(t)||Fu(t)}function Bu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function gT(t){return t?Mr.flow(Mr.get("roles"),Mr.values,Mr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function uv(t){return t?t.builder?.global||Bu(t)||Gu(t):!1}function dp(t){return t?!!t.admin?.global:!1}function Gu(t){return t?!!t.builder?.creator:!1}function cv(t){return t?ku(t)||dp(t)||Gu(t)||Bu(t)||gT(t):!1}function lv(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function dv(t){return typeof t!="string"?!1:t.includes(`us${C}`)}var fp={};v(fp,{findInSettings:()=>pv});function pv(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 wQ={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},bQ={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},DQ={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 kQ={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 GQ={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 qQ={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var jQ={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var KQ={name:"Delay",icon:"Clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var ZQ={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 tj={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 ij={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 aj={name:"JS Scripting",tagline:"Execute JavaScript Code",icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var Sv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},lj={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(Ol),pretty:Object.values(Sv)},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 fj={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 gj={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 Tj={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(Il)},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 yT=(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))(yT||{}),Sj={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(yT)}},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 ET=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(ET||{}),xj={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(ET),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 Dv={ascending:"Ascending",descending:"Descending"},bj={description:"Query rows from the database",icon:"Search",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(pn),pretty:Object.values(Dv)},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 Cj={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 Uj={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 kj={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 Gj={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 qj={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var jj={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var Fv={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 Gv={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 Vv={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 Wv={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 jv={name:"Row Updated",event:"row:update",icon:"Refresh",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Yv={name:"Webhook",event:"web:trigger",icon:"Send",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var zv={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 $u=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))($u||{}),kr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(kr||{}),Wi={by_email2:["by_email"]},Se={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"}},gt=Or("app"),Vu=Or("app_dev"),yt=Vu,mp="internal",hp="budibase",or="_design/sqlite",gp="ta_bb_jobs",yp="ta_bb_inventory",Ep="ta_bb_expenses",Tp="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||{}),Ap=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Ap||{}),_p=(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))(_p||{}),TT=new Date(-2147483647e3),Wu=new Date(2147483647e3),ge="default";var wa={};v(wa,{CacheKey:()=>fr,TTL:()=>ri,app:()=>Zp,bustCache:()=>as,destroy:()=>ia,docWritethrough:()=>Fm,generic:()=>sa,get:()=>ni,invite:()=>Jf,keys:()=>gc,passwordReset:()=>Mm,store:()=>mr,user:()=>nn,withCache:()=>Kr,writethrough:()=>Lm});var sa={};v(sa,{CacheKey:()=>fr,TTL:()=>ri,bustCache:()=>as,destroy:()=>ia,get:()=>ni,keys:()=>gc,store:()=>mr,withCache:()=>Kr});var ye={};v(ye,{DEFAULT_TENANT_ID:()=>ge,baseGlobalDBName:()=>No,doInAppContext:()=>CC,doInAppMigrationContext:()=>PC,doInAutomationContext:()=>vC,doInContext:()=>$p,doInEnvironmentContext:()=>LC,doInIPContext:()=>Wp,doInIdentityContext:()=>Ro,doInScimContext:()=>MC,doInTenant:()=>Be,ensureSnippetContext:()=>qT,getAppDB:()=>Ji,getAppId:()=>Ne,getAuditLogDBName:()=>$T,getAuditLogsDB:()=>FC,getAutomationId:()=>Vp,getCurrentContext:()=>Zi,getDevAppDB:()=>GC,getEnvironmentVariables:()=>kC,getFeatureFlags:()=>Qp,getGlobalDB:()=>se,getGlobalDBName:()=>ur,getIP:()=>qp,getIdentity:()=>ar,getPlatformURL:()=>Gp,getProdAppDB:()=>BC,getProdAppId:()=>UC,getScimDBName:()=>RC,getTableForView:()=>$C,getTenantIDFromAppID:()=>zi,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Gr,isScim:()=>Nt,isTenancyEnabled:()=>bC,isTenantIdSet:()=>wC,setFeatureFlags:()=>jp,setTableForView:()=>VC});var xo={};v(xo,{doInAccountContext:()=>eC,doInIdentityContext:()=>Ip,doInUserContext:()=>xp,getAccountUserId:()=>AT,getIdentity:()=>Op});function Op(){return ar()}function Ip(t,e){return Ro(t,e)}function xp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Ip(n,r)}function eC(t,e){let r=AT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Ip(i,e)}function AT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Hu=require("fs");var OT=require("lodash"),Rp=require("crypto");function wp(){return IT()}function IT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function ju(){return process.env.NODE_ENV!=="production"}function tC(t){if(t)return parseInt(t)}var _T=!1;!_T&&ju()&&!wp()&&(require("dotenv").config(),_T=!0);var ji={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},ST=!!parseInt(process.env.SELF_HOSTED||"");function rC(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function nC(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function iC(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Hu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Hu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ju()&&!wp())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 sC(){return vt.SERVICE_TYPE==="worker"}function oC(){return vt.SERVICE_TYPE==="apps"}function aC(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:wp,isJest:IT,isDev:ju,isWorker:sC,isApps:oC,isQA:aC,isProd:()=>!ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Rp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Rp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:rC(),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:ST,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:nC(),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:ST?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...iC(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:tC(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,OT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function xT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var RT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var wT=require("async_hooks"),Ce=class t{static{this.storage=new wT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var bp="No app provided";function Fr(t){if(!t)throw bp;return t.startsWith(yt)}function uC(t){if(!t)throw bp;return t.startsWith(gt)&&!Fr(t)}function bo(t){if(!t)throw bp;return Fr(t.appId)}function Yu(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var cC=Yu;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 lC(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Ct=t=>{let e=Dp(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:Dp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Dp=(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 BT=j(require("@budibase/nano"));var bT=j(require("node-fetch"));function Ku(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function DT(t,e="GET",r){let{url:n,cookie:i}=Ct(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,bT.default)(Ku(encodeURI(t)),i)}async function zu(t,e="GET",r){let n=await DT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Hn=j(require("pouchdb"));var vT,CT=!1,vp=(t={})=>{let{url:e,cookie:r}=Ct(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Hn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Hn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Hn.default.plugin(i.plugin),Hn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Hn.default.plugin(i)}return Hn.default.defaults(n)};function Ju(t){vT=vp(t),CT=!0}var pC=()=>{if(!CT)throw new Error("init has not been called")};function Et(t,e){pC();let r=new vT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function vo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var NT=require("uuid");function Oe(){return(0,NT.v4)().replace(/-/g,"")}var Ie=j(require("dd-trace")),Hi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Ie.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return Ie.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Ie.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return Ie.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e.length,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return Ie.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return Ie.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return Ie.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return Ie.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Ie.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return Ie.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return Ie.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return Ie.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return Ie.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return Ie.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Ie.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Ie.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Ie.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Ie.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return Ie.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return Ie.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var kp={};v(kp,{breakExternalTableId:()=>Pp,breakRowIdField:()=>SC,buildExternalTableId:()=>gC,convertRowId:()=>_C,encodeTableId:()=>yC,encodeViewId:()=>EC,generateRowIdField:()=>TC,getNativeSql:()=>Yi,isExternalTable:()=>Np,isExternalTableID:()=>Zu,isInternalTableID:()=>hC,isInvalidISODateString:()=>Up,isRowId:()=>AC,isValidFilter:()=>Xu,isValidISODateString:()=>Lp,isValidTime:()=>OC,sqlLog:()=>Co,validateManyToMany:()=>Mp});var Cp=`${C}${C}`,UT=/^\[.*]$/g,fC=encodeURIComponent(" "),LT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,mC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Zu(t){return t.startsWith("datasource"+C)}function hC(t){return!Zu(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 Np(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==Ri||t?.sourceType==="external"?!0:!!(t?._id&&Zu(t._id))}function gC(t,e){return`${t}${Cp}${encodeURIComponent(e)}`}function yC(t){return Zu(t)?encodeURIComponent(t):t}function EC(t){return encodeURIComponent(t)}function Pp(t){let e=t.split(Cp),r=e.shift(),n=e.join(Cp);if(n.includes(fC)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function TC(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 AC(t){return Array.isArray(t)||typeof t=="string"&&t.match(UT)!=null}function _C(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(UT)!=null?t.substring(1,t.length-1):t}function SC(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 Up(t){let e=t.trim();if(!LT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Lp(t){return LT.test(t.trim())}function Xu(t){return t!=null&&t!==""}function OC(t){return mC.test(t)}function Co(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function IC(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Mp(t){if(IC(t))return t}var MT="Database does not exist.";function kT(t){return(0,BT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Br=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function xC(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Ki(t,r,e);return new Hi(n)}var Ki=class t{constructor(e,r,n){this.couchInfo=Ct();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Ct(n),this.instanceNano=kT(this.couchInfo)),t.nano||t.init()}static init(){let e=Ct();t.nano=kT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Br(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===MT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Br(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Br(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(wh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Br(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===MT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ku(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Br("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${or}`;return Co("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(or)){let e=await this.get(or);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Br(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function He(t,e){return new Hi(new Ki(t,e))}async function at(t,e,r){let n=He(t,r);return await e(n)}async function Fp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await zu(e)}async function Bp(t,e){let r=await zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var GT=null;function ur(t){return t||(t=Q()),No(t)}function $T(t){return t||(t=Q()),t===ge?Se.AUDIT_LOGS.name:`${t}${C}${Se.AUDIT_LOGS.name}`}function RC(t){return t||(t=Q()),t===ge?Se.SCIM_LOGS.name:`${t}${C}${Se.SCIM_LOGS.name}`}function No(t){return!t||t===ge?Se.GLOBAL.name:`${t}${C}${Se.GLOBAL.name}`}function Gp(){return h.PLATFORM_URL}function Gr(){return!!h.MULTI_TENANCY}function wC(){return!!Ce.get()?.tenantId}function bC(){return h.MULTI_TENANCY}function zi(t){if(!t)return;if(!Gr())return ge;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function DC(t){let e;try{e=Ce.get()}catch{e={}}return e={...e,...t},e}async function $r(t,e){NC();let r=DC(t);return Ce.run(r,e)}async function vC(t){return await qT(),await $r({tenantId:zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function $p(t,e){let r=zi(t);return $r({tenantId:r,appId:t},e)}async function Be(t,e){return h.MULTI_TENANCY||(t=t||ge),$r(t?{tenantId:t}:{},e)}async function CC(t,e){return VT(t,e)}async function VT(t,e,r){if(!t)throw new Error("appId is required");let n=zi(t),i={appId:t,...r};return n&&(i.tenantId=n),$r(i,e)}async function Ro(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),$r(r,e)}function NC(){if(Ce.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function PC(t,e){return VT(t,e,{isMigrating:!0})}function ar(){try{return Ce.get()?.identity}catch{}}function Q(){if(!Gr())return ge;let e=Ce.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Vp(){return Ce.get()?.automationId}function Ne(){let e=Ce.get()?.appId;return!e&&h.isTest()&>?GT:e}function qp(){return Ce.get()?.ip}var UC=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function LC(t,e){if(!t)throw new Error("Must supply environment variables.");return $r({environmentVariables:t},e)}function MC(t){return $r({isScim:!0},t)}function Wp(t,e){return $r({ip:t},e)}async function qT(t=!h.isTest()){let e=Zi();if(!e||e.snippets)return;let r,n=Ji();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function kC(){let t=Ce.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=Ce.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return He(No(t?.tenantId))}function FC(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return He($T())}function Ji(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return He(e,t)}function BC(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return He(ot(e),t)}function GC(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return He(Yu(e),t)}function Nt(){return!!Ce.get()?.isScim}function Zi(){try{return Ce.get()}catch{return}}function Qp(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 $C(t){let e=Zi();if(e)return e.viewToTableCache?.[t]}function VC(t,e){let r=Zi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Yr={};v(Yr,{getAppClient:()=>ac,getCacheClient:()=>Pf,getDocWritethroughClient:()=>QN,getInviteClient:()=>ei,getLockClient:()=>Lf,getPasswordResetClient:()=>na,getSessionClient:()=>Hr,getSocketClient:()=>WN,getUserClient:()=>ra,getWritethroughClient:()=>Uf,init:()=>Ut,shutdown:()=>r_});var e_=j(require("ioredis"));var rc={};v(rc,{Databases:()=>Hp,SEPARATOR:()=>Xi,SelectableDatabase:()=>ec,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>tc,getRedisOptions:()=>es,removeDbPrefix:()=>Yp});var qC=2e3,WT=1e4,Xi="-",Hp=(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))(Hp||{}),ec=(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))(ec||{});function tc(){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}=tc(),n={connectTimeout:WT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:WT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:qC,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Xi}${e}`}function Yp(t){let e=t.split(Xi);return e.length>=2?(e.shift(),e.join(Xi)):e[0]}var hc={};v(hc,{correlation:()=>Po,logAlert:()=>Jn,logAlertWithInfo:()=>FN,logWarn:()=>ss,logger:()=>mc,system:()=>Of});var Po={};v(Po,{getId:()=>Kp,setHeader:()=>WC});var QT=require("correlation-id"),WC=t=>{let e=QT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Kp(){return QT.getId()}var fc=j(require("pino")),ZA=j(require("pino-pretty"));var If=j(require("dd-trace")),XA=require("dd-trace/ext");var Of={};v(Of,{getLogReadStream:()=>NN,getSingleFileMaxSizeInfo:()=>JA,localFileDestination:()=>Sf});var Vo=j(require("fs")),_f=j(require("path")),HA=j(require("rotating-file-stream"));var Af={};v(Af,{ObjectStore:()=>Pt,ObjectStoreBuckets:()=>jC,SIGNED_FILE_PREFIX:()=>gf,bucketTTLConfig:()=>nc,budibaseTempDir:()=>Yn,clientLibraryCDNUrl:()=>xN,clientLibraryPath:()=>BA,clientLibraryUrl:()=>RN,createBucketIfNotExists:()=>$o,deleteFile:()=>EN,deleteFiles:()=>TN,deleteFolder:()=>MA,downloadTarball:()=>_N,downloadTarballDirect:()=>AN,enrichPluginURLs:()=>DN,extractBucketAndPath:()=>zp,getAppFileUrl:()=>wN,getGlobalFileS3Key:()=>GA,getGlobalFileUrl:()=>bN,getObjectMetadata:()=>SN,getPluginIconKey:()=>qA,getPluginJSKey:()=>VA,getPluginS3Dir:()=>QA,getPresignedUrl:()=>Qr,getReadStream:()=>ic,listAllObjects:()=>LA,processAutomationAttachment:()=>YC,processObjectStoreAttachment:()=>zT,retrieve:()=>UA,retrieveDirectory:()=>yN,retrieveToTmp:()=>gN,sanitizeBucket:()=>Ke,sanitizeKey:()=>Pe,streamUpload:()=>PA,upload:()=>hN,uploadDirectory:()=>yf});var dc=require("@aws-sdk/client-s3"),df=require("@aws-sdk/lib-storage"),DA=require("@aws-sdk/s3-request-presigner"),Go=j(require("stream")),pf=j(require("node-fetch")),ff=j(require("tar-fs")),mf=j(require("zlib")),vA=require("util"),Wr=require("path"),pr=j(require("fs"));var Uo=j(require("path")),jT=require("os"),HT=j(require("fs"));var YT=j(require("stream")),jC={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},KT=(0,Uo.join)((0,jT.tmpdir)(),".budibase");try{HT.default.mkdirSync(KT)}catch(t){if(t.code!=="EEXIST")throw t}function Yn(){return KT}var nc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function HC(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:YT.default.Readable.fromWeb(e.body)}}async function zT(t){let e=zp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await ic(r,n),s=Uo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function YC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await HC(t):await zT(t)}var hf=require("uuid");var Vr={};v(Vr,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>hp,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Tp,DEFAULT_EXPENSES_TABLE_ID:()=>Ep,DEFAULT_INVENTORY_TABLE_ID:()=>yp,DEFAULT_JOBS_TABLE_ID:()=>gp,DatabaseImpl:()=>Ki,DatabaseWithConnection:()=>xC,DeprecatedViews:()=>Wi,DocumentType:()=>Te,InternalTable:()=>Ir,QueryBuilder:()=>dr,Replication:()=>IA,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>mp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>kr,baseGlobalDBName:()=>No,checkErrorCode:()=>bA,closePouchDB:()=>vo,createApiKeyView:()=>TA,createNewUserEmailView:()=>yA,createPlatformAccountEmailView:()=>_A,createPlatformUserView:()=>SA,createUserAppView:()=>EA,createView:()=>ns,dbExists:()=>sN,directCouchAllDbs:()=>Fp,directCouchCall:()=>DT,directCouchFind:()=>Bp,directCouchQuery:()=>zu,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>lC,fullSearch:()=>cN,generateAppID:()=>ZT,generateAppUserID:()=>uc,generateDevInfoID:()=>sA,generateGlobalUserID:()=>ts,generatePluginID:()=>oA,generateRoleID:()=>ef,generateRowID:()=>Xp,generateTableID:()=>XT,generateTemplateID:()=>iA,generateUserMetadataID:()=>rA,generateWorkspaceID:()=>eA,getAllApps:()=>Mo,getAllDbs:()=>gA,getAppsByIDs:()=>tN,getCouchInfo:()=>Ct,getDB:()=>He,getDevAppID:()=>cC,getDevAppIDs:()=>nN,getDevelopmentAppID:()=>Yu,getDocParams:()=>rs,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>nA,getGlobalUserParams:()=>Kn,getPluginParams:()=>hA,getPouch:()=>vp,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>rN,getQueryIndex:()=>aA,getRoleParams:()=>lc,getRowParams:()=>tf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>mA,getUrlInfo:()=>Dp,getUserMetadataParams:()=>fA,getUsersByAppParams:()=>cc,getWorkspaceParams:()=>pA,init:()=>Ju,isDatasourceId:()=>lA,isDevApp:()=>bo,isDevAppID:()=>Fr,isDocumentConflictError:()=>dN,isExternalTableId:()=>rf,isGlobalUserID:()=>tA,isProdAppID:()=>uC,isQueryId:()=>dA,isSameAppID:()=>iN,isTableId:()=>uA,isViewId:()=>cA,paginatedSearch:()=>uN,pagination:()=>sf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>uf,queryPlatformView:()=>Fo,queryView:()=>af,queryViewRaw:()=>ko,removeKeyNumbering:()=>Bo,searchIndexes:()=>lf});var Zp={};v(Zp,{AppState:()=>Jp,getAppMetadata:()=>oc,invalidateAppMetadata:()=>ZC});var Jp=(e=>(e.INVALID="invalid",e))(Jp||{}),JT=3600,KC=60;async function zC(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function JC(t){return!t||t.state==="invalid"}async function oc(t){let e=await ac(),r=await e.get(t);if(!r){let n=JT;try{r=await zC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=KC;else throw i}if(JC(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function ZC(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await ac();await r.delete(t),e&&await r.store(t,e,JT)}var nf={};v(nf,{generateAppID:()=>ZT,generateAppUserID:()=>uc,generateDevInfoID:()=>sA,generateGlobalUserID:()=>ts,generatePluginID:()=>oA,generateRoleID:()=>ef,generateRowID:()=>Xp,generateTableID:()=>XT,generateTemplateID:()=>iA,generateUserMetadataID:()=>rA,generateWorkspaceID:()=>eA,getDocParams:()=>rs,getGlobalIDFromUserMetadataID:()=>nA,getGlobalUserParams:()=>Kn,getPluginParams:()=>hA,getQueryIndex:()=>aA,getRoleParams:()=>lc,getRowParams:()=>tf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>mA,getUserMetadataParams:()=>fA,getUsersByAppParams:()=>cc,getWorkspaceParams:()=>pA,isDatasourceId:()=>lA,isExternalTableId:()=>rf,isGlobalUserID:()=>tA,isQueryId:()=>dA,isTableId:()=>uA,isViewId:()=>cA,prefixRoleID:()=>cr});var ZT=t=>{let e=gt;return t&&(e+=`${t}${C}`),`${e}${Oe()}`};function XT(){return`ta${C}${Oe()}`}function Xp(t,e){return e=e||Oe(),`ro${C}${t}${C}${e}`}function eA(){return`workspace${C}${Oe()}`}function ts(t){return`us${C}${t||Oe()}`}var XC=new RegExp(`^us${C}.+`);function tA(t){return XC.test(t)}function rA(t){return Xp("ta_users",t)}function nA(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}function iA(t){return`template${C}${t}${C}${Oe()}`}function uc(t,e){return`${t}${C}${e}`}function ef(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return ef(t)}var sA=t=>`devinfo${C}${t}`,oA=t=>`plg${C}${t}`;var eN=new RegExp("^datasource_plus_(.+)__(.+)$");function rs(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${C}${e}`,endkey:`${t}${C}${e}${ke}`}}function tf(t,e,r={}){if(t==null)return rs("ro",null,r);let n=e??`${t}${C}`;return rs("ro",n,r)}function aA(t){return`database/${t}`}var rf=t=>{let e=t.match(eN);return!!t&&e!==null},uA=t=>!!t&&(t.startsWith(`ta${C}`)||rf(t));function cA(t){return!!t&&t.startsWith(`view${C}`)}function lA(t){return!!t&&t.startsWith(`datasource${C}`)}function dA(t){return!!t&&t.startsWith(`query${C}`)}function pA(t="",e={}){return{...e,startkey:`workspace${C}${t}`,endkey:`workspace${C}${t}${ke}`}}function Kn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${ke}`}}function fA(t,e={}){return tf("ta_users",t,e)}function cc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function mA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${ke}`}}function lc(t,e={}){return rs("role",t,e)}function Lo(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var hA=(t,e={})=>rs("plg",t,e);async function gA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Fp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ge?await n():(await n(Lo("app",i)),await n(Lo("app_dev",i)),r.push(ur(i))),r}async function Mo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ge);let o=(await gA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(C);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===ge&&d||l===i}return!1});if(r){let u=o.filter(l=>Fr(l)),c=o.filter(l=>!Fr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>oc(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 tN(t){return(await Promise.allSettled(t.map(r=>oc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function rN(){return(await Mo({idsOnly:!0})).filter(e=>!Fr(e))}async function nN(){return(await Mo({idsOnly:!0})).filter(e=>Fr(e))}function iN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function sN(t){return at(t,async e=>await e.exists(),{skip_setup:!0})}function sf(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 of="_design/database";function oN(){return{_id:of,views:{}}}async function aN(t,e){if(Wi[e])try{let r=await t.get(of);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(of)}catch{n=oN()}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 yA=async()=>{let t=se(),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,Ng.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Ng.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(Ug.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Ug.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Cg.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Di.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Di.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Di.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,fu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,mR.default)(e).map(s=>new pR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new dR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Di.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,fu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Di.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,fu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};mu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,fR.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 kg=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Mg;Ks.default=void 0;var hR=gR(tr());function gR(t){return t&&t.__esModule?t:{default:t}}var nd=hR.default,yR=nd;Ks.default=yR;function Mg(){return new nd}Mg.prototype=nd.prototype});var vi=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var ER=t=>t==null;hu.default=ER});var Vg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=$g;Js.default=void 0;var TR=Gg(tr()),Fg=Xt(),Bg=Gg(vi());function Gg(t){return t&&t.__esModule?t:{default:t}}function $g(){return new zs}var zs=class extends TR.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=Fg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Bg.default)(r)||r===!0}})}isFalse(e=Fg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Bg.default)(r)||r===!1}})}};Js.default=zs;$g.prototype=zs.prototype});var Qg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Wg;Xs.default=void 0;var Vt=Xt(),rr=qg(vi()),AR=qg(tr());function qg(t){return t&&t.__esModule?t:{default:t}}var _R=/^((([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,SR=/^((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,OR=/^(?:[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,IR=t=>(0,rr.default)(t)||t===t.trim(),xR={}.toString();function Wg(){return new Zs}var Zs=class extends AR.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===xR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Vt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,rr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Vt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,rr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Vt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,rr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Vt.string.matches,params:{regex:e},test:o=>(0,rr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(_R,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(SR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(OR,{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:IR})}lowercase(e=Vt.string.lowercase){return this.transform(r=>(0,rr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toLowerCase()})}uppercase(e=Vt.string.uppercase){return this.transform(r=>(0,rr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;Wg.prototype=Zs.prototype});var Yg=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Hg;to.default=void 0;var Cn=Xt(),Nn=jg(vi()),RR=jg(tr());function jg(t){return t&&t.__esModule?t:{default:t}}var wR=t=>t!=+t;function Hg(){return new eo}var eo=class extends RR.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"&&!wR(e)}min(e,r=Cn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Nn.default)(n)||n>=this.resolve(e)}})}max(e,r=Cn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Nn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Cn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Nn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Cn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Nn.default)(n)||n>this.resolve(e)}})}positive(e=Cn.number.positive){return this.moreThan(0,e)}negative(e=Cn.number.negative){return this.lessThan(0,e)}integer(e=Cn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Nn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Nn.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Nn.default)(i)?i:Math[e](i))}};to.default=eo;Hg.prototype=eo.prototype});var Kg=H(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=DR;var bR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function DR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=bR.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}});var Zg=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=od;ro.default=void 0;var vR=gu(Kg()),zg=Xt(),Jg=gu(vi()),CR=gu(vn()),NR=gu(tr());function gu(t){return t&&t.__esModule?t:{default:t}}var sd=new Date(""),PR=t=>Object.prototype.toString.call(t)==="[object Date]";function od(){return new Ci}var Ci=class extends NR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,vR.default)(e),isNaN(e)?sd:new Date(e))})})}_typeCheck(e){return PR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(CR.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=zg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Jg.default)(i)||i>=this.resolve(n)}})}max(e,r=zg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Jg.default)(i)||i<=this.resolve(n)}})}};ro.default=Ci;Ci.INVALID_DATE=sd;od.prototype=Ci.prototype;od.INVALID_DATE=sd});var ey=H((EW,ad)=>{"use strict";ad.exports=function(t){return Xg(UR(t),t)};ad.exports.array=Xg;function Xg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=LR(e),a=MR(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 UR(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 LR(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 MR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ty=H(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=VR;var kR=yu(require("lodash/has")),FR=yu(ey()),BR=Qs(),GR=yu(vn()),$R=yu(bi());function yu(t){return t&&t.__esModule?t:{default:t}}function VR(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,BR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,kR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),GR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,$R.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return FR.default.array(n,r).reverse()}});var ny=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=qR;function ry(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function qR(t){return(e,r)=>ry(t,e)-ry(t,r)}});var ly=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=cy;io.default=void 0;var iy=qt(require("lodash/has")),sy=qt(require("lodash/snakeCase")),WR=qt(require("lodash/camelCase")),QR=qt(require("lodash/mapKeys")),jR=qt(require("lodash/mapValues")),HR=Qs(),oy=Xt(),YR=qt(ty()),uy=qt(ny()),KR=qt(uu()),zR=qt(bn()),ld=qt(tr());function qt(t){return t&&t.__esModule?t:{default:t}}function Ni(){return Ni=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ni.apply(this,arguments)}var ay=t=>Object.prototype.toString.call(t)==="[object Object]";function JR(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var ZR=(0,uy.default)([]),no=class extends ld.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=ZR,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 ay(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,iy.default)(i,d);if(m){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||d in i;continue}f=!r.__validating||!y?m.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else p&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!zR.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!ay(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Ni({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,KR.default)({sync:s,tests:m,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ni({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof ld.default&&s instanceof ld.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,uy.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,YR.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,HR.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,iy.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=oy.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=JR(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=oy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,QR.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(WR.default)}snakeCase(){return this.transformKeys(sy.default)}constantCase(){return this.transformKeys(e=>(0,sy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,jR.default)(this.fields,r=>r.describe()),e}};io.default=no;function cy(t){return new no(t)}cy.prototype=no.prototype});var py=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=dy;oo.default=void 0;var dd=Pi(vi()),XR=Pi(bi()),ew=Pi(Ws()),pd=Xt(),tw=Pi(uu()),rw=Pi(bn()),nw=Pi(tr());function Pi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Eu.apply(this,arguments)}function dy(t){return new so(t)}var so=class extends nw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!rw.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],O=`${r.path||""}[${E}]`,S=Eu({},r,{path:O,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(L,T)=>c.validate(y,S,T)}(0,tw.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,XR.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,ew.default)(e));return r.innerType=e,r}length(e,r=pd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,dd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||pd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,dd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||pd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,dd.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;dy.prototype=so.prototype});var fy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=ow;ao.default=void 0;var iw=sw(bi());function sw(t){return t&&t.__esModule?t:{default:t}}function ow(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,iw.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)}},aw=Tu;ao.default=aw});var my=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=lw;var uw=cw(Xt());function cw(t){return t&&t.__esModule?t:{default:t}}function lw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{uw.default[e][r]=t[e][r]})})}});var hd=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=yw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return hy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return hy.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return md.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return md.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return md.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return gy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return gy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return yy.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return yy.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Ey.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Ey.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Ty.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Ty.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return dw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return pw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return fw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return mw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return hw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return gw.default}});var hy=Pn(kg()),md=Pn(Vg()),gy=Pn(Qg()),yy=Pn(Yg()),Ey=Pn(Zg()),Ty=Pn(ly()),Ay=Pn(py()),dw=vn(),pw=fy(),fw=uo(bn()),mw=uo(td()),_y=uo(bi()),hw=uo(my()),gw=uo(tr());function uo(t){return t&&t.__esModule?t:{default:t}}function Sy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Sy=function(){return t},t}function Pn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Sy();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 yw(t,e,r){if(!t||!(0,_y.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}});var Oy=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});var gd=Ed();yd.default=()=>{(0,gd.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,gd.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,gd.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 Ed=H(ve=>{"use strict";var Ew=ve&&ve.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Tw=ve&&ve.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Aw=ve&&ve.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Ew(e,t,r);return Tw(e,t),e},_w=ve&&ve.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ve,"__esModule",{value:!0});ve.validateOptions=ve.registerOptionPreset=ve.getOptionPresets=ve.getOptionPreset=void 0;var x=Aw(hd());hd();var co=It(),Sw=_w(Oy());xt();var Un={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Iy=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),Ow=t=>Un[t]?(0,co.valid)(Un[t]):(0,co.err)(`Option preset '${t}' not found.`);ve.getOptionPreset=Ow;var Iw=()=>Un;ve.getOptionPresets=Iw;var xw=(t,e)=>{Un[t]=Iy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};ve.registerOptionPreset=xw;var Rw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,O,S,L;try{(0,Sw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Un[t.preset]}else T=t.preset;else T=Un.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(O=T.daysOfWeek.upperLimit)!==null&&O!==void 0?O:T.daysOfWeek.maxValue},years:{lowerLimit:(S=T.years.lowerLimit)!==null&&S!==void 0?S:T.years.minValue,upperLimit:(L=T.years.upperLimit)!==null&&L!==void 0?L:T.years.maxValue}}),t.override),R=x.object({presetId:x.string().required(),preset:Iy.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:x.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:x.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:x.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:x.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:x.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:x.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:x.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(R)}catch(T){return(0,co.err)(T.errors)}};ve.validateOptions=Rw});var $t=H((lo,Ad)=>{"use strict";var Mn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Ln=It(),ww=Mn(Xh()),bw=Mn(eg()),Dw=Mn(tg()),vw=Mn(rg()),Cw=Mn(ng()),Nw=Mn(ig()),Pw=Mn(sg()),Uw=Ed();xt();var Lw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Ln.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Ln.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Ln.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,Ln.valid)(n)},Td=(t,e={})=>{let r=(0,Uw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Lw(t,n);if(i.isError())return(0,Ln.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,ww.default)(s,n)),o.push((0,bw.default)(s,n)),o.push((0,Dw.default)(s,n)),o.push((0,vw.default)(s,n)),o.push((0,Cw.default)(s,n)),o.push((0,Nw.default)(s,n)),n.useYears&&o.push((0,Pw.default)(s,n)),o.every(u=>u.isValid()))return(0,Ln.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,Ln.err)(a)};lo.default=Td;Ad.exports=Td;Ad.exports.default=Td});var YE=H(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var ir=class extends Error{},Dd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},vd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Cd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Bn=class extends ir{},Ru=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends ir{},Wt=class extends ir{constructor(){super("Zone is an abstract class")}},w="numeric",Dt="short",rt="long",wu={year:w,month:w,day:w},zy={year:w,month:Dt,day:w},Mw={year:w,month:Dt,day:w,weekday:Dt},Jy={year:w,month:rt,day:w},Zy={year:w,month:rt,day:w,weekday:rt},Xy={hour:w,minute:w},eE={hour:w,minute:w,second:w},tE={hour:w,minute:w,second:w,timeZoneName:Dt},rE={hour:w,minute:w,second:w,timeZoneName:rt},nE={hour:w,minute:w,hourCycle:"h23"},iE={hour:w,minute:w,second:w,hourCycle:"h23"},sE={hour:w,minute:w,second:w,hourCycle:"h23",timeZoneName:Dt},oE={hour:w,minute:w,second:w,hourCycle:"h23",timeZoneName:rt},aE={year:w,month:w,day:w,hour:w,minute:w},uE={year:w,month:w,day:w,hour:w,minute:w,second:w},cE={year:w,month:Dt,day:w,hour:w,minute:w},lE={year:w,month:Dt,day:w,hour:w,minute:w,second:w},kw={year:w,month:Dt,day:w,weekday:Dt,hour:w,minute:w},dE={year:w,month:rt,day:w,hour:w,minute:w,timeZoneName:Dt},pE={year:w,month:rt,day:w,hour:w,minute:w,second:w,timeZoneName:Dt},fE={year:w,month:rt,day:w,weekday:rt,hour:w,minute:w,timeZoneName:rt},mE={year:w,month:rt,day:w,weekday:rt,hour:w,minute:w,second:w,timeZoneName:rt},Pr=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,r){throw new Wt}formatOffset(e,r){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},_d=null,Eo=class t extends Pr{static get instance(){return _d===null&&(_d=new t),_d}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return gE(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Iu={};function Fw(t){return Iu[t]||(Iu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Iu[t]}var Bw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Gw(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 $w(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Bw[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Au={},sr=class t extends Pr{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},Iu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return gE(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=Fw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?$w(n,r):Gw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=qd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),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}},xy={};function Vw(t,e={}){let r=JSON.stringify([t,e]),n=xy[r];return n||(n=new Intl.ListFormat(t,e),xy[r]=n),n}var Nd={};function Pd(t,e={}){let r=JSON.stringify([t,e]),n=Nd[r];return n||(n=new Intl.DateTimeFormat(t,e),Nd[r]=n),n}var Ud={};function qw(t,e={}){let r=JSON.stringify([t,e]),n=Ud[r];return n||(n=new Intl.NumberFormat(t,e),Ud[r]=n),n}var Ld={};function Ww(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Ld[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Ld[i]=s),s}var ho=null;function Qw(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function jw(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=Pd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Pd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Hw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Yw(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Kw(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function _u(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function zw(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var Md=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=qw(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):Vd(e,3);return xe(r,this.padTo)}}},kd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&sr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Pd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Fd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&hE()&&(this.rtf=Ww(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):pb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ae=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||he.defaultLocale,o=s||(i?"en-US":Qw()),a=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Nd={},Ud={},Ld={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=jw(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Hw(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=zw(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return _u(this,e,n,TE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Yw(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return _u(this,e,n,SE,()=>{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]=Kw(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return _u(this,void 0,e,()=>OE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return _u(this,e,r,IE,()=>{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 Md(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new kd(e,this.intl,r)}relFormatter(e={}){return new Fd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Vw(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}},Sd=null,nt=class t extends Pr{static get utcInstance(){return Sd===null&&(Sd=new t(0)),Sd}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},bu=class extends Pr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Nr(t,e){if(ne(t)||t===null)return e;if(t instanceof Pr)return t;if(Jw(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||sr.create(t)}else return $n(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new bu(t)}var Ry=()=>Date.now(),wy="system",by=null,Dy=null,vy=null,Cy=60,Ny,he=class{static get now(){return Ry}static set now(e){Ry=e}static set defaultZone(e){wy=e}static get defaultZone(){return Nr(wy,Eo.instance)}static get defaultLocale(){return by}static set defaultLocale(e){by=e}static get defaultNumberingSystem(){return Dy}static set defaultNumberingSystem(e){Dy=e}static get defaultOutputCalendar(){return vy}static set defaultOutputCalendar(e){vy=e}static get twoDigitCutoffYear(){return Cy}static set twoDigitCutoffYear(e){Cy=e%100}static get throwOnInvalid(){return Ny}static set throwOnInvalid(e){Ny=e}static resetCaches(){Ae.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function $n(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function Jw(t){return typeof t=="string"}function Zw(t){return Object.prototype.toString.call(t)==="[object Date]"}function hE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Xw(t){return Array.isArray(t)?t:[t]}function Py(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 eb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return Nu(t)&&t>=e&&t<=r}function tb(t,e){return t-e*Math.floor(t/e)}function xe(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Cr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function $d(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Vd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Du(t,e){let r=tb(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function qd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function 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 Bd(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function gE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Pu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function yE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Qe(`Invalid unit value ${t}`);return e}function Cu(t,e){let r={};for(let n in t)if(ki(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=yE(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${xe(r,2)}:${xe(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${xe(r,2)}${xe(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Uu(t){return eb(t,["hour","minute","second","millisecond"])}var rb=["January","February","March","April","May","June","July","August","September","October","November","December"],EE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],nb=["J","F","M","A","M","J","J","A","S","O","N","D"];function TE(t){switch(t){case"narrow":return[...nb];case"short":return[...EE];case"long":return[...rb];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 AE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],_E=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ib=["M","T","W","T","F","S","S"];function SE(t){switch(t){case"narrow":return[...ib];case"short":return[..._E];case"long":return[...AE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var OE=["AM","PM"],sb=["Before Christ","Anno Domini"],ob=["BC","AD"],ab=["B","A"];function IE(t){switch(t){case"narrow":return[...ab];case"short":return[...ob];case"long":return[...sb];default:return null}}function ub(t){return OE[t.hour<12?0:1]}function cb(t,e){return SE(e)[t.weekday-1]}function lb(t,e){return TE(e)[t.month-1]}function db(t,e){return IE(e)[t.year<0?0:1]}function pb(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 Uy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var fb={D:wu,DD:zy,DDD:Jy,DDDD:Zy,t:Xy,tt:eE,ttt:tE,tttt:rE,T:nE,TT:iE,TTT:sE,TTTT:oE,f:aE,ff:cE,fff:dE,ffff:fE,F:uE,FF:lE,FFF:pE,FFFF:mE},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 fb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return xe(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?ub(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?lb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?cb(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?db(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 Uy(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 Uy(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},xE=/[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 RE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Cr(e[r+i]);return[n,null,r+i]}}var wE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,mb=`(?:${wE.source}?(?:\\[(${xE.source})\\])?)?`,Wd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,bE=RegExp(`${Wd.source}${mb}`),Qd=RegExp(`(?:T${bE.source})?`),hb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,gb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,yb=/(\d{4})-?(\d{3})/,Eb=RE("weekYear","weekNumber","weekDay"),Tb=RE("year","ordinal"),Ab=/(\d{4})-(\d\d)-(\d\d)/,DE=RegExp(`${Wd.source} ?(?:${wE.source}|(${xE.source}))?`),_b=RegExp(`(?: ${DE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Cr(n)}function Sb(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:$d(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Pu(t[e+1],t[e+2]),i=r?null:nt.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Ob=RegExp(`^T?${Wd.source}$`),Ib=/^-?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 xb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(kn(r)),months:m(kn(n)),weeks:m(kn(i)),days:m(kn(s)),hours:m(kn(o)),minutes:m(kn(a)),seconds:m(kn(u),u==="-0"),milliseconds:m($d(c),d)}]}var Rb={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 jd(t,e,r,n,i,s,o){let a={year:e.length===2?Bd(Cr(e)):Cr(e),month:EE.indexOf(r)+1,day:Cr(n),hour:Cr(i),minute:Cr(s)};return o&&(a.second=Cr(o)),t&&(a.weekday=t.length>3?AE.indexOf(t)+1:_E.indexOf(t)+1),a}var wb=/^(?:(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 bb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=jd(e,i,n,r,s,o,a),p;return u?p=Rb[u]:c?p=0:p=Pu(l,d),[m,new nt(p)]}function Db(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var vb=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Cb=/^(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$/,Nb=/^(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 Ly(t){let[,e,r,n,i,s,o,a]=t;return[jd(e,i,n,r,s,o,a),nt.utcInstance]}function Pb(t){let[,e,r,n,i,s,o,a]=t;return[jd(e,a,r,n,i,s,o),nt.utcInstance]}var Ub=Fi(hb,Qd),Lb=Fi(gb,Qd),Mb=Fi(yb,Qd),kb=Fi(bE),vE=Bi(Sb,$i,Ao,_o),Fb=Bi(Eb,$i,Ao,_o),Bb=Bi(Tb,$i,Ao,_o),Gb=Bi($i,Ao,_o);function $b(t){return Gi(t,[Ub,vE],[Lb,Fb],[Mb,Bb],[kb,Gb])}function Vb(t){return Gi(Db(t),[wb,bb])}function qb(t){return Gi(t,[vb,Ly],[Cb,Ly],[Nb,Pb])}function Wb(t){return Gi(t,[Ib,xb])}var Qb=Bi($i);function jb(t){return Gi(t,[Ob,Qb])}var Hb=Fi(Ab,_b),Yb=Fi(DE),Kb=Bi($i,Ao,_o);function zb(t){return Gi(t,[Hb,vE],[Yb,Kb])}var Jb="Invalid Duration",CE={weeks:{days:7,hours:7*24,minutes:7*24*60,seconds:7*24*60*60,milliseconds:7*24*60*60*1e3},days:{hours:24,minutes:24*60,seconds:24*60*60,milliseconds:24*60*60*1e3},hours:{minutes:60,seconds:60*60,milliseconds:60*60*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Zb={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:91*24,minutes:91*24*60,seconds:91*24*60*60,milliseconds:91*24*60*60*1e3},months:{weeks:4,days:30,hours:30*24,minutes:30*24*60,seconds:30*24*60*60,milliseconds:30*24*60*60*1e3},...CE},mt=146097/400,Ui=146097/4800,Xb={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},...CE},Fn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],eD=Fn.slice(0).reverse();function vr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new we(n)}function tD(t){return t<0?Math.floor(t):Math.ceil(t)}function NE(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?tD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function rD(t,e){eD.reduce((r,n)=>ne(e[n])?r:(r&&NE(t,e,r,e,n),n),null)}function nD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var we=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?Xb:Zb;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ae.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Qe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Cu(e,t.normalizeUnit),loc:Ae.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if($n(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=Wb(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]=jb(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the Duration is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Cd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Ru(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?et.create(this.loc,n).formatDurationFromString(this,e):Jb}toHuman(e={}){let r=Fn.map(n=>{let i=this.values[n];return ne(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(i)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=Vd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Fn)(ki(r.values,i)||ki(this.values,i))&&(n[i]=r.get(i)+this.get(i));return vr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=yE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Cu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return rD(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=nD(this.normalize().shiftToAll().toObject());return vr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Fn)if(e.indexOf(o)>=0){s=o;let a=0;for(let c in n)a+=this.matrix[c][o]*n[c],n[c]=0;$n(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3;for(let c in i)Fn.indexOf(c)>Fn.indexOf(o)&&NE(this.matrix,i,c,r,o)}else $n(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return vr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return vr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Fn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function iD(t,e){return!t||!t.isValid?Vn.invalid("missing or invalid start"):!e||!e.isValid?Vn.invalid("missing or invalid end"):e<t?Vn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var Vn=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the Interval is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new vd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=iD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=we.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=we.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=we.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Li}toLocaleString(e=wu,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Li}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Li}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Li}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Li}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Li}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):we.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Gn=class{static hasDST(e=he.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return sr.isValidZone(e)}static normalizeZone(e){return Nr(e,he.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ae.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ae.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ae.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ae.create(r,null,"gregory").eras(e)}static features(){return{relative:hE()}}};function My(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(we.fromMillis(n).as("days"))}function sD(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=My(u,c);return(l-l%7)/7}],["days",My]],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 oD(t,e,r,n){let[i,s,o,a]=sD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=we.fromObject(s,n);return c.length>0?we.fromMillis(u,n).shiftTo(...c).plus(l):l}var Hd={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"},ky={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]},aD=Hd.hanidec.replace(/[\[|\]]/g,"").split("");function uD(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(Hd.hanidec)!==-1)e+=aD.indexOf(t[r]);else for(let i in ky){let[s,o]=ky[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${Hd[t||"latn"]}${e}`)}var cD="missing Intl.DateTimeFormat.formatToParts support";function ue(t,e=r=>r){return{regex:t,deser:([r])=>e(uD(r))}}var lD=String.fromCharCode(160),PE=`[ ${lD}]`,UE=new RegExp(PE,"g");function dD(t){return t.replace(/\./g,"\\.?").replace(UE,PE)}function Fy(t){return t.replace(/\./g,"").replace(UE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(dD).join("|")),deser:([r])=>t.findIndex(n=>Fy(r)===Fy(n))+e}}function By(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Od(t){return{regex:t,deser:([e])=>e}}function pD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function fD(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(pD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ue(c);case"yy":return ue(d,Bd);case"yyyy":return ue(s);case"yyyyy":return ue(m);case"yyyyyy":return ue(o);case"M":return ue(a);case"MM":return ue(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ue(a);case"LL":return ue(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ue(a);case"dd":return ue(n);case"o":return ue(u);case"ooo":return ue(i);case"HH":return ue(n);case"H":return ue(a);case"hh":return ue(n);case"h":return ue(a);case"mm":return ue(n);case"m":return ue(a);case"q":return ue(a);case"qq":return ue(n);case"s":return ue(a);case"ss":return ue(n);case"S":return ue(u);case"SSS":return ue(i);case"u":return Od(l);case"uu":return Od(a);case"uuu":return ue(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ue(s);case"kk":return ue(d,Bd);case"W":return ue(a);case"WW":return ue(n);case"E":case"c":return ue(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return By(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return By(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Od(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:cD};return g.token=t,g}var mD={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 hD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=mD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function gD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function yD(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 ED(t){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},r=null,n;return ne(t.z)||(r=sr.create(t.z)),ne(t.Z)||(r||(r=new nt(t.Z)),n=t.Z),ne(t.q)||(t.M=(t.q-1)*3+1),ne(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),ne(t.u)||(t.S=$d(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Id=null;function TD(){return Id||(Id=_e.fromMillis(1555555555555)),Id}function AD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=kE(r,e);return n==null||n.includes(void 0)?t:n}function LE(t,e){return Array.prototype.concat(...t.map(r=>AD(r,e)))}function ME(t,e,r){let n=LE(et.parseFormat(r),t),i=n.map(o=>fD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=gD(i),u=RegExp(o,"i"),[c,l]=yD(e,u,a),[d,m,p]=l?ED(l):[null,null,void 0];if(ki(l,"a")&&ki(l,"H"))throw new Bn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function _D(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=ME(t,e,r);return[n,i,s,o]}function kE(t,e){return t?et.create(e,t).formatDateTimeParts(TD()).map(i=>hD(i,t)):null}var FE=[0,31,59,90,120,151,181,212,243,273,304,334],BE=[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 GE(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 $E(t,e,r){return r+(To(t)?BE:FE)[e-1]}function VE(t,e){let r=To(t)?BE:FE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Gd(t){let{year:e,month:r,day:n}=t,i=$E(e,r,n),s=GE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=vu(a)):o>vu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Uu(t)}}function Gy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=GE(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}=VE(a,o);return{year:a,month:u,day:c,...Uu(t)}}function xd(t){let{year:e,month:r,day:n}=t,i=$E(e,r,n);return{year:e,ordinal:i,...Uu(t)}}function $y(t){let{year:e,ordinal:r}=t,{month:n,day:i}=VE(e,r);return{year:e,month:n,day:i,...Uu(t)}}function SD(t){let e=Nu(t.weekYear),r=nr(t.weekNumber,1,vu(t.weekYear)),n=nr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function OD(t){let e=Nu(t.year),r=nr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function qE(t){let e=Nu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,Du(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function WE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=nr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=nr(r,0,59),a=nr(n,0,59),u=nr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Rd="Invalid DateTime",Vy=864e13;function Su(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function wd(t){return t.weekData===null&&(t.weekData=Gd(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 QE(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function qy(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function xu(t,e,r){return QE(qd(t),e,r)}function Wy(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Du(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=we.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=qd(s),[u,c]=QE(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 bd(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=xe(t.c.year,r?6:4),e?(n+="-",n+=xe(t.c.month),n+="-",n+=xe(t.c.day)):(n+=xe(t.c.month),n+=xe(t.c.day)),n}function Qy(t,e,r,n,i,s){let o=xe(t.c.hour);return e?(o+=":",o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=xe(t.c.minute),(t.c.second!==0||!r)&&(o+=xe(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=xe(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=xe(Math.trunc(-t.o/60)),o+=":",o+=xe(Math.trunc(-t.o%60))):(o+="+",o+=xe(Math.trunc(t.o/60)),o+=":",o+=xe(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var jE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},ID={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},xD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},HE=["year","month","day","hour","minute","second","millisecond"],RD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],wD=["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 Ru(t);return e}function Hy(t,e){let r=Nr(e.zone,he.defaultZone),n=Ae.fromObject(e),i=he.now(),s,o;if(ne(t.year))s=i;else{for(let c of HE)ne(t[c])&&(t[c]=jE[c]);let a=qE(t)||WE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function Yy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Vd(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 Ky(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||he.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null:Su(r));this.ts=ne(e.ts)?he.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=qy(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Ae.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Ky(arguments),[n,i,s,o,a,u,c]=r;return Hy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Ky(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,Hy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Zw(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Nr(r.zone,he.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ae.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if($n(e))return e<-Vy||e>Vy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nr(r.zone,he.defaultZone),loc:Ae.fromObject(r)});throw new Qe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if($n(e))return new t({ts:e*1e3,zone:Nr(r.zone,he.defaultZone),loc:Ae.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Nr(r.zone,he.defaultZone);if(!n.isValid)return t.invalid(Su(n));let i=he.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Cu(e,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 Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Bn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=qy(i,s);p?(f=RD,g=ID,E=Gd(E)):a?(f=wD,g=xD,E=xd(E)):(f=HE,g=jE);let y=!1;for(let R of f){let F=o[R];ne(F)?y?o[R]=g[R]:o[R]=E[R]:y=!0}let O=p?SD(o):a?OD(o):qE(o),S=O||WE(o);if(S)return t.invalid(S);let L=p?Gy(o):a?$y(o):o,[T,_]=xu(L,s,n),B=new t({ts:T,zone:n,o:_,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=$b(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Vb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=qb(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Qe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ae.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=_D(o,e,r);return l?t.invalid(l):fo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=zb(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Qe("need to specify a reason the DateTime is invalid");let n=e instanceof tt?e:new tt(e,r);if(he.throwOnInvalid)throw new Dd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=kE(e,Ae.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return LE(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?wd(this).weekYear:NaN}get weekNumber(){return this.isValid?wd(this).weekNumber:NaN}get weekday(){return this.isValid?wd(this).weekday:NaN}get ordinal(){return this.isValid?xd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Gn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Gn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Gn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Gn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return To(this.year)}get daysInMonth(){return Du(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?vu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=et.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(nt.instance(e),r)}toLocal(){return this.setZone(he.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Nr(e,he.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=xu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Su(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Cu(e,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 Bn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Bn("Can't mix ordinal dates with month/day");let c;n?c=Gy({...Gd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=$y({...xd(this.c),...r});let[l,d]=xu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e);return po(this,Wy(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,Wy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=we.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?et.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Rd}toLocaleString(e=wu,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Rd}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=bd(this,o);return a+="T",a+=Qy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?bd(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":"")+Qy(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?bd(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():Rd}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return we.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Xw(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=oD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?Vn.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),Yy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Yy(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Qe("min requires all arguments be DateTimes");return Py(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return Py(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 ME(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return zy}static get DATE_MED_WITH_WEEKDAY(){return Mw}static get DATE_FULL(){return Jy}static get DATE_HUGE(){return Zy}static get TIME_SIMPLE(){return Xy}static get TIME_WITH_SECONDS(){return eE}static get TIME_WITH_SHORT_OFFSET(){return tE}static get TIME_WITH_LONG_OFFSET(){return rE}static get TIME_24_SIMPLE(){return nE}static get TIME_24_WITH_SECONDS(){return iE}static get TIME_24_WITH_SHORT_OFFSET(){return sE}static get TIME_24_WITH_LONG_OFFSET(){return oE}static get DATETIME_SHORT(){return aE}static get DATETIME_SHORT_WITH_SECONDS(){return uE}static get DATETIME_MED(){return cE}static get DATETIME_MED_WITH_SECONDS(){return lE}static get DATETIME_MED_WITH_WEEKDAY(){return kw}static get DATETIME_FULL(){return dE}static get DATETIME_FULL_WITH_SECONDS(){return pE}static get DATETIME_HUGE(){return fE}static get DATETIME_HUGE_WITH_SECONDS(){return mE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&$n(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var bD="3.2.1";it.DateTime=_e;it.Duration=we;it.FixedOffsetZone=nt;it.IANAZone=sr;it.Info=Gn;it.Interval=Vn;it.InvalidZone=bu;it.Settings=he;it.SystemZone=Eo;it.VERSION=bD;it.Zone=Pr});var zE=H((DW,KE)=>{"use strict";var qn=YE();J.prototype.addYear=function(){this._date=this._date.plus({years:1})};J.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};J.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};J.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};J.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};J.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};J.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};J.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};J.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};J.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};J.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};J.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};J.prototype.getDate=function(){return this._date.day};J.prototype.getFullYear=function(){return this._date.year};J.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};J.prototype.getMonth=function(){return this._date.month-1};J.prototype.getHours=function(){return this._date.hour};J.prototype.getMinutes=function(){return this._date.minute};J.prototype.getSeconds=function(){return this._date.second};J.prototype.getMilliseconds=function(){return this._date.millisecond};J.prototype.getTime=function(){return this._date.valueOf()};J.prototype.getUTCDate=function(){return this._getUTC().day};J.prototype.getUTCFullYear=function(){return this._getUTC().year};J.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};J.prototype.getUTCMonth=function(){return this._getUTC().month-1};J.prototype.getUTCHours=function(){return this._getUTC().hour};J.prototype.getUTCMinutes=function(){return this._getUTC().minute};J.prototype.getUTCSeconds=function(){return this._getUTC().second};J.prototype.toISOString=function(){return this._date.toUTC().toISO()};J.prototype.toJSON=function(){return this._date.toJSON()};J.prototype.setDate=function(t){this._date=this._date.set({day:t})};J.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};J.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};J.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};J.prototype.setHours=function(t){this._date=this._date.set({hour:t})};J.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};J.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};J.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};J.prototype._getUTC=function(){return this._date.toUTC()};J.prototype.toString=function(){return this.toDate().toString()};J.prototype.toDate=function(){return this._date.toJSDate()};J.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};J.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function J(t,e){var r={zone:e};if(t?t instanceof J?this._date=t._date:t instanceof Date?this._date=qn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=qn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=qn.DateTime.fromISO(t,r),this._date.isValid||(this._date=qn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=qn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=qn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=qn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}KE.exports=J});var XE=H((vW,ZE)=>{"use strict";function Wn(t){return{start:t,count:1}}function JE(t,e){t.end=e,t.step=e-t.start,t.count=2}function Yd(t,e,r){e&&(e.count===2?(t.push(Wn(e.start)),t.push(Wn(e.end))):t.push(e)),r&&t.push(r)}function DD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Yd(e,r,Wn(i)),r=void 0):r?r.count===1?JE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Wn(r.start)),r=Wn(r.end),JE(r,i)):(Yd(e,r),r=Wn(i)):r=Wn(i)}return Yd(e,r),e}ZE.exports=DD});var tT=H((CW,eT)=>{"use strict";var vD=XE();function CD(t,e,r){var n=vD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,p){var f=c.start+p;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}eT.exports=CD});var iT=H((NW,nT)=>{"use strict";var Qn=zE(),ND=tT(),rT=1e4;function P(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Qn(e.currentDate,this._tz),this._startDate=e.startDate?new Qn(e.startDate,this._tz):null,this._endDate=e.endDate?new Qn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=P._freezeFields(t)}P.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];P.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};P.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];P.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];P.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};P.parseDefaults=["0","*","*","*","*","*"];P.standardValidCharacters=/^[,*\d/-]+$/;P.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;P.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;P.validCharacters={second:P.standardValidCharacters,minute:P.standardValidCharacters,hour:P.standardValidCharacters,dayOfMonth:P.dayOfMonthValidCharacters,month:P.standardValidCharacters,dayOfWeek:P.dayOfWeekValidCharacters};P._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};P._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=P.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!P.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(P._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(P._isValidConstraintChar(n,f)){c.push(f);return}var O=+f;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));else l(o(u));return c.sort(P._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};P._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};P._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=P.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(P._sortCompareFn)}};P._freezeFields=function(t){for(var e=0,r=P.map.length;e<r;++e){var n=P.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};P.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};P.prototype._findSchedule=function(e){function r(y,O){for(var S=0,L=O.length;S<L;S++)if(O[S]>=y)return O[S]===y;return O[0]===y}function n(y,O){if(O<6){if(y.getDate()<8&&O===1)return!0;var S=y.getDate()%7?1:0,L=y.getDate()-y.getDate()%7,T=Math.floor(L/7)+S;return T===O}return!1}function i(y){return y.length>0&&y.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Qn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(O){if(!i([O]))return!1;var S=Number.parseInt(O[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+O);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<rT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=rT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Qn(o,this._tz),this._hasIterated=!0,o};P.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};P.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};P.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};P.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};P.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};P.prototype.reset=function(e){this._currentDate=new Qn(e||this._options.currentDate)};P.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=P.map.length;n<i;++n){var s=P.map[n],o=this.fields[s],a=P.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:P.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(ND(o,a.min,a.max))}return r.join(" ")};P.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Qn(void 0,n._tz)),P.predefined[s]&&(s=P.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=P.map.length-u.length,l=0,d=P.map.length;l<d;++l){var m=P.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var f=m==="dayOfWeek"?O(p):p;a.push(P._parseField(m,f,P.constraints[l]))}}for(var g={},l=0,d=P.map.length;l<d;l++){var E=P.map[l];g[E]=a[l]}var y=P._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new P(g,o);function O(S){var L=S.split("#");if(L.length>1){var T=+L[L.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(L.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,L[0]}return S}}return i(e,r)};P.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!P._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=P.map.length;s<o;++s){var a=P.map[s],u=e[a];n(a,u,P.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(P._sortCompareFn).filter(function(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=P._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new P(i,r||{})};nT.exports=P});var oT=H((PW,sT)=>{"use strict";var Lu=iT();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Lu.parse(e)};if(r.length>6)return{interval:Lu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return Lu.parse(e,r)};Ur.fieldsToExpression=function(e,r){return Lu.fieldsToExpression(e,r)};Ur.parseString=function(e){for(var r=e.split(`
|
|
5
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Ur._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Ur.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Ur.parseString(i.toString()))})};sT.exports=Ur});var iF={};v(iF,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>hp,BadRequestError:()=>Oc,BudibaseError:()=>ms,Config:()=>_p,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Tp,DEFAULT_EXPENSES_TABLE_ID:()=>Ep,DEFAULT_INVENTORY_TABLE_ID:()=>yp,DEFAULT_JOBS_TABLE_ID:()=>gp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Wi,DocumentType:()=>Te,Duration:()=>Re,DurationType:()=>Wf,EmailUnavailableError:()=>hr,ErrorCode:()=>Rc,FeatureDisabledError:()=>xc,GlobalRole:()=>Ap,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Ir,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>TT,NotFoundError:()=>Sc,RedisClient:()=>Ge,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>mp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Ic,UserStatus:()=>qu,ViewName:()=>kr,accounts:()=>ai,auth:()=>oh,blacklist:()=>lh,cache:()=>wa,configs:()=>rn,constants:()=>Sp,context:()=>ye,db:()=>Vr,docIds:()=>nf,docUpdates:()=>ph,encryption:()=>nh,env:()=>h,errors:()=>bc,events:()=>Ts,features:()=>Ym,getPublicError:()=>wc,init:()=>nF,installation:()=>Fc,locks:()=>oi,logging:()=>hc,middleware:()=>sh,objectStore:()=>Af,permissions:()=>Qm,platform:()=>ca,plugins:()=>uh,queue:()=>pm,redis:()=>ch,roles:()=>am,security:()=>Dm,sessions:()=>Qc,setEnv:()=>wo,sql:()=>_h,tenancy:()=>rF,timers:()=>jo,userUtils:()=>um,users:()=>As,utils:()=>cs,withEnv:()=>xT});module.exports=AO(iF);var rn={};v(rn,{analyticsEnabled:()=>Lc,generateConfigID:()=>$m,getAIConfig:()=>bM,getConfig:()=>Ft,getDefaultGoogleConfig:()=>Bm,getGoogleConfig:()=>zc,getGoogleDatasourceConfig:()=>qm,getOIDCConfig:()=>xM,getOIDCConfigById:()=>Wm,getOIDCLogosDoc:()=>OM,getPlatformUrl:()=>Na,getSCIMConfig:()=>wM,getSMTPConfig:()=>RM,getSMTPConfigDoc:()=>OS,getSettingsConfig:()=>Vm,getSettingsConfigDoc:()=>Gc,save:()=>_M});var _O=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],Oh=[..._O],Ih={"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 Tl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Tl||{}),Al=(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))(Al||{}),Fa=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Fa||{});var _l=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(_l||{});var SO=j(require("lodash")),Sr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Sr||{}),Kt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Kt||{}),ln=(e=>(e.RANGE="range",e))(ln||{}),gi=(r=>(r.AND="$and",r.OR="$or",r))(gi||{});function Ba(t){return Object.values(gi).includes(t)}function xh(t){return Object.values(Sr).includes(t)}function Rh(t){return Object.values(Kt).includes(t)}function Sl(t){return Object.values(ln).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var wh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var bh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var sB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var Ga=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Ga||{});var $a=t=>t.hosting==="cloud";var Va=t=>t.authType==="sso";var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),Ee=(S=>(S.TABLE="table",S.ROW="row",S.ROWS="rows",S.WIDE="wide",S.QUERY="query",S.QUERY_PARAMS="queryParams",S.QUERY_LIMIT="queryLimit",S.LOOP_OPTION="loopOption",S.ITEM="item",S.CODE="code",S.FILTERS="filters",S.COLUMN="column",S.TRIGGER_SCHEMA="triggerSchema",S.CRON="cron",S.WEBHOOK_URL="webhookUrl",S.AUTOMATION="automation",S.AUTOMATION_FIELDS="automationFields",S.MULTI_ATTACHMENTS="multi_attachments",S.TRIGGER_FILTER="trigger_filter",S))(Ee||{}),St=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(St||{});var de=(_=>(_.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",_.CREATE_ROW="CREATE_ROW",_.UPDATE_ROW="UPDATE_ROW",_.DELETE_ROW="DELETE_ROW",_.EXECUTE_BASH="EXECUTE_BASH",_.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",_.EXECUTE_SCRIPT="EXECUTE_SCRIPT",_.EXECUTE_QUERY="EXECUTE_QUERY",_.SERVER_LOG="SERVER_LOG",_.DELAY="DELAY",_.FILTER="FILTER",_.QUERY_ROWS="QUERY_ROWS",_.LOOP="LOOP",_.COLLECT="COLLECT",_.OPENAI="OPENAI",_.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",_.BRANCH="BRANCH",_.discord="discord",_.slack="slack",_.zapier="zapier",_.integromat="integromat",_.n8n="n8n",_))(de||{}),Dh=[...Object.values(de),...Object.values(St)];var Ol=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Ol||{});var Il=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Il||{});var xl="bb_internal";var vh=["attachment_single","attachment","bb_reference","json","array"];var C="_",ke="\uFFF0",Or=t=>`${t}${C}`,Te=(G=>(G.USER="us",G.GROUP="gr",G.WORKSPACE="workspace",G.CONFIG="config",G.TEMPLATE="template",G.APP="app",G.DEV="dev",G.APP_DEV="app_dev",G.APP_METADATA="app_metadata",G.ROLE="role",G.MIGRATIONS="migrations",G.DEV_INFO="devinfo",G.AUTOMATION_LOG="log_au",G.ACCOUNT_METADATA="acc_metadata",G.PLUGIN="plg",G.DATASOURCE="datasource",G.DATASOURCE_PLUS="datasource_plus",G.APP_BACKUP="backup",G.TABLE="ta",G.ROW="ro",G.AUTOMATION="au",G.LINK="li",G.WEBHOOK="wh",G.INSTANCE="inst",G.LAYOUT="layout",G.SCREEN="screen",G.QUERY="query",G.DEPLOYMENTS="deployments",G.METADATA="metadata",G.MEM_VIEW="view",G.USER_FLAG="flag",G.AUTOMATION_METADATA="meta_au",G.AUDIT_LOG="al",G.APP_MIGRATION_METADATA="_design/migrations",G.SCIM_LOG="scimlog",G.ROW_ACTIONS="ra",G))(Te||{}),OG=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||{}),IG=Object.values(Rl).sort((t,e)=>e.length-t.length);function qa(t){return!!t.providerType}var wl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(wl||{});var n$=Object.values(wl);var u$=["rows","queries","automations"],c$=["queries","automations"];var pn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(pn||{}),Wa=(r=>(r.STRING="string",r.NUMBER="number",r))(Wa||{});var te;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(te||(te={}));var Dl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Dl||(Dl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},I=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),xO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Ai=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Ph=Ai;function RO(t){Ph=t}function Qa(){return Ph}var ja=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},wO=[];function N(t,e){let r=Qa(),n=ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ai?void 0:Ai].filter(i=>!!i)});t.common.issues.push(n)}var Me=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return z;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return z;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},z=Object.freeze({status:"aborted"}),Ti=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),vl=t=>t.status==="aborted",Cl=t=>t.status==="dirty",vs=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Ha(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Uh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var $;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})($||($={}));var bs,Ds,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Ch=(t,e)=>{if(vs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return xr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:xr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Cs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Ch(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:xr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return Ch(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Je({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return br.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return An.create(this,e,this._def)}transform(e){return new Je({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},bO=/^c[^\s-]{8,}$/i,DO=/^[0-9a-z]+$/,vO=/^[0-9A-HJKMNP-TV-Z]{26}$/,CO=/^[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,NO=/^[a-z0-9_-]{21}$/i,PO=/^[-+]?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)?)??$/,UO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,LO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",bl,MO=/^(?:(?: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])$/,kO=/^(([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})))$/,FO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Lh="((\\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])))",BO=new RegExp(`^${Lh}$`);function Mh(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 GO(t){return new RegExp(`^${Mh(t)}$`)}function kh(t){let e=`${Lh}T${Mh(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 $O(t,e){return!!((e==="v4"||!e)&&MO.test(t)||(e==="v6"||!e)&&kO.test(t))}var Rr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.string,received:s.parsedType}),z}let n=new Me,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?N(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&N(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")UO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")bl||(bl=new RegExp(LO,"u")),bl.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")CO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")NO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")bO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")DO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")vO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ulid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),N(i,{validation:"url",code:I.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"regex",code:I.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?kh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?BO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?GO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?PO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?$O(e.data,s.version)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?FO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"base64",code:I.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:I.invalid_string,...$.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...$.errToObj(e)})}url(e){return this._addCheck({kind:"url",...$.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...$.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...$.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...$.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...$.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...$.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...$.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...$.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...$.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...$.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...$.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...$.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...$.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...$.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...$.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...$.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...$.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...$.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...$.errToObj(r)})}nonempty(e){return this.min(1,$.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Rr.create=t=>{var e;return new Rr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function VO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.number,received:s.parsedType}),z}let n,i=new Me;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?VO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:$.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};fn.create=t=>new fn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.bigint,received:s.parsedType}),z}let n,i=new Me;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};mn.create=t=>{var e;return new mn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.boolean,received:n.parsedType}),z}return Fe(e.data)}};hn.create=t=>new hn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_date}),z}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:$.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:$.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var _i=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),z}return Fe(e.data)}};_i.create=t=>new _i({typeName:Y.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),z}return Fe(e.data)}};yn.create=t=>new yn({typeName:Y.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.null,received:n.parsedType}),z}return Fe(e.data)}};En.create=t=>new En({typeName:Y.ZodNull,...Z(t)});var wr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};wr.create=t=>new wr({typeName:Y.ZodAny,...Z(t)});var Jt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Jt.create=t=>new Jt({typeName:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),z}return Fe(e.data)}};Si.create=t=>new Si({typeName:Y.ZodVoid,...Z(t)});var Zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return N(r,{code:I.invalid_type,expected:M.array,received:r.parsedType}),z;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(N(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(N(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(N(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Ei(t){if(t instanceof qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ei(n))}return new qe({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:Ei(t.element)}):t instanceof dt?dt.create(Ei(t.unwrap())):t instanceof Gt?Gt.create(Ei(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ei(e))):t}var qe=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return N(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(N(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Me.mergeObjectSync(n,c)):Me.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return $.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=$.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ei(this)}partial(e){let r={};return te.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return te.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Fh(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return N(r,{code:I.invalid_union,unionErrors:o}),z}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return N(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:Y.ZodUnion,...Z(e)});var zt=t=>t instanceof _n?zt(t.schema):t instanceof Je?zt(t.innerType()):t instanceof Sn?[t.value]:t instanceof On?t.options:t instanceof In?te.objectValues(t.enum):t instanceof xn?zt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...zt(t.unwrap())]:t instanceof Gt?[null,...zt(t.unwrap())]:t instanceof Ns||t instanceof wn?zt(t.unwrap()):t instanceof Rn?zt(t._def.innerType):[],Ya=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return N(r,{code:I.invalid_type,expected:M.object,received:r.parsedType}),z;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(N(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Nl(t,e){let r=xr(t),n=xr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Nl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Nl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var An=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(vl(s)||vl(o))return z;let a=Nl(s.value,o.value);return a.valid?((Cl(s)||Cl(o))&&r.dirty(),{status:r.value,value:a.data}):(N(n,{code:I.invalid_intersection_types}),z)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};An.create=(t,e,r)=>new An({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return N(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return N(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),z;!this._def.rest&&n.data.length>this._def.items.length&&(N(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Me.mergeArray(r,o)):Me.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Bt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Ka=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return N(n,{code:I.invalid_type,expected:M.object,received:n.parsedType}),z;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Me.mergeObjectAsync(r,i):Me.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof X?new t({keyType:e,valueType:r,typeName:Y.ZodRecord,...Z(n)}):new t({keyType:Rr.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},Oi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return N(n,{code:I.invalid_type,expected:M.map,received:n.parsedType}),z;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Oi.create=(t,e,r)=>new Oi({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var Ii=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return N(n,{code:I.invalid_type,expected:M.set,received:n.parsedType}),z;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(N(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(N(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return z;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:$.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Ii.create=(t,e)=>new Ii({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var za=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return N(r,{code:I.invalid_type,expected:M.function,received:r.parsedType}),z;function n(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ai].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof br){let a=this;return Fe(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),c})})}else{let a=this;return Fe(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Bt.create(e).rest(Jt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Bt.create([]).rest(Jt.create()),returns:r||Jt.create(),typeName:Y.ZodFunction,...Z(n)})}},_n=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:Y.ZodLazy,...Z(e)});var Sn=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return N(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Sn.create=(t,e)=>new Sn({value:t,typeName:Y.ZodLiteral,...Z(e)});function Fh(t,e){return new On({values:t,typeName:Y.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Ha(this,bs,"f")||Uh(this,bs,new Set(this._def.values),"f"),!Ha(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{received:r.data,code:I.invalid_enum_value,options:n}),z}return Fe(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};bs=new WeakMap;On.create=Fh;var In=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=te.objectValues(r);return N(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),z}if(Ha(this,Ds,"f")||Uh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ha(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return N(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;In.create=(t,e)=>new In({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var br=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return N(r,{code:I.invalid_type,expected:M.promise,received:r.parsedType}),z;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};br.create=(t,e)=>new br({type:t,typeName:Y.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{N(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return z;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?z:u.status==="dirty"||r.value==="dirty"?Ti(u.value):u});{if(r.value==="aborted")return z;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?z:a.status==="dirty"||r.value==="dirty"?Ti(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?z:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?z:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>vs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};Je.create=(t,e,r)=>new Je({schema:t,typeName:Y.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===M.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.nan,received:n.parsedType}),z}return{status:"valid",value:e.data}}};xi.create=t=>new xi({typeName:Y.ZodNaN,...Z(t)});var qO=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?z:s.status==="dirty"?(r.dirty(),Ti(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?z:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},wn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Bh(t,e={},r){return t?wr.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):wr.create()}var WO={object:qe.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var QO=(t,e={message:`Input not instance of ${t.name}`})=>Bh(r=>r instanceof t,e),Gh=Rr.create,$h=fn.create,jO=xi.create,HO=mn.create,Vh=hn.create,YO=gn.create,KO=_i.create,zO=yn.create,JO=En.create,ZO=wr.create,XO=Jt.create,eI=Ot.create,tI=Si.create,rI=Zt.create,nI=qe.create,iI=qe.strictCreate,sI=Tn.create,oI=Ya.create,aI=An.create,uI=Bt.create,cI=Ka.create,lI=Oi.create,dI=Ii.create,pI=za.create,fI=_n.create,mI=Sn.create,hI=On.create,gI=In.create,yI=br.create,Nh=Je.create,EI=dt.create,TI=Gt.create,AI=Je.createWithPreprocess,_I=Ps.create,SI=()=>Gh().optional(),OI=()=>$h().optional(),II=()=>Vh().optional(),xI={string:t=>Rr.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>hn.create({...t,coerce:!0}),bigint:t=>mn.create({...t,coerce:!0}),date:t=>gn.create({...t,coerce:!0})},RI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:Ai,setErrorMap:RO,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:wO,addIssueToContext:N,ParseStatus:Me,INVALID:z,DIRTY:Ti,OK:Fe,isAborted:vl,isDirty:Cl,isValid:vs,isAsync:Cs,get util(){return te},get objectUtil(){return Dl},ZodParsedType:M,getParsedType:xr,ZodType:X,datetimeRegex:kh,ZodString:Rr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:_i,ZodUndefined:yn,ZodNull:En,ZodAny:wr,ZodUnknown:Jt,ZodNever:Ot,ZodVoid:Si,ZodArray:Zt,ZodObject:qe,ZodUnion:Tn,ZodDiscriminatedUnion:Ya,ZodIntersection:An,ZodTuple:Bt,ZodRecord:Ka,ZodMap:Oi,ZodSet:Ii,ZodFunction:za,ZodLazy:_n,ZodLiteral:Sn,ZodEnum:On,ZodNativeEnum:In,ZodPromise:br,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Gt,ZodDefault:xn,ZodCatch:Rn,ZodNaN:xi,BRAND:qO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:wn,custom:Bh,Schema:X,ZodSchema:X,late:WO,get ZodFirstPartyTypeKind(){return Y},coerce:xI,any:ZO,array:rI,bigint:HO,boolean:Vh,date:YO,discriminatedUnion:oI,effect:Nh,enum:hI,function:pI,instanceof:QO,intersection:aI,lazy:fI,literal:mI,map:lI,nan:jO,nativeEnum:gI,never:eI,null:JO,nullable:TI,number:$h,object:nI,oboolean:II,onumber:OI,optional:EI,ostring:SI,pipeline:_I,preprocess:AI,promise:yI,record:cI,set:dI,strictObject:iI,string:Gh,symbol:KO,transformer:Nh,tuple:uI,undefined:zO,union:sI,unknown:XO,void:tI,NEVER:RI,ZodIssueCode:I,quotelessJson:xO,ZodError:ze});var eu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),qh=ee.record(eu,ee.string()),Ja=ee.record(eu,ee.any()),Za=ee.record(eu,ee.union([ee.any().array(),ee.string()])),Wh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Qh))})),Xa=ee.union([ee.string(),ee.number()]),Qh={string:qh.optional(),fuzzy:qh.optional(),range:ee.record(eu,ee.union([ee.object({high:Xa,low:Xa}),ee.object({high:Xa}),ee.object({low:Xa})])).optional(),equal:Ja.optional(),notEqual:Ja.optional(),empty:Ja.optional(),notEmpty:Ja.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:Wh.optional(),$or:Wh.optional()},eV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Qh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(pn).optional(),sortType:ee.nativeEnum(Wa).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Sp={};v(Sp,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>hp,Config:()=>_p,Cookie:()=>Qi,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Tp,DEFAULT_EXPENSES_TABLE_ID:()=>Ep,DEFAULT_INVENTORY_TABLE_ID:()=>yp,DEFAULT_JOBS_TABLE_ID:()=>gp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Wi,DocumentType:()=>Te,GlobalRole:()=>Ap,Header:()=>Ze,InternalTable:()=>Ir,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>TT,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>mp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>qu,ViewName:()=>kr});var cq={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Ze=(O=>(O.API_KEY="x-budibase-api-key",O.LICENSE_KEY="x-budibase-license-key",O.API_VER="x-budibase-api-version",O.APP_ID="x-budibase-app-id",O.SESSION_ID="x-budibase-session-id",O.TYPE="x-budibase-type",O.PREVIEW_ROLE="x-budibase-role",O.TENANT_ID="x-budibase-tenant-id",O.VERIFICATION_CODE="x-budibase-verification-code",O.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",O.RESET_PASSWORD_CODE="x-budibase-reset-password-code",O.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",O.TOKEN="x-budibase-token",O.CSRF_TOKEN="x-csrf-token",O.CORRELATION_ID="x-budibase-correlation-id",O.AUTHORIZATION="authorization",O.MIGRATING_APP="x-budibase-migrating-app",O.COOKIE="cookie",O))(Ze||{});var fq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var Tq="darkest",Aq="light",DI=[{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 Lr={};v(Lr,{ColumnSplitter:()=>ep,NoEmptyFilterStrings:()=>fT,buildQuery:()=>ev,cleanupQuery:()=>np,fixupFilterArrays:()=>sp,getKeyNumbering:()=>ip,getValidOperatorsForType:()=>JD,hasFilters:()=>tp,limit:()=>hT,recurseLogicalOperators:()=>rp,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>tv,sort:()=>mT,splitFiltersArray:()=>ru});var Vi=j(Hh());var wi={};v(wi,{filterValueToLabel:()=>LI,hasSchema:()=>MI,isSupportedUserSearch:()=>Kh,parallelForeach:()=>UI,processSearchFilters:()=>Ll,trimOtherProps:()=>kI,unreachable:()=>PI});var Yh=j(require("lodash")),NI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function PI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function UI(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 LI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function MI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function kI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Kh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(Ba(r)){for(let o of t[r].conditions)if(!Kh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function Ll(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Yh.default.pick(i,NI);return s.field=tu(s.field),s})}]}}var Qt={};v(Qt,{cancelableTimeout:()=>zh,cron:()=>Kd,deepGet:()=>Ml,getUserColor:()=>BI,getUserInitials:()=>FI,getUserLabel:()=>GI,isGoogleSheets:()=>VI,isSQL:()=>qI,retry:()=>WI,roles:()=>Xd,schema:()=>So,views:()=>Zd,wait:()=>kl,withTimeout:()=>$I});var Ml=(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},FI=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"},BI=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%)`},GI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function zh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function $I(t,e){let[r,n]=zh(t),i=await Promise.race([e(),r]);return n(),i}function VI(t){return t==="GOOGLE_SHEETS"}function qI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function kl(t){return new Promise(e=>setTimeout(e,t))}async function WI(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 kl(s);try{return await t()}catch(o){n=o}}throw n}var Kd={};v(Kd,{getNextExecutionDates:()=>LD,validate:()=>MD});var uT=j($t()),cT=j(oT()),aT="(Input cron: ",PD={"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 UD(t){let e=[];for(let r of t){r.includes(aT)&&(r=r.split(aT)[0].trim());for(let[n,i]of Object.entries(PD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function LD(t,e=4){let r=cT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function MD(t){let e=(0,uT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:UD(e.getError())}}var So={};v(So,{decodeNonAscii:()=>zd,encodeNonAscii:()=>BD,isDeprecatedSingleUserColumn:()=>kD,isNumeric:()=>GD,isRequired:()=>FD});function kD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function FD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function BD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function zd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function GD(t){return t.type==="number"||t.type==="bigint"}var Zd={};v(Zd,{basicFields:()=>QD,calculationFields:()=>WD,hasCalculationFields:()=>qD,isBasicViewField:()=>$D,isCalculationField:()=>Oo,isCalculationView:()=>VD,isV2:()=>jD,isVisible:()=>lT});var Jd=require("lodash");function Oo(t){return"calculationType"in t}function $D(t){return!Oo(t)}function VD(t){return t.type==="calculation"}function qD(t){return Object.values(t.schema||{}).some(Oo)}function WD(t){return(0,Jd.pickBy)(t.schema||{},Oo)}function lT(t){return t.visible!==!1}function QD(t,e){let{visible:r=!0}=e||{};return(0,Jd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||lT(n)))}function jD(t){return t.version===2}var Xd={};v(Xd,{checkForRoleInheritanceLoops:()=>YD});function HD(t){return`role${C}${t}`}function YD(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=HD(s);if(n.has(s)||n.has(o))return!0;if(r.has(s)||r.has(o))return!1;n.add(s);let a=e.get(o)||e.get(s);if(!a)return n.delete(s),!1;let u=Array.isArray(a.inherits)?a.inherits:[a.inherits];for(let c of u)if(c&&i(c))return!0;return n.delete(s),r.add(s),!1}return!!t.find(s=>i(s._id))}var jn=require("lodash");var KD=/{{([^{].*?)}}/g,pT=Object.values(gi),zD=[...Object.values(Sr),...Object.values(Kt),...Object.values(ln)],JD=(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},fT=[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 rp(t,e){for(let r of pT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var np=t=>{for(let e of fT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||ZD(s))&&delete t[e][i]}return t=rp(t,np),t};function ZD(t){return Array.isArray(t)&&t.length===0}var tu=t=>ip(t).key,ip=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}},ep=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}=ip(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=zd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function XD(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(KD)||[]).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(Sl(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(xh(r)||Rh(r)||Sl(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function ru(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function ev(t){if(!t)return{};if(Array.isArray(t)&&(t=Ll(t),!t))return{};let e=dT(t.logicalOperator||"all"),r={};return t.onEmptyFilter?r.onEmptyFilter=t.onEmptyFilter:r.onEmptyFilter="all",r[e]={conditions:(t.groups||[]).map(n=>{let{allOr:i,onEmptyFilter:s,filters:o}=ru(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=dT(n.logicalOperator)),{[a]:{conditions:o.map(XD).filter(u=>u)}}})},r}function dT(t){return t==="all"?"$and":"$or"}function sp(t){if(!t)return t;for(let e of Object.values(Kt)){let r=t[e];if(!(r==null||!(0,jn.isPlainObject)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return rp(t,sp),t}function tv(t,e){let r=Mu(t,e.query);e.sort&&(r=mT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=hT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=np(e),e=sp(e),!tp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[R,F]of Object.entries(e[T]||{})){let ce=Ba(T)?B:Ml(B,tu(R)),an=_(ce,F);if(e.allOr&&an)return!0;if(!e.allOr&&!an)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,jn.isPlainObject)(_.low)&&(0,jn.isEmpty)(_.low)&&(_.low=void 0),(0,jn.isPlainObject)(_.high)&&(0,jn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let F=+_.low,ce=+_.high;if(!isNaN(F)&&!isNaN(ce))return B>=F&&B<=ce;if(isNaN(F)){if(!isNaN(ce))return B<=ce}else return B>=F}let R=(0,Vi.default)(T);if(R.isValid()){let F=(0,Vi.default)(_.low||"0000-00-00T00:00:00.000Z"),ce=(0,Vi.default)(_.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ce.isValid())return R.isAfter(F)&&R.isBefore(ce)||R.isSame(F)||R.isSame(ce);if(F.isValid())return R.isAfter(F)||R.isSame(F);if(ce.isValid())return R.isBefore(ce)||R.isSame(ce)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let R of T)if(o(R,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,Vi.default)(T);if(B.isValid()){let R=(0,Vi.default)(_);if(R.isValid())return B.isSame(R)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),f=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(R=>parseFloat(R)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](R=>o(_,R)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:f("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(f("every"))(T,_)),y=r("containsAny",f("some")),O=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Mu([T],B).length)return!1;return!0}),S=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Mu([T],{...B,allOr:!0}).length)return!0;return!1}),L=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:O,$or:S},B=Object.entries(e||{}).filter(([R,F])=>!["allOr","onEmptyFilter"].includes(R)&&F&&Object.keys(F).length>0).map(([R])=>_[R]?.(T)??!1);return tp(e)?e.allOr?B.some(R=>R===!0):B.every(R=>R===!0):!0};return t.filter(L)}function mT(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 hT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var tp=t=>{if(!t)return!1;let e=r=>{for(let n of pT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of zD){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:()=>up,automations:()=>cp,screens:()=>fp,users:()=>pp});var up={};v(up,{getDevAppID:()=>rv,getProdAppID:()=>ap});var op=Or("app"),Io=Or("app_dev");function rv(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(op);e.shift();let r=e.join(op);return`${Io}${r}`}function ap(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`${op}${r}`}var cp={};v(cp,{isAppAction:()=>sv,isRowAction:()=>nv,isWebhookAction:()=>iv});function nv(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function iv(t){return t.definition.trigger?.stepId==="WEBHOOK"}function sv(t){return t.definition.trigger?.stepId==="APP"}var pp={};v(pp,{canCreateApps:()=>ov,containsUserID:()=>pv,getGlobalUserID:()=>dv,hasAdminPermissions:()=>dp,hasAppBuilderPermissions:()=>Bu,hasAppCreatorPermissions:()=>gT,hasBuilderPermissions:()=>cv,hasCreatorPermissions:()=>Gu,isAdmin:()=>Fu,isAdminOrBuilder:()=>av,isAdminOrGlobalBuilder:()=>uv,isBuilder:()=>lp,isCreator:()=>lv,isGlobalBuilder:()=>ku});var Mr=j(require("lodash/fp"));function lp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ap(e))):!1}function ku(t){return lp(t)&&!Bu(t)||Fu(t)}function ov(t){return ku(t)||Gu(t)}function Fu(t){return t?dp(t):!1}function av(t,e){return lp(t,e)||Fu(t)}function uv(t){return ku(t)||Fu(t)}function Bu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function gT(t){return t?Mr.flow(Mr.get("roles"),Mr.values,Mr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function cv(t){return t?t.builder?.global||Bu(t)||Gu(t):!1}function dp(t){return t?!!t.admin?.global:!1}function Gu(t){return t?!!t.builder?.creator:!1}function lv(t){return t?ku(t)||dp(t)||Gu(t)||Bu(t)||gT(t):!1}function dv(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function pv(t){return typeof t!="string"?!1:t.includes(`us${C}`)}var fp={};v(fp,{findInSettings:()=>fv});function fv(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 bQ={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},DQ={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},vQ={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 FQ={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 $Q={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 WQ={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 HQ={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 zQ={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 XQ={description:"Delete a row from your database",icon:"TableRowRemoveCenter",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var rj={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var sj={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 uj={name:"JS Scripting",tagline:"Execute JavaScript Code",icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var Ov={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},dj={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(Ol),pretty:Object.values(Ov)},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 mj={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 yj={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var Aj={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Il)},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 yT=(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))(yT||{}),Oj={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(yT)}},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 ET=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(ET||{}),Rj={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(ET),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 vv={ascending:"Ascending",descending:"Descending"},Dj={description:"Query rows from the database",icon:"Search",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(pn),pretty:Object.values(vv)},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 Nj={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 Lj={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 Fj={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 $j={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 Wj={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 Hj={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 Bv={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 $v={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 qv={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var Qv={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var Hv={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 Kv={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 Jv={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 $u=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))($u||{}),kr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(kr||{}),Wi={by_email2:["by_email"]},Se={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"}},gt=Or("app"),Vu=Or("app_dev"),yt=Vu,mp="internal",hp="budibase",or="_design/sqlite",gp="ta_bb_jobs",yp="ta_bb_inventory",Ep="ta_bb_expenses",Tp="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||{}),Ap=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Ap||{}),_p=(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))(_p||{}),TT=new Date(-2147483647e3),Wu=new Date(2147483647e3),ge="default";var wa={};v(wa,{CacheKey:()=>fr,TTL:()=>ri,app:()=>Zp,bustCache:()=>as,destroy:()=>ia,docWritethrough:()=>Fm,generic:()=>sa,get:()=>ni,invite:()=>Jf,keys:()=>gc,passwordReset:()=>Mm,store:()=>mr,user:()=>nn,withCache:()=>Kr,writethrough:()=>Lm});var sa={};v(sa,{CacheKey:()=>fr,TTL:()=>ri,bustCache:()=>as,destroy:()=>ia,get:()=>ni,keys:()=>gc,store:()=>mr,withCache:()=>Kr});var ye={};v(ye,{DEFAULT_TENANT_ID:()=>ge,baseGlobalDBName:()=>No,doInAppContext:()=>NC,doInAppMigrationContext:()=>UC,doInAutomationContext:()=>CC,doInContext:()=>$p,doInEnvironmentContext:()=>MC,doInIPContext:()=>Wp,doInIdentityContext:()=>Ro,doInScimContext:()=>kC,doInTenant:()=>Be,ensureSnippetContext:()=>qT,getAppDB:()=>Ji,getAppId:()=>Ne,getAuditLogDBName:()=>$T,getAuditLogsDB:()=>BC,getAutomationId:()=>Vp,getCurrentContext:()=>Zi,getDevAppDB:()=>$C,getEnvironmentVariables:()=>FC,getFeatureFlags:()=>Qp,getGlobalDB:()=>se,getGlobalDBName:()=>ur,getIP:()=>qp,getIdentity:()=>ar,getPlatformURL:()=>Gp,getProdAppDB:()=>GC,getProdAppId:()=>LC,getScimDBName:()=>wC,getTableForView:()=>VC,getTenantIDFromAppID:()=>zi,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Gr,isScim:()=>Nt,isTenancyEnabled:()=>DC,isTenantIdSet:()=>bC,setFeatureFlags:()=>jp,setTableForView:()=>qC});var xo={};v(xo,{doInAccountContext:()=>tC,doInIdentityContext:()=>Ip,doInUserContext:()=>xp,getAccountUserId:()=>AT,getIdentity:()=>Op});function Op(){return ar()}function Ip(t,e){return Ro(t,e)}function xp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Ip(n,r)}function tC(t,e){let r=AT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Ip(i,e)}function AT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Hu=require("fs");var OT=require("lodash"),Rp=require("crypto");function wp(){return IT()}function IT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function ju(){return process.env.NODE_ENV!=="production"}function rC(t){if(t)return parseInt(t)}var _T=!1;!_T&&ju()&&!wp()&&(require("dotenv").config(),_T=!0);var ji={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},ST=!!parseInt(process.env.SELF_HOSTED||"");function nC(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function iC(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function sC(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Hu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Hu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ju()&&!wp())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 oC(){return vt.SERVICE_TYPE==="worker"}function aC(){return vt.SERVICE_TYPE==="apps"}function uC(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:wp,isJest:IT,isDev:ju,isWorker:oC,isApps:aC,isQA:uC,isProd:()=>!ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Rp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Rp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:nC(),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:ST,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:iC(),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:ST?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...sC(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:rC(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,OT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function xT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var RT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var wT=require("async_hooks"),Ce=class t{static{this.storage=new wT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var bp="No app provided";function Fr(t){if(!t)throw bp;return t.startsWith(yt)}function cC(t){if(!t)throw bp;return t.startsWith(gt)&&!Fr(t)}function bo(t){if(!t)throw bp;return Fr(t.appId)}function Yu(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var lC=Yu;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 dC(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Ct=t=>{let e=Dp(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:Dp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Dp=(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 BT=j(require("@budibase/nano"));var bT=j(require("node-fetch"));function Ku(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function DT(t,e="GET",r){let{url:n,cookie:i}=Ct(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,bT.default)(Ku(encodeURI(t)),i)}async function zu(t,e="GET",r){let n=await DT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Hn=j(require("pouchdb"));var vT,CT=!1,vp=(t={})=>{let{url:e,cookie:r}=Ct(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Hn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Hn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Hn.default.plugin(i.plugin),Hn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Hn.default.plugin(i)}return Hn.default.defaults(n)};function Ju(t){vT=vp(t),CT=!0}var fC=()=>{if(!CT)throw new Error("init has not been called")};function Et(t,e){fC();let r=new vT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function vo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var NT=require("uuid");function Oe(){return(0,NT.v4)().replace(/-/g,"")}var Ie=j(require("dd-trace")),Hi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Ie.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return Ie.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Ie.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return Ie.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e.length,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return Ie.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return Ie.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return Ie.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return Ie.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Ie.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return Ie.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return Ie.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return Ie.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return Ie.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return Ie.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Ie.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Ie.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Ie.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Ie.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return Ie.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return Ie.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var kp={};v(kp,{breakExternalTableId:()=>Pp,breakRowIdField:()=>OC,buildExternalTableId:()=>yC,convertRowId:()=>SC,encodeTableId:()=>EC,encodeViewId:()=>TC,generateRowIdField:()=>AC,getNativeSql:()=>Yi,isExternalTable:()=>Np,isExternalTableID:()=>Zu,isInternalTableID:()=>gC,isInvalidISODateString:()=>Up,isRowId:()=>_C,isValidFilter:()=>Xu,isValidISODateString:()=>Lp,isValidTime:()=>IC,sqlLog:()=>Co,validateManyToMany:()=>Mp});var Cp=`${C}${C}`,UT=/^\[.*]$/g,mC=encodeURIComponent(" "),LT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,hC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Zu(t){return t.startsWith("datasource"+C)}function gC(t){return!Zu(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 Np(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==Ri||t?.sourceType==="external"?!0:!!(t?._id&&Zu(t._id))}function yC(t,e){return`${t}${Cp}${encodeURIComponent(e)}`}function EC(t){return Zu(t)?encodeURIComponent(t):t}function TC(t){return encodeURIComponent(t)}function Pp(t){let e=t.split(Cp),r=e.shift(),n=e.join(Cp);if(n.includes(mC)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function AC(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 _C(t){return Array.isArray(t)||typeof t=="string"&&t.match(UT)!=null}function SC(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(UT)!=null?t.substring(1,t.length-1):t}function OC(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 Up(t){let e=t.trim();if(!LT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Lp(t){return LT.test(t.trim())}function Xu(t){return t!=null&&t!==""}function IC(t){return hC.test(t)}function Co(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function xC(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Mp(t){if(xC(t))return t}var MT="Database does not exist.";function kT(t){return(0,BT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Br=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function RC(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Ki(t,r,e);return new Hi(n)}var Ki=class t{constructor(e,r,n){this.couchInfo=Ct();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Ct(n),this.instanceNano=kT(this.couchInfo)),t.nano||t.init()}static init(){let e=Ct();t.nano=kT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Br(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===MT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Br(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Br(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(wh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Br(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===MT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Ku(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Br("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${or}`;return Co("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(or)){let e=await this.get(or);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new Br(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function He(t,e){return new Hi(new Ki(t,e))}async function at(t,e,r){let n=He(t,r);return await e(n)}async function Fp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await zu(e)}async function Bp(t,e){let r=await zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var GT=null;function ur(t){return t||(t=Q()),No(t)}function $T(t){return t||(t=Q()),t===ge?Se.AUDIT_LOGS.name:`${t}${C}${Se.AUDIT_LOGS.name}`}function wC(t){return t||(t=Q()),t===ge?Se.SCIM_LOGS.name:`${t}${C}${Se.SCIM_LOGS.name}`}function No(t){return!t||t===ge?Se.GLOBAL.name:`${t}${C}${Se.GLOBAL.name}`}function Gp(){return h.PLATFORM_URL}function Gr(){return!!h.MULTI_TENANCY}function bC(){return!!Ce.get()?.tenantId}function DC(){return h.MULTI_TENANCY}function zi(t){if(!t)return;if(!Gr())return ge;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function vC(t){let e;try{e=Ce.get()}catch{e={}}return e={...e,...t},e}async function $r(t,e){PC();let r=vC(t);return Ce.run(r,e)}async function CC(t){return await qT(),await $r({tenantId:zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function $p(t,e){let r=zi(t);return $r({tenantId:r,appId:t},e)}async function Be(t,e){return h.MULTI_TENANCY||(t=t||ge),$r(t?{tenantId:t}:{},e)}async function NC(t,e){return VT(t,e)}async function VT(t,e,r){if(!t)throw new Error("appId is required");let n=zi(t),i={appId:t,...r};return n&&(i.tenantId=n),$r(i,e)}async function Ro(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),$r(r,e)}function PC(){if(Ce.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function UC(t,e){return VT(t,e,{isMigrating:!0})}function ar(){try{return Ce.get()?.identity}catch{}}function Q(){if(!Gr())return ge;let e=Ce.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Vp(){return Ce.get()?.automationId}function Ne(){let e=Ce.get()?.appId;return!e&&h.isTest()&>?GT:e}function qp(){return Ce.get()?.ip}var LC=()=>{let t=Ne();if(!t)throw new Error("Could not get appId");return ot(t)};function MC(t,e){if(!t)throw new Error("Must supply environment variables.");return $r({environmentVariables:t},e)}function kC(t){return $r({isScim:!0},t)}function Wp(t,e){return $r({ip:t},e)}async function qT(t=!h.isTest()){let e=Zi();if(!e||e.snippets)return;let r,n=Ji();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function FC(){let t=Ce.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=Ce.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return He(No(t?.tenantId))}function BC(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return He($T())}function Ji(t){let e=Ne();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return He(e,t)}function GC(t){let e=Ne();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return He(ot(e),t)}function $C(t){let e=Ne();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return He(Yu(e),t)}function Nt(){return!!Ce.get()?.isScim}function Zi(){try{return Ce.get()}catch{return}}function Qp(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 VC(t){let e=Zi();if(e)return e.viewToTableCache?.[t]}function qC(t,e){let r=Zi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Yr={};v(Yr,{getAppClient:()=>ac,getCacheClient:()=>Pf,getDocWritethroughClient:()=>jN,getInviteClient:()=>ei,getLockClient:()=>Lf,getPasswordResetClient:()=>na,getSessionClient:()=>Hr,getSocketClient:()=>QN,getUserClient:()=>ra,getWritethroughClient:()=>Uf,init:()=>Ut,shutdown:()=>r_});var e_=j(require("ioredis"));var rc={};v(rc,{Databases:()=>Hp,SEPARATOR:()=>Xi,SelectableDatabase:()=>ec,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>tc,getRedisOptions:()=>es,removeDbPrefix:()=>Yp});var WC=2e3,WT=1e4,Xi="-",Hp=(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))(Hp||{}),ec=(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))(ec||{});function tc(){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}=tc(),n={connectTimeout:WT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:WT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:WC,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Xi}${e}`}function Yp(t){let e=t.split(Xi);return e.length>=2?(e.shift(),e.join(Xi)):e[0]}var hc={};v(hc,{correlation:()=>Po,logAlert:()=>Jn,logAlertWithInfo:()=>BN,logWarn:()=>ss,logger:()=>mc,system:()=>Of});var Po={};v(Po,{getId:()=>Kp,setHeader:()=>QC});var QT=require("correlation-id"),QC=t=>{let e=QT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Kp(){return QT.getId()}var fc=j(require("pino")),ZA=j(require("pino-pretty"));var If=j(require("dd-trace")),XA=require("dd-trace/ext");var Of={};v(Of,{getLogReadStream:()=>PN,getSingleFileMaxSizeInfo:()=>JA,localFileDestination:()=>Sf});var Vo=j(require("fs")),_f=j(require("path")),HA=j(require("rotating-file-stream"));var Af={};v(Af,{ObjectStore:()=>Pt,ObjectStoreBuckets:()=>HC,SIGNED_FILE_PREFIX:()=>gf,bucketTTLConfig:()=>nc,budibaseTempDir:()=>Yn,clientLibraryCDNUrl:()=>RN,clientLibraryPath:()=>BA,clientLibraryUrl:()=>wN,createBucketIfNotExists:()=>$o,deleteFile:()=>TN,deleteFiles:()=>AN,deleteFolder:()=>MA,downloadTarball:()=>SN,downloadTarballDirect:()=>_N,enrichPluginURLs:()=>vN,extractBucketAndPath:()=>zp,getAppFileUrl:()=>bN,getGlobalFileS3Key:()=>GA,getGlobalFileUrl:()=>DN,getObjectMetadata:()=>ON,getPluginIconKey:()=>qA,getPluginJSKey:()=>VA,getPluginS3Dir:()=>QA,getPresignedUrl:()=>Qr,getReadStream:()=>ic,listAllObjects:()=>LA,processAutomationAttachment:()=>KC,processObjectStoreAttachment:()=>zT,retrieve:()=>UA,retrieveDirectory:()=>EN,retrieveToTmp:()=>yN,sanitizeBucket:()=>Ke,sanitizeKey:()=>Pe,streamUpload:()=>PA,upload:()=>gN,uploadDirectory:()=>yf});var dc=require("@aws-sdk/client-s3"),df=require("@aws-sdk/lib-storage"),DA=require("@aws-sdk/s3-request-presigner"),Go=j(require("stream")),pf=j(require("node-fetch")),ff=j(require("tar-fs")),mf=j(require("zlib")),vA=require("util"),Wr=require("path"),pr=j(require("fs"));var Uo=j(require("path")),jT=require("os"),HT=j(require("fs"));var YT=j(require("stream")),HC={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},KT=(0,Uo.join)((0,jT.tmpdir)(),".budibase");try{HT.default.mkdirSync(KT)}catch(t){if(t.code!=="EEXIST")throw t}function Yn(){return KT}var nc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function YC(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:YT.default.Readable.fromWeb(e.body)}}async function zT(t){let e=zp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await ic(r,n),s=Uo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function KC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await YC(t):await zT(t)}var hf=require("uuid");var Vr={};v(Vr,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>hp,DEFAULT_BB_DATASOURCE_ID:()=>Ri,DEFAULT_EMPLOYEE_TABLE_ID:()=>Tp,DEFAULT_EXPENSES_TABLE_ID:()=>Ep,DEFAULT_INVENTORY_TABLE_ID:()=>yp,DEFAULT_JOBS_TABLE_ID:()=>gp,DatabaseImpl:()=>Ki,DatabaseWithConnection:()=>RC,DeprecatedViews:()=>Wi,DocumentType:()=>Te,InternalTable:()=>Ir,QueryBuilder:()=>dr,Replication:()=>IA,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>mp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>kr,baseGlobalDBName:()=>No,checkErrorCode:()=>bA,closePouchDB:()=>vo,createApiKeyView:()=>TA,createNewUserEmailView:()=>yA,createPlatformAccountEmailView:()=>_A,createPlatformUserView:()=>SA,createUserAppView:()=>EA,createView:()=>ns,dbExists:()=>oN,directCouchAllDbs:()=>Fp,directCouchCall:()=>DT,directCouchFind:()=>Bp,directCouchQuery:()=>zu,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>dC,fullSearch:()=>lN,generateAppID:()=>ZT,generateAppUserID:()=>uc,generateDevInfoID:()=>sA,generateGlobalUserID:()=>ts,generatePluginID:()=>oA,generateRoleID:()=>ef,generateRowID:()=>Xp,generateTableID:()=>XT,generateTemplateID:()=>iA,generateUserMetadataID:()=>rA,generateWorkspaceID:()=>eA,getAllApps:()=>Mo,getAllDbs:()=>gA,getAppsByIDs:()=>rN,getCouchInfo:()=>Ct,getDB:()=>He,getDevAppID:()=>lC,getDevAppIDs:()=>iN,getDevelopmentAppID:()=>Yu,getDocParams:()=>rs,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>nA,getGlobalUserParams:()=>Kn,getPluginParams:()=>hA,getPouch:()=>vp,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>nN,getQueryIndex:()=>aA,getRoleParams:()=>lc,getRowParams:()=>tf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>mA,getUrlInfo:()=>Dp,getUserMetadataParams:()=>fA,getUsersByAppParams:()=>cc,getWorkspaceParams:()=>pA,init:()=>Ju,isDatasourceId:()=>lA,isDevApp:()=>bo,isDevAppID:()=>Fr,isDocumentConflictError:()=>pN,isExternalTableId:()=>rf,isGlobalUserID:()=>tA,isProdAppID:()=>cC,isQueryId:()=>dA,isSameAppID:()=>sN,isTableId:()=>uA,isViewId:()=>cA,paginatedSearch:()=>cN,pagination:()=>sf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>uf,queryPlatformView:()=>Fo,queryView:()=>af,queryViewRaw:()=>ko,removeKeyNumbering:()=>Bo,searchIndexes:()=>lf});var Zp={};v(Zp,{AppState:()=>Jp,getAppMetadata:()=>oc,invalidateAppMetadata:()=>XC});var Jp=(e=>(e.INVALID="invalid",e))(Jp||{}),JT=3600,zC=60;async function JC(t){return at(t,e=>e.get("app_metadata"),{skip_setup:!0})}function ZC(t){return!t||t.state==="invalid"}async function oc(t){let e=await ac(),r=await e.get(t);if(!r){let n=JT;try{r=await JC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=zC;else throw i}if(ZC(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function XC(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await ac();await r.delete(t),e&&await r.store(t,e,JT)}var nf={};v(nf,{generateAppID:()=>ZT,generateAppUserID:()=>uc,generateDevInfoID:()=>sA,generateGlobalUserID:()=>ts,generatePluginID:()=>oA,generateRoleID:()=>ef,generateRowID:()=>Xp,generateTableID:()=>XT,generateTemplateID:()=>iA,generateUserMetadataID:()=>rA,generateWorkspaceID:()=>eA,getDocParams:()=>rs,getGlobalIDFromUserMetadataID:()=>nA,getGlobalUserParams:()=>Kn,getPluginParams:()=>hA,getQueryIndex:()=>aA,getRoleParams:()=>lc,getRowParams:()=>tf,getStartEndKeyURL:()=>Lo,getTemplateParams:()=>mA,getUserMetadataParams:()=>fA,getUsersByAppParams:()=>cc,getWorkspaceParams:()=>pA,isDatasourceId:()=>lA,isExternalTableId:()=>rf,isGlobalUserID:()=>tA,isQueryId:()=>dA,isTableId:()=>uA,isViewId:()=>cA,prefixRoleID:()=>cr});var ZT=t=>{let e=gt;return t&&(e+=`${t}${C}`),`${e}${Oe()}`};function XT(){return`ta${C}${Oe()}`}function Xp(t,e){return e=e||Oe(),`ro${C}${t}${C}${e}`}function eA(){return`workspace${C}${Oe()}`}function ts(t){return`us${C}${t||Oe()}`}var eN=new RegExp(`^us${C}.+`);function tA(t){return eN.test(t)}function rA(t){return Xp("ta_users",t)}function nA(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}function iA(t){return`template${C}${t}${C}${Oe()}`}function uc(t,e){return`${t}${C}${e}`}function ef(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return ef(t)}var sA=t=>`devinfo${C}${t}`,oA=t=>`plg${C}${t}`;var tN=new RegExp("^datasource_plus_(.+)__(.+)$");function rs(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${C}${e}`,endkey:`${t}${C}${e}${ke}`}}function tf(t,e,r={}){if(t==null)return rs("ro",null,r);let n=e??`${t}${C}`;return rs("ro",n,r)}function aA(t){return`database/${t}`}var rf=t=>{let e=t.match(tN);return!!t&&e!==null},uA=t=>!!t&&(t.startsWith(`ta${C}`)||rf(t));function cA(t){return!!t&&t.startsWith(`view${C}`)}function lA(t){return!!t&&t.startsWith(`datasource${C}`)}function dA(t){return!!t&&t.startsWith(`query${C}`)}function pA(t="",e={}){return{...e,startkey:`workspace${C}${t}`,endkey:`workspace${C}${t}${ke}`}}function Kn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${ke}`}}function fA(t,e={}){return tf("ta_users",t,e)}function cc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function mA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${ke}`}}function lc(t,e={}){return rs("role",t,e)}function Lo(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var hA=(t,e={})=>rs("plg",t,e);async function gA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Fp(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ge?await n():(await n(Lo("app",i)),await n(Lo("app_dev",i)),r.push(ur(i))),r}async function Mo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ge);let o=(await gA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(C);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===ge&&d||l===i}return!1});if(r){let u=o.filter(l=>Fr(l)),c=o.filter(l=>!Fr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>oc(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 rN(t){return(await Promise.allSettled(t.map(r=>oc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function nN(){return(await Mo({idsOnly:!0})).filter(e=>!Fr(e))}async function iN(){return(await Mo({idsOnly:!0})).filter(e=>Fr(e))}function sN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function oN(t){return at(t,async e=>await e.exists(),{skip_setup:!0})}function sf(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 of="_design/database";function aN(){return{_id:of,views:{}}}async function uN(t,e){if(Wi[e])try{let r=await t.get(of);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(of)}catch{n=aN()}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 yA=async()=>{let t=se(),e=`function(doc) {
|
|
6
6
|
if (doc._id.startsWith("us${C}")) {
|
|
7
7
|
emit(doc.email.toLowerCase(), doc._id)
|
|
8
8
|
}
|
|
@@ -17,7 +17,7 @@ attempted value: ${s}
|
|
|
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 uN(r,t),await n(),ko(t,e,r,n,i);if(s.status===409)return ko(t,e,r,n,i);throw s}}var af=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 AA(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 _A=async()=>{let t=`function(doc) {
|
|
21
21
|
if (doc._id.startsWith("acc_metadata${C}")) {
|
|
22
22
|
emit(doc.email.toLowerCase(), doc._id)
|
|
23
23
|
}
|
|
@@ -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:_A,platform_users_lowercase_2:SA};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return af(t,e,n,i,{arrayResponse:!0})})},OA={by_email2:yA,by_api_key:TA,by_app:EA},lr=async(t,e,r,n)=>{r||(r=se());let i=OA[t];return af(t,e,r,i,n)};async function uf(t,e,r){let n=se(),i=OA[t];return ko(t,e,n,i,r)}var cf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([vo(this.source),vo(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},IA=cf;var RA=j(require("node-fetch"));var Bo=Lr.removeKeyNumbering;function zn(t){return t==null||t===""}var dr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Bo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>zn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(zn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${E} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(zn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function p(f,g,E){let y="";for(let[O,S]of Object.entries(f)){O=Bo(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let L=g(O,S);if(L!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(zn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>zn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Ct(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await xA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await xA(n,i,r);throw s}}};async function xA(t,e,r){let n=await(0,RA.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 wA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=dr.maxLimit;n.limit&&s.length>n.limit-dr.maxLimit&&(o=n.limit-s.length);let a=new dr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<dr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await wA(t,e,r,c)}async function uN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,dr.maxLimit);let s=new dr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function cN(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 wA(t,e,r,n)}}var lf={};v(lf,{createUserIndex:()=>lN});async function lN(){let t=se(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function bA(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 dN(t){return bA(t,409)}var CA=j(require("fs/promises")),pN=require("sanitize-s3-objectkey"),NA=(0,vA.promisify)(Go.default.pipeline),fN={bucketCreationPromises:{}},gf="/files/signed",qr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},mN=[qr.html,qr.css,qr.js,qr.json];function Pe(t){return pN(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 dc.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=fN.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 hN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await CA.default.open(r)).createReadStream():s,c=Pt(),l=await $o(c,t);if(o&&l.created){let g=nc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?qr[a.toLowerCase()]:qr.txt),p={Bucket:Ke(t),Key:Pe(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new df.Upload({client:c,params:p}).done()}async function PA({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=nc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?qr[o.toLowerCase()]:qr.txt);let l=Ke(t),d=Pe(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new df.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function UA(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(mN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Go.default.Readable.fromWeb(s)}}async function LA(t,e){let r=Pt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Pe(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Qr(t,e,r=3600){let n=Pt({presigning:!0}),i={Bucket:Ke(t),Key:Pe(e)},s=await(0,DA.getSignedUrl)(n,new dc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${gf}${a}${u}`}else return s}async function gN(t,e){t=Ke(t),e=Pe(e);let r=await UA(t,e),n=(0,Wr.join)(Yn(),(0,hf.v4)());return r instanceof Go.default.Readable?r.pipe(pr.default.createWriteStream(n)):pr.default.writeFileSync(n,r),n}async function yN(t,e){let r=(0,Wr.join)(Yn(),(0,hf.v4)());pr.default.mkdirSync(r);let n=await LA(t,e),i=await Promise.all(n.map(a=>ic(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,Wr.join)(r,...d);l.length>1&&!pr.default.existsSync(m)&&pr.default.mkdirSync(m,{recursive:!0});let p=pr.default.createWriteStream((0,Wr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",f),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function EN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Key:Pe(e)};return r.deleteObject(n)}async function TN(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 MA(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(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s)).Deleted?.length===1e3)return MA(t,e)}async function yf(t,e,r){t=Ke(t);let n=[],i=pr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Pe((0,Wr.join)(r,s.name)),a=(0,Wr.join)(e,s.name);s.isDirectory()?n.push(yf(t,a,o)):n.push(PA({bucket:t,filename:o,stream:pr.default.createReadStream(a)}))}return await Promise.all(n),i}async function AN(t,e,r={}){e=Pe(e);let n=await(0,pf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await NA(n.body,mf.default.createUnzip(),ff.default.extract(e))}async function _N(t,e,r){e=Ke(e),r=Pe(r);let n=await(0,pf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Wr.join)(Yn(),r);return await NA(n.body,mf.default.createUnzip(),ff.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await yf(e,i,r),i}async function ic(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 SN(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function zp(t){let e=t.split("?")[0],r=new RegExp(`^${gf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var kA=j(require("aws-cloudfront-sign")),pc;function ON(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return pc||(pc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),pc)}var IN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:ON(),expireTime:new Date().getTime()+1e3*60*60*24}),is=t=>{let e=Ef(t);return kA.getSignedUrl(e,IN())},Ef=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var FA=j(require("querystring"));function BA(t){return`${Pe(t)}/budibase-client.js`}async function xN(t,e){let r=BA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Ef(r)):await Qr(h.APPS_BUCKET_NAME,r)}function RN(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ge&&(n.tenantId=r),`/api/assets/client?${FA.default.encode(n)}`}async function wN(t){return h.CLOUDFRONT_CDN?is(t):await Qr(h.APPS_BUCKET_NAME,t)}var bN=async(t,e,r)=>{let n=GA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),is(n)):await Qr(h.GLOBAL_BUCKET_NAME,n)},GA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function DN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await vN(e),n=await CN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function vN(t){let e=VA(t);return $A(e)}async function CN(t){let e=qA(t);if(e)return $A(e)}async function $A(t){return h.CLOUDFRONT_CDN?is(t):await Qr(h.PLUGIN_BUCKET_NAME,t)}function VA(t){return WA(t,"plugin.min.js")}function qA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return WA(t,e)}function WA(t,e){return`${QA(t.name)}/${e}`}function QA(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var YA="budibase.log",KA="budibase-logs-history.txt",zA=_f.default.join(Yn(),"systemlogs");function jA(t){return _f.default.join(zA,t)}function JA(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 Sf(){let t=JA(h.ROLLING_LOG_MAX_SIZE);return HA.createStream(YA,{size:t?.size,path:zA,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:KA,initialRotation:!1})}function NN(){let t=[],e=jA(KA);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(jA(YA))),Buffer.concat(t)}function
|
|
32
|
+
}`,"platform_users_lowercase_2")},Fo=async(t,e)=>{let r={account_by_email:_A,platform_users_lowercase_2:SA};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return af(t,e,n,i,{arrayResponse:!0})})},OA={by_email2:yA,by_api_key:TA,by_app:EA},lr=async(t,e,r,n)=>{r||(r=se());let i=OA[t];return af(t,e,r,i,n)};async function uf(t,e,r){let n=se(),i=OA[t];return ko(t,e,n,i,r)}var cf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([vo(this.source),vo(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},IA=cf;var RA=j(require("node-fetch"));var Bo=Lr.removeKeyNumbering;function zn(t){return t==null||t===""}var dr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Bo(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>zn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(zn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${E} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(zn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function p(f,g,E){let y="";for(let[O,S]of Object.entries(f)){O=Bo(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let L=g(O,S);if(L!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(zn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>zn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Ct(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await xA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await xA(n,i,r);throw s}}};async function xA(t,e,r){let n=await(0,RA.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 wA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=dr.maxLimit;n.limit&&s.length>n.limit-dr.maxLimit&&(o=n.limit-s.length);let a=new dr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<dr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await wA(t,e,r,c)}async function cN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,dr.maxLimit);let s=new dr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function lN(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 wA(t,e,r,n)}}var lf={};v(lf,{createUserIndex:()=>dN});async function dN(){let t=se(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function bA(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 pN(t){return bA(t,409)}var CA=j(require("fs/promises")),fN=require("sanitize-s3-objectkey"),NA=(0,vA.promisify)(Go.default.pipeline),mN={bucketCreationPromises:{}},gf="/files/signed",qr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},hN=[qr.html,qr.css,qr.js,qr.json];function Pe(t){return fN(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 dc.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=mN.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 gN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await CA.default.open(r)).createReadStream():s,c=Pt(),l=await $o(c,t);if(o&&l.created){let g=nc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?qr[a.toLowerCase()]:qr.txt),p={Bucket:Ke(t),Key:Pe(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new df.Upload({client:c,params:p}).done()}async function PA({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=nc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?qr[o.toLowerCase()]:qr.txt);let l=Ke(t),d=Pe(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new df.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function UA(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(hN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Go.default.Readable.fromWeb(s)}}async function LA(t,e){let r=Pt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(t),Prefix:Pe(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Qr(t,e,r=3600){let n=Pt({presigning:!0}),i={Bucket:Ke(t),Key:Pe(e)},s=await(0,DA.getSignedUrl)(n,new dc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${gf}${a}${u}`}else return s}async function yN(t,e){t=Ke(t),e=Pe(e);let r=await UA(t,e),n=(0,Wr.join)(Yn(),(0,hf.v4)());return r instanceof Go.default.Readable?r.pipe(pr.default.createWriteStream(n)):pr.default.writeFileSync(n,r),n}async function EN(t,e){let r=(0,Wr.join)(Yn(),(0,hf.v4)());pr.default.mkdirSync(r);let n=await LA(t,e),i=await Promise.all(n.map(a=>ic(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,Wr.join)(r,...d);l.length>1&&!pr.default.existsSync(m)&&pr.default.mkdirSync(m,{recursive:!0});let p=pr.default.createWriteStream((0,Wr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",f),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function TN(t,e){let r=Pt();await $o(r,t);let n={Bucket:t,Key:Pe(e)};return r.deleteObject(n)}async function AN(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 MA(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(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s)).Deleted?.length===1e3)return MA(t,e)}async function yf(t,e,r){t=Ke(t);let n=[],i=pr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Pe((0,Wr.join)(r,s.name)),a=(0,Wr.join)(e,s.name);s.isDirectory()?n.push(yf(t,a,o)):n.push(PA({bucket:t,filename:o,stream:pr.default.createReadStream(a)}))}return await Promise.all(n),i}async function _N(t,e,r={}){e=Pe(e);let n=await(0,pf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await NA(n.body,mf.default.createUnzip(),ff.default.extract(e))}async function SN(t,e,r){e=Ke(e),r=Pe(r);let n=await(0,pf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Wr.join)(Yn(),r);return await NA(n.body,mf.default.createUnzip(),ff.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await yf(e,i,r),i}async function ic(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 ON(t,e){t=Ke(t),e=Pe(e);let r=Pt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function zp(t){let e=t.split("?")[0],r=new RegExp(`^${gf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var kA=j(require("aws-cloudfront-sign")),pc;function IN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return pc||(pc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),pc)}var xN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:IN(),expireTime:new Date().getTime()+1e3*60*60*24}),is=t=>{let e=Ef(t);return kA.getSignedUrl(e,xN())},Ef=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var FA=j(require("querystring"));function BA(t){return`${Pe(t)}/budibase-client.js`}async function RN(t,e){let r=BA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Ef(r)):await Qr(h.APPS_BUCKET_NAME,r)}function wN(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ge&&(n.tenantId=r),`/api/assets/client?${FA.default.encode(n)}`}async function bN(t){return h.CLOUDFRONT_CDN?is(t):await Qr(h.APPS_BUCKET_NAME,t)}var DN=async(t,e,r)=>{let n=GA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),is(n)):await Qr(h.GLOBAL_BUCKET_NAME,n)},GA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function vN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await CN(e),n=await NN(e);return{...e,jsUrl:r,iconUrl:n}}))}async function CN(t){let e=VA(t);return $A(e)}async function NN(t){let e=qA(t);if(e)return $A(e)}async function $A(t){return h.CLOUDFRONT_CDN?is(t):await Qr(h.PLUGIN_BUCKET_NAME,t)}function VA(t){return WA(t,"plugin.min.js")}function qA(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return WA(t,e)}function WA(t,e){return`${QA(t.name)}/${e}`}function QA(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var YA="budibase.log",KA="budibase-logs-history.txt",zA=_f.default.join(Yn(),"systemlogs");function jA(t){return _f.default.join(zA,t)}function JA(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 Sf(){let t=JA(h.ROLLING_LOG_MAX_SIZE);return HA.createStream(YA,{size:t?.size,path:zA,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:KA,initialRotation:!1})}function PN(){let t=[],e=jA(KA);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(jA(YA))),Buffer.concat(t)}function UN(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function LN(t){return t instanceof Error}function MN(t){return typeof t=="string"}var jr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,ZA.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Sf(),level:t}),jr=r.length?(0,fc.default)(e,fc.default.multistream(r)):(0,fc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{MN(E)&&(d=`${d} ${E}`.trimStart()),UN(E)&&l.push(E),LN(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Kp()};let f=If.default.scope().active();f&&If.default.inject(f.context(),XA.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let O=0;O<l.length;O++){let S=l[O],L=S._logKey;L?(delete S._logKey,g[L]=S):(E[y]=S,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);jr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);jr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);jr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);jr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),jr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);jr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ne()}catch{}return u},o=()=>{let u;try{u=Vp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var mc=jr;var kN=["AccountError"];function FN(t){return t&&t.suppressAlert}function Jn(t,e){e&&kN.includes(e.name)&&FN(e)||console.error(`bb-alert: ${t}`,e)}function BN(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Jn(t,n)}function ss(t,e){console.warn(`bb-warn: ${t}`,e)}var jo={};v(jo,{cleanup:()=>GN,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 GN(){for(let t of qo)clearInterval(t);qo=[]}var Rf;if(h.MOCK_REDIS)try{Rf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var $N=2e3,VN=5e3,t_=h.REDIS_CLUSTERED,Df=0,Ho=!1,wf={},Zn=!1;h.MOCK_REDIS&&(Zn=!0);function vf(t){return wf[t]}function xf(t,e){Ho||(Ho=!0,clearTimeout(t),Zn=!1,Jn("Redis connection failed",e),setTimeout(()=>{Cf()},$N))}function Cf(t=Df){let e=h.MOCK_REDIS&&Rf?Rf:e_.default,r;Ho=!1;let n=vf(t);if(n&&Zn)return;h.MOCK_REDIS&&(wf[t]=new e(es())),r=setTimeout(()=>{Zn||xf(r,"Did not successfully connect in timeout")},VN),n&&n.disconnect();let{host:i,port:s}=tc(),o=es();t_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||xf(r,a)}),n.on("error",a=>{xf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),Zn=!0}),wf[t]=n}function qN(t=Df){return new Promise(e=>{if(vf(t)==null)Cf();else if(Zn){e("");return}let r=Wo(()=>{Zn&&(Qo(r),e(""))},500)})}function WN(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:Yp(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var bf=class{constructor(e,r=null){this._db=e,this._select=r||Df}getClient(){return vf(this._select)}async init(){return Ho=!1,Cf(this._select),await qN(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Ho=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${Xi}${e}`;let n;return t_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),WN(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ye(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ye(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ye(r,e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}}async bulkGet(e){let r=this._db;if(e.length===0)return{};let n=e.map(s=>Ye(r,s)),i=await this.getClient().mget(n);if(Array.isArray(i)){let s={},o=0;for(let a of i){if(a){let u;try{u=JSON.parse(a)}catch{u=a}s[e[o]]=u}o++}return s}else throw new Error(`Invalid response: ${i}`)}async store(e,r,n=null){let i=this._db;typeof r=="object"&&(r=JSON.stringify(r));let s=Ye(i,e);await this.getClient().set(s,r),n&&await this.getClient().expire(s,n)}async bulkStore(e,r=null){let n=this.getClient(),i=Object.entries(e).reduce((o,[a,u])=>(o[Ye(this._db,a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=n.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()}async getTTL(e){let r=this._db,n=Ye(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ye(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ye(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ye(r,n)))}async clear(){let e=await this.scan();await Promise.all(e.map(r=>this.delete(r.key)))}async increment(e){let r=await this.getClient().incr(Ye(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
|
|
34
34
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
35
35
|
redis.call('DEL', KEYS[1])
|
|
36
36
|
end
|
|
37
|
-
`;await n.eval(i,1,Ye(this._db,e),r)}},Ge=bf;var Yo,Ko,zo,Jo,Xn,Zo,Xo,ea,ta,Nf;async function Ut(){Yo=await new Ge("users").init(),Ko=await new Ge("session").init(),zo=await new Ge("appMetadata").init(),Jo=await new Ge("data_cache").init(),Zo=await new Ge("locks").init(),Xn=await new Ge("writeThrough").init(),ea=await new Ge("invitation").init(),ta=await new Ge("pwReset").init(),Xo=await new Ge("socket_io",1).init(),Nf=await new Ge("docWriteThrough").init()}async function r_(){Yo&&await Yo.finish(),Ko&&await Ko.finish(),zo&&await zo.finish(),Jo&&await Jo.finish(),Xn&&await Xn.finish(),Zo&&await Zo.finish(),ea&&await ea.finish(),ta&&await ta.finish(),Xo&&await Xo.finish(),Nf&&await Nf.finish()}process.on("exit",async()=>{await r_()});async function ra(){return Yo||await Ut(),Yo}async function Hr(){return Ko||await Ut(),Ko}async function ac(){return zo||await Ut(),zo}async function Pf(){return Jo||await Ut(),Jo}async function Uf(){return Xn||await Ut(),Xn}async function Lf(){return Zo||await Ut(),Zo}async function WN(){return Xo||await Ut(),Xo}async function ei(){return ea||await Ut(),ea}async function na(){return ta||await Ut(),ta}async function QN(){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 Pf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?jt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[jt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(jt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?jt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var os=new ti,fr=(a=>(a.CHECKLIST="checklist",a.INSTALLATION="installation",a.ANALYTICS_ENABLED="analyticsEnabled",a.UNIQUE_TENANT_ID="uniqueTenantId",a.EVENTS="events",a.BACKFILL_METADATA="backfillMetadata",a.EVENTS_RATE_LIMIT="eventsRateLimit",a))(fr||{}),ri=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ri||{}),gc=(...t)=>os.keys(...t),ni=(...t)=>os.get(...t),mr=(...t)=>os.store(...t),ia=(...t)=>os.delete(...t),Kr=(...t)=>os.withCache(...t),as=(...t)=>os.bustCache(...t);var nn={};v(nn,{getUser:()=>Da,getUsers:()=>lM,invalidateUser:()=>va});var aa={};v(aa,{addTenantToUrl:()=>jN,getTenantDB:()=>Mf,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>HN});function Mf(t){return He(ur(t))}function jN(t){let e=Q();if(Gr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var HN=(t,e)=>{let r;return e?r=e.tenantId||ge:r=Q(),(zi(t)||ge)===r},YN=Object.values(Rs),oa=(t,e)=>{if(!Gr())return ge;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=YN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(Gp()).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:()=>Hf,users:()=>Lt});var Lt={};v(Lt,{addSsoUser:()=>i_,addUser:()=>eP,getUserDoc:()=>n_,lookupTenantId:()=>KN,removeUser:()=>tP,updateUserDoc:()=>zN});function ut(){return He(Se.PLATFORM_INFO.name)}async function KN(t){return h.MULTI_TENANCY?(await n_(t)).tenantId:ge}async function n_(t){return ut().get(t)}async function zN(t){await ut().put(t)}function JN(t,e){return{_id:t,tenantId:e}}function ZN(t,e,r){return{_id:e,userId:t,tenantId:r}}function XN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function kf(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 i_(t,e,r,n){return kf(t,()=>XN(t,e,r,n))}async function eP(t,e,r,n){let i=[kf(e,()=>JN(e,t)),kf(r,()=>ZN(e,r,t))];n&&i.push(i_(n,r,e,t)),await Promise.all(i)}async function tP(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 Hf={};v(Hf,{addTenant:()=>SP,exists:()=>TP,getTenantIds:()=>EP,removeTenant:()=>OP,tenacyLockOptions:()=>jf});var oi={};v(oi,{AUTO_EXTEND_POLLING_MS:()=>f_,doWithLock:()=>ds,newRedlock:()=>si});var p_=j(require("redlock"));var cs={};v(cs,{Duration:()=>Re,DurationType:()=>Wf,clearCookie:()=>zr,compare:()=>Gf,getAppIdFromCtx:()=>cP,getCookie:()=>ii,hasCircularStructure:()=>pP,hash:()=>Bf,isAudited:()=>Vf,isClient:()=>lP,isPublicApiRequest:()=>uP,isServingApp:()=>sP,isServingBuilder:()=>oP,isServingBuilderPreview:()=>aP,isValidInternalAPIKey:()=>ua,newid:()=>Oe,openJwt:()=>Ec,resolveAppUrl:()=>c_,setCookie:()=>l_,time:()=>mP,timeout:()=>dP,urlHasProtocol:()=>fP,validEmail:()=>qf});var Ff=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),rP=h.SALT_ROUNDS||10;async function Bf(t){let e=await Ff.genSalt(rP);return Ff.hash(t,e)}async function Gf(t,e){return Ff.compare(t,e)}var yc=j(require("jsonwebtoken")),$f="app"+C,o_="/app/",a_="/app/preview",nP="/builder",u_=`${nP}/app/`,iP="/api/public/v";function us(t){return t&&t.startsWith($f)?t:void 0}async function c_(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=oa(t,{includeStrategies:["subdomain"]}));let s=(await Be(n,()=>Mo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function sP(t){return t.path.startsWith(`/${$f}`)?!0:t.path.startsWith(o_)}function oP(t){return t.path.startsWith(u_)}function aP(t){return t.path.startsWith(a_)}function uP(t){return t.path.startsWith(iP)}async function cP(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=s_(t.path);!r&&n&&(r=us(n)),!r&&t.query?.appId&&(r=us(t.query?.appId));let i=t.path.startsWith(a_),s=t.path.startsWith(o_)&&!i;!r&&s&&(r=us(await c_(t)));let o=t.request.headers.referer;if(!r&&o?.includes(u_)){let a=s_(t.request.headers.referer);r=us(a)}return r}function s_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith($f))}function Ec(t){if(t)try{return yc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return yc.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 Ec(r)}function l_(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=yc.default.sign(e,h.JWT_SECRET));let i={expires:Wu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function zr(t,e){l_(t,null,e)}function lP(t){return t.headers["x-budibase-type"]==="client"}function dP(t){return new Promise(e=>setTimeout(e,t))}function Vf(t){return!!Ih[t]}function pP(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 fP(t){return!!t.match(/^.+:\/\/.+$/)}function qf(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}var Wf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Wf||{}),Tc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},Re=class t{constructor(e){this.ms=e}to(e){return this.ms/Tc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Tc[e]/Tc[r]}static from(e,r){return new t(r*Tc[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 mP(t){let e=performance.now();return[await t(),Re.fromMilliseconds(performance.now()-e)]}async function hP(t,e){if(t==="custom")return si(e);switch(t){case"try_once":return si(ls.TRY_ONCE);case"try_twice":return si(ls.TRY_TWICE);case"default":return si(ls.DEFAULT);case"delay_500":return si(ls.DELAY_500);case"auto_extend":return si(ls.AUTO_EXTEND);default:throw wi.unreachable(t)}}var ls={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function si(t={}){let e={...ls.DEFAULT,...t},n=(await Lf()).getClient();return new p_.default([n],e)}function gP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var f_=Re.fromSeconds(10).toMs();async function ds(t,e){let r=await hP(t.type,t.customOptions),n,i;try{let s=gP(t),o=t.type==="auto_extend"?f_:t.ttl;if(n=await r.lock(s,o),t.type==="auto_extend"){let u=()=>{i=setTimeout(async()=>{n=await n.extend(o,()=>t.onExtend&&t.onExtend()),u()},o/2)};u()}return{executed:!0,result:await e()}}catch(s){if(s.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw s}else throw s}finally{clearTimeout(i),await n?.unlock()}}var Qf=Se.PLATFORM_INFO.docs.tenants,jf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function EP(){return(await Ac()).tenantIds}async function Ac(){let t=ut(),e;try{e=await t.get(Qf)}catch(r){if(r.status===404)e=await _P();else throw r}return e}async function TP(t){return(await Ac()).tenantIds.indexOf(t)!==-1}function AP(){return{_id:Qf,tenantIds:[]}}async function _P(){let t=ut(),e=AP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Qf);throw r}return e}async function SP(t){let e=ut();await ds(jf,async()=>{let r=await Ac();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function OP(t){try{await ds(jf,async()=>{let e=ut(),r=await Ac();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:()=>IP});var m_=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,m_.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 Yf=new la(h.ACCOUNT_PORTAL_URL),Kf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(Kf)return;let e={email:t},r=await Yf.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(Kf)return;let e={tenantId:t},r=await Yf.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]},IP=async()=>{if(Kf)return;let t=await Yf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var As={};v(As,{UserDB:()=>Yt,addAppBuilder:()=>oM,bulkGetGlobalUsersById:()=>jc,bulkUpdateGlobalUsers:()=>Ra,cleanseUserObject:()=>Cm,doesUserExist:()=>tM,getAccountHolderFromUsers:()=>Nc,getAllUserIds:()=>X0,getAllUsers:()=>eM,getById:()=>pi,getCreatorCount:()=>iM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>E_,getExistingTenantUsers:()=>y_,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>gS,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>_c,getUserCount:()=>nM,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>w_,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>R_,isBuilder:()=>gs,isCreator:()=>Ht,isGlobalBuilder:()=>x_,paginatedUsers:()=>ES,removeAppBuilder:()=>aM,removePortalUserPermissions:()=>sM,searchExistingEmails:()=>Zf,searchGlobalUsersByApp:()=>Hc,searchGlobalUsersByAppAccess:()=>vm,searchGlobalUsersByEmail:()=>yS,validateUniqueUser:()=>Cc});var um={};v(um,{getAccountHolderFromUsers:()=>Nc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>w_,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>R_,isBuilder:()=>gs,isCreator:()=>Ht,isGlobalBuilder:()=>x_,validateUniqueUser:()=>Cc});var Jf={};v(Jf,{createCode:()=>RP,deleteCode:()=>bP,getCode:()=>wP,getExistingInvites:()=>zf,getInviteCodes:()=>g_,updateCode:()=>xP});var h_=Re.fromDays(7).toSeconds();async function xP(t,e){await(await ei()).store(t,e,h_)}async function RP(t,e){let r=Oe();return await(await ei()).store(r,{email:t,info:e},h_),r}async function wP(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 bP(t){await(await ei()).delete(t)}async function g_(){let r=(await(await ei()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function zf(t){return(await g_()).filter(e=>t.includes(e.email))}async function Zf(t){let e=[],r=await y_(t);e.push(...r.map(o=>o.email));let n=await E_(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await zf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function _c(t){return await Fo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await _c(t))[0]??null}async function y_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await lr("by_email2",r,void 0,n)}async function E_(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 bc={};v(bc,{BadRequestError:()=>Oc,BudibaseError:()=>ms,EmailUnavailableError:()=>hr,ErrorCode:()=>Rc,FeatureDisabledError:()=>xc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Sc,UsageLimitError:()=>Ic,getPublicError:()=>wc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},Rc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Rc||{}),wc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends ms{constructor(r,n,i="http"){super(r,i);this.status=n}},Sc=class extends ct{constructor(e){super(e,404)}},Oc=class extends ct{constructor(e){super(e,400)}},Ic=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},xc=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var am={};v(am,{AccessController:()=>tm,BUILTIN_ROLE_IDS:()=>ma,Role:()=>Zr,RoleHierarchyTraversal:()=>Dc,RoleIDVersion:()=>rm,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>S_,externalRole:()=>UP,findRole:()=>fa,getAllRoleIds:()=>FP,getAllRoles:()=>om,getBuiltinRole:()=>A_,getBuiltinRoles:()=>im,getDBRoleID:()=>O_,getExternalRoleID:()=>Xr,getExternalRoleIDs:()=>I_,getRole:()=>LP,getUserRoleHierarchy:()=>sm,getUserRoleIdHierarchy:()=>__,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>PP,prefixRoleIDNoBuiltin:()=>em,roleIDsAreEqual:()=>Tt,roleToNumber:()=>NP,saveRoles:()=>MP,validInherits:()=>CP});var Xf=j(require("semver"));var vc=j(require("lodash/fp/cloneDeep"));var T_=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ma,BUILDER:"BUILDER"},rm={UUID:void 0,NAME:"name"};function vP(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=rm.NAME}addInheritance(e){return e&&typeof e=="string"?e=em(e):e&&Array.isArray(e)&&(e=e.map(em)),this.inherits=e,this}},Dc=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=fa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!vP(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,T_.uniqBy)(i,s=>s._id)}},nm={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 im(){return(0,vc.default)(nm)}function ui(t){return Object.values(ma).includes(t)}function em(t){return ui(t)?t:cr(t)}function A_(t){let e=Object.values(nm).find(r=>t.includes(r._id));if(e)return(0,vc.default)(e)}function CP(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=im(),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 NP(t){if(ui(t))return pa(t);let e=await sm(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 PP(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return cr(t)===cr(e)}function UP(t){let e;return t._id&&(e=Xr(t._id)),{...t,_id:e,inherits:I_(t.inherits,t.version)}}function fa(t,e,r){let n=A_(t);n||(t=cr(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,vc.default)(nm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Xr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function LP(t,e){let r=Ji(),n=[];if(!ui(t)){let i=await r.tryGet(O_(t));i&&n.push(i)}return fa(t,n,e)}async function MP(t){await Ji().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function kP(t,e){let r=await om();if(Tt(t,fe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new Dc(r,e).walk(n)),i}async function __(t){return(await sm(t)).map(r=>r._id)}async function sm(t,e){return kP(t,e)}function S_(t,e){if(t&&!Array.isArray(t[e])){let r=t[e];t[e]=[r],r==="write"&&t[e].push("read")}return t}async function FP(t){return(await om(t)).map(r=>r._id)}async function om(t){if(t)return at(t,e);{let r;try{r=Ji()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(lc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Xr(a._id,a.version)));let i=im(),s=[];!r||await BP(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Xr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Xr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=S_(o.permissions,a);return n}}async function BP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Xf.default.valid(r)?!0:!Xf.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var tm=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 __(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 O_(t){return t?.startsWith("role")?t:cr(t)}function Xr(t,e){if(t.startsWith(`role${C}`)&&(ui(t)||e===rm.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function I_(t,e){return t&&(typeof t=="string"?Xr(t,e):t.map(r=>Xr(r,e)))}var gs=st.users.isBuilder,en=st.users.isAdmin,x_=st.users.isGlobalBuilder,R_=st.users.isAdminOrBuilder,tn=st.users.hasAdminPermissions,At=st.users.hasBuilderPermissions,w_=st.users.hasAppBuilderPermissions;async function Ht(t){let e=st.users.isCreator(t);return!e&&t?await GP(t):e}async function GP(t){let e=t?.userGroups||[];if(e.length>0){let r=se(),n=[];for(let i of e)try{let s=await r.get(i);n.push(s)}catch(s){if(s.error!=="not_found")throw s}return n.some(i=>Object.values(i.roles||{}).includes(ma.ADMIN))}return!1}async function Cc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Jr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Nc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await fs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ts={};v(Ts,{account:()=>W_,ai:()=>K_,analytics:()=>Uc,app:()=>Q_,auditLog:()=>lS,auth:()=>qc,automation:()=>j_,backfill:()=>sS,backfillCache:()=>$c,backup:()=>uS,datasource:()=>H_,email:()=>Y_,environmentVariable:()=>cS,group:()=>oS,identification:()=>Mt,initAsyncEvents:()=>F0,installation:()=>Aa,layout:()=>J_,license:()=>z_,org:()=>Z_,plugin:()=>aS,processors:()=>fm,publishEvent:()=>A,query:()=>X_,role:()=>xa,rowAction:()=>dS,rows:()=>tS,screen:()=>eS,serve:()=>nS,shutdown:()=>B0,table:()=>rS,user:()=>$e,view:()=>iS});var fm={};v(fm,{analyticsProcessor:()=>B_,init:()=>nU,processors:()=>gr});var Uc={};v(Uc,{enabled:()=>Pc});var Pc=async()=>Lc();var N_=require("posthog-node");var $P=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",VP=t=>t==="served:app:preview"||t==="served:app";var D_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},v_=async t=>{if(!$P(t))return!1;let e=await qP(t);if(e){let r=new Date(e.timestamp);switch(D_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await b_(t,{timestamp:Date.now()}),!1):!0}}else return await b_(t,{timestamp:Date.now()}),!1},C_=t=>{let e=`eventsRateLimit:${t}`;return VP(t)&&(e=e+":"+Ne()),e},qP=async t=>{let e=C_(t);return await ni(e)},b_=async(t,e)=>{let r=C_(t),n=D_[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var QP=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ha=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new N_.PostHog(e)}async processEvent(e,r,n,i){if(QP.includes(e)||await v_(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 P_=ha;var jP=["installation:version:upgraded","installation:version:downgraded"],HP=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new P_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!jP.includes(e)&&!await Pc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!HP.includes(e.type)&&!await Pc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var cm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){cm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){cm||console.log("[audit] identified",e)}async identifyGroup(e){cm||console.log("[audit] group identified",e)}shutdown(){}};var pm={};v(pm,{InMemoryQueue:()=>Mc,JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>eU});var U_=j(require("events"));var L_=require("lodash");function YP(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 Mc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new U_.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{let i=(0,L_.cloneDeep)(n);if(!i.manualTrigger&&i.opts?.repeat!=null)return;let s=r(i);async function o(u){try{await u}catch{await Qt.wait(50),await o(r(i))}}if(s.then!=null)try{await o(s),this._emitter.emit("completed",i)}catch(u){console.error(u)}this._runCount++;let a=i.opts?.jobId?.toString();a&&i.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>YP(e))}},M_=Mc;var lm=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 k_(t,e,r){JP(t,e),r&&KP(t,r)}function KP(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 zP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function JP(t,e){let r=zP[e];function n(i,s){let o=i.data.event?.appId;if(o)return $p(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 ZP=Re.fromMinutes(5).toMs(),XP=Re.fromSeconds(30).toMs(),dm=Re.fromSeconds(60).toMs(),Ea=[],kc;async function F_(){for(let t of Ea)await t.clean(dm,"completed"),await t.clean(dm,"failed")}function ci(t,e={}){let n={redis:es(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:ZP,lockRenewTime:XP}};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 lm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new M_(t,n):i=new lm.default(t,n),k_(i,t,e?.removeStalledCb),Ea.push(i),!kc&&!h.isTest()&&(kc=Wo(F_,dm),F_().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function eU(){if(kc&&Qo(kc),Ea.length){for(let t of Ea)await t.close();Ea=[]}console.log("Queues shutdown")}var Es=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ci("auditLogQueue"),t.auditLogQueue.process(async n=>Be(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:s})}))}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Vf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ne(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Ta=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}shutdown(){for(let e of this.processors)e.shutdown&&e.shutdown()}};var B_=new ga,tU=new ya,rU=new Es;function nU(t){return Es.init(t)}var gr=new Ta([B_,tU,rU]);var Fc={};v(Fc,{checkInstallVersion:()=>oU,getInstall:()=>_a,getInstallFromDB:()=>hm});var mm=j(require("semver"));var _a=async()=>Kr("installation",86400,hm,{useTenancy:!1});async function iU(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 hm();throw r}}var hm=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 iU(t);else throw r}return e}),sU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await _a();r.version=t,await e.put(r),await as("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},oU=async()=>{let t=await _a(),e=t.version,r=h.VERSION;try{if(e!==r){let n=mm.default.gt(r,e),i=mm.default.lt(r,e);await sU(r)&&(await Ro({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Mt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Jn(`Invalid version "${r}" - is it semver?`):Jn("Failed to retrieve version",n)}};var aU=async()=>{let t=Op(),e=Ia(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Sa();return{id:G_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Bc(Q()),s=Sa();return{id:G_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Bc(Q()),s=await li(),o=n.account,a;return o?a=o.hosting:a=Sa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},uU=async(t,e)=>{let r=t,n="installation",i=Sa(),s=h.VERSION,o=Ia(),a={id:r,type:n,hosting:i,version:s,environment:o};await gm(a,e),await Oa({...a,id:`$${n}_${r}`},e)},cU=async(t,e,r)=>{let n=await Bc(t),i="tenant",s=await li(),o=Ia(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await gm(a,r),await Oa({...a,id:`$${i}_${n}`},r)},lU=async(t,e,r)=>{let n=t._id,i=await Bc(t.tenantId),s="user",o=At(t),a=tn(t),u;qa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,d=!!e&&l&&e.verified,m=await li(),p=e?e.hosting:Sa(),f=Ia();await Oa({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},dU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await li(),c=Ia();if($a(t)){let d=await kt(t.email);d?._id&&(e=d._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await gr.identify(t,e)},gm=async(t,e)=>{await gr.identifyGroup(t,e)},Ia=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Sa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>pU()?"account-portal":(await _a()).installId,Bc=async t=>h.SELF_HOSTED?$_(t):t,$_=async t=>Be(t,()=>Kr("uniqueTenantId",86400,async()=>{let e=se(),r=await Gc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),pU=()=>h.SERVICE==="account-portal",G_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Mt={getCurrentIdentity:aU,identifyInstallationGroup:uU,identifyTenantGroup:cU,identifyUser:lU,identifyAccount:dU,identify:Oa,identifyGroup:gm,getInstallationId:li,getUniqueTenantId:$_};var $c={};v($c,{end:()=>mU,isAlreadySent:()=>Tm,isBackfillingEvent:()=>Em,recordEvent:()=>ym,start:()=>fU});var fU=async t=>gU({eventWhitelist:t}),ym=async(t,e)=>{let r=Am(t,e);await mr(r,e,void 0,{useTenancy:!1})},mU=async()=>{await yU(),await EU()},hU=async()=>ni("backfillMetadata"),gU=async t=>mr("backfillMetadata",t),yU=async()=>{await ia("backfillMetadata")},EU=async()=>{let t=Am(),e=await gc(t);for(let r of e)await ia(r,{useTenancy:!1})},Em=async t=>{let r=(await hU())?.eventWhitelist;return!!(r&&r.includes(t))},Tm=async(t,e)=>{let r=Am(t,e);return!!await ni(r,{useTenancy:!1})},TU={"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}`},Am=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=TU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var yr;function Vc(){yr=ci("systemEventQueue")}async function V_(){yr&&await yr.close()}async function q_(t){yr||Vc();let{event:e,identity:r}=t;Oh.indexOf(e)!==-1&&r.tenantId&&await yr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Mt.getCurrentIdentity();if(!(n?!1:await Em(t))){await q_({event:t,identity:i,properties:e,timestamp:r}),await gr.processEvent(t,i,e,r);return}await Tm(t,e)||(await gr.processEvent(t,i,e,r),await ym(t,e))};async function AU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function _U(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function SU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var W_={created:AU,deleted:_U,verified:SU};var OU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function IU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function xU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function RU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function wU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function bU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function DU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function vU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function CU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function NU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function PU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function UU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var Q_={created:OU,updated:IU,deleted:xU,published:RU,unpublished:wU,fileImported:bU,duplicated:DU,templateImported:vU,versionUpdated:CU,versionReverted:NU,reverted:PU,exported:UU};async function LU(t,e){let n={userId:(await Mt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function MU(t){let r={userId:(await Mt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function kU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function FU(t){let e={type:t};await A("auth:sso:updated",e)}async function BU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function GU(t){let e={type:t};await A("auth:sso:deactivated",e)}var qc={login:LU,logout:MU,SSOCreated:kU,SSOUpdated:FU,SSOActivated:BU,SSODeactivated:GU};async function $U(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 VU(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 qU(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 WU(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 QU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function jU(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 HU(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 j_={created:$U,triggerUpdated:VU,deleted:qU,tested:WU,run:QU,stepCreated:jU,stepDeleted:HU};function _m(t){return!Object.values(Fa).includes(t.source)}async function YU(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:created",r,e)}async function KU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:updated",e)}async function zU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:deleted",e)}var H_={created:YU,updated:KU,deleted:zU};async function JU(t){let e={};await A("email:smtp:created",e,t)}async function ZU(){let t={};await A("email:smtp:updated",t)}var Y_={SMTPCreated:JU,SMTPUpdated:ZU};async function XU(t){let e={};await A("ai:config:created",e,t)}async function eL(){let t={};await A("ai:config:updated",t)}var K_={AIConfigCreated:XU,AIConfigUpdated:eL};async function tL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function rL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function nL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function iL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function sL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function oL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function aL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var z_={planChanged:tL,activated:rL,checkoutOpened:nL,checkoutSuccess:iL,portalOpened:sL,paymentFailed:oL,paymentRecovered:aL};async function uL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function cL(t){let e={layoutId:t};await A("layout:deleted",e)}var J_={created:uL,deleted:cL};async function lL(t){let e={};await A("org:info:name:updated",e,t)}async function dL(t){let e={};await A("org:info:logo:updated",e,t)}async function pL(t){let e={};await A("org:platformurl:updated",e,t)}async function fL(){let t={};await A("analytics:opt:out",t)}async function mL(){let t={};await A("analytics:opt:out",t)}var Z_={nameUpdated:lL,logoUpdated:dL,platformURLUpdated:pL,analyticsOptOut:fL,analyticsOptIn:mL};var hL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},gL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},yL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},EL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},TL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},AL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},X_={created:hL,updated:gL,deleted:yL,imported:EL,run:TL,previewed:AL};async function _L(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function SL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function OL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function IL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function xL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var xa={created:_L,updated:SL,deleted:OL,assigned:IL,unassigned:xL};async function RL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}async function wL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var eS={created:RL,deleted:wL};var bL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},DL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},tS={created:bL,imported:DL};async function vL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function CL(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 NL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function PL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function UL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var rS={created:vL,updated:CL,deleted:NL,exported:PL,imported:UL};async function LL(t){let e={timezone:t};await A("served:builder",e)}async function ML(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function kL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var nS={servedBuilder:LL,servedApp:ML,servedAppPreview:kL};async function FL(t,e){let r={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:created",r,e)}async function BL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:updated",e)}async function GL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:deleted",e)}async function $L(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function VL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function qL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function WL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function QL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function jL(t){let e={audited:{email:t}};await A("user:invited",e)}async function HL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function YL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function KL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function zL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function JL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function ZL(t){let e={users:t};await A("user:data:collaboration",e)}var $e={created:FL,updated:BL,deleted:GL,permissionAdminAssigned:VL,permissionAdminRemoved:qL,permissionBuilderAssigned:WL,permissionBuilderRemoved:QL,onboardingComplete:$L,invited:jL,inviteAccepted:HL,passwordForceReset:YL,passwordUpdated:KL,passwordResetRequested:zL,passwordReset:JL,dataCollaboration:ZL};async function XL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function e0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function t0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function r0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function n0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function i0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function s0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function o0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function a0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function u0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function c0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var iS={created:XL,updated:e0,deleted:t0,exported:r0,filterCreated:n0,filterUpdated:i0,filterDeleted:s0,calculationCreated:o0,calculationUpdated:a0,calculationDeleted:u0,viewJoinCreated:c0};async function l0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function d0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function p0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function f0(){let t={};await A("installation:firstStartup",t)}var Aa={versionChecked:l0,upgraded:d0,downgraded:p0,firstStartup:f0};var _s=!h.SELF_HOSTED&&!h.isDev();async function m0(t){_s||await A("app:backfill:succeeded",t)}async function h0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function g0(t){_s||await A("tenant:backfill:succeeded",t)}async function y0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function E0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function T0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var sS={appSucceeded:m0,appFailed:h0,tenantSucceeded:g0,tenantFailed:y0,installationSucceeded:E0,installationFailed:T0};async function A0(t,e){let r={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function _0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:updated",e)}async function S0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function O0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function I0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function x0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function R0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var oS={created:A0,updated:_0,deleted:S0,usersAdded:O0,usersDeleted:I0,createdOnboarding:x0,permissionsEdited:R0};async function w0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function b0(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 D0(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 aS={init:w0,imported:b0,deleted:D0};async function v0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function C0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var uS={appBackupRestored:v0,appBackupTriggered:C0};async function N0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function P0(t){let e={name:t};await A("environment_variable:deleted",e)}async function U0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var cS={created:N0,deleted:P0,upgradePanelOpened:U0};async function L0(t){let e={filters:t};await A("audit_log:filtered",e)}async function M0(t){let e={filters:t};await A("audit_log:downloaded",e)}var lS={filtered:L0,downloaded:M0};async function k0(t,e){await A("row_action:created",t,e)}var dS={created:k0};function F0(){}var B0=()=>{gr.shutdown(),console.log("Events shutdown")};var Sm=async t=>{await $e.deleted(t),At(t)&&await $e.permissionBuilderRemoved(t),tn(t)&&await $e.permissionAdminRemoved(t)},G0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},$0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},V0=async(t,e)=>{let r=t.roles,n=e?.roles;await G0(t,r,n),await $0(t,r,n)},Om=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Mt.identifyUser(t,n),e?(await $e.updated(t),W0(t,e)&&await $e.permissionBuilderRemoved(t),j0(t,e)&&await $e.permissionAdminRemoved(t),H0(t,e)&&await $e.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await $e.passwordForceReset(t),t.password!==e.password&&await $e.passwordUpdated(t)):await $e.created(t),q0(t,e)&&await $e.permissionBuilderAssigned(t),Q0(t,e)&&await $e.permissionAdminAssigned(t),await V0(t,e)},q0=(t,e)=>pS(t,e,At),W0=(t,e)=>fS(t,e,At),Q0=(t,e)=>pS(t,e,tn),j0=(t,e)=>fS(t,e,tn),H0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",pS=(t,e,r)=>!(!r(t)||e&&r(e)),fS=(t,e,r)=>!(r(t)||!e||!r(e));var Qc={};v(Qc,{createASession:()=>K0,endSession:()=>z0,getSession:()=>xm,getSessionsForUser:()=>Wc,invalidateSessions:()=>di,updateSessionTTL:()=>Im});var mS=require("uuid");var hS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):Re.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function Wc(t){return t?(await(await Hr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function di(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Wc(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await Hr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ss(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function K0(t,e){await di(t,{reason:"creation"});let r=await Hr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,mS.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,hS),o}async function Im(t){let e=await Hr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,hS)}async function z0(t,e){await(await Hr()).delete(Ss(t,e))}async function xm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Hr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Dm={};v(Dm,{PASSWORD_MAX_LENGTH:()=>wm,PASSWORD_MIN_LENGTH:()=>Rm,validatePassword:()=>bm});var Rm=+(h.PASSWORD_MIN_LENGTH||12),wm=+(h.PASSWORD_MAX_LENGTH||512);function bm(t){return!t||t.length<Rm?{valid:!1,error:`Password invalid. Minimum ${Rm} characters.`}:t.length>wm?{valid:!1,error:`Password invalid. Maximum ${wm} characters.`}:{valid:!0}}var J0=async t=>{let e=t._id;await Lt.removeUser(t),await Sm(t),await nn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Yt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||qa(e)?!0:(r||(r=await ps(Q())),!!(r&&r.email===e.email&&Va(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new ct("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=bm(o);if(!d.valid)throw new ct(d.error,400)}u=r.hashPassword?await Bf(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||ts();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await se().allDocs(Kn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Hc(e,{})).length}}static async getUsersByAppAccess(e){return await vm(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 jc(e)}static async bulkUpdate(e){return await Ra(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=se(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await pi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await kt(s),c&&c._id!==o))throw new hr(s);let l=c?0:1,d=await Ht(c)!==await Ht(e)?1:0;return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Cc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Cm(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 Om(m,c),c&&m.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await Zf(a),c=[];for(let d of e){if(s.find(m=>m.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await Ht(d)&&o.push(d)}let l=await ps(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await Ra(d);for(let p of d)await Lt.addUser(n,p._id,p.email),await Om(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await Nc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await Ra(a),l=(await Promise.all(o.map(Ht))).filter(p=>!!p).length,d=[];for(let p of o){let g=(await da(p._id)).ssoId;g&&(await _c(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await J0(p)}await ut().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=se(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Jr(o))throw n.userId===ar()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Lt.removeUser(n),await r.remove(i,n._rev);let s=await Ht(n)?1:0;await t.quotas.removeUsers(1,s),await Sm(n),await nn.invalidateUser(i),await di(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await as("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function ba(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function jc(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=ba(n)),n}async function X0(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function eM(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ra(t){return await se().bulkDocs(t)}async function pi(t,e){let n=await se().get(t);return e?.cleanup&&(n=ba(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await lr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=ba(n)),n}async function tM(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Hc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=cc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=ba(s)),s}async function vm(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 Bp(ur(),i)).rows}function gS(t,e){if(e)return uc(ot(t),e._id)}async function yS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await lr("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=ba(o)),o}var rM=8;async function ES({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??rM,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 Hc(r,a),l=d=>gS(r,d)):e?.string?.email?(u=await yS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await jc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Kn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Lr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Kn(null,a))).rows.map(m=>m.doc),sf(u,s,{paginate:!0,property:c,getKey:l})}async function nM(){return(await uf("by_email2",{limit:0,include_docs:!1})).total_rows}async function iM(){let t=0;async function e(r){let n=await ES({bookmark:r}),i=await Promise.all(n.data.map(Ht));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function sM(t){return delete t.admin,delete t.builder,t}function Cm(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 oM(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Yt.save(t,{hashPassword:!1})}async function aM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Yt.save(t,{hashPassword:!1})}var TS=3600;async function uM(t,e){let n=await Mf(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 cM(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Da({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=uM),!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,TS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Be(e,async()=>{let o=await Yt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function lM(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 cM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,TS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ra()).delete(t)}var Lm={};v(Lm,{Writethrough:()=>Pm});var AS=1e4,Nm=null;async function Um(){if(!Nm){let t=await Uf();Nm=new ti(t)}return Nm}function Yc(t,e){return t.name+e}function _S(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function dM(t,e,r=AS){let n=await Um(),i=e._id,s;i&&(s=await n.get(Yc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;ss("Ignoring conflict in write-through cache")}})).executed||ss("Ignoring redlock conflict in write-through cache")),s=_S(a,o?null:s?.lastWrite),a._id&&await n.store(Yc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function pM(t,e){let r=await Um(),n=Yc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=_S(s),await r.store(n,i)}return i.doc}async function fM(t,e,r){let n=await Um();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Yc(t,i))}finally{await t.remove(i,r)}}var Pm=class{constructor(e,r=AS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return dM(this.db,e,r)}async get(e){return pM(this.db,e)}async remove(e,r){return fM(this.db,e,r)}};var Mm={};v(Mm,{createCode:()=>hM,getCode:()=>gM,invalidateCode:()=>yM});var mM=Re.fromHours(1).toSeconds();async function hM(t,e){let r=Oe();return await(await na()).store(r,{userId:t,info:e},mM),r}async function gM(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 yM(t){await(await na()).delete(t)}var Fm={};v(Fm,{DocWritethrough:()=>km,DocWritethroughProcessor:()=>Ca,getProcessor:()=>TM,init:()=>SS});var EM=100,Kc,Ca=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:EM}})),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)}},km=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ca.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function SS(){return Kc=new Ca().init(),Kc}function TM(){return Kc||SS()}function $m(t){return`config${C}${t}`}async function Ft(t){let e=se();try{return await e.get($m(t))}catch(r){if(r.status===404)return;throw r}}async function AM(t){return se().put(t)}async function Gc(){let t=await Ft("settings");return t||(t={_id:$m("settings"),type:"settings",config:{}}),t.config.platformUrl=await Na({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Lc({config:t.config}),t}async function Vm(){return(await Gc()).config}async function Na(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Ft("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Lc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Kr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await 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 _M(){return await Ft("google")}async function zc(){return(await _M())?.config}async function qm(){if(!h.SELF_HOSTED)return Bm();let t=await zc();return(!t||!t.activated)&&(t=Bm()),t}function Bm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function SM(){return Ft("logos_oidc")}async function OM(){return Ft("oidc")}async function IM(){let t=(await OM())?.config;return t?.configs&&t.configs[0]}async function Wm(t){let e=(await Ft("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function OS(){return Ft("smtp")}async function xM(t){let e=await OS();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 RM(){return(await Ft("scim"))?.config}async function wM(){return Ft("ai")}var Qm={};v(Qm,{BUILDER:()=>NM,BUILTIN_PERMISSIONS:()=>Jc,CREATOR:()=>PM,GLOBAL_BUILDER:()=>UM,PermissionImpl:()=>me,PermissionLevel:()=>ws,PermissionType:()=>Ga,doesHaveBasePermission:()=>vM,getAllowedLevels:()=>wS,getBuiltinPermissionByID:()=>DM,getBuiltinPermissions:()=>bM,isPermissionLevelHigherThanRead:()=>CM,levelToNumber:()=>RS});var IS=j(require("lodash/flatten")),xS=j(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function RS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function wS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Jc={PUBLIC:{_id:"public",name:"Public",permissions:[new 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 bM(){return(0,xS.default)(Jc)}function DM(t){return Object.values(Jc).find(r=>r._id===t)}function vM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Jc),s=(0,IS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&wS(o.level).indexOf(e)!==-1)return!0;return!1}function CM(t){return RS(t)>1}var NM="builder",PM="creator",UM="globalBuilder";var Ym={};v(Ym,{FlagSet:()=>Xc,all:()=>FM,flags:()=>jm,init:()=>LM,isEnabled:()=>kM,parseEnvFlags:()=>tl,shutdown:()=>MM,testutils:()=>Hm});var el=j(require("crypto"));var bS=require("posthog-node"),DS=j(require("dd-trace"));var vS=require("lodash");var Zc;function LM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Zc=new bS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Re.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function MM(){Zc?.shutdown()}function tl(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 Xc=class{constructor(e){this.flagSchema=e;this.setId=el.randomUUID()}defaults(){return(0,vS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await DS.default.trace("features.fetch",async e=>{let r=Qp(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 tl(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(d),!!this.isFlagName(d))){if(typeof i[d]!="boolean")throw new Error(`Feature: ${d} is not a boolean`);i[d]=m,n[`flags.${d}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let l=qp();l&&(u=el.createHash("sha512").update(l).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,Zc&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await Zc.getAllFlags(u,{personProperties:l});for(let[m,p]of Object.entries(d)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${p}`);continue}if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${p}`,f)}}}jp(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},jm=new Xc(bh);async function kM(t){return await jm.isEnabled(t)}async function FM(){return await jm.fetch()}var Hm={};v(Hm,{setFeatureFlags:()=>CS,withFeatureFlags:()=>$M});function BM(){let t={};for(let{tenantId:e,key:r,value:n}of tl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function GM(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 CS(t,e){let r=BM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=GM(r);return wo({TENANT_FEATURE_FLAGS:n})}function $M(t,e,r){let n=CS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var oh={};v(oh,{adminOnly:()=>pl,auditLog:()=>ul,authError:()=>Ue,buildAuthMiddleware:()=>bk,buildCsrfMiddleware:()=>vk,buildTenancyMiddleware:()=>Dk,builderOnly:()=>ml,builderOrAdmin:()=>fl,google:()=>Er,internalApi:()=>ll,joiValidator:()=>Ua,oidc:()=>Tr,passport:()=>Ck,platformLogout:()=>Mk,refreshOAuthToken:()=>Uk,ssoCallbackUrl:()=>sn,updateUserOAuth:()=>Lk});var sh={};v(sh,{adminOnly:()=>pl,auditLog:()=>ul,authError:()=>Ue,authenticated:()=>al,builderOnly:()=>ml,builderOrAdmin:()=>fl,correlation:()=>QS,csp:()=>JS,csrf:()=>dl,datasource:()=>Rk,errorHandling:()=>HS,google:()=>Er,internalApi:()=>ll,ip:()=>XS,joiValidator:()=>Ua,local:()=>Os,oidc:()=>Tr,pino:()=>qS,querystringToBody:()=>YS,ssoCallbackUrl:()=>sn,tenancy:()=>cl});var Os={};v(Os,{authenticate:()=>WM,options:()=>qM});function Ue(t,e,r){return t(r,null,{message:e})}async function sn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Vm(),n="/api/global/auth";return Gr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Km="Invalid credentials",VM="This account has expired. Please reset your password",qM={passReqToCallback:!0};async function WM(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,Km)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Km)):i.password?await Gf(r,i.password)?(delete i.password,n(null,i)):Ue(n,Km):(console.info(`user=${e} has no password set`,i),Ue(n,VM))}var Er={};v(Er,{buildVerifyFn:()=>US,getCallbackUrl:()=>HM,strategyFactory:()=>zm});var Pa=t=>Promise.resolve(t);async function rl(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 QM(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 QM(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 jM=require("passport-google-oauth").OAuth2Strategy;function US(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 rl(s,!0,i,t)}}async function zm(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=US(r);return new jM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function HM(t){return sn("google",t)}var Tr={};v(Tr,{buildVerifyFn:()=>MS,fetchStrategyConfig:()=>JM,getCallbackUrl:()=>ZM,strategyFactory:()=>zM});var LS=j(require("node-fetch"));var YM=require("@techpass/passport-openidconnect").Strategy;function MS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:KM(n,i),oauth2:{accessToken:s,refreshToken:o}};return rl(l,!1,c,t)}}function KM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&qf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function zM(t,e){try{let r=MS(e),n=new YM(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function JM(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,LS.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 ZM(){return sn("oidc")}var Jm={};v(Jm,{postAuth:()=>tk,preAuth:()=>ek});var XM=require("passport-google-oauth").OAuth2Strategy;async function kS(){let t=await qm();if(!t)throw new Error("No google configuration found");return t}async function ek(t,e,r){let n=await kS(),s=`${await Na({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await zm(n,s,Pa);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function tk(t,e,r){let n=await kS(),s=`${await Na({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ii(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new XM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var rk=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(rk);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 nh={};v(nh,{SecretOption:()=>GS,decrypt:()=>rh,decryptFile:()=>uk,encrypt:()=>sk,encryptFile:()=>ok,getSecret:()=>th});var Ar=j(require("crypto")),on=j(require("fs")),Xm=j(require("zlib"));var Zm=require("path"),nl="aes-256-ctr",BS="-",nk=1e4,ik=32,il=16,eh=16,GS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(GS||{});function th(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 sl(t,e){return Ar.default.pbkdf2Sync(t,e,nk,ik,"sha512")}function sk(t,e="api"){let r=Ar.default.randomBytes(il),n=sl(th(e),r),i=Ar.default.createCipheriv(nl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${BS}${a}`}function rh(t,e="api"){let[r,n]=t.split(BS),i=Buffer.from(r,"hex"),s=sl(th(e),i),o=Ar.default.createDecipheriv(nl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function ok({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Zm.join)(t,e);if(on.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=on.default.createReadStream(i),o=on.default.createWriteStream((0,Zm.join)(t,n)),a=Ar.default.randomBytes(il),u=Ar.default.randomBytes(eh),c=sl(r,a),l=Ar.default.createCipheriv(nl,c,u);return o.write(a),o.write(u),s.pipe(Xm.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function ak(t){let e=on.default.createReadStream(t),r=await FS(e,il),n=await FS(e,eh);return e.close(),{salt:r,iv:n}}async function uk(t,e,r){if(on.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ak(t),s=on.default.createReadStream(t,{start:il+eh}),o=on.default.createWriteStream(e),a=sl(r,n),u=Ar.default.createDecipheriv(nl,a,i),c=Xm.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 FS(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 VS=j(require("dd-trace")),ck=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function lk(){return new Date(Date.now()-ck).toISOString()}function $S(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 dk(t,e){if(ua(t))return{valid:!0,user:void 0};let n=rh(t).split(C)[0];return Be(n,async()=>{let i;try{let s=se();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Da({userId:i,tenantId:n,populateUser:e})};throw new hs})}function ol(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function al(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=ol(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=ol(n,"x-budibase-token"),c=ii(n,"budibase:auth")||Ec(u),l=ol(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=ol(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await xm(O,y),e&&e.populateUser?p=await Da({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Da({userId:O,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<lk()&&await Im(S),m=!0}catch(L){m=!1,console.error(`Auth Error: ${L.message}`),zr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await dk(l,y);O&&(m=!0,g="api_key",p=S,f=!S)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&VS.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),$S(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?xp(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?zr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return $S(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var pk=async(t,e)=>e(),ul=pk;function cl(t,e,r={noTenancyRequired:!1}){let n=fi(t),i=fi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!mi(s,i)};!!mi(s,n)||(u.excludeStrategies=["query"]);let l=oa(s,u);return s.set("x-budibase-tenant-id",l),Be(l,o)}}var ll=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 fk=["GET","HEAD","OPTIONS"],mk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function dl(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||fk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!mk.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var pl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var fl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var ml=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var hk=require("koa-pino-logger"),gk=require("correlation-id");function yk(){return{logger:mc,genReqId:gk.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 Ek(){return h.HTTP_LOGGING?hk(yk()):(t,e)=>e()}var Tk=Ek(),qS=Tk;var WS=require("uuid"),Ak=require("correlation-id"),_k=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,WS.v4)()),Ak.withId(r,()=>e())},QS=_k;function jS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of RT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Sk(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:wc(r)};if(jS(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 HS=Sk;function YS(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}var zS=j(require("crypto")),KS={"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 Ok(t,e){try{let r=zS.default.randomBytes(16).toString("base64"),n={...KS};n["script-src"]=[...KS["script-src"],`'nonce-${r}'`],t.state.nonce=r;let i=Object.entries(n).map(([s,o])=>`${s} ${o.join(" ")}`).join("; ");t.set("Content-Security-Policy",i),await e()}catch(r){console.error(`Error occurred in Content-Security-Policy middleware: ${r}`)}}var JS=Ok;var Ua={};v(Ua,{body:()=>Ik,params:()=>xk});var ih=j(require("joi"));function ZS(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:ih.default.any().optional(),updatedAt:ih.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 Ik(t,e){return ZS(t,"body",e)}function xk(t,e){return ZS(t,"params",e)}var XS=async(t,e)=>t.ip?await Wp(t.ip,()=>e()):e();var Rk={google:Jm};var eO=require("koa-passport"),wk=require("passport-local").Strategy,hl=require("passport-oauth2-refresh"),bk=al,Dk=cl,vk=dl,Ck=eO;eO.use(new wk(Os.options,Os.authenticate));async function Nk(t,e){let r=await Tr.getCallbackUrl(),n,i;try{if(n=await Tr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Tr.strategyFactory(n,Pa)}catch{throw new Error("Could not refresh OAuth Token")}return hl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{hl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Pk(t,e){let r=await Er.getCallbackUrl(t),n;try{n=await Er.strategyFactory(t,r,Pa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return hl.use(n),new Promise(i=>{hl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Uk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Wm(r);return n?Nk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await zc();return n?Pk(n,t):{err:{data:"Google configuration not found"}}}}}async function Lk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=se(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Mk(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 Wc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):zr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await di(r,{sessionIds:o,reason:"logout"}),await qc.logout(e.user?.email),await va(r)}var uh={};v(uh,{validate:()=>$k});var b=j(require("joi")),kk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function ah(t,e){let{error:r}=t.validate(e);if(r)throw r}function Fk(t){let e=b.default.object({type:b.default.string().allow("component").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),settings:b.default.array().items(b.default.object().unknown(!0)).required()}).unknown(!0)});ah(e,t)}function Bk(t){let e=b.default.object({type:b.default.string().allow(...Object.values(Al)).required(),required:b.default.boolean().required(),default:b.default.any(),display:b.default.string()}),r=b.default.object({type:b.default.string().allow(...Object.values(Tl)),readable:b.default.boolean(),fields:b.default.object().pattern(b.default.string(),e)}).required(),n=b.default.object({type:b.default.string().allow("datasource").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({docs:b.default.string(),plus:b.default.boolean().optional(),isSQL:b.default.boolean().optional(),auth:b.default.object({type:b.default.string().required()}).optional(),features:b.default.object(Object.fromEntries(Object.values(_l).map(i=>[i,b.default.boolean().optional()]))).optional(),relationships:b.default.boolean().optional(),description:b.default.string().required(),friendlyName:b.default.string().required(),type:b.default.string().allow(...kk),datasource:b.default.object().pattern(b.default.string(),e).required(),query:b.default.object().pattern(b.default.string(),r).unknown(!0).required(),extra:b.default.object().pattern(b.default.string(),b.default.object({type:b.default.string().required(),displayName:b.default.string().required(),required:b.default.boolean(),data:b.default.object()}))})});ah(n,t)}function Gk(t){let e=b.default.object().pattern(b.default.string(),{type:b.default.string().allow(...Object.values(oe)).required(),customType:b.default.string().allow(...Object.values(Ee)),title:b.default.string(),description:b.default.string(),enum:b.default.array().items(b.default.string()),pretty:b.default.array().items(b.default.string())}),r=b.default.object({properties:e,required:b.default.array().items(b.default.string())}).concat(e).required(),n=b.default.object({type:b.default.string().allow("automation").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),tagline:b.default.string().required(),icon:b.default.string().required(),description:b.default.string().required(),type:b.default.string().allow("ACTION","LOGIC").required(),stepId:b.default.string().disallow(...Dh).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});ah(n,t)}function $k(t){switch(t?.type){case"component":Fk(t);break;case"datasource":Bk(t);break;case"automation":Gk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var ch={};v(ch,{Client:()=>Ge,clients:()=>Yr,locks:()=>oi,utils:()=>rc});var lh={};v(lh,{isBlacklisted:()=>qk,refreshBlacklist:()=>iO});var tO=j(require("dns")),yl=j(require("net"));var rO=require("util"),gl,Vk=(0,rO.promisify)(tO.default.lookup);async function nO(t){return yl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Vk(t,{all:!0})).map(r=>r.address)}async function iO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(yl.default.isIP(i))r.push(i);else{let s=await nO(i);r=r.concat(s)}}gl=r}async function qk(t){if(gl||await iO(),gl?.length===0)return!1;let e;return yl.default.isIP(t)?e=[t]:e=await nO(t),!!gl?.find(r=>e.includes(r))}var ph={};v(ph,{init:()=>Qk});var Wk={"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 sO(t,e){let r=Wk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var La=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=sO(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Be(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return V_()}};var oO,dh;function Qk(t){yr||Vc(),dh||(dh=new La(t)),oO||(oO=yr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await dh.processEvent(r,n,i)}))}var _h={};v(_h,{COUNT_FIELD_NAME:()=>Th,Sql:()=>mO,SqlTable:()=>El,designDoc:()=>Ah,utils:()=>kp});var lO=require("knex");var jk=require("knex");function fh(t){return["link","formula","ai"].indexOf(t)!==-1}function aO(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}=Pp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=y.primary[0],S=y.schema[O].externalType;S?t.specificType(p.foreignKey,S):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${p.type} is not a valid SQL type`;default:wi.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!fh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!fh(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||fh(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Yk(t,e,r){return t.createTable(e.name,n=>{aO(n,e,r)})}function Kk(t,e,r,n,i){return t.alterTable(e.name,s=>{aO(s,e,r,n,i)})}function zk(t,e){return t.dropTable(e.name)}var mh=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,jk.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=Yk(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=Kk(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=zk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Yi(n)}},El=mh;var dO=require("lodash"),Th="__bb_total";function uO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function hh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Jk(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 pO(t){return Array.isArray(t)?t.map(e=>pO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function cO(t){return t.sourceType==="internal"||t.sourceId===xl}function Zk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function fO(t,e='"'){return`${e}${Zk(t,e)}${e}`}function gh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=fO(t[r],e));return`[${t.join(",")}]`}var Xk={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},yh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Lr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime"){if(Up(e))return null;if(Lp(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,dO.cloneDeep)(e);for(let r of Object.values(Sr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Kt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(ln)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),O=Mp(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),O){let L=a?.[O.through]||d.through,T=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(_=>{_.whereExists(i(S,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(S,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let O=(S,L,T)=>{let[_,...B]=L.split("."),R=B.join("."),F=c(_);return S.andWhere(ce=>E(ce,F?`${F}.${R}`:R,T))};for(let S in f){let L=f[S],T=Bo(S),_=T.includes("."),B=n?.relationship&&_,R;if(S==="_complexIdOperator"&&(R=f[S])&&y){let F=c(u);e=y(e,R.id.map(ce=>F?`${F}.${ce}`:ce),R.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Xk[g],T,(F,ce)=>O(ce,F,L)));else{let F=c(u);e=E(e,F?`${F}.${T}`:T,L)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,O,S)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(gh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(gh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,O,S)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(fO(gh(S)))])):l(f,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(f===r?.notContains&&(L=L.not),L=L.where(T=>{for(let _ of S){f===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),f===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),O=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let S of O)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,O)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let y=R=>R&&Object.keys(R).length===0&&Object.getPrototypeOf(R)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let O=Xu(E.low),S=Xu(E.high),L=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),O&&S?f.whereBetween(T,[B,_]):O?f.where(T,">=",B):S?f.where(T,"<=",_):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.whereNotNull(O).andWhere(O,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.not.whereNull(O).and.where(O,"!=",E)).or.whereNull(O)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!Np(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Or(r.documentType)}%`),e}isSqs(){return cO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;cO(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 ${Th}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let O=c[m];if(!O)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,L=a?.[r]||r,T=p&&a?.[p]||p,_=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),R=Jk(l.filter(q=>q.split(".")[0]===S),B);R=R.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=R.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ce=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),an=`${S}.${y||f}`,V=s.from(_).orderBy(an),k=p&&y&&E,D=k?`${T}.${g}`:`${S}.${f}`,W=k?`${L}.${E}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(p,{alias:T,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(R.map(ie=>this.rawQuotedIdentifier(ie))).limit(hh()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,d),K=U(this.knex.raw(`json_group_array(json_object(${ce}))`));break;case"pg":K=U(this.knex.raw(`json_agg(json_build_object(${ce}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${ce}) LIMIT ${hh()})`));break;case"mysql2":case"oracledb":K=U(this.knex.raw(`json_arrayagg(json_object(${ce}))`));break;case"mssql":{let q=s.select("*").from({[L]:V.select(F.map(ie=>s.ref(ie[1]).as(ie[0]))).limit(hh())});K=s.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Eh=class extends El{constructor(r,n=uO()){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=pO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,lO.knex)(s),a,u=new yh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:uO()}});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===xl){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 vh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){Co(this.getSqlClient(),r,n)}},mO=Eh;var Ah={};v(Ah,{base:()=>eF});function eF(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var tF={...aa,...ye},rF=(t={})=>{Ju(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)}},Ge=bf;var Yo,Ko,zo,Jo,Xn,Zo,Xo,ea,ta,Nf;async function Ut(){Yo=await new Ge("users").init(),Ko=await new Ge("session").init(),zo=await new Ge("appMetadata").init(),Jo=await new Ge("data_cache").init(),Zo=await new Ge("locks").init(),Xn=await new Ge("writeThrough").init(),ea=await new Ge("invitation").init(),ta=await new Ge("pwReset").init(),Xo=await new Ge("socket_io",1).init(),Nf=await new Ge("docWriteThrough").init()}async function r_(){Yo&&await Yo.finish(),Ko&&await Ko.finish(),zo&&await zo.finish(),Jo&&await Jo.finish(),Xn&&await Xn.finish(),Zo&&await Zo.finish(),ea&&await ea.finish(),ta&&await ta.finish(),Xo&&await Xo.finish(),Nf&&await Nf.finish()}process.on("exit",async()=>{await r_()});async function ra(){return Yo||await Ut(),Yo}async function Hr(){return Ko||await Ut(),Ko}async function ac(){return zo||await Ut(),zo}async function Pf(){return Jo||await Ut(),Jo}async function Uf(){return Xn||await Ut(),Xn}async function Lf(){return Zo||await Ut(),Zo}async function QN(){return Xo||await Ut(),Xo}async function ei(){return ea||await Ut(),ea}async function na(){return ta||await Ut(),ta}async function jN(){return Xn||await Ut(),Xn}function jt(t){let e=Q();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Pf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?jt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[jt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(jt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?jt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var os=new ti,fr=(a=>(a.CHECKLIST="checklist",a.INSTALLATION="installation",a.ANALYTICS_ENABLED="analyticsEnabled",a.UNIQUE_TENANT_ID="uniqueTenantId",a.EVENTS="events",a.BACKFILL_METADATA="backfillMetadata",a.EVENTS_RATE_LIMIT="eventsRateLimit",a))(fr||{}),ri=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ri||{}),gc=(...t)=>os.keys(...t),ni=(...t)=>os.get(...t),mr=(...t)=>os.store(...t),ia=(...t)=>os.delete(...t),Kr=(...t)=>os.withCache(...t),as=(...t)=>os.bustCache(...t);var nn={};v(nn,{getUser:()=>Da,getUsers:()=>dM,invalidateUser:()=>va});var aa={};v(aa,{addTenantToUrl:()=>HN,getTenantDB:()=>Mf,getTenantIDFromCtx:()=>oa,isUserInAppTenant:()=>YN});function Mf(t){return He(ur(t))}function HN(t){let e=Q();if(Gr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var YN=(t,e)=>{let r;return e?r=e.tenantId||ge:r=Q(),(zi(t)||ge)===r},KN=Object.values(Rs),oa=(t,e)=>{if(!Gr())return ge;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=KN),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(Gp()).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:()=>Hf,users:()=>Lt});var Lt={};v(Lt,{addSsoUser:()=>i_,addUser:()=>tP,getUserDoc:()=>n_,lookupTenantId:()=>zN,removeUser:()=>rP,updateUserDoc:()=>JN});function ut(){return He(Se.PLATFORM_INFO.name)}async function zN(t){return h.MULTI_TENANCY?(await n_(t)).tenantId:ge}async function n_(t){return ut().get(t)}async function JN(t){await ut().put(t)}function ZN(t,e){return{_id:t,tenantId:e}}function XN(t,e,r){return{_id:e,userId:t,tenantId:r}}function eP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function kf(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 i_(t,e,r,n){return kf(t,()=>eP(t,e,r,n))}async function tP(t,e,r,n){let i=[kf(e,()=>ZN(e,t)),kf(r,()=>XN(e,r,t))];n&&i.push(i_(n,r,e,t)),await Promise.all(i)}async function rP(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 Hf={};v(Hf,{addTenant:()=>OP,exists:()=>AP,getTenantIds:()=>TP,removeTenant:()=>IP,tenacyLockOptions:()=>jf});var oi={};v(oi,{AUTO_EXTEND_POLLING_MS:()=>f_,doWithLock:()=>ds,newRedlock:()=>si});var p_=j(require("redlock"));var cs={};v(cs,{Duration:()=>Re,DurationType:()=>Wf,clearCookie:()=>zr,compare:()=>Gf,getAppIdFromCtx:()=>lP,getCookie:()=>ii,hasCircularStructure:()=>fP,hash:()=>Bf,isAudited:()=>Vf,isClient:()=>dP,isPublicApiRequest:()=>cP,isServingApp:()=>oP,isServingBuilder:()=>aP,isServingBuilderPreview:()=>uP,isValidInternalAPIKey:()=>ua,newid:()=>Oe,openJwt:()=>Ec,resolveAppUrl:()=>c_,setCookie:()=>l_,time:()=>hP,timeout:()=>pP,urlHasProtocol:()=>mP,validEmail:()=>qf});var Ff=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),nP=h.SALT_ROUNDS||10;async function Bf(t){let e=await Ff.genSalt(nP);return Ff.hash(t,e)}async function Gf(t,e){return Ff.compare(t,e)}var yc=j(require("jsonwebtoken")),$f="app"+C,o_="/app/",a_="/app/preview",iP="/builder",u_=`${iP}/app/`,sP="/api/public/v";function us(t){return t&&t.startsWith($f)?t:void 0}async function c_(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=oa(t,{includeStrategies:["subdomain"]}));let s=(await Be(n,()=>Mo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function oP(t){return t.path.startsWith(`/${$f}`)?!0:t.path.startsWith(o_)}function aP(t){return t.path.startsWith(u_)}function uP(t){return t.path.startsWith(a_)}function cP(t){return t.path.startsWith(sP)}async function lP(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=s_(t.path);!r&&n&&(r=us(n)),!r&&t.query?.appId&&(r=us(t.query?.appId));let i=t.path.startsWith(a_),s=t.path.startsWith(o_)&&!i;!r&&s&&(r=us(await c_(t)));let o=t.request.headers.referer;if(!r&&o?.includes(u_)){let a=s_(t.request.headers.referer);r=us(a)}return r}function s_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith($f))}function Ec(t){if(t)try{return yc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return yc.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 Ec(r)}function l_(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=yc.default.sign(e,h.JWT_SECRET));let i={expires:Wu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function zr(t,e){l_(t,null,e)}function dP(t){return t.headers["x-budibase-type"]==="client"}function pP(t){return new Promise(e=>setTimeout(e,t))}function Vf(t){return!!Ih[t]}function fP(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 mP(t){return!!t.match(/^.+:\/\/.+$/)}function qf(t){return t&&!!t.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}var Wf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Wf||{}),Tc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},Re=class t{constructor(e){this.ms=e}to(e){return this.ms/Tc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Tc[e]/Tc[r]}static from(e,r){return new t(r*Tc[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 hP(t){let e=performance.now();return[await t(),Re.fromMilliseconds(performance.now()-e)]}async function gP(t,e){if(t==="custom")return si(e);switch(t){case"try_once":return si(ls.TRY_ONCE);case"try_twice":return si(ls.TRY_TWICE);case"default":return si(ls.DEFAULT);case"delay_500":return si(ls.DELAY_500);case"auto_extend":return si(ls.AUTO_EXTEND);default:throw wi.unreachable(t)}}var ls={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function si(t={}){let e={...ls.DEFAULT,...t},n=(await Lf()).getClient();return new p_.default([n],e)}function yP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var f_=Re.fromSeconds(10).toMs();async function ds(t,e){let r=await gP(t.type,t.customOptions),n,i;try{let s=yP(t),o=t.type==="auto_extend"?f_:t.ttl;if(n=await r.lock(s,o),t.type==="auto_extend"){let u=()=>{i=setTimeout(async()=>{n=await n.extend(o,()=>t.onExtend&&t.onExtend()),u()},o/2)};u()}return{executed:!0,result:await e()}}catch(s){if(s.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw s}else throw s}finally{clearTimeout(i),await n?.unlock()}}var Qf=Se.PLATFORM_INFO.docs.tenants,jf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function TP(){return(await Ac()).tenantIds}async function Ac(){let t=ut(),e;try{e=await t.get(Qf)}catch(r){if(r.status===404)e=await SP();else throw r}return e}async function AP(t){return(await Ac()).tenantIds.indexOf(t)!==-1}function _P(){return{_id:Qf,tenantIds:[]}}async function SP(){let t=ut(),e=_P();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Qf);throw r}return e}async function OP(t){let e=ut();await ds(jf,async()=>{let r=await Ac();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function IP(t){try{await ds(jf,async()=>{let e=ut(),r=await Ac();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:()=>xP});var m_=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,m_.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 Yf=new la(h.ACCOUNT_PORTAL_URL),Kf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(Kf)return;let e={email:t},r=await Yf.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(Kf)return;let e={tenantId:t},r=await Yf.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]},xP=async()=>{if(Kf)return;let t=await Yf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var As={};v(As,{UserDB:()=>Yt,addAppBuilder:()=>aM,bulkGetGlobalUsersById:()=>jc,bulkUpdateGlobalUsers:()=>Ra,cleanseUserObject:()=>Cm,doesUserExist:()=>rM,getAccountHolderFromUsers:()=>Nc,getAllUserIds:()=>eM,getAllUsers:()=>tM,getById:()=>pi,getCreatorCount:()=>sM,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>E_,getExistingTenantUsers:()=>y_,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>gS,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>_c,getUserCount:()=>iM,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>w_,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>R_,isBuilder:()=>gs,isCreator:()=>Ht,isGlobalBuilder:()=>x_,paginatedUsers:()=>ES,removeAppBuilder:()=>uM,removePortalUserPermissions:()=>oM,searchExistingEmails:()=>Zf,searchGlobalUsersByApp:()=>Hc,searchGlobalUsersByAppAccess:()=>vm,searchGlobalUsersByEmail:()=>yS,validateUniqueUser:()=>Cc});var um={};v(um,{getAccountHolderFromUsers:()=>Nc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>w_,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>R_,isBuilder:()=>gs,isCreator:()=>Ht,isGlobalBuilder:()=>x_,validateUniqueUser:()=>Cc});var Jf={};v(Jf,{createCode:()=>wP,deleteCode:()=>DP,getCode:()=>bP,getExistingInvites:()=>zf,getInviteCodes:()=>g_,updateCode:()=>RP});var h_=Re.fromDays(7).toSeconds();async function RP(t,e){await(await ei()).store(t,e,h_)}async function wP(t,e){let r=Oe();return await(await ei()).store(r,{email:t,info:e},h_),r}async function bP(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 DP(t){await(await ei()).delete(t)}async function g_(){let r=(await(await ei()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function zf(t){return(await g_()).filter(e=>t.includes(e.email))}async function Zf(t){let e=[],r=await y_(t);e.push(...r.map(o=>o.email));let n=await E_(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await zf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function _c(t){return await Fo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await _c(t))[0]??null}async function y_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await lr("by_email2",r,void 0,n)}async function E_(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 bc={};v(bc,{BadRequestError:()=>Oc,BudibaseError:()=>ms,EmailUnavailableError:()=>hr,ErrorCode:()=>Rc,FeatureDisabledError:()=>xc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>Sc,UsageLimitError:()=>Ic,getPublicError:()=>wc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},Rc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Rc||{}),wc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},ct=class extends ms{constructor(r,n,i="http"){super(r,i);this.status=n}},Sc=class extends ct{constructor(e){super(e,404)}},Oc=class extends ct{constructor(e){super(e,400)}},Ic=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},xc=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var am={};v(am,{AccessController:()=>tm,BUILTIN_ROLE_IDS:()=>ma,Role:()=>Zr,RoleHierarchyTraversal:()=>Dc,RoleIDVersion:()=>rm,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>S_,externalRole:()=>LP,findRole:()=>fa,getAllRoleIds:()=>BP,getAllRoles:()=>om,getBuiltinRole:()=>A_,getBuiltinRoles:()=>im,getDBRoleID:()=>O_,getExternalRoleID:()=>Xr,getExternalRoleIDs:()=>I_,getRole:()=>MP,getUserRoleHierarchy:()=>sm,getUserRoleIdHierarchy:()=>__,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>UP,prefixRoleIDNoBuiltin:()=>em,roleIDsAreEqual:()=>Tt,roleToNumber:()=>PP,saveRoles:()=>kP,validInherits:()=>NP});var Xf=j(require("semver"));var vc=j(require("lodash/fp/cloneDeep"));var T_=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...ma,BUILDER:"BUILDER"},rm={UUID:void 0,NAME:"name"};function CP(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=rm.NAME}addInheritance(e){return e&&typeof e=="string"?e=em(e):e&&Array.isArray(e)&&(e=e.map(em)),this.inherits=e,this}},Dc=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=fa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!CP(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,T_.uniqBy)(i,s=>s._id)}},nm={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 im(){return(0,vc.default)(nm)}function ui(t){return Object.values(ma).includes(t)}function em(t){return ui(t)?t:cr(t)}function A_(t){let e=Object.values(nm).find(r=>t.includes(r._id));if(e)return(0,vc.default)(e)}function NP(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=im(),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 PP(t){if(ui(t))return pa(t);let e=await sm(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 UP(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return cr(t)===cr(e)}function LP(t){let e;return t._id&&(e=Xr(t._id)),{...t,_id:e,inherits:I_(t.inherits,t.version)}}function fa(t,e,r){let n=A_(t);n||(t=cr(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,vc.default)(nm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Xr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function MP(t,e){let r=Ji(),n=[];if(!ui(t)){let i=await r.tryGet(O_(t));i&&n.push(i)}return fa(t,n,e)}async function kP(t){await Ji().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function FP(t,e){let r=await om();if(Tt(t,fe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new Dc(r,e).walk(n)),i}async function __(t){return(await sm(t)).map(r=>r._id)}async function sm(t,e){return FP(t,e)}function S_(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 BP(t){return(await om(t)).map(r=>r._id)}async function om(t){if(t)return at(t,e);{let r;try{r=Ji()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(lc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Xr(a._id,a.version)));let i=im(),s=[];!r||await GP(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Xr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Xr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=S_(o.permissions,a);return n}}async function GP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Xf.default.valid(r)?!0:!Xf.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var tm=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 __(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 O_(t){return t?.startsWith("role")?t:cr(t)}function Xr(t,e){if(t.startsWith(`role${C}`)&&(ui(t)||e===rm.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function I_(t,e){return t&&(typeof t=="string"?Xr(t,e):t.map(r=>Xr(r,e)))}var gs=st.users.isBuilder,en=st.users.isAdmin,x_=st.users.isGlobalBuilder,R_=st.users.isAdminOrBuilder,tn=st.users.hasAdminPermissions,At=st.users.hasBuilderPermissions,w_=st.users.hasAppBuilderPermissions;async function Ht(t){let e=st.users.isCreator(t);return!e&&t?await $P(t):e}async function $P(t){let e=t?.userGroups||[];if(e.length>0){let r=se(),n=[];for(let i of e)try{let s=await r.get(i);n.push(s)}catch(s){if(s.error!=="not_found")throw s}return n.some(i=>Object.values(i.roles||{}).includes(ma.ADMIN))}return!1}async function Cc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Jr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Nc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await fs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ts={};v(Ts,{account:()=>W_,ai:()=>K_,analytics:()=>Uc,app:()=>Q_,auditLog:()=>lS,auth:()=>qc,automation:()=>j_,backfill:()=>sS,backfillCache:()=>$c,backup:()=>uS,datasource:()=>H_,email:()=>Y_,environmentVariable:()=>cS,group:()=>oS,identification:()=>Mt,initAsyncEvents:()=>B0,installation:()=>Aa,layout:()=>J_,license:()=>z_,org:()=>Z_,plugin:()=>aS,processors:()=>fm,publishEvent:()=>A,query:()=>X_,role:()=>xa,rowAction:()=>dS,rows:()=>tS,screen:()=>eS,serve:()=>nS,shutdown:()=>G0,table:()=>rS,user:()=>$e,view:()=>iS});var fm={};v(fm,{analyticsProcessor:()=>B_,init:()=>iU,processors:()=>gr});var Uc={};v(Uc,{enabled:()=>Pc});var Pc=async()=>Lc();var N_=require("posthog-node");var VP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",qP=t=>t==="served:app:preview"||t==="served:app";var D_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},v_=async t=>{if(!VP(t))return!1;let e=await WP(t);if(e){let r=new Date(e.timestamp);switch(D_[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await b_(t,{timestamp:Date.now()}),!1):!0}}else return await b_(t,{timestamp:Date.now()}),!1},C_=t=>{let e=`eventsRateLimit:${t}`;return qP(t)&&(e=e+":"+Ne()),e},WP=async t=>{let e=C_(t);return await ni(e)},b_=async(t,e)=>{let r=C_(t),n=D_[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var jP=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ha=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new N_.PostHog(e)}async processEvent(e,r,n,i){if(jP.includes(e)||await v_(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 P_=ha;var HP=["installation:version:upgraded","installation:version:downgraded"],YP=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new P_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!HP.includes(e)&&!await Pc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!YP.includes(e.type)&&!await Pc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var cm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){cm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){cm||console.log("[audit] identified",e)}async identifyGroup(e){cm||console.log("[audit] group identified",e)}shutdown(){}};var pm={};v(pm,{InMemoryQueue:()=>Mc,JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>tU});var U_=j(require("events"));var L_=require("lodash");function KP(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 Mc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new U_.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{let i=(0,L_.cloneDeep)(n);if(!i.manualTrigger&&i.opts?.repeat!=null)return;let s=r(i);async function o(u){try{await u}catch{await Qt.wait(50),await o(r(i))}}if(s.then!=null)try{await o(s),this._emitter.emit("completed",i)}catch(u){console.error(u)}this._runCount++;let a=i.opts?.jobId?.toString();a&&i.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>KP(e))}},M_=Mc;var lm=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 k_(t,e,r){ZP(t,e),r&&zP(t,r)}function zP(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 JP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function ZP(t,e){let r=JP[e];function n(i,s){let o=i.data.event?.appId;if(o)return $p(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 XP=Re.fromMinutes(5).toMs(),eU=Re.fromSeconds(30).toMs(),dm=Re.fromSeconds(60).toMs(),Ea=[],kc;async function F_(){for(let t of Ea)await t.clean(dm,"completed"),await t.clean(dm,"failed")}function ci(t,e={}){let n={redis:es(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:XP,lockRenewTime:eU}};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 lm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new M_(t,n):i=new lm.default(t,n),k_(i,t,e?.removeStalledCb),Ea.push(i),!kc&&!h.isTest()&&(kc=Wo(F_,dm),F_().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function tU(){if(kc&&Qo(kc),Ea.length){for(let t of Ea)await t.close();Ea=[]}console.log("Queues shutdown")}var Es=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ci("auditLogQueue"),t.auditLogQueue.process(async n=>Be(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:s})}))}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Vf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ne(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Ta=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}shutdown(){for(let e of this.processors)e.shutdown&&e.shutdown()}};var B_=new ga,rU=new ya,nU=new Es;function iU(t){return Es.init(t)}var gr=new Ta([B_,rU,nU]);var Fc={};v(Fc,{checkInstallVersion:()=>aU,getInstall:()=>_a,getInstallFromDB:()=>hm});var mm=j(require("semver"));var _a=async()=>Kr("installation",86400,hm,{useTenancy:!1});async function sU(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 hm();throw r}}var hm=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 sU(t);else throw r}return e}),oU=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await _a();r.version=t,await e.put(r),await as("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},aU=async()=>{let t=await _a(),e=t.version,r=h.VERSION;try{if(e!==r){let n=mm.default.gt(r,e),i=mm.default.lt(r,e);await oU(r)&&(await Ro({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Mt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Jn(`Invalid version "${r}" - is it semver?`):Jn("Failed to retrieve version",n)}};var uU=async()=>{let t=Op(),e=Ia(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Sa();return{id:G_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Bc(Q()),s=Sa();return{id:G_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Bc(Q()),s=await li(),o=n.account,a;return o?a=o.hosting:a=Sa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},cU=async(t,e)=>{let r=t,n="installation",i=Sa(),s=h.VERSION,o=Ia(),a={id:r,type:n,hosting:i,version:s,environment:o};await gm(a,e),await Oa({...a,id:`$${n}_${r}`},e)},lU=async(t,e,r)=>{let n=await Bc(t),i="tenant",s=await li(),o=Ia(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await gm(a,r),await Oa({...a,id:`$${i}_${n}`},r)},dU=async(t,e,r)=>{let n=t._id,i=await Bc(t.tenantId),s="user",o=At(t),a=tn(t),u;qa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,d=!!e&&l&&e.verified,m=await li(),p=e?e.hosting:Sa(),f=Ia();await Oa({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},pU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await li(),c=Ia();if($a(t)){let d=await kt(t.email);d?._id&&(e=d._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await gr.identify(t,e)},gm=async(t,e)=>{await gr.identifyGroup(t,e)},Ia=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Sa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>fU()?"account-portal":(await _a()).installId,Bc=async t=>h.SELF_HOSTED?$_(t):t,$_=async t=>Be(t,()=>Kr("uniqueTenantId",86400,async()=>{let e=se(),r=await Gc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),fU=()=>h.SERVICE==="account-portal",G_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Mt={getCurrentIdentity:uU,identifyInstallationGroup:cU,identifyTenantGroup:lU,identifyUser:dU,identifyAccount:pU,identify:Oa,identifyGroup:gm,getInstallationId:li,getUniqueTenantId:$_};var $c={};v($c,{end:()=>hU,isAlreadySent:()=>Tm,isBackfillingEvent:()=>Em,recordEvent:()=>ym,start:()=>mU});var mU=async t=>yU({eventWhitelist:t}),ym=async(t,e)=>{let r=Am(t,e);await mr(r,e,void 0,{useTenancy:!1})},hU=async()=>{await EU(),await TU()},gU=async()=>ni("backfillMetadata"),yU=async t=>mr("backfillMetadata",t),EU=async()=>{await ia("backfillMetadata")},TU=async()=>{let t=Am(),e=await gc(t);for(let r of e)await ia(r,{useTenancy:!1})},Em=async t=>{let r=(await gU())?.eventWhitelist;return!!(r&&r.includes(t))},Tm=async(t,e)=>{let r=Am(t,e);return!!await ni(r,{useTenancy:!1})},AU={"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}`},Am=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=AU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var yr;function Vc(){yr=ci("systemEventQueue")}async function V_(){yr&&await yr.close()}async function q_(t){yr||Vc();let{event:e,identity:r}=t;Oh.indexOf(e)!==-1&&r.tenantId&&await yr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Mt.getCurrentIdentity();if(!(n?!1:await Em(t))){await q_({event:t,identity:i,properties:e,timestamp:r}),await gr.processEvent(t,i,e,r);return}await Tm(t,e)||(await gr.processEvent(t,i,e,r),await ym(t,e))};async function _U(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function SU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function OU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var W_={created:_U,deleted:SU,verified:OU};var IU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function xU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function RU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function wU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function bU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function DU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function vU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function CU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function NU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function PU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function UU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function LU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var Q_={created:IU,updated:xU,deleted:RU,published:wU,unpublished:bU,fileImported:DU,duplicated:vU,templateImported:CU,versionUpdated:NU,versionReverted:PU,reverted:UU,exported:LU};async function MU(t,e){let n={userId:(await Mt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function kU(t){let r={userId:(await Mt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function FU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function BU(t){let e={type:t};await A("auth:sso:updated",e)}async function GU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function $U(t){let e={type:t};await A("auth:sso:deactivated",e)}var qc={login:MU,logout:kU,SSOCreated:FU,SSOUpdated:BU,SSOActivated:GU,SSODeactivated:$U};async function VU(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 qU(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 WU(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 QU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var jU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function HU(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 YU(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 j_={created:VU,triggerUpdated:qU,deleted:WU,tested:QU,run:jU,stepCreated:HU,stepDeleted:YU};function _m(t){return!Object.values(Fa).includes(t.source)}async function KU(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:created",r,e)}async function zU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:updated",e)}async function JU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:deleted",e)}var H_={created:KU,updated:zU,deleted:JU};async function ZU(t){let e={};await A("email:smtp:created",e,t)}async function XU(){let t={};await A("email:smtp:updated",t)}var Y_={SMTPCreated:ZU,SMTPUpdated:XU};async function eL(t){let e={};await A("ai:config:created",e,t)}async function tL(){let t={};await A("ai:config:updated",t)}var K_={AIConfigCreated:eL,AIConfigUpdated:tL};async function rL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function nL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function iL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function sL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function oL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function aL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function uL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var z_={planChanged:rL,activated:nL,checkoutOpened:iL,checkoutSuccess:sL,portalOpened:oL,paymentFailed:aL,paymentRecovered:uL};async function cL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function lL(t){let e={layoutId:t};await A("layout:deleted",e)}var J_={created:cL,deleted:lL};async function dL(t){let e={};await A("org:info:name:updated",e,t)}async function pL(t){let e={};await A("org:info:logo:updated",e,t)}async function fL(t){let e={};await A("org:platformurl:updated",e,t)}async function mL(){let t={};await A("analytics:opt:out",t)}async function hL(){let t={};await A("analytics:opt:out",t)}var Z_={nameUpdated:dL,logoUpdated:pL,platformURLUpdated:fL,analyticsOptOut:mL,analyticsOptIn:hL};var gL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},yL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},EL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},TL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},AL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},_L=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},X_={created:gL,updated:yL,deleted:EL,imported:TL,run:AL,previewed:_L};async function SL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function OL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function IL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function xL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function RL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var xa={created:SL,updated:OL,deleted:IL,assigned:xL,unassigned:RL};async function wL(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 bL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var eS={created:wL,deleted:bL};var DL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},vL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},tS={created:DL,imported:vL};async function CL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function NL(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 PL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function UL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function LL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var rS={created:CL,updated:NL,deleted:PL,exported:UL,imported:LL};async function ML(t){let e={timezone:t};await A("served:builder",e)}async function kL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function FL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var nS={servedBuilder:ML,servedApp:kL,servedAppPreview:FL};async function BL(t,e){let r={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:created",r,e)}async function GL(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:updated",e)}async function $L(t){let e={userId:t._id,viaScim:Nt(),audited:{email:t.email}};await A("user:deleted",e)}async function VL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function qL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function WL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function QL(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function jL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function HL(t){let e={audited:{email:t}};await A("user:invited",e)}async function YL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function KL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function zL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function JL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function ZL(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function XL(t){let e={users:t};await A("user:data:collaboration",e)}var $e={created:BL,updated:GL,deleted:$L,permissionAdminAssigned:qL,permissionAdminRemoved:WL,permissionBuilderAssigned:QL,permissionBuilderRemoved:jL,onboardingComplete:VL,invited:HL,inviteAccepted:YL,passwordForceReset:KL,passwordUpdated:zL,passwordResetRequested:JL,passwordReset:ZL,dataCollaboration:XL};async function e0(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function t0(t){let e={tableId:t.tableId};await A("view:updated",e)}async function r0(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function n0(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function i0({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function s0({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function o0(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function a0({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function u0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function c0(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function l0(t,e){let r={tableId:t};await A("view:join:created",r,e)}var iS={created:e0,updated:t0,deleted:r0,exported:n0,filterCreated:i0,filterUpdated:s0,filterDeleted:o0,calculationCreated:a0,calculationUpdated:u0,calculationDeleted:c0,viewJoinCreated:l0};async function d0(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function p0(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function f0(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function m0(){let t={};await A("installation:firstStartup",t)}var Aa={versionChecked:d0,upgraded:p0,downgraded:f0,firstStartup:m0};var _s=!h.SELF_HOSTED&&!h.isDev();async function h0(t){_s||await A("app:backfill:succeeded",t)}async function g0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function y0(t){_s||await A("tenant:backfill:succeeded",t)}async function E0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function T0(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function A0(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var sS={appSucceeded:h0,appFailed:g0,tenantSucceeded:y0,tenantFailed:E0,installationSucceeded:T0,installationFailed:A0};async function _0(t,e){let r={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function S0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:updated",e)}async function O0(t){let e={groupId:t._id,viaScim:Nt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function I0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function x0(t,e){let r={count:t,groupId:e._id,viaScim:Nt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function R0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function w0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var oS={created:_0,updated:S0,deleted:O0,usersAdded:I0,usersDeleted:x0,createdOnboarding:R0,permissionsEdited:w0};async function b0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function D0(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 v0(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 aS={init:b0,imported:D0,deleted:v0};async function C0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function N0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var uS={appBackupRestored:C0,appBackupTriggered:N0};async function P0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function U0(t){let e={name:t};await A("environment_variable:deleted",e)}async function L0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var cS={created:P0,deleted:U0,upgradePanelOpened:L0};async function M0(t){let e={filters:t};await A("audit_log:filtered",e)}async function k0(t){let e={filters:t};await A("audit_log:downloaded",e)}var lS={filtered:M0,downloaded:k0};async function F0(t,e){await A("row_action:created",t,e)}var dS={created:F0};function B0(){}var G0=()=>{gr.shutdown(),console.log("Events shutdown")};var Sm=async t=>{await $e.deleted(t),At(t)&&await $e.permissionBuilderRemoved(t),tn(t)&&await $e.permissionAdminRemoved(t)},$0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},V0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},q0=async(t,e)=>{let r=t.roles,n=e?.roles;await $0(t,r,n),await V0(t,r,n)},Om=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Mt.identifyUser(t,n),e?(await $e.updated(t),Q0(t,e)&&await $e.permissionBuilderRemoved(t),H0(t,e)&&await $e.permissionAdminRemoved(t),Y0(t,e)&&await $e.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await $e.passwordForceReset(t),t.password!==e.password&&await $e.passwordUpdated(t)):await $e.created(t),W0(t,e)&&await $e.permissionBuilderAssigned(t),j0(t,e)&&await $e.permissionAdminAssigned(t),await q0(t,e)},W0=(t,e)=>pS(t,e,At),Q0=(t,e)=>fS(t,e,At),j0=(t,e)=>pS(t,e,tn),H0=(t,e)=>fS(t,e,tn),Y0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",pS=(t,e,r)=>!(!r(t)||e&&r(e)),fS=(t,e,r)=>!(r(t)||!e||!r(e));var Qc={};v(Qc,{createASession:()=>z0,endSession:()=>J0,getSession:()=>xm,getSessionsForUser:()=>Wc,invalidateSessions:()=>di,updateSessionTTL:()=>Im});var mS=require("uuid");var hS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):Re.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function Wc(t){return t?(await(await Hr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function di(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Wc(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await Hr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ss(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function z0(t,e){await di(t,{reason:"creation"});let r=await Hr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,mS.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,hS),o}async function Im(t){let e=await Hr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,hS)}async function J0(t,e){await(await Hr()).delete(Ss(t,e))}async function xm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Hr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Dm={};v(Dm,{PASSWORD_MAX_LENGTH:()=>wm,PASSWORD_MIN_LENGTH:()=>Rm,validatePassword:()=>bm});var Rm=+(h.PASSWORD_MIN_LENGTH||12),wm=+(h.PASSWORD_MAX_LENGTH||512);function bm(t){return!t||t.length<Rm?{valid:!1,error:`Password invalid. Minimum ${Rm} characters.`}:t.length>wm?{valid:!1,error:`Password invalid. Maximum ${wm} characters.`}:{valid:!0}}var Z0=async t=>{let e=t._id;await Lt.removeUser(t),await Sm(t),await nn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Yt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||qa(e)?!0:(r||(r=await ps(Q())),!!(r&&r.email===e.email&&Va(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new ct("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=bm(o);if(!d.valid)throw new ct(d.error,400)}u=r.hashPassword?await Bf(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||ts();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await se().allDocs(Kn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Hc(e,{})).length}}static async getUsersByAppAccess(e){return await vm(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 jc(e)}static async bulkUpdate(e){return await Ra(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=se(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await pi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await kt(s),c&&c._id!==o))throw new hr(s);let l=c?0:1,d=await Ht(c)!==await Ht(e)?1:0;return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Cc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Cm(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 Om(m,c),c&&m.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await Zf(a),c=[];for(let d of e){if(s.find(m=>m.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await Ht(d)&&o.push(d)}let l=await ps(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await Ra(d);for(let p of d)await Lt.addUser(n,p._id,p.email),await Om(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await Nc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await Ra(a),l=(await Promise.all(o.map(Ht))).filter(p=>!!p).length,d=[];for(let p of o){let g=(await da(p._id)).ssoId;g&&(await _c(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await Z0(p)}await ut().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=se(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Jr(o))throw n.userId===ar()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Lt.removeUser(n),await r.remove(i,n._rev);let s=await Ht(n)?1:0;await t.quotas.removeUsers(1,s),await Sm(n),await nn.invalidateUser(i),await di(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await as("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function ba(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function jc(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=ba(n)),n}async function eM(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function tM(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ra(t){return await se().bulkDocs(t)}async function pi(t,e){let n=await se().get(t);return e?.cleanup&&(n=ba(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await lr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=ba(n)),n}async function rM(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Hc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=cc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=ba(s)),s}async function vm(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 Bp(ur(),i)).rows}function gS(t,e){if(e)return uc(ot(t),e._id)}async function yS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await lr("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=ba(o)),o}var nM=8;async function ES({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??nM,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 Hc(r,a),l=d=>gS(r,d)):e?.string?.email?(u=await yS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await jc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Kn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Lr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Kn(null,a))).rows.map(m=>m.doc),sf(u,s,{paginate:!0,property:c,getKey:l})}async function iM(){return(await uf("by_email2",{limit:0,include_docs:!1})).total_rows}async function sM(){let t=0;async function e(r){let n=await ES({bookmark:r}),i=await Promise.all(n.data.map(Ht));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function oM(t){return delete t.admin,delete t.builder,t}function Cm(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 aM(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Yt.save(t,{hashPassword:!1})}async function uM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Yt.save(t,{hashPassword:!1})}var TS=3600;async function cM(t,e){let n=await Mf(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 lM(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Da({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=cM),!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,TS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Be(e,async()=>{let o=await Yt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function dM(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 lM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,TS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ra()).delete(t)}var Lm={};v(Lm,{Writethrough:()=>Pm});var AS=1e4,Nm=null;async function Um(){if(!Nm){let t=await Uf();Nm=new ti(t)}return Nm}function Yc(t,e){return t.name+e}function _S(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function pM(t,e,r=AS){let n=await Um(),i=e._id,s;i&&(s=await n.get(Yc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;ss("Ignoring conflict in write-through cache")}})).executed||ss("Ignoring redlock conflict in write-through cache")),s=_S(a,o?null:s?.lastWrite),a._id&&await n.store(Yc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function fM(t,e){let r=await Um(),n=Yc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=_S(s),await r.store(n,i)}return i.doc}async function mM(t,e,r){let n=await Um();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Yc(t,i))}finally{await t.remove(i,r)}}var Pm=class{constructor(e,r=AS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return pM(this.db,e,r)}async get(e){return fM(this.db,e)}async remove(e,r){return mM(this.db,e,r)}};var Mm={};v(Mm,{createCode:()=>gM,getCode:()=>yM,invalidateCode:()=>EM});var hM=Re.fromHours(1).toSeconds();async function gM(t,e){let r=Oe();return await(await na()).store(r,{userId:t,info:e},hM),r}async function yM(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 EM(t){await(await na()).delete(t)}var Fm={};v(Fm,{DocWritethrough:()=>km,DocWritethroughProcessor:()=>Ca,getProcessor:()=>AM,init:()=>SS});var TM=100,Kc,Ca=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:TM}})),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)}},km=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ca.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function SS(){return Kc=new Ca().init(),Kc}function AM(){return Kc||SS()}function $m(t){return`config${C}${t}`}async function Ft(t){let e=se();try{return await e.get($m(t))}catch(r){if(r.status===404)return;throw r}}async function _M(t){return se().put(t)}async function Gc(){let t=await Ft("settings");return t||(t={_id:$m("settings"),type:"settings",config:{}}),t.config.platformUrl=await Na({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Lc({config:t.config}),t}async function Vm(){return(await Gc()).config}async function Na(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Ft("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Lc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Kr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await 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 SM(){return await Ft("google")}async function zc(){return(await SM())?.config}async function qm(){if(!h.SELF_HOSTED)return Bm();let t=await zc();return(!t||!t.activated)&&(t=Bm()),t}function Bm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function OM(){return Ft("logos_oidc")}async function IM(){return Ft("oidc")}async function xM(){let t=(await IM())?.config;return t?.configs&&t.configs[0]}async function Wm(t){let e=(await Ft("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function OS(){return Ft("smtp")}async function RM(t){let e=await OS();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 wM(){return(await Ft("scim"))?.config}async function bM(){return Ft("ai")}var Qm={};v(Qm,{BUILDER:()=>PM,BUILTIN_PERMISSIONS:()=>Jc,CREATOR:()=>UM,GLOBAL_BUILDER:()=>LM,PermissionImpl:()=>me,PermissionLevel:()=>ws,PermissionType:()=>Ga,doesHaveBasePermission:()=>CM,getAllowedLevels:()=>wS,getBuiltinPermissionByID:()=>vM,getBuiltinPermissions:()=>DM,isPermissionLevelHigherThanRead:()=>NM,levelToNumber:()=>RS});var IS=j(require("lodash/flatten")),xS=j(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function RS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function wS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Jc={PUBLIC:{_id:"public",name:"Public",permissions:[new 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 DM(){return(0,xS.default)(Jc)}function vM(t){return Object.values(Jc).find(r=>r._id===t)}function CM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Jc),s=(0,IS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&wS(o.level).indexOf(e)!==-1)return!0;return!1}function NM(t){return RS(t)>1}var PM="builder",UM="creator",LM="globalBuilder";var Ym={};v(Ym,{FlagSet:()=>Xc,all:()=>BM,flags:()=>jm,init:()=>MM,isEnabled:()=>FM,parseEnvFlags:()=>tl,shutdown:()=>kM,testutils:()=>Hm});var el=j(require("crypto"));var bS=require("posthog-node"),DS=j(require("dd-trace"));var vS=require("lodash");var Zc;function MM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Zc=new bS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Re.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function kM(){Zc?.shutdown()}function tl(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 Xc=class{constructor(e){this.flagSchema=e;this.setId=el.randomUUID()}defaults(){return(0,vS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await DS.default.trace("features.fetch",async e=>{let r=Qp(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 tl(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(d),!!this.isFlagName(d))){if(typeof i[d]!="boolean")throw new Error(`Feature: ${d} is not a boolean`);i[d]=m,n[`flags.${d}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let l=qp();l&&(u=el.createHash("sha512").update(l).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,Zc&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await Zc.getAllFlags(u,{personProperties:l});for(let[m,p]of Object.entries(d)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${p}`);continue}if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${p}`,f)}}}jp(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},jm=new Xc(bh);async function FM(t){return await jm.isEnabled(t)}async function BM(){return await jm.fetch()}var Hm={};v(Hm,{setFeatureFlags:()=>CS,withFeatureFlags:()=>VM});function GM(){let t={};for(let{tenantId:e,key:r,value:n}of tl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function $M(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 CS(t,e){let r=GM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=$M(r);return wo({TENANT_FEATURE_FLAGS:n})}function VM(t,e,r){let n=CS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var oh={};v(oh,{adminOnly:()=>pl,auditLog:()=>ul,authError:()=>Ue,buildAuthMiddleware:()=>Dk,buildCsrfMiddleware:()=>Ck,buildTenancyMiddleware:()=>vk,builderOnly:()=>ml,builderOrAdmin:()=>fl,google:()=>Er,internalApi:()=>ll,joiValidator:()=>Ua,oidc:()=>Tr,passport:()=>Nk,platformLogout:()=>kk,refreshOAuthToken:()=>Lk,ssoCallbackUrl:()=>sn,updateUserOAuth:()=>Mk});var sh={};v(sh,{adminOnly:()=>pl,auditLog:()=>ul,authError:()=>Ue,authenticated:()=>al,builderOnly:()=>ml,builderOrAdmin:()=>fl,correlation:()=>QS,csp:()=>JS,csrf:()=>dl,datasource:()=>wk,errorHandling:()=>HS,google:()=>Er,internalApi:()=>ll,ip:()=>XS,joiValidator:()=>Ua,local:()=>Os,oidc:()=>Tr,pino:()=>qS,querystringToBody:()=>YS,ssoCallbackUrl:()=>sn,tenancy:()=>cl});var Os={};v(Os,{authenticate:()=>QM,options:()=>WM});function Ue(t,e,r){return t(r,null,{message:e})}async function sn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Vm(),n="/api/global/auth";return Gr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Km="Invalid credentials",qM="This account has expired. Please reset your password",WM={passReqToCallback:!0};async function QM(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,Km)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Km)):i.password?await Gf(r,i.password)?(delete i.password,n(null,i)):Ue(n,Km):(console.info(`user=${e} has no password set`,i),Ue(n,qM))}var Er={};v(Er,{buildVerifyFn:()=>US,getCallbackUrl:()=>YM,strategyFactory:()=>zm});var Pa=t=>Promise.resolve(t);async function rl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ue(r,"sso user id required");if(!t.email)return Ue(r,"sso user email required");let i=ts(t.userId),s;try{s=await pi(i)}catch(a){if(!a.status||a.status!==404)return Ue(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await kt(t.email)),!s&&e)return Ue(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await jM(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ue(r,"Error saving user",a)}return r(null,o)}async function jM(t,e){let r,n,i;if(e.profile){let s=e.profile;if(s.name){let o=s.name;o.givenName&&(r=o.givenName),o.familyName&&(n=o.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}var HM=require("passport-google-oauth").OAuth2Strategy;function US(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 rl(s,!0,i,t)}}async function zm(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=US(r);return new HM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function YM(t){return sn("google",t)}var Tr={};v(Tr,{buildVerifyFn:()=>MS,fetchStrategyConfig:()=>ZM,getCallbackUrl:()=>XM,strategyFactory:()=>JM});var LS=j(require("node-fetch"));var KM=require("@techpass/passport-openidconnect").Strategy;function MS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:zM(n,i),oauth2:{accessToken:s,refreshToken:o}};return rl(l,!1,c,t)}}function zM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&qf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function JM(t,e){try{let r=MS(e),n=new KM(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function ZM(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,LS.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 XM(){return sn("oidc")}var Jm={};v(Jm,{postAuth:()=>rk,preAuth:()=>tk});var ek=require("passport-google-oauth").OAuth2Strategy;async function kS(){let t=await qm();if(!t)throw new Error("No google configuration found");return t}async function tk(t,e,r){let n=await kS(),s=`${await Na({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await zm(n,s,Pa);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function rk(t,e,r){let n=await kS(),s=`${await Na({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ii(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new ek({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Oe();await mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var nk=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(nk);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 nh={};v(nh,{SecretOption:()=>GS,decrypt:()=>rh,decryptFile:()=>ck,encrypt:()=>ok,encryptFile:()=>ak,getSecret:()=>th});var Ar=j(require("crypto")),on=j(require("fs")),Xm=j(require("zlib"));var Zm=require("path"),nl="aes-256-ctr",BS="-",ik=1e4,sk=32,il=16,eh=16,GS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(GS||{});function th(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 sl(t,e){return Ar.default.pbkdf2Sync(t,e,ik,sk,"sha512")}function ok(t,e="api"){let r=Ar.default.randomBytes(il),n=sl(th(e),r),i=Ar.default.createCipheriv(nl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${BS}${a}`}function rh(t,e="api"){let[r,n]=t.split(BS),i=Buffer.from(r,"hex"),s=sl(th(e),i),o=Ar.default.createDecipheriv(nl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function ak({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Zm.join)(t,e);if(on.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=on.default.createReadStream(i),o=on.default.createWriteStream((0,Zm.join)(t,n)),a=Ar.default.randomBytes(il),u=Ar.default.randomBytes(eh),c=sl(r,a),l=Ar.default.createCipheriv(nl,c,u);return o.write(a),o.write(u),s.pipe(Xm.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function uk(t){let e=on.default.createReadStream(t),r=await FS(e,il),n=await FS(e,eh);return e.close(),{salt:r,iv:n}}async function ck(t,e,r){if(on.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await uk(t),s=on.default.createReadStream(t,{start:il+eh}),o=on.default.createWriteStream(e),a=sl(r,n),u=Ar.default.createDecipheriv(nl,a,i),c=Xm.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 FS(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 VS=j(require("dd-trace")),lk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function dk(){return new Date(Date.now()-lk).toISOString()}function $S(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}async function pk(t,e){if(ua(t))return{valid:!0,user:void 0};let n=rh(t).split(C)[0];return Be(n,async()=>{let i;try{let s=se();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Da({userId:i,tenantId:n,populateUser:e})};throw new hs})}function ol(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function al(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=ol(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=ol(n,"x-budibase-token"),c=ii(n,"budibase:auth")||Ec(u),l=ol(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=ol(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await xm(O,y),e&&e.populateUser?p=await Da({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Da({userId:O,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<dk()&&await Im(S),m=!0}catch(L){m=!1,console.error(`Auth Error: ${L.message}`),zr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await pk(l,y);O&&(m=!0,g="api_key",p=S,f=!S)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&VS.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),$S(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?xp(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?zr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return $S(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var fk=async(t,e)=>e(),ul=fk;function cl(t,e,r={noTenancyRequired:!1}){let n=fi(t),i=fi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!mi(s,i)};!!mi(s,n)||(u.excludeStrategies=["query"]);let l=oa(s,u);return s.set("x-budibase-tenant-id",l),Be(l,o)}}var ll=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 mk=["GET","HEAD","OPTIONS"],hk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function dl(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||mk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!hk.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 pl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var fl=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var ml=async(t,e)=>{let r=Ne(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var gk=require("koa-pino-logger"),yk=require("correlation-id");function Ek(){return{logger:mc,genReqId:yk.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 Tk(){return h.HTTP_LOGGING?gk(Ek()):(t,e)=>e()}var Ak=Tk(),qS=Ak;var WS=require("uuid"),_k=require("correlation-id"),Sk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,WS.v4)()),_k.withId(r,()=>e())},QS=Sk;function jS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of RT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Ok(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:wc(r)};if(jS(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 HS=Ok;function YS(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}var zS=j(require("crypto")),KS={"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 Ik(t,e){try{let r=zS.default.randomBytes(16).toString("base64"),n={...KS};n["script-src"]=[...KS["script-src"],`'nonce-${r}'`],t.state.nonce=r;let i=Object.entries(n).map(([s,o])=>`${s} ${o.join(" ")}`).join("; ");t.set("Content-Security-Policy",i),await e()}catch(r){console.error(`Error occurred in Content-Security-Policy middleware: ${r}`)}}var JS=Ik;var Ua={};v(Ua,{body:()=>xk,params:()=>Rk});var ih=j(require("joi"));function ZS(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:ih.default.any().optional(),updatedAt:ih.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 xk(t,e){return ZS(t,"body",e)}function Rk(t,e){return ZS(t,"params",e)}var XS=async(t,e)=>t.ip?await Wp(t.ip,()=>e()):e();var wk={google:Jm};var eO=require("koa-passport"),bk=require("passport-local").Strategy,hl=require("passport-oauth2-refresh"),Dk=al,vk=cl,Ck=dl,Nk=eO;eO.use(new bk(Os.options,Os.authenticate));async function Pk(t,e){let r=await Tr.getCallbackUrl(),n,i;try{if(n=await Tr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Tr.strategyFactory(n,Pa)}catch{throw new Error("Could not refresh OAuth Token")}return hl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{hl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Uk(t,e){let r=await Er.getCallbackUrl(t),n;try{n=await Er.strategyFactory(t,r,Pa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return hl.use(n),new Promise(i=>{hl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Lk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Wm(r);return n?Pk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await zc();return n?Uk(n,t):{err:{data:"Google configuration not found"}}}}}async function Mk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=se(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function kk(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 Wc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):zr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await di(r,{sessionIds:o,reason:"logout"}),await qc.logout(e.user?.email),await va(r)}var uh={};v(uh,{validate:()=>Vk});var b=j(require("joi")),Fk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function ah(t,e){let{error:r}=t.validate(e);if(r)throw r}function Bk(t){let e=b.default.object({type:b.default.string().allow("component").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),settings:b.default.array().items(b.default.object().unknown(!0)).required()}).unknown(!0)});ah(e,t)}function Gk(t){let e=b.default.object({type:b.default.string().allow(...Object.values(Al)).required(),required:b.default.boolean().required(),default:b.default.any(),display:b.default.string()}),r=b.default.object({type:b.default.string().allow(...Object.values(Tl)),readable:b.default.boolean(),fields:b.default.object().pattern(b.default.string(),e)}).required(),n=b.default.object({type:b.default.string().allow("datasource").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({docs:b.default.string(),plus:b.default.boolean().optional(),isSQL:b.default.boolean().optional(),auth:b.default.object({type:b.default.string().required()}).optional(),features:b.default.object(Object.fromEntries(Object.values(_l).map(i=>[i,b.default.boolean().optional()]))).optional(),relationships:b.default.boolean().optional(),description:b.default.string().required(),friendlyName:b.default.string().required(),type:b.default.string().allow(...Fk),datasource:b.default.object().pattern(b.default.string(),e).required(),query:b.default.object().pattern(b.default.string(),r).unknown(!0).required(),extra:b.default.object().pattern(b.default.string(),b.default.object({type:b.default.string().required(),displayName:b.default.string().required(),required:b.default.boolean(),data:b.default.object()}))})});ah(n,t)}function $k(t){let e=b.default.object().pattern(b.default.string(),{type:b.default.string().allow(...Object.values(oe)).required(),customType:b.default.string().allow(...Object.values(Ee)),title:b.default.string(),description:b.default.string(),enum:b.default.array().items(b.default.string()),pretty:b.default.array().items(b.default.string())}),r=b.default.object({properties:e,required:b.default.array().items(b.default.string())}).concat(e).required(),n=b.default.object({type:b.default.string().allow("automation").required(),metadata:b.default.object().unknown(!0).required(),hash:b.default.string().optional(),version:b.default.string().optional(),schema:b.default.object({name:b.default.string().required(),tagline:b.default.string().required(),icon:b.default.string().required(),description:b.default.string().required(),type:b.default.string().allow("ACTION","LOGIC").required(),stepId:b.default.string().disallow(...Dh).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});ah(n,t)}function Vk(t){switch(t?.type){case"component":Bk(t);break;case"datasource":Gk(t);break;case"automation":$k(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var ch={};v(ch,{Client:()=>Ge,clients:()=>Yr,locks:()=>oi,utils:()=>rc});var lh={};v(lh,{isBlacklisted:()=>Wk,refreshBlacklist:()=>iO});var tO=j(require("dns")),yl=j(require("net"));var rO=require("util"),gl,qk=(0,rO.promisify)(tO.default.lookup);async function nO(t){return yl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await qk(t,{all:!0})).map(r=>r.address)}async function iO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(yl.default.isIP(i))r.push(i);else{let s=await nO(i);r=r.concat(s)}}gl=r}async function Wk(t){if(gl||await iO(),gl?.length===0)return!1;let e;return yl.default.isIP(t)?e=[t]:e=await nO(t),!!gl?.find(r=>e.includes(r))}var ph={};v(ph,{init:()=>jk});var Qk={"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 sO(t,e){let r=Qk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var La=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=sO(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Be(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return V_()}};var oO,dh;function jk(t){yr||Vc(),dh||(dh=new La(t)),oO||(oO=yr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await dh.processEvent(r,n,i)}))}var _h={};v(_h,{COUNT_FIELD_NAME:()=>Th,Sql:()=>mO,SqlTable:()=>El,designDoc:()=>Ah,utils:()=>kp});var lO=require("knex");var Hk=require("knex");function fh(t){return["link","formula","ai"].indexOf(t)!==-1}function aO(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}=Pp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=y.primary[0],S=y.schema[O].externalType;S?t.specificType(p.foreignKey,S):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${p.type} is not a valid SQL type`;default:wi.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!fh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!fh(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||fh(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Kk(t,e,r){return t.createTable(e.name,n=>{aO(n,e,r)})}function zk(t,e,r,n,i){return t.alterTable(e.name,s=>{aO(s,e,r,n,i)})}function Jk(t,e){return t.dropTable(e.name)}var mh=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,Hk.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=Kk(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=zk(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=Jk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Yi(n)}},El=mh;var dO=require("lodash"),Th="__bb_total";function uO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function hh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Zk(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 pO(t){return Array.isArray(t)?t.map(e=>pO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function cO(t){return t.sourceType==="internal"||t.sourceId===xl}function Xk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function fO(t,e='"'){return`${e}${Xk(t,e)}${e}`}function gh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=fO(t[r],e));return`[${t.join(",")}]`}var eF={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},yh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Lr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime"){if(Up(e))return null;if(Lp(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,dO.cloneDeep)(e);for(let r of Object.values(Sr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Kt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(ln)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),O=Mp(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),O){let L=a?.[O.through]||d.through,T=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(_=>{_.whereExists(i(S,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(S,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let O=(S,L,T)=>{let[_,...B]=L.split("."),R=B.join("."),F=c(_);return S.andWhere(ce=>E(ce,F?`${F}.${R}`:R,T))};for(let S in f){let L=f[S],T=Bo(S),_=T.includes("."),B=n?.relationship&&_,R;if(S==="_complexIdOperator"&&(R=f[S])&&y){let F=c(u);e=y(e,R.id.map(ce=>F?`${F}.${ce}`:ce),R.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,eF[g],T,(F,ce)=>O(ce,F,L)));else{let F=c(u);e=E(e,F?`${F}.${T}`:T,L)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,O,S)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(gh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(gh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,O,S)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(fO(gh(S)))])):l(f,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(f===r?.notContains&&(L=L.not),L=L.where(T=>{for(let _ of S){f===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),f===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),O=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let S of O)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,O)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let y=R=>R&&Object.keys(R).length===0&&Object.getPrototypeOf(R)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let O=Xu(E.low),S=Xu(E.high),L=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),O&&S?f.whereBetween(T,[B,_]):O?f.where(T,">=",B):S?f.where(T,"<=",_):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.whereNotNull(O).andWhere(O,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.not.whereNull(O).and.where(O,"!=",E)).or.whereNull(O)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!Np(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Or(r.documentType)}%`),e}isSqs(){return cO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;cO(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 ${Th}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let O=c[m];if(!O)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,L=a?.[r]||r,T=p&&a?.[p]||p,_=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),R=Zk(l.filter(q=>q.split(".")[0]===S),B);R=R.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=R.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ce=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),an=`${S}.${y||f}`,V=s.from(_).orderBy(an),k=p&&y&&E,D=k?`${T}.${g}`:`${S}.${f}`,W=k?`${L}.${E}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(p,{alias:T,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(R.map(ie=>this.rawQuotedIdentifier(ie))).limit(hh()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,d),K=U(this.knex.raw(`json_group_array(json_object(${ce}))`));break;case"pg":K=U(this.knex.raw(`json_agg(json_build_object(${ce}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${ce}) LIMIT ${hh()})`));break;case"mysql2":case"oracledb":K=U(this.knex.raw(`json_arrayagg(json_object(${ce}))`));break;case"mssql":{let q=s.select("*").from({[L]:V.select(F.map(ie=>s.ref(ie[1]).as(ie[0]))).limit(hh())});K=s.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},Eh=class extends El{constructor(r,n=uO()){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=pO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,lO.knex)(s),a,u=new yh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:uO()}});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===xl){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 vh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){Co(this.getSqlClient(),r,n)}},mO=Eh;var Ah={};v(Ah,{base:()=>tF});function tF(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var rF={...aa,...ye},nF=(t={})=>{Ju(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
|