@budibase/backend-core 3.4.2 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -10
- package/dist/index.js.map +4 -4
- package/dist/package.json +2 -2
- package/dist/src/docIds/params.d.ts +2 -1
- package/dist/src/docIds/params.js +8 -4
- package/dist/src/docIds/params.js.map +1 -1
- package/dist/src/queue/inMemoryQueue.d.ts +16 -12
- package/dist/src/queue/inMemoryQueue.js +70 -41
- package/dist/src/queue/inMemoryQueue.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
"use strict";var cO=Object.create;var ka=Object.defineProperty;var lO=Object.getOwnPropertyDescriptor;var dO=Object.getOwnPropertyNames;var pO=Object.getPrototypeOf,fO=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)ka(t,r,{get:e[r],enumerable:!0})},gh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of dO(e))!fO.call(t,i)&&i!==r&&ka(t,i,{get:()=>e[i],enumerable:!(n=lO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?cO(pO(t)):{},gh(e||!t||!t.__esModule?ka(r,"default",{value:t,enumerable:!0}):r,t)),mO=t=>gh(ka({},"__esModule",{value:!0}),t);var $h=H((Dl,vl)=>{"use strict";(function(t,e){typeof Dl=="object"&&typeof vl<"u"?vl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Dl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",p="year",m="date",d="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,T={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var k=["th","st","nd","rd"],D=V%100;return"["+V+(k[(D-20)%10]||k[D]||k[0])+"]"}},y=function(V,k,D){var W=String(V);return!W||W.length>=k?V:""+Array(k+1-W.length).join(D)+V},O={s:y,z:function(V){var k=-V.utcOffset(),D=Math.abs(k),W=Math.floor(D/60),U=D%60;return(k<=0?"+":"-")+y(W,2,"0")+":"+y(U,2,"0")},m:function V(k,D){if(k.date()<D.date())return-V(D,k);var W=12*(D.year()-k.year())+(D.month()-k.month()),U=k.clone().add(W,c),K=D-U<0,q=k.clone().add(W+(K?-1:1),c);return+(-(W+(D-U)/(K?U-q:q-U))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:p,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",L={};L[S]=T;var E="$isDayjsObject",A=function(V){return V instanceof ce||!(!V||!V[E])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},w=function(V,k){if(A(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ce(D)},F=O;F.l=B,F.i=A,F.w=function(V,k){return w(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ce=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[E]=!0}var k=V.prototype;return k.parse=function(D){this.$d=function(W){var U=W.date,K=W.utc;if(U===null)return new Date(NaN);if(F.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var q=U.match(f);if(q){var ie=q[2]-1||0,G=(q[7]||"0").substring(0,3);return K?new Date(Date.UTC(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)):new Date(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)}}return new Date(U)}(D),this.init()},k.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==d},k.isSame=function(D,W){var U=w(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return w(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<w(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(cn,Ve){var Tr=F.w(U.$u?Date.UTC(U.$y,Ve,cn):new Date(U.$y,Ve,cn),U);return K?Tr:Tr.endOf(a)},G=function(cn,Ve){return F.w(U.toDate()[cn].apply(U.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Ve)),U)},Re=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(q){case p:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Le):ie(0,Le+1);case u:var un=this.$locale().weekStart||0,Is=(Re<un?Re+7:Re)-un;return ie(K?lt-Is:lt+(6-Is),Le);case a:case m:return G(hi+"Hours",0);case o:return G(hi+"Minutes",1);case s:return G(hi+"Seconds",2);case i:return G(hi+"Milliseconds",3);default:return this.clone()}},k.endOf=function(D){return this.startOf(D,!1)},k.$set=function(D,W){var U,K=F.p(D),q="set"+(this.$u?"UTC":""),ie=(U={},U[a]=q+"Date",U[m]=q+"Date",U[c]=q+"Month",U[p]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[K],G=K===a?this.$D+(W-this.$W):W;if(K===c||K===p){var Re=this.clone().set(m,1);Re.$d[ie](G),Re.init(),this.$d=Re.set(m,Math.min(this.$D,Re.daysInMonth())).$d}else ie&&this.$d[ie](G);return this.init(),this},k.set=function(D,W){return this.clone().$set(D,W)},k.get=function(D){return this[F.p(D)]()},k.add=function(D,W){var U,K=this;D=Number(D);var q=F.p(W),ie=function(Le){var lt=w(K);return F.w(lt.date(lt.date()+Math.round(Le*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===p)return this.set(p,this.$y+D);if(q===a)return ie(1);if(q===u)return ie(7);var G=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,Re=this.$d.getTime()+D*G;return F.w(Re,this)},k.subtract=function(D,W){return this.add(-1*D,W)},k.format=function(D){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||d;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,Re=this.$M,Le=U.weekdays,lt=U.months,hi=U.meridiem,un=function(Ve,Tr,xs,Ma){return Ve&&(Ve[Tr]||Ve(W,K))||xs[Tr].slice(0,Ma)},Is=function(Ve){return F.s(ie%12||12,Ve,"0")},cn=hi||function(Ve,Tr,xs){var Ma=Ve<12?"AM":"PM";return xs?Ma.toLowerCase():Ma};return K.replace(g,function(Ve,Tr){return Tr||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return Re+1;case"MM":return F.s(Re+1,2,"0");case"MMM":return un(U.monthsShort,Re,lt,3);case"MMMM":return un(lt,Re);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return un(U.weekdaysMin,W.$W,Le,2);case"ddd":return un(U.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return cn(ie,G,!0);case"A":return cn(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=w(D),Re=(G.utcOffset()-this.utcOffset())*e,Le=this-G,lt=function(){return F.m(q,G)};switch(ie){case p:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-Re)/6048e5;break;case a:K=(Le-Re)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return U?K:F.a(K)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(D,W){if(!D)return this.$L;var U=this.clone(),K=B(D,W,!0);return K&&(U.$L=K),U},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},V}(),an=ce.prototype;return w.prototype=an,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",p],["$D",m]].forEach(function(V){an[V[1]]=function(k){return this.$g(k,V[0],V[1])}}),w.extend=function(V,k){return V.$i||(V(k,ce,w),V.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(V){return w(1e3*V)},w.en=L[S],w.Ls=L,w.p={},w})});var Ot=H(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var FI=t=>new nu(t);We.valid=FI;var BI=t=>new iu(t);We.err=BI;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 It=H(Qh=>{"use strict";Object.defineProperty(Qh,"__esModule",{value:!0})});var Rr=H(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});$t();var re=Ot();It();var GI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],$I=["sun","mon","tue","wed","thu","fri","sat"],VI=(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&&GI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&$I.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)},qI=(t,e,r)=>{if(t==="*")return VI(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Us(n,e,r)}return Us(t,e,r)},jh=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Us(t,e,r),WI=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return qI(n[0],e,r);if(n.length===2){let i=jh(n[0],e,r,0),s=jh(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,re.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,re.valid)(!0)}return(0,re.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},QI=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '/')`);let i=WI(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,re.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,re.valid)(!0)},jI=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,re.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,re.valid)(!0):(0,re.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,re.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(QI(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)};Ul.default=jI});var Hh=H(Ls=>{"use strict";var HI=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var YI=Ot(),KI=HI(Rr());It();var zI=(t,e)=>{if(!t.seconds)return(0,YI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,KI.default)(r,"seconds",e)};Ls.default=zI});var Yh=H(Ms=>{"use strict";var JI=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var ZI=Ot(),XI=JI(Rr());It();var ex=(t,e)=>{if(!t.minutes)return(0,ZI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,XI.default)(r,"minutes",e)};Ms.default=ex});var Kh=H(ks=>{"use strict";var tx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var rx=Ot(),nx=tx(Rr());It();var ix=(t,e)=>{if(!t.hours)return(0,rx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,nx.default)(r,"hours",e)};ks.default=ix});var zh=H(Bs=>{"use strict";var sx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=Ot(),ox=sx(Rr());It();var ax=(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,ox.default)(r,"daysOfMonth",e)};Bs.default=ax});var Jh=H(Gs=>{"use strict";var ux=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var cx=Ot(),lx=ux(Rr());It();var dx=(t,e)=>{if(!t.months)return(0,cx.err)(["months field is undefined."]);let{months:r}=t;return(0,lx.default)(r,"months",e)};Gs.default=dx});var Zh=H(Vs=>{"use strict";var px=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=Ot(),fx=px(Rr());It();var mx=(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,fx.default)(r,"daysOfWeek",e)};Vs.default=mx});var Xh=H(qs=>{"use strict";var hx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var gx=Ot(),yx=hx(Rr());It();var Ex=(t,e)=>{if(!t.years)return(0,gx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,yx.default)(r,"years",e)};qs.default=Ex});var ng=H((vq,rg)=>{"use strict";var Ll;try{Ll=Map}catch{}var Ml;try{Ml=Set}catch{}function eg(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(tg);if(Ll&&t instanceof Ll)return new Map(Array.from(t.entries()));if(Ml&&t instanceof Ml)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]:eg(t[i],e,r)}return n}return t}function tg(t){return eg(t,[],[])}rg.exports=tg});var Ws=H(kl=>{"use strict";Object.defineProperty(kl,"__esModule",{value:!0});kl.default=xx;var Tx=Object.prototype.toString,_x=Error.prototype.toString,Ax=RegExp.prototype.toString,Sx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Ox=/^Symbol\((.*)\)(.*)$/;function Ix(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function ig(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Ix(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Sx.call(t).replace(Ox,"Symbol($1)");let n=Tx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+_x.call(t)+"]":n==="RegExp"?Ax.call(t):null}function xx(t,e){let r=ig(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=ig(this[n],e);return s!==null?s:i},2)}});var Zt=H(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.default=be.array=be.object=be.boolean=be.date=be.number=be.string=be.mixed=void 0;var sg=wx(Ws());function wx(t){return t&&t.__esModule?t:{default:t}}var og={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,sg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,sg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};be.mixed=og;var ag={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};be.string=ag;var ug={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};be.number=ug;var cg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};be.date=cg;var lg={isValue:"${path} field must be ${value}"};be.boolean=lg;var dg={noUnknown:"${path} field has unspecified keys: ${unknown}"};be.object=dg;var pg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};be.array=pg;var Rx=Object.assign(Object.create(null),{mixed:og,string:ag,number:ug,date:cg,object:dg,array:pg,boolean:lg});be.default=Rx});var bi=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var bx=t=>t&&t.__isYupSchema__;su.default=bx});var mg=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Dx=fg(require("lodash/has")),vx=fg(bi());function fg(t){return t&&t.__esModule?t:{default:t}}var Fl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Dx.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.getValue(r?.value,r?.parent,r?.context)),i=this.fn.apply(e,n.concat(e,r));if(i===void 0||i===e)return e;if(!(0,vx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Cx=Fl;ou.default=Cx});var Gl=H(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.default=Nx;function Nx(t){return t==null?[]:[].concat(t)}});var bn=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Px=hg(Ws()),Ux=hg(Gl());function hg(t){return t&&t.__esModule?t:{default:t}}function $l(){return $l=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},$l.apply(this,arguments)}var Lx=/\$\{\s*(\w+)\s*\}/g,Vl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=$l({},r,{path:n})),typeof e=="string"?e.replace(Lx,(i,s)=>(0,Px.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,Ux.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=Vl});var uu=H(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Wl.default=Fx;var ql=Mx(bn());function Mx(t){return t&&t.__esModule?t:{default:t}}var kx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Fx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=kx(e),l=n.length,p=[];if(o=o||[],!l)return o.length?c(new ql.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let d=n[m];d(i,function(g){if(g){if(!ql.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);p.push(g)}if(--l<=0){if(p.length&&(a&&p.sort(a),o.length&&p.push(...o),o=p),o.length){c(new ql.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((Fq,_g)=>{"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 Bx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Tg=/^\d+$/,Gx=/^\d/,$x=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Vx=/^\s*(['"]?)(.*?)(\1)\s*$/,Hl=512,gg=new Dn(Hl),yg=new Dn(Hl),Eg=new Dn(Hl);_g.exports={Cache:Dn,split:jl,normalizePath:Ql,setter:function(t){var e=Ql(t);return yg.get(t)||yg.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=Ql(t);return Eg.get(t)||Eg.set(t,function(i){for(var s=0,o=r.length;s<o;)if(i!=null||!e)i=i[r[s++]];else return;return i})},join:function(t){return t.reduce(function(e,r){return e+(Yl(r)||Tg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){qx(Array.isArray(t)?t:jl(t),e,r)}};function Ql(t){return gg.get(t)||gg.set(t,jl(t).map(function(e){return e.replace(Vx,"$2")}))}function jl(t){return t.match(Bx)||[""]}function qx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(jx(i)&&(i='"'+i+'"'),a=Yl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Yl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function Wx(t){return t.match(Gx)&&!t.match(Tg)}function Qx(t){return $x.test(t)}function jx(t){return!Yl(t)&&(Wx(t)||Qx(t))}});var vn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Yx;Hs.default=void 0;var Hx=Qs(),cu={context:"$",value:"."};function Yx(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,Hx.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 Ag=H(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=Zx;var Kx=Kl(require("lodash/mapValues")),lu=Kl(bn()),zx=Kl(vn());function Kl(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 Jx(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 Zx(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=Jx(r,["value","path","label","options","originalValue","sync"]),{name:p,test:m,params:d,message:f}=t,{parent:g,context:T}=a;function y(A){return zx.default.isRef(A)?A.getValue(i,g,T):A}function O(A={}){let B=(0,Kx.default)(du({value:i,originalValue:u,label:o,path:A.path||s},d,A.params),y),w=new lu.default(lu.default.formatError(A.message||f,B),i,B.path,A.type||p);return w.params=B,w}let S=du({path:s,parent:g,type:p,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(A=>{lu.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var E;if(L=m.call(S,i,S),typeof((E=L)==null?void 0:E.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(A){n(A);return}lu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var Jl=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=Sg;Ys.default=void 0;var Xx=Qs(),ew=t=>t.substr(0,t.length-1).substr(1);function Sg(t,e,r,n=r){let i,s,o;return e?((0,Xx.forEach)(e,(a,u,c)=>{let l=u?ew(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let p=c?parseInt(l,10):0;if(r&&p>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[p],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var tw=(t,e,r,n)=>Sg(t,e,r,n).schema,rw=tw;Ys.default=rw});var Ig=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Og=nw(vn());function nw(t){return t&&t.__esModule?t:{default:t}}var Zl=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){Og.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Og.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=Zl});var er=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var xg=Xt(ng()),Di=Zt(),iw=Xt(mg()),wg=Xt(uu()),fu=Xt(Ag()),Rg=Xt(Ws()),sw=Xt(vn()),ow=Jl(),aw=Xt(Gl()),bg=Xt(bn()),Dg=Xt(Ig());function Xt(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var xt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Dg.default,this._blacklist=new Dg.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,xg.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,Rg.default)(e),o=(0,Rg.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 dO=Object.create;var ka=Object.defineProperty;var pO=Object.getOwnPropertyDescriptor;var fO=Object.getOwnPropertyNames;var mO=Object.getPrototypeOf,hO=Object.prototype.hasOwnProperty;var Y=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),C=(t,e)=>{for(var r in e)ka(t,r,{get:e[r],enumerable:!0})},yh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of fO(e))!hO.call(t,i)&&i!==r&&ka(t,i,{get:()=>e[i],enumerable:!(n=pO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?dO(mO(t)):{},yh(e||!t||!t.__esModule?ka(r,"default",{value:t,enumerable:!0}):r,t)),gO=t=>yh(ka({},"__esModule",{value:!0}),t);var Vh=Y((Dl,vl)=>{"use strict";(function(t,e){typeof Dl=="object"&&typeof vl<"u"?vl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Dl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",p="year",m="date",d="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,T={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var k=["th","st","nd","rd"],D=V%100;return"["+V+(k[(D-20)%10]||k[D]||k[0])+"]"}},y=function(V,k,D){var W=String(V);return!W||W.length>=k?V:""+Array(k+1-W.length).join(D)+V},O={s:y,z:function(V){var k=-V.utcOffset(),D=Math.abs(k),W=Math.floor(D/60),U=D%60;return(k<=0?"+":"-")+y(W,2,"0")+":"+y(U,2,"0")},m:function V(k,D){if(k.date()<D.date())return-V(D,k);var W=12*(D.year()-k.year())+(D.month()-k.month()),U=k.clone().add(W,c),K=D-U<0,q=k.clone().add(W+(K?-1:1),c);return+(-(W+(D-U)/(K?U-q:q-U))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:p,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",L={};L[S]=T;var E="$isDayjsObject",A=function(V){return V instanceof ce||!(!V||!V[E])},B=function V(k,D,W){var U;if(!k)return S;if(typeof k=="string"){var K=k.toLowerCase();L[K]&&(U=K),D&&(L[K]=D,U=K);var q=k.split("-");if(!U&&q.length>1)return V(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},w=function(V,k){if(A(V))return V.clone();var D=typeof k=="object"?k:{};return D.date=V,D.args=arguments,new ce(D)},F=O;F.l=B,F.i=A,F.w=function(V,k){return w(V,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ce=function(){function V(D){this.$L=B(D.locale,null,!0),this.parse(D),this.$x=this.$x||D.x||{},this[E]=!0}var k=V.prototype;return k.parse=function(D){this.$d=function(W){var U=W.date,K=W.utc;if(U===null)return new Date(NaN);if(F.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var q=U.match(f);if(q){var ie=q[2]-1||0,G=(q[7]||"0").substring(0,3);return K?new Date(Date.UTC(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)):new Date(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,G)}}return new Date(U)}(D),this.init()},k.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==d},k.isSame=function(D,W){var U=w(D);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(D,W){return w(D)<this.startOf(W)},k.isBefore=function(D,W){return this.endOf(W)<w(D)},k.$g=function(D,W,U){return F.u(D)?this[W]:this.set(U,D)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(D,W){var U=this,K=!!F.u(W)||W,q=F.p(D),ie=function(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)},Re=this.$W,Le=this.$M,lt=this.$D,hi="set"+(this.$u?"UTC":"");switch(q){case p:return K?ie(1,0):ie(31,11);case c:return K?ie(1,Le):ie(0,Le+1);case u:var un=this.$locale().weekStart||0,Is=(Re<un?Re+7:Re)-un;return ie(K?lt-Is:lt+(6-Is),Le);case a:case m:return G(hi+"Hours",0);case o:return G(hi+"Minutes",1);case s:return G(hi+"Seconds",2);case i:return G(hi+"Milliseconds",3);default:return this.clone()}},k.endOf=function(D){return this.startOf(D,!1)},k.$set=function(D,W){var U,K=F.p(D),q="set"+(this.$u?"UTC":""),ie=(U={},U[a]=q+"Date",U[m]=q+"Date",U[c]=q+"Month",U[p]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[K],G=K===a?this.$D+(W-this.$W):W;if(K===c||K===p){var Re=this.clone().set(m,1);Re.$d[ie](G),Re.init(),this.$d=Re.set(m,Math.min(this.$D,Re.daysInMonth())).$d}else ie&&this.$d[ie](G);return this.init(),this},k.set=function(D,W){return this.clone().$set(D,W)},k.get=function(D){return this[F.p(D)]()},k.add=function(D,W){var U,K=this;D=Number(D);var q=F.p(W),ie=function(Le){var lt=w(K);return F.w(lt.date(lt.date()+Math.round(Le*D)),K)};if(q===c)return this.set(c,this.$M+D);if(q===p)return this.set(p,this.$y+D);if(q===a)return ie(1);if(q===u)return ie(7);var G=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,Re=this.$d.getTime()+D*G;return F.w(Re,this)},k.subtract=function(D,W){return this.add(-1*D,W)},k.format=function(D){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||d;var K=D||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,G=this.$m,Re=this.$M,Le=U.weekdays,lt=U.months,hi=U.meridiem,un=function(Ve,_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 Re+1;case"MM":return F.s(Re+1,2,"0");case"MMM":return un(U.monthsShort,Re,lt,3);case"MMMM":return un(lt,Re);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return un(U.weekdaysMin,W.$W,Le,2);case"ddd":return un(U.weekdaysShort,W.$W,Le,3);case"dddd":return Le[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return Is(1);case"hh":return Is(2);case"a":return cn(ie,G,!0);case"A":return cn(ie,G,!1);case"m":return String(G);case"mm":return F.s(G,2,"0");case"s":return String(W.$s);case"ss":return F.s(W.$s,2,"0");case"SSS":return F.s(W.$ms,3,"0");case"Z":return q}return null}(Ve)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(D,W,U){var K,q=this,ie=F.p(W),G=w(D),Re=(G.utcOffset()-this.utcOffset())*e,Le=this-G,lt=function(){return F.m(q,G)};switch(ie){case p:K=lt()/12;break;case c:K=lt();break;case l:K=lt()/3;break;case u:K=(Le-Re)/6048e5;break;case a:K=(Le-Re)/864e5;break;case o:K=Le/r;break;case s:K=Le/e;break;case i:K=Le/t;break;default:K=Le}return U?K:F.a(K)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(D,W){if(!D)return this.$L;var U=this.clone(),K=B(D,W,!0);return K&&(U.$L=K),U},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},V}(),an=ce.prototype;return w.prototype=an,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",p],["$D",m]].forEach(function(V){an[V[1]]=function(k){return this.$g(k,V[0],V[1])}}),w.extend=function(V,k){return V.$i||(V(k,ce,w),V.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(V){return w(1e3*V)},w.en=L[S],w.Ls=L,w.p={},w})});var Ot=Y(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.Err=We.Valid=We.err=We.valid=void 0;var GI=t=>new nu(t);We.valid=GI;var $I=t=>new iu(t);We.err=$I;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 It=Y(jh=>{"use strict";Object.defineProperty(jh,"__esModule",{value:!0})});var br=Y(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});$t();var re=Ot();It();var VI=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],qI=["sun","mon","tue","wed","thu","fri","sat"],WI=(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&&VI.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&qI.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)},QI=(t,e,r)=>{if(t==="*")return WI(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)},Yh=(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 QI(n[0],e,r);if(n.length===2){let i=Yh(n[0],e,r,0),s=Yh(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)")},YI=(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)},HI=(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(YI(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)};Ul.default=HI});var Hh=Y(Ls=>{"use strict";var KI=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});$t();var zI=Ot(),JI=KI(br());It();var ZI=(t,e)=>{if(!t.seconds)return(0,zI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,JI.default)(r,"seconds",e)};Ls.default=ZI});var Kh=Y(Ms=>{"use strict";var XI=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});$t();var ex=Ot(),tx=XI(br());It();var rx=(t,e)=>{if(!t.minutes)return(0,ex.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,tx.default)(r,"minutes",e)};Ms.default=rx});var zh=Y(ks=>{"use strict";var nx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});$t();var ix=Ot(),sx=nx(br());It();var ox=(t,e)=>{if(!t.hours)return(0,ix.err)(["hours field is undefined."]);let{hours:r}=t;return(0,sx.default)(r,"hours",e)};ks.default=ox});var Jh=Y(Bs=>{"use strict";var ax=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});$t();var Fs=Ot(),ux=ax(br());It();var cx=(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,ux.default)(r,"daysOfMonth",e)};Bs.default=cx});var Zh=Y(Gs=>{"use strict";var lx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});$t();var dx=Ot(),px=lx(br());It();var fx=(t,e)=>{if(!t.months)return(0,dx.err)(["months field is undefined."]);let{months:r}=t;return(0,px.default)(r,"months",e)};Gs.default=fx});var Xh=Y(Vs=>{"use strict";var mx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});$t();var $s=Ot(),hx=mx(br());It();var gx=(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,hx.default)(r,"daysOfWeek",e)};Vs.default=gx});var eg=Y(qs=>{"use strict";var yx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});$t();var Ex=Ot(),Tx=yx(br());It();var _x=(t,e)=>{if(!t.years)return(0,Ex.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Tx.default)(r,"years",e)};qs.default=_x});var ig=Y((Uq,ng)=>{"use strict";var Ll;try{Ll=Map}catch{}var Ml;try{Ml=Set}catch{}function tg(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(rg);if(Ll&&t instanceof Ll)return new Map(Array.from(t.entries()));if(Ml&&t instanceof Ml)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]:tg(t[i],e,r)}return n}return t}function rg(t){return tg(t,[],[])}ng.exports=rg});var Ws=Y(kl=>{"use strict";Object.defineProperty(kl,"__esModule",{value:!0});kl.default=Rx;var Ax=Object.prototype.toString,Sx=Error.prototype.toString,Ox=RegExp.prototype.toString,Ix=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",xx=/^Symbol\((.*)\)(.*)$/;function wx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function sg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return wx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Ix.call(t).replace(xx,"Symbol($1)");let n=Ax.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Sx.call(t)+"]":n==="RegExp"?Ox.call(t):null}function Rx(t,e){let r=sg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=sg(this[n],e);return s!==null?s:i},2)}});var Xt=Y(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.default=be.array=be.object=be.boolean=be.date=be.number=be.string=be.mixed=void 0;var og=bx(Ws());function bx(t){return t&&t.__esModule?t:{default:t}}var ag={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,og.default)(r,!0)}\``+(i?` (cast from the value \`${(0,og.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};be.mixed=ag;var ug={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};be.string=ug;var cg={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};be.number=cg;var lg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};be.date=lg;var dg={isValue:"${path} field must be ${value}"};be.boolean=dg;var pg={noUnknown:"${path} field has unspecified keys: ${unknown}"};be.object=pg;var fg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};be.array=fg;var Dx=Object.assign(Object.create(null),{mixed:ag,string:ug,number:cg,date:lg,object:pg,array:fg,boolean:dg});be.default=Dx});var bi=Y(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var vx=t=>t&&t.__isYupSchema__;su.default=vx});var hg=Y(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Cx=mg(require("lodash/has")),Nx=mg(bi());function mg(t){return t&&t.__esModule?t:{default:t}}var Fl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,Cx.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,Nx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Px=Fl;ou.default=Px});var Gl=Y(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.default=Ux;function Ux(t){return t==null?[]:[].concat(t)}});var bn=Y(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Lx=gg(Ws()),Mx=gg(Gl());function gg(t){return t&&t.__esModule?t:{default:t}}function $l(){return $l=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},$l.apply(this,arguments)}var kx=/\$\{\s*(\w+)\s*\}/g,Vl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=$l({},r,{path:n})),typeof e=="string"?e.replace(kx,(i,s)=>(0,Lx.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,Mx.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=Vl});var uu=Y(Wl=>{"use strict";Object.defineProperty(Wl,"__esModule",{value:!0});Wl.default=Gx;var ql=Fx(bn());function Fx(t){return t&&t.__esModule?t:{default:t}}var Bx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function Gx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Bx(e),l=n.length,p=[];if(o=o||[],!l)return o.length?c(new ql.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let d=n[m];d(i,function(g){if(g){if(!ql.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);p.push(g)}if(--l<=0){if(p.length&&(a&&p.sort(a),o.length&&p.push(...o),o=p),o.length){c(new ql.default(o,s,u),s);return}c(null,s)}})}}});var Qs=Y((Vq,Ag)=>{"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 $x=/[^.^\]^[]+|(?=\[\]|\.\.)/g,_g=/^\d+$/,Vx=/^\d/,qx=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Wx=/^\s*(['"]?)(.*?)(\1)\s*$/,Yl=512,yg=new Dn(Yl),Eg=new Dn(Yl),Tg=new Dn(Yl);Ag.exports={Cache:Dn,split:jl,normalizePath:Ql,setter:function(t){var e=Ql(t);return Eg.get(t)||Eg.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=Ql(t);return Tg.get(t)||Tg.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+(Hl(r)||_g.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Qx(Array.isArray(t)?t:jl(t),e,r)}};function Ql(t){return yg.get(t)||yg.set(t,jl(t).map(function(e){return e.replace(Wx,"$2")}))}function jl(t){return t.match($x)||[""]}function Qx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Hx(i)&&(i='"'+i+'"'),a=Hl(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Hl(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function jx(t){return t.match(Vx)&&!t.match(_g)}function Yx(t){return qx.test(t)}function Hx(t){return!Hl(t)&&(jx(t)||Yx(t))}});var vn=Y(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=zx;Ys.default=void 0;var Kx=Qs(),cu={context:"$",value:"."};function zx(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,Kx.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Ys.default=js;js.prototype.__isYupRef=!0});var Sg=Y(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=ew;var Jx=Kl(require("lodash/mapValues")),lu=Kl(bn()),Zx=Kl(vn());function Kl(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 Xx(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 ew(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=Xx(r,["value","path","label","options","originalValue","sync"]),{name:p,test:m,params:d,message:f}=t,{parent:g,context:T}=a;function y(A){return Zx.default.isRef(A)?A.getValue(i,g,T):A}function O(A={}){let B=(0,Jx.default)(du({value:i,originalValue:u,label:o,path:A.path||s},d,A.params),y),w=new lu.default(lu.default.formatError(A.message||f,B),i,B.path,A.type||p);return w.params=B,w}let S=du({path:s,parent:g,type:p,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(A=>{lu.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var E;if(L=m.call(S,i,S),typeof((E=L)==null?void 0:E.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(A){n(A);return}lu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var Jl=Y(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.getIn=Og;Hs.default=void 0;var tw=Qs(),rw=t=>t.substr(0,t.length-1).substr(1);function Og(t,e,r,n=r){let i,s,o;return e?((0,tw.forEach)(e,(a,u,c)=>{let l=u?rw(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let p=c?parseInt(l,10):0;if(r&&p>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[p],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var nw=(t,e,r,n)=>Og(t,e,r,n).schema,iw=nw;Hs.default=iw});var xg=Y(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Ig=sw(vn());function sw(t){return t&&t.__esModule?t:{default:t}}var Zl=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){Ig.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Ig.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=Zl});var tr=Y(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var wg=er(ig()),Di=Xt(),ow=er(hg()),Rg=er(uu()),fu=er(Sg()),bg=er(Ws()),aw=er(vn()),uw=Jl(),cw=er(Gl()),Dg=er(bn()),vg=er(xg());function er(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var xt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new vg.default,this._blacklist=new vg.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,wg.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,bg.default)(e),o=(0,bg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
2
2
|
|
|
3
3
|
attempted value: ${s}
|
|
4
|
-
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let p={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,wg.default)({args:p,value:l,path:s,sync:i,tests:m,endEarly:c},d=>{if(d)return void n(d,l);(0,wg.default)({tests:this.tests,args:p,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(bg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(bg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,xg.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,aw.default)(e).map(s=>new sw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new iw.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=xt;xt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])xt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,ow.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])xt.prototype[t]=xt.prototype.oneOf;for(let t of["not","nope"])xt.prototype[t]=xt.prototype.notOneOf;xt.prototype.optional=xt.prototype.notRequired});var Cg=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=vg;Ks.default=void 0;var uw=cw(er());function cw(t){return t&&t.__esModule?t:{default:t}}var Xl=uw.default,lw=Xl;Ks.default=lw;function vg(){return new Xl}vg.prototype=Xl.prototype});var vi=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var dw=t=>t==null;hu.default=dw});var Mg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Lg;Js.default=void 0;var pw=Ug(er()),Ng=Zt(),Pg=Ug(vi());function Ug(t){return t&&t.__esModule?t:{default:t}}function Lg(){return new zs}var zs=class extends pw.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=Ng.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Pg.default)(r)||r===!0}})}isFalse(e=Ng.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Pg.default)(r)||r===!1}})}};Js.default=zs;Lg.prototype=zs.prototype});var Bg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Fg;Xs.default=void 0;var Vt=Zt(),tr=kg(vi()),fw=kg(er());function kg(t){return t&&t.__esModule?t:{default:t}}var mw=/^((([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,hw=/^((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,gw=/^(?:[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,yw=t=>(0,tr.default)(t)||t===t.trim(),Ew={}.toString();function Fg(){return new Zs}var Zs=class extends fw.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===Ew?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Vt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,tr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Vt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,tr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Vt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,tr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Vt.string.matches,params:{regex:e},test:o=>(0,tr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Vt.string.email){return this.matches(mw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(hw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(gw,{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:yw})}lowercase(e=Vt.string.lowercase){return this.transform(r=>(0,tr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toLowerCase()})}uppercase(e=Vt.string.uppercase){return this.transform(r=>(0,tr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,tr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;Fg.prototype=Zs.prototype});var Vg=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=$g;to.default=void 0;var Cn=Zt(),Nn=Gg(vi()),Tw=Gg(er());function Gg(t){return t&&t.__esModule?t:{default:t}}var _w=t=>t!=+t;function $g(){return new eo}var eo=class extends Tw.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"&&!_w(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;$g.prototype=eo.prototype});var qg=H(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=Sw;var Aw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Sw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Aw.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}});var jg=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=rd;ro.default=void 0;var Ow=gu(qg()),Wg=Zt(),Qg=gu(vi()),Iw=gu(vn()),xw=gu(er());function gu(t){return t&&t.__esModule?t:{default:t}}var td=new Date(""),ww=t=>Object.prototype.toString.call(t)==="[object Date]";function rd(){return new Ci}var Ci=class extends xw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Ow.default)(e),isNaN(e)?td:new Date(e))})})}_typeCheck(e){return ww(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Iw.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=Wg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Qg.default)(i)||i>=this.resolve(n)}})}max(e,r=Wg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Qg.default)(i)||i<=this.resolve(n)}})}};ro.default=Ci;Ci.INVALID_DATE=td;rd.prototype=Ci.prototype;rd.INVALID_DATE=td});var Yg=H((Jq,nd)=>{"use strict";nd.exports=function(t){return Hg(Rw(t),t)};nd.exports.array=Hg;function Hg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=bw(e),a=Dw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,p){if(p.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var d=o.get(c)||new Set;if(d=Array.from(d),l=d.length){p.add(c);do{var f=d[--l];u(f,a.get(f),p)}while(l);p.delete(c)}n[--r]=c}}}function Rw(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}function bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function Dw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Kg=H(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=Lw;var vw=yu(require("lodash/has")),Cw=yu(Yg()),Nw=Qs(),Pw=yu(vn()),Uw=yu(bi());function yu(t){return t&&t.__esModule?t:{default:t}}function Lw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Nw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,vw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Pw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Uw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Cw.default.array(n,r).reverse()}});var Jg=H(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});sd.default=Mw;function zg(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 Mw(t){return(e,r)=>zg(t,e)-zg(t,r)}});var iy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=ny;io.default=void 0;var Zg=qt(require("lodash/has")),Xg=qt(require("lodash/snakeCase")),kw=qt(require("lodash/camelCase")),Fw=qt(require("lodash/mapKeys")),Bw=qt(require("lodash/mapValues")),Gw=Qs(),ey=Zt(),$w=qt(Kg()),ry=qt(Jg()),Vw=qt(uu()),qw=qt(bn()),od=qt(er());function qt(t){return t&&t.__esModule?t:{default:t}}function Ni(){return Ni=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Ni.apply(this,arguments)}var ty=t=>Object.prototype.toString.call(t)==="[object Object]";function Ww(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Qw=(0,ry.default)([]),no=class extends od.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Qw,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 ty(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(p=>this._nodes.indexOf(p)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let p of a){let m=s[p],d=(0,Zg.default)(i,p);if(m){let f,g=i[p];c.path=(r.path?`${r.path}.`:"")+p,m=m.resolve({value:g,context:r.context,parent:u});let T="spec"in m?m.spec:void 0,y=T?.strict;if(T?.strip){l=l||p in i;continue}f=!r.__validating||!y?m.cast(i[p],c):i[p],f!==void 0&&(u[p]=f)}else d&&!o&&(u[p]=i[p]);u[p]!==i[p]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,p)=>{if(l){if(!qw.default.isError(l)||u)return void n(l,p);i.push(l)}if(!c||!ty(p)){n(i[0]||null,p);return}a=a||p;let m=this._nodes.map(d=>(f,g)=>{let T=d.indexOf(".")===-1?(r.path?`${r.path}.`:"")+d:`${r.path||""}["${d}"]`,y=this.fields[d];if(y&&"validate"in y){y.validate(p[d],Ni({},r,{path:T,from:o,strict:!0,parent:p,originalValue:a[d]}),g);return}g(null)});(0,Vw.default)({sync:s,tests:m,value:p,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ni({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof od.default&&s instanceof od.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,ry.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,$w.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,Gw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Zg.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=ey.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=Ww(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=ey.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Fw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(kw.default)}snakeCase(){return this.transformKeys(Xg.default)}constantCase(){return this.transformKeys(e=>(0,Xg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Bw.default)(this.fields,r=>r.describe()),e}};io.default=no;function ny(t){return new no(t)}ny.prototype=no.prototype});var oy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=sy;oo.default=void 0;var ad=Pi(vi()),jw=Pi(bi()),Hw=Pi(Ws()),ud=Zt(),Yw=Pi(uu()),Kw=Pi(bn()),zw=Pi(er());function Pi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Eu.apply(this,arguments)}function sy(t){return new so(t)}var so=class extends zw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,p=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(d,f)=>{if(d){if(!Kw.default.isError(d)||l)return void n(d,f);o.push(d)}if(!p||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let T=0;T<f.length;T++){let y=f[T],O=`${r.path||""}[${T}]`,S=Eu({},r,{path:O,strict:!0,parent:f,index:T,originalValue:m[T]});g[T]=(L,E)=>c.validate(y,S,E)}(0,Yw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,jw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Hw.default)(e));return r.innerType=e,r}length(e,r=ud.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,ad.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ud.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,ad.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ud.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,ad.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;sy.prototype=so.prototype});var ay=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Xw;ao.default=void 0;var Jw=Zw(bi());function Zw(t){return t&&t.__esModule?t:{default:t}}function Xw(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,Jw.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)}},eR=Tu;ao.default=eR});var uy=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=nR;var tR=rR(Zt());function rR(t){return t&&t.__esModule?t:{default:t}}function nR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{tR.default[e][r]=t[e][r]})})}});var dd=H(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.addMethod=lR;Object.defineProperty(de,"MixedSchema",{enumerable:!0,get:function(){return cy.default}});Object.defineProperty(de,"mixed",{enumerable:!0,get:function(){return cy.create}});Object.defineProperty(de,"BooleanSchema",{enumerable:!0,get:function(){return ld.default}});Object.defineProperty(de,"bool",{enumerable:!0,get:function(){return ld.create}});Object.defineProperty(de,"boolean",{enumerable:!0,get:function(){return ld.create}});Object.defineProperty(de,"StringSchema",{enumerable:!0,get:function(){return ly.default}});Object.defineProperty(de,"string",{enumerable:!0,get:function(){return ly.create}});Object.defineProperty(de,"NumberSchema",{enumerable:!0,get:function(){return dy.default}});Object.defineProperty(de,"number",{enumerable:!0,get:function(){return dy.create}});Object.defineProperty(de,"DateSchema",{enumerable:!0,get:function(){return py.default}});Object.defineProperty(de,"date",{enumerable:!0,get:function(){return py.create}});Object.defineProperty(de,"ObjectSchema",{enumerable:!0,get:function(){return fy.default}});Object.defineProperty(de,"object",{enumerable:!0,get:function(){return fy.create}});Object.defineProperty(de,"ArraySchema",{enumerable:!0,get:function(){return my.default}});Object.defineProperty(de,"array",{enumerable:!0,get:function(){return my.create}});Object.defineProperty(de,"ref",{enumerable:!0,get:function(){return iR.create}});Object.defineProperty(de,"lazy",{enumerable:!0,get:function(){return sR.create}});Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return oR.default}});Object.defineProperty(de,"reach",{enumerable:!0,get:function(){return aR.default}});Object.defineProperty(de,"isSchema",{enumerable:!0,get:function(){return hy.default}});Object.defineProperty(de,"setLocale",{enumerable:!0,get:function(){return uR.default}});Object.defineProperty(de,"BaseSchema",{enumerable:!0,get:function(){return cR.default}});var cy=Pn(Cg()),ld=Pn(Mg()),ly=Pn(Bg()),dy=Pn(Vg()),py=Pn(jg()),fy=Pn(iy()),my=Pn(oy()),iR=vn(),sR=ay(),oR=uo(bn()),aR=uo(Jl()),hy=uo(bi()),uR=uo(uy()),cR=uo(er());function uo(t){return t&&t.__esModule?t:{default:t}}function gy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return gy=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=gy();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 lR(t,e,r){if(!t||!(0,hy.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 yy=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});var pd=md();fd.default=()=>{(0,pd.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,pd.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,pd.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 md=H(De=>{"use strict";var dR=De&&De.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),pR=De&&De.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),fR=De&&De.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&dR(e,t,r);return pR(e,t),e},mR=De&&De.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(De,"__esModule",{value:!0});De.validateOptions=De.registerOptionPreset=De.getOptionPresets=De.getOptionPreset=void 0;var x=fR(dd());dd();var co=Ot(),hR=mR(yy());It();var Un={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Ey=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(),gR=t=>Un[t]?(0,co.valid)(Un[t]):(0,co.err)(`Option preset '${t}' not found.`);De.getOptionPreset=gR;var yR=()=>Un;De.getOptionPresets=yR;var ER=(t,e)=>{Un[t]=Ey.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};De.registerOptionPreset=ER;var TR=t=>{var e,r,n,i,s,o,a,u,c,l,p,m,d,f,g,T,y,O,S,L;try{(0,hR.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);E=Un[t.preset]}else E=t.preset;else E=Un.default;let A=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(p=E.hours.lowerLimit)!==null&&p!==void 0?p:E.hours.minValue,upperLimit:(m=E.hours.upperLimit)!==null&&m!==void 0?m:E.hours.maxValue},daysOfMonth:{lowerLimit:(d=E.daysOfMonth.lowerLimit)!==null&&d!==void 0?d:E.daysOfMonth.minValue,upperLimit:(f=E.daysOfMonth.upperLimit)!==null&&f!==void 0?f:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(T=E.months.upperLimit)!==null&&T!==void 0?T:E.months.maxValue},daysOfWeek:{lowerLimit:(y=E.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:E.daysOfWeek.minValue,upperLimit:(O=E.daysOfWeek.upperLimit)!==null&&O!==void 0?O:E.daysOfWeek.maxValue},years:{lowerLimit:(S=E.years.lowerLimit)!==null&&S!==void 0?S:E.years.minValue,upperLimit:(L=E.years.upperLimit)!==null&&L!==void 0?L:E.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:Ey.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:x.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:x.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:x.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(A,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(E){return(0,co.err)(E.errors)}};De.validateOptions=TR});var $t=H((lo,gd)=>{"use strict";var Mn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Ln=Ot(),_R=Mn(Hh()),AR=Mn(Yh()),SR=Mn(Kh()),OR=Mn(zh()),IR=Mn(Jh()),xR=Mn(Zh()),wR=Mn(Xh()),RR=md();It();var bR=(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)},hd=(t,e={})=>{let r=(0,RR.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=bR(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,_R.default)(s,n)),o.push((0,AR.default)(s,n)),o.push((0,SR.default)(s,n)),o.push((0,OR.default)(s,n)),o.push((0,IR.default)(s,n)),o.push((0,xR.default)(s,n)),n.useYears&&o.push((0,wR.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=hd;gd.exports=hd;gd.exports.default=hd});var VE=H(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var nr=class extends Error{},xd=class extends nr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},wd=class extends nr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Rd=class extends nr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Bn=class extends nr{},wu=class extends nr{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends nr{},Wt=class extends nr{constructor(){super("Zone is an abstract class")}},R="numeric",bt="short",rt="long",Ru={year:R,month:R,day:R},Wy={year:R,month:bt,day:R},DR={year:R,month:bt,day:R,weekday:bt},Qy={year:R,month:rt,day:R},jy={year:R,month:rt,day:R,weekday:rt},Hy={hour:R,minute:R},Yy={hour:R,minute:R,second:R},Ky={hour:R,minute:R,second:R,timeZoneName:bt},zy={hour:R,minute:R,second:R,timeZoneName:rt},Jy={hour:R,minute:R,hourCycle:"h23"},Zy={hour:R,minute:R,second:R,hourCycle:"h23"},Xy={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:bt},eE={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:rt},tE={year:R,month:R,day:R,hour:R,minute:R},rE={year:R,month:R,day:R,hour:R,minute:R,second:R},nE={year:R,month:bt,day:R,hour:R,minute:R},iE={year:R,month:bt,day:R,hour:R,minute:R,second:R},vR={year:R,month:bt,day:R,weekday:bt,hour:R,minute:R},sE={year:R,month:rt,day:R,hour:R,minute:R,timeZoneName:bt},oE={year:R,month:rt,day:R,hour:R,minute:R,second:R,timeZoneName:bt},aE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,timeZoneName:rt},uE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,second:R,timeZoneName:rt},Cr=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}},yd=null,Eo=class t extends Cr{static get instance(){return yd===null&&(yd=new t),yd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return lE(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 CR(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 NR={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function PR(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 UR(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=NR[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var _u={},ir=class t extends Cr{static create(e){return _u[e]||(_u[e]=new t(e)),_u[e]}static resetCache(){_u={},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 lE(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=CR(this.name),[i,s,o,a,u,c,l]=n.formatToParts?UR(n,r):PR(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Bd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),d=+r,f=d%1e3;return d-=f>=0?f:1e3+f,(m-d)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Ty={};function LR(t,e={}){let r=JSON.stringify([t,e]),n=Ty[r];return n||(n=new Intl.ListFormat(t,e),Ty[r]=n),n}var bd={};function Dd(t,e={}){let r=JSON.stringify([t,e]),n=bd[r];return n||(n=new Intl.DateTimeFormat(t,e),bd[r]=n),n}var vd={};function MR(t,e={}){let r=JSON.stringify([t,e]),n=vd[r];return n||(n=new Intl.NumberFormat(t,e),vd[r]=n),n}var Cd={};function kR(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Cd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Cd[i]=s),s}var ho=null;function FR(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function BR(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=Dd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Dd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function GR(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function $R(t){let e=[];for(let r=1;r<=12;r++){let n=Ae.utc(2016,r,1);e.push(t(n))}return e}function VR(t){let e=[];for(let r=1;r<=7;r++){let n=Ae.utc(2016,11,13+r);e.push(t(n))}return e}function Au(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function qR(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 Nd=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=MR(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):Fd(e,3);return xe(r,this.padTo)}}},Pd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&ir.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ae.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Dd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Ud=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&cE()&&(this.rtf=kR(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):sb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||he.defaultLocale,o=s||(i?"en-US":FR()),a=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,bd={},vd={},Cd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=BR(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=GR(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=qR(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 Au(this,e,n,fE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=$R(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Au(this,e,n,gE,()=>{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]=VR(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Au(this,void 0,e,()=>yE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ae.utc(2016,11,13,9),Ae.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Au(this,e,r,EE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ae.utc(-40,1,1),Ae.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Nd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Pd(e,this.intl,r)}relFormatter(e={}){return new Ud(this.intl,this.isEnglish(),e)}listFormatter(e={}){return LR(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}},Ed=null,nt=class t extends Cr{static get utcInstance(){return Ed===null&&(Ed=new t(0)),Ed}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 Cr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function vr(t,e){if(ne(t)||t===null)return e;if(t instanceof Cr)return t;if(WR(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?nt.utcInstance:nt.parseSpecifier(r)||ir.create(t)}else return $n(t)?nt.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new bu(t)}var _y=()=>Date.now(),Ay="system",Sy=null,Oy=null,Iy=null,xy=60,wy,he=class{static get now(){return _y}static set now(e){_y=e}static set defaultZone(e){Ay=e}static get defaultZone(){return vr(Ay,Eo.instance)}static get defaultLocale(){return Sy}static set defaultLocale(e){Sy=e}static get defaultNumberingSystem(){return Oy}static set defaultNumberingSystem(e){Oy=e}static get defaultOutputCalendar(){return Iy}static set defaultOutputCalendar(e){Iy=e}static get twoDigitCutoffYear(){return xy}static set twoDigitCutoffYear(e){xy=e%100}static get throwOnInvalid(){return wy}static set throwOnInvalid(e){wy=e}static resetCaches(){_e.resetCache(),ir.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 WR(t){return typeof t=="string"}function QR(t){return Object.prototype.toString.call(t)==="[object Date]"}function cE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function jR(t){return Array.isArray(t)?t:[t]}function Ry(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 HR(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function ki(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function rr(t,e,r){return Nu(t)&&t>=e&&t<=r}function YR(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 Dr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function kd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Fd(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=YR(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 Bd(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 Ld(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function lE(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 dE(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)]=dE(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 HR(t,["hour","minute","second","millisecond"])}var KR=["January","February","March","April","May","June","July","August","September","October","November","December"],pE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],zR=["J","F","M","A","M","J","J","A","S","O","N","D"];function fE(t){switch(t){case"narrow":return[...zR];case"short":return[...pE];case"long":return[...KR];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 mE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],hE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],JR=["M","T","W","T","F","S","S"];function gE(t){switch(t){case"narrow":return[...JR];case"short":return[...hE];case"long":return[...mE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var yE=["AM","PM"],ZR=["Before Christ","Anno Domini"],XR=["BC","AD"],eb=["B","A"];function EE(t){switch(t){case"narrow":return[...eb];case"short":return[...XR];case"long":return[...ZR];default:return null}}function tb(t){return yE[t.hour<12?0:1]}function rb(t,e){return gE(e)[t.weekday-1]}function nb(t,e){return fE(e)[t.month-1]}function ib(t,e){return EE(e)[t.year<0?0:1]}function sb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let p=t==="days";switch(e){case 1:return p?"tomorrow":`next ${i[t][0]}`;case-1:return p?"yesterday":`last ${i[t][0]}`;case 0:return p?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function by(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var ob={D:Ru,DD:Wy,DDD:Qy,DDDD:jy,t:Hy,tt:Yy,ttt:Ky,tttt:zy,T:Jy,TT:Zy,TTT:Xy,TTTT:eE,f:tE,ff:nE,fff:sE,ffff:aE,F:rE,FF:iE,FFF:oE,FFFF:uE},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 ob[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return xe(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(d,f)=>this.loc.extract(e,d,f),o=d=>e.isOffsetFixed&&e.offset===0&&d.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,d.format):"",a=()=>n?tb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(d,f)=>n?nb(e,d):s(f?{month:d}:{month:d,day:"numeric"},"month"),c=(d,f)=>n?rb(e,d):s(f?{weekday:d}:{weekday:d,month:"long",day:"numeric"},"weekday"),l=d=>{let f=t.macroTokenToFormatOpts(d);return f?this.formatWithSystemDefault(e,f):d},p=d=>n?ib(e,d):s({era:d},"era"),m=d=>{switch(d){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return p("short");case"GG":return p("long");case"GGGGG":return p("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(d)}};return by(t.parseFormat(r),m)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return by(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},TE=/[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 _E(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Dr(e[r+i]);return[n,null,r+i]}}var AE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,ab=`(?:${AE.source}?(?:\\[(${TE.source})\\])?)?`,Gd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,SE=RegExp(`${Gd.source}${ab}`),$d=RegExp(`(?:T${SE.source})?`),ub=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,cb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,lb=/(\d{4})-?(\d{3})/,db=_E("weekYear","weekNumber","weekDay"),pb=_E("year","ordinal"),fb=/(\d{4})-(\d\d)-(\d\d)/,OE=RegExp(`${Gd.source} ?(?:${AE.source}|(${TE.source}))?`),mb=RegExp(`(?: ${OE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:Dr(n)}function hb(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:kd(t[e+3])},null,e+4]}function _o(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 Ao(t,e){let r=t[e]?ir.create(t[e]):null;return[{},r,e+1]}var gb=RegExp(`^T?${Gd.source}$`),yb=/^-?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 Eb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",p=u&&u[0]==="-",m=(d,f=!1)=>d!==void 0&&(f||d&&l)?-d:d;return[{years:m(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(kd(c),p)}]}var Tb={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 Vd(t,e,r,n,i,s,o){let a={year:e.length===2?Ld(Dr(e)):Dr(e),month:pE.indexOf(r)+1,day:Dr(n),hour:Dr(i),minute:Dr(s)};return o&&(a.second=Dr(o)),t&&(a.weekday=t.length>3?mE.indexOf(t)+1:hE.indexOf(t)+1),a}var _b=/^(?:(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 Ab(t){let[,e,r,n,i,s,o,a,u,c,l,p]=t,m=Vd(e,i,n,r,s,o,a),d;return u?d=Tb[u]:c?d=0:d=Pu(l,p),[m,new nt(d)]}function Sb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Ob=/^(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$/,Ib=/^(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$/,xb=/^(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 Dy(t){let[,e,r,n,i,s,o,a]=t;return[Vd(e,i,n,r,s,o,a),nt.utcInstance]}function wb(t){let[,e,r,n,i,s,o,a]=t;return[Vd(e,a,r,n,i,s,o),nt.utcInstance]}var Rb=Fi(ub,$d),bb=Fi(cb,$d),Db=Fi(lb,$d),vb=Fi(SE),IE=Bi(hb,$i,_o,Ao),Cb=Bi(db,$i,_o,Ao),Nb=Bi(pb,$i,_o,Ao),Pb=Bi($i,_o,Ao);function Ub(t){return Gi(t,[Rb,IE],[bb,Cb],[Db,Nb],[vb,Pb])}function Lb(t){return Gi(Sb(t),[_b,Ab])}function Mb(t){return Gi(t,[Ob,Dy],[Ib,Dy],[xb,wb])}function kb(t){return Gi(t,[yb,Eb])}var Fb=Bi($i);function Bb(t){return Gi(t,[gb,Fb])}var Gb=Fi(fb,mb),$b=Fi(OE),Vb=Bi($i,_o,Ao);function qb(t){return Gi(t,[Gb,IE],[$b,Vb])}var Wb="Invalid Duration",xE={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}},Qb={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},...xE},mt=146097/400,Ui=146097/4800,jb={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:Ui/7,days:Ui,hours:Ui*24,minutes:Ui*24*60,seconds:Ui*24*60*60,milliseconds:Ui*24*60*60*1e3},...xE},Fn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Hb=Fn.slice(0).reverse();function br(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new we(n)}function Yb(t){return t<0?Math.floor(t):Math.ceil(t)}function wE(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?Yb(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function Kb(t,e){Hb.reduce((r,n)=>ne(e[n])?r:(r&&wE(t,e,r,e,n),n),null)}function zb(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var we=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?jb:Qb;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Qe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Cu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if($n(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=kb(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=Bb(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 Rd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new wu(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?et.create(this.loc,n).formatDurationFromString(this,e):Wb}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+=Fd(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 br(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=dE(e(this.values[n],n));return br(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Cu(e,t.normalizeUnit)};return br(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return br(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return Kb(this.matrix,e),br(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=zb(this.normalize().shiftToAll().toObject());return br(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of 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)&&wE(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 br(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return br(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Fn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function Jb(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 wd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=Jb(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=Ae.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ae.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=we.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=we.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=we.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Li}toLocaleString(e=Ru,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Li}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Li}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Li}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Li}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Li}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):we.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Gn=class{static hasDST(e=he.defaultZone){let r=Ae.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ir.isValidZone(e)}static normalizeZone(e){return vr(e,he.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:cE()}}};function vy(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 Zb(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=vy(u,c);return(l-l%7)/7}],["days",vy]],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 Xb(t,e,r,n){let[i,s,o,a]=Zb(t,e,r),u=e-i,c=r.filter(p=>["hours","minutes","seconds","milliseconds"].indexOf(p)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=we.fromObject(s,n);return c.length>0?we.fromMillis(u,n).shiftTo(...c).plus(l):l}var qd={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},Cy={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]},eD=qd.hanidec.replace(/[\[|\]]/g,"").split("");function tD(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(qd.hanidec)!==-1)e+=eD.indexOf(t[r]);else for(let i in Cy){let[s,o]=Cy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${qd[t||"latn"]}${e}`)}var rD="missing Intl.DateTimeFormat.formatToParts support";function ue(t,e=r=>r){return{regex:t,deser:([r])=>e(tD(r))}}var nD=String.fromCharCode(160),RE=`[ ${nD}]`,bE=new RegExp(RE,"g");function iD(t){return t.replace(/\./g,"\\.?").replace(bE,RE)}function Ny(t){return t.replace(/\./g,"").replace(bE," ").toLowerCase()}function Rt(t,e){return t===null?null:{regex:RegExp(t.map(iD).join("|")),deser:([r])=>t.findIndex(n=>Ny(r)===Ny(n))+e}}function Py(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Td(t){return{regex:t,deser:([e])=>e}}function sD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function oD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),p=wt(e,"{2,4}"),m=wt(e,"{4,6}"),d=T=>({regex:RegExp(sD(T.val)),deser:([y])=>y,literal:!0}),g=(T=>{if(t.literal)return d(T);switch(T.val){case"G":return Rt(e.eras("short",!1),0);case"GG":return Rt(e.eras("long",!1),0);case"y":return ue(c);case"yy":return ue(p,Ld);case"yyyy":return ue(s);case"yyyyy":return ue(m);case"yyyyyy":return ue(o);case"M":return ue(a);case"MM":return ue(n);case"MMM":return Rt(e.months("short",!0,!1),1);case"MMMM":return Rt(e.months("long",!0,!1),1);case"L":return ue(a);case"LL":return ue(n);case"LLL":return Rt(e.months("short",!1,!1),1);case"LLLL":return Rt(e.months("long",!1,!1),1);case"d":return ue(a);case"dd":return ue(n);case"o":return ue(u);case"ooo":return ue(i);case"HH":return ue(n);case"H":return ue(a);case"hh":return ue(n);case"h":return ue(a);case"mm":return ue(n);case"m":return ue(a);case"q":return ue(a);case"qq":return ue(n);case"s":return ue(a);case"ss":return ue(n);case"S":return ue(u);case"SSS":return ue(i);case"u":return Td(l);case"uu":return Td(a);case"uuu":return ue(r);case"a":return Rt(e.meridiems(),0);case"kkkk":return ue(s);case"kk":return ue(p,Ld);case"W":return ue(a);case"WW":return ue(n);case"E":case"c":return ue(r);case"EEE":return Rt(e.weekdays("short",!1,!1),1);case"EEEE":return Rt(e.weekdays("long",!1,!1),1);case"ccc":return Rt(e.weekdays("short",!0,!1),1);case"cccc":return Rt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Py(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Py(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Td(/[a-z_+-/]{1,256}?/i);default:return d(T)}})(t)||{invalidReason:rD};return g.token=t,g}var aD={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 uD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=aD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function cD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function lD(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 dD(t){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},r=null,n;return ne(t.z)||(r=ir.create(t.z)),ne(t.Z)||(r||(r=new nt(t.Z)),n=t.Z),ne(t.q)||(t.M=(t.q-1)*3+1),ne(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),ne(t.u)||(t.S=kd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var _d=null;function pD(){return _d||(_d=Ae.fromMillis(1555555555555)),_d}function fD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=CE(r,e);return n==null||n.includes(void 0)?t:n}function DE(t,e){return Array.prototype.concat(...t.map(r=>fD(r,e)))}function vE(t,e,r){let n=DE(et.parseFormat(r),t),i=n.map(o=>oD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=cD(i),u=RegExp(o,"i"),[c,l]=lD(e,u,a),[p,m,d]=l?dD(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:p,zone:m,specificOffset:d}}}function mD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=vE(t,e,r);return[n,i,s,o]}function CE(t,e){return t?et.create(e,t).formatDateTimeParts(pD()).map(i=>uD(i,t)):null}var NE=[0,31,59,90,120,151,181,212,243,273,304,334],PE=[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 UE(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 LE(t,e,r){return r+(To(t)?PE:NE)[e-1]}function ME(t,e){let r=To(t)?PE:NE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Md(t){let{year:e,month:r,day:n}=t,i=LE(e,r,n),s=UE(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 Uy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=UE(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}=ME(a,o);return{year:a,month:u,day:c,...Uu(t)}}function Ad(t){let{year:e,month:r,day:n}=t,i=LE(e,r,n);return{year:e,ordinal:i,...Uu(t)}}function Ly(t){let{year:e,ordinal:r}=t,{month:n,day:i}=ME(e,r);return{year:e,month:n,day:i,...Uu(t)}}function hD(t){let e=Nu(t.weekYear),r=rr(t.weekNumber,1,vu(t.weekYear)),n=rr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function gD(t){let e=Nu(t.year),r=rr(t.ordinal,1,go(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function kE(t){let e=Nu(t.year),r=rr(t.month,1,12),n=rr(t.day,1,Du(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function FE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=rr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=rr(r,0,59),a=rr(n,0,59),u=rr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Sd="Invalid DateTime",My=864e13;function Su(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function Od(t){return t.weekData===null&&(t.weekData=Md(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ae({...r,...e,old:r})}function BE(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 ky(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 BE(Bd(t),e,r)}function Fy(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=Bd(s),[u,c]=BE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ae.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ae.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ou(t,e,r=!0){return t.isValid?et.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Id(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 By(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 GE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},yD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},ED={ordinal:1,hour:0,minute:0,second:0,millisecond:0},$E=["year","month","day","hour","minute","second","millisecond"],TD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_D=["year","ordinal","hour","minute","second","millisecond"];function Gy(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new wu(t);return e}function $y(t,e){let r=vr(e.zone,he.defaultZone),n=_e.fromObject(e),i=he.now(),s,o;if(ne(t.year))s=i;else{for(let c of $E)ne(t[c])&&(t[c]=GE[c]);let a=kE(t)||FE(t);if(a)return Ae.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new Ae({ts:s,zone:r,loc:n,o})}function Vy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Fd(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 qy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var Ae=class t{constructor(e){let r=e.zone||he.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null: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=ky(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=qy(arguments),[n,i,s,o,a,u,c]=r;return $y({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=qy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,$y({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=QR(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=vr(r.zone,he.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if($n(e))return e<-My||e>My?t.invalid("Timestamp out of range"):new t({ts:e,zone:vr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if($n(e))return new t({ts:e*1e3,zone:vr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=vr(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,Gy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,p=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&p)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 d=p||o.weekday&&!l,f,g,T=ky(i,s);d?(f=TD,g=yD,T=Md(T)):a?(f=_D,g=ED,T=Ad(T)):(f=$E,g=GE);let y=!1;for(let w of f){let F=o[w];ne(F)?y?o[w]=g[w]:o[w]=T[w]:y=!0}let O=d?hD(o):a?gD(o):kE(o),S=O||FE(o);if(S)return t.invalid(S);let L=d?Uy(o):a?Ly(o):o,[E,A]=xu(L,s,n),B=new t({ts:E,zone:n,o:A,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=Ub(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=Lb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=Mb(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Qe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=mD(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]=qb(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 xd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=CE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return DE(et.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Od(this).weekYear:NaN}get weekNumber(){return this.isValid?Od(this).weekNumber:NaN}get weekday(){return this.isValid?Od(this).weekday:NaN}get ordinal(){return this.isValid?Ad(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=vr(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,Gy),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=Uy({...Md(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=Ly({...Ad(this.c),...r});let[l,p]=xu(c,this.o,this.zone);return po(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e);return po(this,Fy(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,Fy(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):Sd}toLocaleString(e=Ru,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Sd}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=Id(this,o);return a+="T",a+=By(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Id(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":"")+By(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?Id(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():Sd}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return we.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=jR(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=Xb(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),Vy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Vy(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 Ry(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return Ry(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return vE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Ru}static get DATE_MED(){return Wy}static get DATE_MED_WITH_WEEKDAY(){return DR}static get DATE_FULL(){return Qy}static get DATE_HUGE(){return jy}static get TIME_SIMPLE(){return Hy}static get TIME_WITH_SECONDS(){return Yy}static get TIME_WITH_SHORT_OFFSET(){return Ky}static get TIME_WITH_LONG_OFFSET(){return zy}static get TIME_24_SIMPLE(){return Jy}static get TIME_24_WITH_SECONDS(){return Zy}static get TIME_24_WITH_SHORT_OFFSET(){return Xy}static get TIME_24_WITH_LONG_OFFSET(){return eE}static get DATETIME_SHORT(){return tE}static get DATETIME_SHORT_WITH_SECONDS(){return rE}static get DATETIME_MED(){return nE}static get DATETIME_MED_WITH_SECONDS(){return iE}static get DATETIME_MED_WITH_WEEKDAY(){return vR}static get DATETIME_FULL(){return sE}static get DATETIME_FULL_WITH_SECONDS(){return oE}static get DATETIME_HUGE(){return aE}static get DATETIME_HUGE_WITH_SECONDS(){return uE}};function mo(t){if(Ae.isDateTime(t))return t;if(t&&t.valueOf&&$n(t.valueOf()))return Ae.fromJSDate(t);if(t&&typeof t=="object")return Ae.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var AD="3.2.1";it.DateTime=Ae;it.Duration=we;it.FixedOffsetZone=nt;it.IANAZone=ir;it.Info=Gn;it.Interval=Vn;it.InvalidZone=bu;it.Settings=he;it.SystemZone=Eo;it.VERSION=AD;it.Zone=Cr});var WE=H((uW,qE)=>{"use strict";var qn=VE();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))}qE.exports=J});var HE=H((cW,jE)=>{"use strict";function Wn(t){return{start:t,count:1}}function QE(t,e){t.end=e,t.step=e-t.start,t.count=2}function Wd(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 SD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Wd(e,r,Wn(i)),r=void 0):r?r.count===1?QE(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Wn(r.start)),r=Wn(r.end),QE(r,i)):(Wd(e,r),r=Wn(i)):r=Wn(i)}return Wd(e,r),e}jE.exports=SD});var KE=H((lW,YE)=>{"use strict";var OD=HE();function ID(t,e,r){var n=OD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,d){var f=c.start+d;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}YE.exports=ID});var ZE=H((dW,JE)=>{"use strict";var Qn=WE(),xD=KE(),zE=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,T=f.length;g<T;g++){var y=f[g];if(P._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(P._isValidConstraintChar(n,f)){c.push(f);return}var O=+f;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}var p=u.split(",");if(!p.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(p.length>1)for(var m=0,d=p.length;m<d;m++)l(o(p[m]));else l(o(u));return c.sort(P._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],p=u.split("-");if(p.length>1){if(p.length<2)return+u;if(!p[0].length){if(!p[1].length)throw new Error("Invalid range: "+u);return+u}var m=+p[0],d=+p[1];if(Number.isNaN(m)||Number.isNaN(d)||m<n.min||d>n.max)throw new Error("Constraint error, got range "+m+"-"+d+" expected range "+n.min+"-"+n.max);if(m>d)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&d%7===0&&l.push(0);for(var g=m,T=d;g<=T;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};P._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};P._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=P.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(P._sortCompareFn)}};P._freezeFields=function(t){for(var e=0,r=P.map.length;e<r;++e){var n=P.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};P.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};P.prototype._findSchedule=function(e){function r(y,O){for(var S=0,L=O.length;S<L;S++)if(O[S]>=y)return O[S]===y;return O[0]===y}function n(y,O){if(O<6){if(y.getDate()<8&&O===1)return!0;var S=y.getDate()%7?1:0,L=y.getDate()-y.getDate()%7,E=Math.floor(L/7)+S;return E===O}return!1}function i(y){return y.length>0&&y.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Qn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function p(y){return y.some(function(O){if(!i([O]))return!1;var S=Number.parseInt(O[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+O);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<zE;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var d=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(d=d||p(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,T=o.getHours();if(!m&&(!d||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!d){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(T,this.fields.hour)){if(this._dstEnd===T&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==T){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(T-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=zE)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(xD(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,p=P.map.length;l<p;++l){var m=P.map[l],d=u[u.length>p?l:l-c];if(l<c||!d)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var f=m==="dayOfWeek"?O(d):d;a.push(P._parseField(m,f,P.constraints[l]))}}for(var g={},l=0,p=P.map.length;l<p;l++){var T=P.map[l];g[T]=a[l]}var y=P._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new P(g,o);function O(S){var L=S.split("#");if(L.length>1){var E=+L[L.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(L.length>2||Number.isNaN(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,L[0]}return S}}return i(e,r)};P.fieldsToExpression=function(e,r){function n(m,d,f){if(!d)throw new Error("Validation error, Field "+m+" is missing");if(d.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,T=d.length;g<T;g++){var y=d[g];if(!P._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=P.map.length;s<o;++s){var a=P.map[s],u=e[a];n(a,u,P.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(P._sortCompareFn).filter(function(m,d,f){return!d||m!==f[d-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var p=P._handleMaxDaysInMonth(i);return i.dayOfMonth=p||i.dayOfMonth,new P(i,r||{})};JE.exports=P});var eT=H((pW,XE)=>{"use strict";var Lu=ZE();function Nr(){}Nr._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)};Nr.parseExpression=function(e,r){return Lu.parse(e,r)};Nr.fieldsToExpression=function(e,r){return Lu.fieldsToExpression(e,r)};Nr.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=Nr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Nr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Nr.parseString(i.toString()))})};XE.exports=Nr});var Hk={};N(Hk,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>lp,BadRequestError:()=>Ac,BudibaseError:()=>ms,Config:()=>gp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>mp,DEFAULT_EXPENSES_TABLE_ID:()=>fp,DEFAULT_INVENTORY_TABLE_ID:()=>pp,DEFAULT_JOBS_TABLE_ID:()=>dp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,Duration:()=>ve,DurationType:()=>kf,EmailUnavailableError:()=>fr,ErrorCode:()=>Ic,FeatureDisabledError:()=>Oc,GlobalRole:()=>hp,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Sr,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>fT,NotFoundError:()=>_c,RedisClient:()=>Be,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>cp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Sc,UserStatus:()=>qu,ViewName:()=>Mr,accounts:()=>ai,auth:()=>eh,blacklist:()=>ih,cache:()=>Ra,configs:()=>rn,constants:()=>yp,context:()=>ye,db:()=>Qr,docIds:()=>af,docUpdates:()=>oh,encryption:()=>Jm,env:()=>h,errors:()=>wc,events:()=>Ts,features:()=>Vm,getPublicError:()=>xc,init:()=>jk,installation:()=>Lc,locks:()=>oi,logging:()=>ac,middleware:()=>Xm,objectStore:()=>Fp,permissions:()=>Bm,platform:()=>ca,plugins:()=>rh,queue:()=>om,redis:()=>nh,roles:()=>em,security:()=>Om,sessions:()=>Vc,setEnv:()=>Ro,sql:()=>hh,tenancy:()=>Qk,timers:()=>Fo,userUtils:()=>tm,users:()=>_s,utils:()=>cs,withEnv:()=>TT});module.exports=mO(Hk);var rn={};N(rn,{analyticsEnabled:()=>Pc,generateConfigID:()=>Lm,getAIConfig:()=>yM,getConfig:()=>kt,getDefaultGoogleConfig:()=>Pm,getGoogleConfig:()=>Hc,getGoogleDatasourceConfig:()=>km,getOIDCConfig:()=>mM,getOIDCConfigById:()=>Fm,getOIDCLogosDoc:()=>pM,getPlatformUrl:()=>Na,getSCIMConfig:()=>gM,getSMTPConfig:()=>hM,getSMTPConfigDoc:()=>yS,getSettingsConfig:()=>Mm,getSettingsConfigDoc:()=>kc,save:()=>lM});var hO=["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"],yh=[...hO],Eh={"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 gl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(gl||{}),yl=(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))(yl||{}),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 El=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(El||{});var _r=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(_r||{}),Yt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Yt||{}),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 Th(t){return Object.values(_r).includes(t)}function _h(t){return Object.values(Yt).includes(t)}function Tl(t){return Object.values(ln).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var Ah=t=>typeof t=="object"&&t._id&&t._rev;var ws=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(ws||{});var Sh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var YF={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Rs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Rs||{});var Ga=(p=>(p.APP="app",p.TABLE="table",p.USER="user",p.AUTOMATION="automation",p.WEBHOOK="webhook",p.BUILDER="builder",p.CREATOR="creator",p.GLOBAL_BUILDER="globalBuilder",p.QUERY="query",p.VIEW="view",p.LEGACY_VIEW="legacy_view",p))(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||{}),Ft=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(Ft||{});var me=(A=>(A.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",A.CREATE_ROW="CREATE_ROW",A.UPDATE_ROW="UPDATE_ROW",A.DELETE_ROW="DELETE_ROW",A.EXECUTE_BASH="EXECUTE_BASH",A.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",A.EXECUTE_SCRIPT="EXECUTE_SCRIPT",A.EXECUTE_QUERY="EXECUTE_QUERY",A.SERVER_LOG="SERVER_LOG",A.DELAY="DELAY",A.FILTER="FILTER",A.QUERY_ROWS="QUERY_ROWS",A.LOOP="LOOP",A.COLLECT="COLLECT",A.OPENAI="OPENAI",A.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",A.BRANCH="BRANCH",A.discord="discord",A.slack="slack",A.zapier="zapier",A.integromat="integromat",A.n8n="n8n",A))(me||{}),Oh=[...Object.values(me),...Object.values(Ft)];var _l=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(_l||{});var Al="bb_internal";var Ih=["attachment_single","attachment","bb_reference","json","array"];var v="_",ke="\uFFF0",Ar=t=>`${t}${v}`,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 Sr=(e=>(e.USER_METADATA="ta_users",e))(Sr||{}),Sl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Sl||{}),aG=Object.values(Sl).sort((t,e)=>e.length-t.length);function qa(t){return!!t.providerType}var Ol=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ol||{});var GG=Object.values(Ol);var QG=["rows","queries","automations"],jG=["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 xl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(xl||(xl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Or=t=>{switch(typeof t){case"undefined":return 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"]),EO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var _i=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Rh=_i;function TO(t){Rh=t}function Qa(){return Rh}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}},_O=[];function C(t,e){let r=Qa(),n=ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===_i?void 0:_i].filter(i=>!!i)});t.common.issues.push(n)}var Me=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return z;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return z;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},z=Object.freeze({status:"aborted"}),Ti=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),wl=t=>t.status==="aborted",Rl=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 bh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var $;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})($||($={}));var 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}},xh=(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 Or(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(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:Or(e)},s=this._parseSync({data:e,path:i.path,parent:i});return xh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Or(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return xh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Je({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Jt.create(this,this._def)}promise(){return wr.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new Je({...Z(this._def),schema:this,typeName: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 wn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},AO=/^c[^\s-]{8,}$/i,SO=/^[0-9a-z]+$/,OO=/^[0-9A-HJKMNP-TV-Z]{26}$/,IO=/^[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,xO=/^[a-z0-9_-]{21}$/i,wO=/^[-+]?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)?)??$/,RO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,bO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Il,DO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,vO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,CO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Dh="((\\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])))",NO=new RegExp(`^${Dh}$`);function vh(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 PO(t){return new RegExp(`^${vh(t)}$`)}function Ch(t){let e=`${Dh}T${vh(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 UO(t,e){return!!((e==="v4"||!e)&&DO.test(t)||(e==="v6"||!e)&&vO.test(t))}var Ir=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_type,expected:M.string,received:s.parsedType}),z}let n=new Me,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),C(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),C(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?C(i,{code:I.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&C(i,{code:I.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")RO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"email",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Il||(Il=new RegExp(bO,"u")),Il.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"emoji",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")IO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"uuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")xO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"nanoid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")AO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"cuid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")SO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"cuid2",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")OO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"ulid",code:I.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),C(i,{validation:"url",code:I.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"regex",code:I.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Ch(s).test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?NO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?PO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?wO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?UO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?CO.test(e.data)||(i=this._getOrReturnCtx(e,i),C(i,{validation:"base64",code:I.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:I.invalid_string,...$.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...$.errToObj(e)})}url(e){return this._addCheck({kind:"url",...$.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...$.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...$.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...$.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...$.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...$.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...$.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...$.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...$.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...$.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...$.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...$.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...$.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...$.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...$.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...$.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...$.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...$.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...$.errToObj(r)})}nonempty(e){return this.min(1,$.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Ir.create=t=>{var e;return new Ir({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function LO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_type,expected:M.number,received:s.parsedType}),z}let n,i=new Me;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),C(n,{code:I.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),C(n,{code:I.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),C(n,{code:I.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?LO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),C(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),C(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:$.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};fn.create=t=>new fn({checks:[],typeName: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 C(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),C(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),C(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),C(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};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 C(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 C(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return C(s,{code:I.invalid_date}),z}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),C(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),C(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:$.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:$.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var Ai=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),z}return Fe(e.data)}};Ai.create=t=>new Ai({typeName:Y.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),z}return Fe(e.data)}};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 C(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 xr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};xr.create=t=>new xr({typeName:Y.ZodAny,...Z(t)});var zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};zt.create=t=>new zt({typeName:Y.ZodUnknown,...Z(t)});var St=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return C(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};St.create=t=>new St({typeName:Y.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return C(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),z}return Fe(e.data)}};Si.create=t=>new Si({typeName:Y.ZodVoid,...Z(t)});var Jt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return C(r,{code:I.invalid_type,expected:M.array,received:r.parsedType}),z;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(C(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(C(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(C(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};Jt.create=(t,e)=>new Jt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Ei(t){if(t instanceof 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 Jt?new Jt({...t._def,type:Ei(t.element)}):t instanceof dt?dt.create(Ei(t.unwrap())):t instanceof Gt?Gt.create(Ei(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ei(e))):t}var qe=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return C(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof St&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],p=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,p,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof St){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(C(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let p=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,p,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let p=await l.key,m=await l.value;c.push({key:p,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>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 Nh(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:St.create(),typeName:Y.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:St.create(),typeName:Y.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:St.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 C(r,{code:I.invalid_union,unionErrors:o}),z}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return C(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:Y.ZodUnion,...Z(e)});var Kt=t=>t instanceof An?Kt(t.schema):t instanceof Je?Kt(t.innerType()):t instanceof Sn?[t.value]:t instanceof On?t.options:t instanceof In?te.objectValues(t.enum):t instanceof xn?Kt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...Kt(t.unwrap())]:t instanceof Gt?[null,...Kt(t.unwrap())]:t instanceof Ns||t instanceof Rn?Kt(t.unwrap()):t instanceof wn?Kt(t._def.innerType):[],Ya=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return C(r,{code:I.invalid_type,expected:M.object,received:r.parsedType}),z;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(C(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Kt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function bl(t,e){let r=Or(t),n=Or(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=bl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=bl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(wl(s)||wl(o))return z;let a=bl(s.value,o.value);return a.valid?((Rl(s)||Rl(o))&&r.dirty(),{status:r.value,value:a.data}):(C(n,{code:I.invalid_intersection_types}),z)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};_n.create=(t,e,r)=>new _n({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 C(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return C(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),z;!this._def.rest&&n.data.length>this._def.items.length&&(C(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>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 C(n,{code:I.invalid_type,expected:M.object,received:n.parsedType}),z;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?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:Ir.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 C(n,{code:I.invalid_type,expected:M.map,received:n.parsedType}),z;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};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 C(n,{code:I.invalid_type,expected:M.set,received:n.parsedType}),z;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(C(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(C(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return z;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:$.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};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 C(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(),_i].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(),_i].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof wr){let a=this;return Fe(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(d=>{throw c.addIssue(n(u,d)),c}),p=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(p,s).catch(d=>{throw c.addIssue(i(p,d)),c})})}else{let a=this;return Fe(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),p=a._def.returns.safeParse(l,s);if(!p.success)throw new ze([i(l,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Bt.create(e).rest(zt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Bt.create([]).rest(zt.create()),returns:r||zt.create(),typeName:Y.ZodFunction,...Z(n)})}},An=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};An.create=(t,e)=>new An({getter:t,typeName:Y.ZodLazy,...Z(e)});var Sn=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return C(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Sn.create=(t,e)=>new Sn({value:t,typeName:Y.ZodLiteral,...Z(e)});function Nh(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 C(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Ha(this,bs,"f")||bh(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 C(r,{received:r.data,code:I.invalid_enum_value,options:n}),z}return Fe(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};bs=new WeakMap;On.create=Nh;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 C(n,{expected:te.joinValues(i),received:n.parsedType,code:I.invalid_type}),z}if(Ha(this,Ds,"f")||bh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ha(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return C(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;In.create=(t,e)=>new In({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var wr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return C(r,{code:I.invalid_type,expected:M.promise,received:r.parsedType}),z;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return Fe(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};wr.create=(t,e)=>new wr({type:t,typeName:Y.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{C(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return z;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?z:u.status==="dirty"||r.value==="dirty"?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 wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName: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 C(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 MO=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?z:s.status==="dirty"?(r.dirty(),Ti(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?z:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},Rn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Ph(t,e={},r){return t?xr.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})}}):xr.create()}var kO={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 FO=(t,e={message:`Input not instance of ${t.name}`})=>Ph(r=>r instanceof t,e),Uh=Ir.create,Lh=fn.create,BO=xi.create,GO=mn.create,Mh=hn.create,$O=gn.create,VO=Ai.create,qO=yn.create,WO=En.create,QO=xr.create,jO=zt.create,HO=St.create,YO=Si.create,KO=Jt.create,zO=qe.create,JO=qe.strictCreate,ZO=Tn.create,XO=Ya.create,eI=_n.create,tI=Bt.create,rI=Ka.create,nI=Oi.create,iI=Ii.create,sI=za.create,oI=An.create,aI=Sn.create,uI=On.create,cI=In.create,lI=wr.create,wh=Je.create,dI=dt.create,pI=Gt.create,fI=Je.createWithPreprocess,mI=Ps.create,hI=()=>Uh().optional(),gI=()=>Lh().optional(),yI=()=>Mh().optional(),EI={string:t=>Ir.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})},TI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:_i,setErrorMap:TO,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:_O,addIssueToContext:C,ParseStatus:Me,INVALID:z,DIRTY:Ti,OK:Fe,isAborted:wl,isDirty:Rl,isValid:vs,isAsync:Cs,get util(){return te},get objectUtil(){return xl},ZodParsedType:M,getParsedType:Or,ZodType:X,datetimeRegex:Ch,ZodString:Ir,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:Ai,ZodUndefined:yn,ZodNull:En,ZodAny:xr,ZodUnknown:zt,ZodNever:St,ZodVoid:Si,ZodArray:Jt,ZodObject:qe,ZodUnion:Tn,ZodDiscriminatedUnion:Ya,ZodIntersection:_n,ZodTuple:Bt,ZodRecord:Ka,ZodMap:Oi,ZodSet:Ii,ZodFunction:za,ZodLazy:An,ZodLiteral:Sn,ZodEnum:On,ZodNativeEnum:In,ZodPromise:wr,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Gt,ZodDefault:xn,ZodCatch:wn,ZodNaN:xi,BRAND:MO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Rn,custom:Ph,Schema:X,ZodSchema:X,late:kO,get ZodFirstPartyTypeKind(){return Y},coerce:EI,any:QO,array:KO,bigint:GO,boolean:Mh,date:$O,discriminatedUnion:XO,effect:wh,enum:uI,function:sI,instanceof:FO,intersection:eI,lazy:oI,literal:aI,map:nI,nan:BO,nativeEnum:cI,never:HO,null:WO,nullable:pI,number:Lh,object:zO,oboolean:yI,onumber:gI,optional:dI,ostring:hI,pipeline:mI,preprocess:fI,promise:lI,record:rI,set:iI,strictObject:JO,string:Uh,symbol:VO,transformer:wh,tuple:tI,undefined:qO,union:ZO,unknown:jO,void:YO,NEVER:TI,ZodIssueCode:I,quotelessJson:EO,ZodError:ze});var eu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),kh=ee.record(eu,ee.string()),Ja=ee.record(eu,ee.any()),Za=ee.record(eu,ee.union([ee.any().array(),ee.string()])),Fh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Bh))})),Xa=ee.union([ee.string(),ee.number()]),Bh={string:kh.optional(),fuzzy:kh.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:Fh.optional(),$or:Fh.optional()},k$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Bh}).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 yp={};N(yp,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>lp,Config:()=>gp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>mp,DEFAULT_EXPENSES_TABLE_ID:()=>fp,DEFAULT_INVENTORY_TABLE_ID:()=>pp,DEFAULT_JOBS_TABLE_ID:()=>dp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,GlobalRole:()=>hp,Header:()=>Ze,InternalTable:()=>Sr,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>fT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>cp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>qu,ViewName:()=>Mr});var V1={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 j1={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var Z1="darkest",X1="light",SI=[{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"}},Gh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var wi="datasource_internal_bb_default";var Ur={};N(Ur,{ColumnSplitter:()=>zd,NoEmptyFilterStrings:()=>aT,buildQuery:()=>HD,cleanupQuery:()=>Xd,fixupFilterArrays:()=>tp,getKeyNumbering:()=>ep,getValidOperatorsForType:()=>WD,hasFilters:()=>Jd,limit:()=>cT,recurseLogicalOperators:()=>Zd,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>YD,sort:()=>uT,splitFiltersArray:()=>ru});var Vi=j($h());var Ri={};N(Ri,{filterValueToLabel:()=>bI,hasSchema:()=>DI,isSupportedUserSearch:()=>qh,parallelForeach:()=>RI,processSearchFilters:()=>Cl,trimOtherProps:()=>vI,unreachable:()=>wI});var Vh=j(require("lodash")),xI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function wI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function RI(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function bI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function DI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function vI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function qh(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(!qh(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 Cl(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=Vh.default.pick(i,xI);return s.field=tu(s.field),s})}]}}var Pr={};N(Pr,{cancelableTimeout:()=>Wh,cron:()=>Qd,deepGet:()=>Nl,getUserColor:()=>NI,getUserInitials:()=>CI,getUserLabel:()=>PI,isGoogleSheets:()=>LI,isSQL:()=>MI,retry:()=>kI,roles:()=>Kd,schema:()=>So,views:()=>Yd,wait:()=>Pl,withTimeout:()=>UI});var Nl=(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},CI=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"},NI=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%)`},PI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Wh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function UI(t,e){let[r,n]=Wh(t),i=await Promise.race([e,r]);return n(),i}function LI(t){return t==="GOOGLE_SHEETS"}function MI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Pl(t){return new Promise(e=>setTimeout(e,t))}async function kI(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let s=1.5**i*1e3*(Math.random()+.5);await Pl(s);try{return await t()}catch(o){n=o}}throw n}var Qd={};N(Qd,{getNextExecutionDates:()=>bD,validate:()=>DD});var rT=j($t()),nT=j(eT()),tT="(Input cron: ",wD={"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 RD(t){let e=[];for(let r of t){r.includes(tT)&&(r=r.split(tT)[0].trim());for(let[n,i]of Object.entries(wD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function bD(t,e=4){let r=nT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function DD(t){let e=(0,rT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:RD(e.getError())}}var So={};N(So,{decodeNonAscii:()=>jd,encodeNonAscii:()=>ND,isDeprecatedSingleUserColumn:()=>vD,isNumeric:()=>PD,isRequired:()=>CD});function vD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function CD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function ND(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function jd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function PD(t){return t.type==="number"||t.type==="bigint"}var Yd={};N(Yd,{basicFields:()=>FD,calculationFields:()=>kD,hasCalculationFields:()=>MD,isBasicViewField:()=>UD,isCalculationField:()=>Oo,isCalculationView:()=>LD,isV2:()=>BD,isVisible:()=>iT});var Hd=require("lodash");function Oo(t){return"calculationType"in t}function UD(t){return!Oo(t)}function LD(t){return t.type==="calculation"}function MD(t){return Object.values(t.schema||{}).some(Oo)}function kD(t){return(0,Hd.pickBy)(t.schema||{},Oo)}function iT(t){return t.visible!==!1}function FD(t,e){let{visible:r=!0}=e||{};return(0,Hd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||iT(n)))}function BD(t){return t.version===2}var Kd={};N(Kd,{checkForRoleInheritanceLoops:()=>$D});function GD(t){return`role${v}${t}`}function $D(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=GD(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 VD=/{{([^{].*?)}}/g,oT=Object.values(gi),qD=[...Object.values(_r),...Object.values(Yt),...Object.values(ln)],WD=(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},aT=[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 Zd(t,e){for(let r of oT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Xd=t=>{for(let e of aT)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===""||QD(s))&&delete t[e][i]}return t=Zd(t,Xd),t};function QD(t){return Array.isArray(t)&&t.length===0}var tu=t=>ep(t).key,ep=t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},zd=class{constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=ep(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=jd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function jD(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(VD)||[]).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(Tl(r)){let c=Gh[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(Th(r)||_h(r)||Tl(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 HD(t){if(!t)return{};if(Array.isArray(t)&&(t=Cl(t),!t))return{};let e=sT(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=sT(n.logicalOperator)),{[a]:{conditions:o.map(jD).filter(u=>u)}}})},r}function sT(t){return t==="all"?"$and":"$or"}function tp(t){if(!t)return t;for(let e of Object.values(Yt)){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 Zd(t,tp),t}function YD(t,e){let r=Mu(t,e.query);e.sort&&(r=uT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=cT(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=Xd(e),e=tp(e),!Jd(e)&&e.onEmptyFilter==="none")return[];let r=(E,A)=>B=>{for(let[w,F]of Object.entries(e[E]||{})){let ce=Ba(E)?B:Nl(B,tu(w)),an=A(ce,F);if(e.allOr&&an)return!0;if(!e.allOr&&!an)return!1}return!e.allOr},n=r("string",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().startsWith(A.toLowerCase())),i=r("fuzzy",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().includes(A.toLowerCase())),s=r("range",(E,A)=>{if(E==null||E===""||((0,jn.isPlainObject)(A.low)&&(0,jn.isEmpty)(A.low)&&(A.low=void 0),(0,jn.isPlainObject)(A.high)&&(0,jn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+E;if(!isNaN(B)){let F=+A.low,ce=+A.high;if(!isNaN(F)&&!isNaN(ce))return B>=F&&B<=ce;if(isNaN(F)){if(!isNaN(ce))return B<=ce}else return B>=F}let w=(0,Vi.default)(E);if(w.isValid()){let F=(0,Vi.default)(A.low||"0000-00-00T00:00:00.000Z"),ce=(0,Vi.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ce.isValid())return w.isAfter(F)&&w.isBefore(ce)||w.isSame(F)||w.isSame(ce);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ce.isValid())return w.isBefore(ce)||w.isSame(ce)}return A.low!=null&&A.high!=null?E>=A.low&&E<=A.high:A.low!=null?E>=A.low:A.high!=null?E<=A.high:!1}),o=(E,A)=>{if(Array.isArray(E)){for(let w of E)if(o(w,A))return!0;return!1}if(E&&typeof E=="object"&&typeof A=="string")return E._id===A;if(E===A)return!0;if(E==null&&A!=null||E!=null&&A==null)return!1;let B=(0,Vi.default)(E);if(B.isValid()){let w=(0,Vi.default)(A);if(w.isValid())return B.isSame(w)}return!1},a=E=>(...A)=>!E(...A),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,p=r("empty",l),m=r("notEmpty",a(l)),d=r("oneOf",(E,A)=>(typeof A=="string"&&(A=A.split(",")),typeof E=="number"&&(A=A.map(B=>parseFloat(B))),Array.isArray(A)?A.some(B=>o(E,B)):!1)),f=E=>(A,B)=>!Array.isArray(A)||(typeof B=="string"&&(B=B.split(","),typeof A[0]=="number"&&(B=B.map(w=>parseFloat(w)))),!Array.isArray(B))?!1:B.length===0?!0:B[E](w=>o(A,w)),g=r("contains",(E,A)=>Array.isArray(A)&&A.length===0?!0:f("every")(E,A)),T=r("notContains",(E,A)=>Array.isArray(A)&&A.length===0?!0:a(f("every"))(E,A)),y=r("containsAny",f("some")),O=r("$and",(E,A)=>{if(!A.length)return!1;for(let B of A)if(!Mu([E],B).length)return!1;return!0}),S=r("$or",(E,A)=>{if(!A.length)return!1;for(let B of A)if(Mu([E],{...B,allOr:!0}).length)return!0;return!1}),L=E=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:p,notEmpty:m,oneOf:d,contains:g,containsAny:y,notContains:T,$and:O,$or:S},B=Object.entries(e||{}).filter(([w,F])=>!["allOr","onEmptyFilter"].includes(w)&&F&&Object.keys(F).length>0).map(([w])=>A[w]?.(E)??!1);return Jd(e)?e.allOr?B.some(w=>w===!0):B.every(w=>w===!0):!0};return t.filter(L)}function uT(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 cT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Jd=t=>{if(!t)return!1;let e=r=>{for(let n of oT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of qD){let i=r[n];if(!i||typeof i!="object")continue;if(Object.entries(i).filter(o=>{let a=o[1]!==void 0||o[1]!==null||o[1]!=="";return n==="notEmpty"||a}).length!==0)return!0}return!1};return e(t)};var st={};N(st,{applications:()=>ip,automations:()=>sp,users:()=>up});var ip={};N(ip,{getDevAppID:()=>KD,getProdAppID:()=>np});var rp=Ar("app"),Io=Ar("app_dev");function KD(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(rp);e.shift();let r=e.join(rp);return`${Io}${r}`}function np(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`${rp}${r}`}var sp={};N(sp,{isAppAction:()=>ZD,isRowAction:()=>zD,isWebhookAction:()=>JD});function zD(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function JD(t){return t.definition.trigger?.stepId==="WEBHOOK"}function ZD(t){return t.definition.trigger?.stepId==="APP"}var up={};N(up,{canCreateApps:()=>XD,containsUserID:()=>sv,getGlobalUserID:()=>iv,hasAdminPermissions:()=>ap,hasAppBuilderPermissions:()=>Bu,hasAppCreatorPermissions:()=>lT,hasBuilderPermissions:()=>rv,hasCreatorPermissions:()=>Gu,isAdmin:()=>Fu,isAdminOrBuilder:()=>ev,isAdminOrGlobalBuilder:()=>tv,isBuilder:()=>op,isCreator:()=>nv,isGlobalBuilder:()=>ku});var Lr=j(require("lodash/fp"));function op(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(np(e))):!1}function ku(t){return op(t)&&!Bu(t)||Fu(t)}function XD(t){return ku(t)||Gu(t)}function Fu(t){return t?ap(t):!1}function ev(t,e){return op(t,e)||Fu(t)}function tv(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 lT(t){return t?Lr.flow(Lr.get("roles"),Lr.values,Lr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function rv(t){return t?t.builder?.global||Bu(t)||Gu(t):!1}function ap(t){return t?!!t.admin?.global:!1}function Gu(t){return t?!!t.builder?.creator:!1}function nv(t){return t?ku(t)||ap(t)||Gu(t)||Bu(t)||lT(t):!1}function iv(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function sv(t){return typeof t!="string"?!1:t.includes(`us${v}`)}var aQ={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},uQ={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},cQ={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 yQ={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 OQ={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var wQ={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 DQ={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 NQ={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 LQ={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 FQ={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 $Q={name:"JS Scripting",tagline:"Execute JavaScript Code",icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var qi={EQUAL:"EQUAL",NOT_EQUAL:"NOT_EQUAL",GREATER_THAN:"GREATER_THAN",LESS_THAN:"LESS_THAN"},hv={[qi.EQUAL]:"Equals",[qi.NOT_EQUAL]:"Not equals",[qi.GREATER_THAN]:"Greater than",[qi.LESS_THAN]:"Less than"},WQ={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:qi.EQUAL},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(qi),pretty:Object.values(hv)},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 HQ={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 zQ={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 XQ={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(_l)},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 dT=(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))(dT||{}),rj={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(dT)}},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 pT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(pT||{}),sj={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(pT),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 Sv={ascending:"Ascending",descending:"Descending"},uj={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(Sv)},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 dj={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 mj={name:"Backend log",tagline:"Console log a value in the backend",icon:"Monitoring",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var yj={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var _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 Oj={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var wj={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 Cv={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 Pv={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 Lv={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 kv={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 Bv={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 $v={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 qv={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||{}),Mr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(Mr||{}),Qi={by_email2:["by_email"]},Se={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"}},gt=Ar("app"),Vu=Ar("app_dev"),yt=Vu,cp="internal",lp="budibase",sr="_design/sqlite",dp="ta_bb_jobs",pp="ta_bb_inventory",fp="ta_bb_expenses",mp="ta_bb_employee";var qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(qu||{}),ji=(s=>(s.Auth="budibase:auth",s.Init="budibase:init",s.ACCOUNT_RETURN_URL="budibase:account:returnurl",s.DatasourceAuth="budibase:datasourceauth",s.OIDC_CONFIG="budibase:oidc:config",s))(ji||{}),hp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(hp||{}),gp=(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))(gp||{}),fT=new Date(-2147483647e3),Wu=new Date(2147483647e3),ge="default";var Ra={};N(Ra,{CacheKey:()=>dr,TTL:()=>ri,app:()=>rf,bustCache:()=>us,destroy:()=>na,docWritethrough:()=>Nm,generic:()=>ia,get:()=>ni,invite:()=>Wf,keys:()=>hc,passwordReset:()=>vm,store:()=>pr,user:()=>nn,withCache:()=>Kr,writethrough:()=>Dm});var ia={};N(ia,{CacheKey:()=>dr,TTL:()=>ri,bustCache:()=>us,destroy:()=>na,get:()=>ni,keys:()=>hc,store:()=>pr,withCache:()=>Kr});var ye={};N(ye,{DEFAULT_TENANT_ID:()=>ge,baseGlobalDBName:()=>ta,doInAppContext:()=>wN,doInAppMigrationContext:()=>bN,doInAutomationContext:()=>xN,doInContext:()=>If,doInEnvironmentContext:()=>vN,doInIPContext:()=>wf,doInIdentityContext:()=>wo,doInScimContext:()=>CN,doInTenant:()=>Ge,ensureSnippetContext:()=>z_,getAppDB:()=>ss,getAppId:()=>Pe,getAuditLogDBName:()=>Y_,getAuditLogsDB:()=>PN,getAutomationId:()=>qp,getCurrentContext:()=>os,getDevAppDB:()=>LN,getEnvironmentVariables:()=>NN,getFeatureFlags:()=>Rf,getGlobalDB:()=>se,getGlobalDBName:()=>ur,getIP:()=>xf,getIdentity:()=>or,getPlatformURL:()=>Of,getProdAppDB:()=>UN,getProdAppId:()=>DN,getScimDBName:()=>AN,getTableForView:()=>MN,getTenantIDFromAppID:()=>is,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Hr,isScim:()=>Pt,isTenancyEnabled:()=>ON,isTenantIdSet:()=>SN,setFeatureFlags:()=>bf,setTableForView:()=>kN});var xo={};N(xo,{doInAccountContext:()=>Hv,doInIdentityContext:()=>Tp,doInUserContext:()=>_p,getAccountUserId:()=>mT,getIdentity:()=>Ep});function Ep(){return or()}function Tp(t,e){return wo(t,e)}function _p(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Tp(n,r)}function Hv(t,e){let r=mT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Tp(i,e)}function mT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Hu=require("fs");var yT=require("lodash"),Ap=require("crypto");function Sp(){return ET()}function ET(){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 Yv(t){if(t)return parseInt(t)}var hT=!1;!hT&&ju()&&!Sp()&&(require("dotenv").config(),hT=!0);var Hi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},gT=!!parseInt(process.env.SELF_HOSTED||"");function Kv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function zv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Jv(){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()&&!Sp())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 Zv(){return Dt.SERVICE_TYPE==="worker"}function Xv(){return Dt.SERVICE_TYPE==="apps"}function eC(){return Dt.BUDIBASE_ENVIRONMENT==="QA"}var Dt={isTest:Sp,isJest:ET,isDev:ju,isWorker:Zv,isApps:Xv,isQA:eC,isProd:()=>!ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Ap.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Ap.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Kv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION,MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:gT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Hi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Hi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Hi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Hi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Hi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Hi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:process.env.SERVICE||"budibase",LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:zv(),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:gT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Jv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Dt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Yv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,yT.cloneDeep)(Dt),r;for(r in t)Dt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Dt._set(n,i)}}function TT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var _T=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Dt))e==="0"&&(Dt[t]=0),e==="false"&&(Dt[t]=0);var h=Dt;var AT=require("async_hooks"),Ce=class t{static{this.storage=new AT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Op="No app provided";function kr(t){if(!t)throw Op;return t.startsWith(yt)}function tC(t){if(!t)throw Op;return t.startsWith(gt)&&!kr(t)}function bo(t){if(!t)throw Op;return kr(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 rC=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 nC(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Ip(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:Ip(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Ip=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let p=l.split(":");r=p[0],n=p.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var j_=j(require("@budibase/nano"));var ST=j(require("node-fetch"));function Ku(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function OT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,ST.default)(Ku(encodeURI(t)),i)}async function zu(t,e="GET",r){let n=await OT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Hn=j(require("pouchdb"));var IT,xT=!1,xp=(t={})=>{let{url:e,cookie:r}=vt(),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){IT=xp(t),xT=!0}var sC=()=>{if(!xT)throw new Error("init has not been called")};function Et(t,e){sC();let r=new IT(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 wT=require("uuid");function Oe(){return(0,wT.v4)().replace(/-/g,"")}var Ie=j(require("dd-trace")),Yi=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 Sf={};N(Sf,{breakExternalTableId:()=>Ef,breakRowIdField:()=>EN,buildExternalTableId:()=>pN,convertRowId:()=>yN,encodeTableId:()=>fN,encodeViewId:()=>mN,generateRowIdField:()=>hN,getNativeSql:()=>ns,isExternalTable:()=>yf,isExternalTableID:()=>fc,isInternalTableID:()=>dN,isInvalidISODateString:()=>Tf,isRowId:()=>gN,isValidFilter:()=>mc,isValidISODateString:()=>_f,isValidTime:()=>TN,sqlLog:()=>ra,validateManyToMany:()=>Af});var Qr={};N(Qr,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>lp,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>mp,DEFAULT_EXPENSES_TABLE_ID:()=>fp,DEFAULT_INVENTORY_TABLE_ID:()=>pp,DEFAULT_JOBS_TABLE_ID:()=>dp,DatabaseImpl:()=>rs,DatabaseWithConnection:()=>uN,DeprecatedViews:()=>Qi,DocumentType:()=>Te,InternalTable:()=>Sr,QueryBuilder:()=>lr,Replication:()=>L_,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>sr,SQS_DATASOURCE_INTERNAL:()=>cp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>Mr,baseGlobalDBName:()=>ta,checkErrorCode:()=>B_,closePouchDB:()=>vo,createApiKeyView:()=>v_,createNewUserEmailView:()=>b_,createPlatformAccountEmailView:()=>N_,createPlatformUserView:()=>P_,createUserAppView:()=>D_,createView:()=>ts,dbExists:()=>tN,directCouchAllDbs:()=>cf,directCouchCall:()=>OT,directCouchFind:()=>hf,directCouchQuery:()=>zu,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>nC,fullSearch:()=>sN,generateAppID:()=>l_,generateAppUserID:()=>lc,generateDevInfoID:()=>y_,generateGlobalUserID:()=>Xi,generatePluginID:()=>E_,generateRoleID:()=>sf,generateRowID:()=>nf,generateTableID:()=>d_,generateTemplateID:()=>g_,generateUserMetadataID:()=>m_,generateWorkspaceID:()=>p_,getAllApps:()=>Jo,getAllDbs:()=>R_,getAppsByIDs:()=>JC,getCouchInfo:()=>vt,getDB:()=>Ke,getDevAppID:()=>rC,getDevAppIDs:()=>XC,getDevelopmentAppID:()=>Yu,getDocParams:()=>es,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>h_,getGlobalUserParams:()=>Xn,getPluginParams:()=>w_,getPouch:()=>xp,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>ZC,getQueryIndex:()=>T_,getRoleParams:()=>pc,getRowParams:()=>of,getStartEndKeyURL:()=>zo,getTemplateParams:()=>x_,getUrlInfo:()=>Ip,getUserMetadataParams:()=>I_,getUsersByAppParams:()=>dc,getWorkspaceParams:()=>O_,init:()=>Ju,isDatasourceId:()=>S_,isDevApp:()=>bo,isDevAppID:()=>kr,isDocumentConflictError:()=>aN,isGlobalUserID:()=>f_,isProdAppID:()=>tC,isSameAppID:()=>eN,isTableId:()=>__,isViewId:()=>A_,paginatedSearch:()=>iN,pagination:()=>uf,prefixRoleID:()=>ar,queryGlobalView:()=>cr,queryGlobalViewRaw:()=>pf,queryPlatformView:()=>Xo,queryView:()=>df,queryViewRaw:()=>Zo,removeKeyNumbering:()=>ea,searchIndexes:()=>mf});var rf={};N(rf,{AppState:()=>tf,getAppMetadata:()=>cc,invalidateAppMetadata:()=>KC});var Wr={};N(Wr,{getAppClient:()=>uc,getCacheClient:()=>Zp,getDocWritethroughClient:()=>QC,getInviteClient:()=>Zn,getLockClient:()=>ef,getPasswordResetClient:()=>Ko,getSessionClient:()=>qr,getSocketClient:()=>WC,getUserClient:()=>Yo,getWritethroughClient:()=>Xp,init:()=>Nt,shutdown:()=>u_});var o_=j(require("ioredis"));var ec={};N(ec,{Databases:()=>wp,SEPARATOR:()=>Ki,SelectableDatabase:()=>Zu,addDbPrefix:()=>He,getRedisConnectionDetails:()=>Xu,getRedisOptions:()=>zi,removeDbPrefix:()=>Rp});var oC=2e3,RT=1e4,Ki="-",wp=(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))(wp||{}),Zu=(T=>(T[T.DEFAULT=0]="DEFAULT",T[T.SOCKET_IO=1]="SOCKET_IO",T[T.RATE_LIMITING=2]="RATE_LIMITING",T[T.UNUSED_2=3]="UNUSED_2",T[T.UNUSED_3=4]="UNUSED_3",T[T.UNUSED_4=5]="UNUSED_4",T[T.UNUSED_5=6]="UNUSED_5",T[T.UNUSED_6=7]="UNUSED_6",T[T.UNUSED_7=8]="UNUSED_7",T[T.UNUSED_8=9]="UNUSED_8",T[T.UNUSED_9=10]="UNUSED_9",T[T.UNUSED_10=11]="UNUSED_10",T[T.UNUSED_11=12]="UNUSED_11",T[T.UNUSED_12=13]="UNUSED_12",T[T.UNUSED_13=14]="UNUSED_13",T[T.UNUSED_14=15]="UNUSED_14",T))(Zu||{});function Xu(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function zi(){let{host:t,password:e,port:r}=Xu(),n={connectTimeout:RT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:RT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:oC,dnsLookup:(s,o)=>o(null,s)}),i}function He(t,e){return e.includes(t)?e:`${t}${Ki}${e}`}function Rp(t){let e=t.split(Ki);return e.length>=2?(e.shift(),e.join(Ki)):e[0]}var ac={};N(ac,{correlation:()=>Co,logAlert:()=>Kn,logAlertWithInfo:()=>FC,logWarn:()=>Zi,logger:()=>oc,system:()=>$p});var Co={};N(Co,{getId:()=>bp,setHeader:()=>aC});var bT=require("correlation-id"),aC=t=>{let e=bT.getId();e&&(t["x-budibase-correlation-id"]=e)};function bp(){return bT.getId()}var sc=j(require("pino")),i_=j(require("pino-pretty"));var Vp=j(require("dd-trace")),s_=require("dd-trace/ext");var $p={};N($p,{getLogReadStream:()=>NC,getSingleFileMaxSizeInfo:()=>n_,localFileDestination:()=>Gp});var Uo=j(require("fs")),Bp=j(require("path")),XT=j(require("rotating-file-stream"));var Fp={};N(Fp,{ObjectStore:()=>Ct,ObjectStoreBuckets:()=>cC,SIGNED_FILE_PREFIX:()=>Up,bucketTTLConfig:()=>tc,budibaseTempDir:()=>Yn,clientLibraryCDNUrl:()=>xC,clientLibraryPath:()=>QT,clientLibraryUrl:()=>wC,createBucketIfNotExists:()=>Po,deleteFile:()=>EC,deleteFiles:()=>TC,deleteFolder:()=>VT,downloadTarball:()=>AC,downloadTarballDirect:()=>_C,enrichPluginURLs:()=>DC,extractBucketAndPath:()=>Dp,getAppFileUrl:()=>RC,getGlobalFileS3Key:()=>jT,getGlobalFileUrl:()=>bC,getObjectMetadata:()=>SC,getPluginIconKey:()=>KT,getPluginJSKey:()=>YT,getPluginS3Dir:()=>JT,getPresignedUrl:()=>$r,getReadStream:()=>rc,listAllObjects:()=>$T,processAutomationAttachment:()=>dC,processObjectStoreAttachment:()=>PT,retrieve:()=>GT,retrieveDirectory:()=>yC,retrieveToTmp:()=>gC,sanitizeBucket:()=>Ye,sanitizeKey:()=>Ne,streamUpload:()=>BT,upload:()=>hC,uploadDirectory:()=>Lp});var UT=j(require("aws-sdk")),LT=j(require("stream")),vp=j(require("node-fetch")),Cp=j(require("tar-fs")),Np=j(require("zlib")),MT=require("util"),Gr=require("path"),Fr=j(require("fs"));var No=j(require("path")),DT=require("os"),vT=j(require("fs"));var CT=j(require("stream")),cC={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},NT=(0,No.join)((0,DT.tmpdir)(),".budibase");try{vT.default.mkdirSync(NT)}catch(t){if(t.code!=="EEXIST")throw t}function Yn(){return NT}var tc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function lC(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=No.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:CT.default.Readable.fromWeb(e.body)}}async function PT(t){let e=Dp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await rc(r,n),s=No.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function dC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await lC(t):await PT(t)}var Pp=require("uuid");var kT=j(require("fs/promises")),pC=require("sanitize-s3-objectkey"),FT=(0,MT.promisify)(LT.default.pipeline),fC={bucketCreationPromises:{}},Up="/files/signed",Br={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},mC=[Br.html,Br.css,Br.js,Br.json];function Ne(t){return pC(Ye(t)).replace(/\\/g,"/")}function Ye(t){return t.replace(new RegExp(yt,"g"),gt)}function Ct(t,e={presigning:!1}){let r={s3ForcePathStyle:!0,signatureVersion:"v4",apiVersion:"2006-03-01",accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,region:h.AWS_REGION};return t&&(r.params={Bucket:Ye(t)}),!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(r.sessionToken=h.AWS_SESSION_TOKEN),h.MINIO_URL&&(e.presigning&&h.MINIO_ENABLED?r.endpoint="minio-service":r.endpoint=h.MINIO_URL),new UT.default.S3(r)}async function Po(t,e){e=Ye(e);try{return await t.headBucket({Bucket:e}).promise(),{created:!1,exists:!0}}catch(r){let n=fC.bucketCreationPromises,i=r.statusCode===404,s=r.statusCode===403;if(n[e])return await n[e],{created:!1,exists:!0};if(i||s){if(i)return n[e]=t.createBucket({Bucket:e}).promise(),await n[e],delete n[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}async function hC({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await kT.default.open(r)).createReadStream():s,c=Ct(t),l=await Po(c,t);if(o&&l.created){let d=tc(t,o);await c.putBucketLifecycleConfiguration(d).promise()}let p=n;p||(p=a?Br[a.toLowerCase()]:Br.txt);let m={Key:Ne(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let d of Object.keys(i))(!i[d]||typeof i[d]!="string")&&delete i[d];m.Metadata=i}return c.upload(m).promise()}async function BT({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Ct(t),u=await Po(a,t);if(s&&u.created){let g=tc(t,s);await a.putBucketLifecycleConfiguration(g).promise()}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Br[o.toLowerCase()]:Br.txt);let l=Ye(t),p=Ne(r),m={Bucket:l,Key:p,Body:e,ContentType:c,...i},d=await a.upload(m).promise(),f=await a.headObject({Bucket:l,Key:p}).promise();return{...d,ContentLength:f.ContentLength}}async function GT(t,e){let r=Ct(t),n={Bucket:Ye(t),Key:Ne(e)},i=await r.getObject(n).promise();return mC.includes(i.ContentType)?i.Body.toString("utf8"):i.Body}async function $T(t,e){let r=Ct(t),n=(a={})=>r.listObjectsV2({...a,Bucket:Ye(t),Prefix:Ne(e)}).promise(),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}function $r(t,e,r=3600){let n=Ct(t,{presigning:!0}),i={Bucket:Ye(t),Key:Ne(e),Expires:r},s=n.getSignedUrl("getObject",i);if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Up}${a}${u}`}else return s}async function gC(t,e){t=Ye(t),e=Ne(e);let r=await GT(t,e),n=(0,Gr.join)(Yn(),(0,Pp.v4)());return Fr.default.writeFileSync(n,r),n}async function yC(t,e){let r=(0,Gr.join)(Yn(),(0,Pp.v4)());Fr.default.mkdirSync(r);let n=await $T(t,e),i=await Promise.all(n.map(a=>rc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),p=l.slice(0,l.length-1),m=(0,Gr.join)(r,...p);l.length>1&&!Fr.default.existsSync(m)&&Fr.default.mkdirSync(m,{recursive:!0});let d=Fr.default.createWriteStream((0,Gr.join)(r,...l),{mode:420});c.pipe(d),o.push(new Promise((f,g)=>{c.on("finish",f),c.on("error",g),d.on("error",g)}))}return await Promise.all(o),r}async function EC(t,e){let r=Ct(t);await Po(r,t);let n={Bucket:t,Key:Ne(e)};return r.deleteObject(n).promise()}async function TC(t,e){let r=Ct(t);await Po(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ne(i)}))}};return r.deleteObjects(n).promise()}async function VT(t,e){t=Ye(t),e=Ne(e);let r=Ct(t),n={Bucket:t,Prefix:e},i=await r.listObjects(n).promise();if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s).promise()).Deleted?.length===1e3)return VT(t,e)}async function Lp(t,e,r){t=Ye(t);let n=[],i=Fr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ne((0,Gr.join)(r,s.name)),a=(0,Gr.join)(e,s.name);s.isDirectory()?n.push(Lp(t,a,o)):n.push(BT({bucket:t,filename:o,stream:Fr.default.createReadStream(a)}))}return await Promise.all(n),i}async function _C(t,e,r={}){e=Ne(e);let n=await(0,vp.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await FT(n.body,Np.default.createUnzip(),Cp.default.extract(e))}async function AC(t,e,r){e=Ye(e),r=Ne(r);let n=await(0,vp.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Gr.join)(Yn(),r);return await FT(n.body,Np.default.createUnzip(),Cp.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Lp(e,i,r),i}async function rc(t,e){t=Ye(t),e=Ne(e);let r=Ct(t),n={Bucket:t,Key:e};return r.getObject(n).createReadStream()}async function SC(t,e){t=Ye(t),e=Ne(e);let r=Ct(t),n={Bucket:t,Key:e};try{return await r.headObject(n).promise()}catch{throw new Error("Unable to retrieve metadata from object")}}function Dp(t){let e=t.split("?")[0],r=new RegExp(`^${Up}/(?<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 qT=j(require("aws-cloudfront-sign")),ic;function OC(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return ic||(ic=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),ic)}var IC=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:OC(),expireTime:new Date().getTime()+1e3*60*60*24}),Ji=t=>{let e=Mp(t);return qT.getSignedUrl(e,IC())},Mp=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var WT=j(require("querystring"));function QT(t){return`${Ne(t)}/budibase-client.js`}function xC(t,e){let r=QT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Mp(r)):$r(h.APPS_BUCKET_NAME,r)}function wC(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ge&&(n.tenantId=r),`/api/assets/client?${WT.default.encode(n)}`}function RC(t){return h.CLOUDFRONT_CDN?Ji(t):$r(h.APPS_BUCKET_NAME,t)}var bC=(t,e,r)=>{let n=jT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),Ji(n)):$r(h.GLOBAL_BUCKET_NAME,n)},jT=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};function DC(t){return!t||!t.length?[]:t.map(e=>{let r=vC(e),n=CC(e);return{...e,jsUrl:r,iconUrl:n}})}function vC(t){let e=YT(t);return HT(e)}function CC(t){let e=KT(t);if(e)return HT(e)}function HT(t){return h.CLOUDFRONT_CDN?Ji(t):$r(h.PLUGIN_BUCKET_NAME,t)}function YT(t){return zT(t,"plugin.min.js")}function KT(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return zT(t,e)}function zT(t,e){return`${JT(t.name)}/${e}`}function JT(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var e_="budibase.log",t_="budibase-logs-history.txt",r_=Bp.default.join(Yn(),"systemlogs");function ZT(t){return Bp.default.join(r_,t)}function n_(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}function Gp(){let t=n_(h.ROLLING_LOG_MAX_SIZE);return XT.createStream(e_,{size:t?.size,path:r_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:t_,initialRotation:!1})}function NC(){let t=[],e=ZT(t_);if(Uo.default.existsSync(e)){let i=Uo.default.readFileSync(e,"utf-8").split(`
|
|
6
|
-
`);for(let s of i.filter(o=>o))t.push(Uo.default.readFileSync(s))}return t.push(Uo.default.readFileSync(
|
|
4
|
+
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let p={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Rg.default)({args:p,value:l,path:s,sync:i,tests:m,endEarly:c},d=>{if(d)return void n(d,l);(0,Rg.default)({tests:this.tests,args:p,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Dg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Dg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,wg.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,cw.default)(e).map(s=>new aw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new ow.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=xt;xt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])xt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,uw.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])xt.prototype[t]=xt.prototype.oneOf;for(let t of["not","nope"])xt.prototype[t]=xt.prototype.notOneOf;xt.prototype.optional=xt.prototype.notRequired});var Ng=Y(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Cg;Ks.default=void 0;var lw=dw(tr());function dw(t){return t&&t.__esModule?t:{default:t}}var Xl=lw.default,pw=Xl;Ks.default=pw;function Cg(){return new Xl}Cg.prototype=Xl.prototype});var vi=Y(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var fw=t=>t==null;hu.default=fw});var kg=Y(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Mg;Js.default=void 0;var mw=Lg(tr()),Pg=Xt(),Ug=Lg(vi());function Lg(t){return t&&t.__esModule?t:{default:t}}function Mg(){return new zs}var zs=class extends mw.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=Pg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Ug.default)(r)||r===!0}})}isFalse(e=Pg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Ug.default)(r)||r===!1}})}};Js.default=zs;Mg.prototype=zs.prototype});var Gg=Y(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Bg;Xs.default=void 0;var Vt=Xt(),rr=Fg(vi()),hw=Fg(tr());function Fg(t){return t&&t.__esModule?t:{default:t}}var gw=/^((([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,yw=/^((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,Ew=/^(?:[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,Tw=t=>(0,rr.default)(t)||t===t.trim(),_w={}.toString();function Bg(){return new Zs}var Zs=class extends hw.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===_w?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(gw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Vt.string.url){return this.matches(yw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Vt.string.uuid){return this.matches(Ew,{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:Tw})}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;Bg.prototype=Zs.prototype});var qg=Y(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Vg;to.default=void 0;var Cn=Xt(),Nn=$g(vi()),Aw=$g(tr());function $g(t){return t&&t.__esModule?t:{default:t}}var Sw=t=>t!=+t;function Vg(){return new eo}var eo=class extends Aw.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"&&!Sw(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;Vg.prototype=eo.prototype});var Wg=Y(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=Iw;var Ow=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Iw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Ow.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 Yg=Y(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=rd;ro.default=void 0;var xw=gu(Wg()),Qg=Xt(),jg=gu(vi()),ww=gu(vn()),Rw=gu(tr());function gu(t){return t&&t.__esModule?t:{default:t}}var td=new Date(""),bw=t=>Object.prototype.toString.call(t)==="[object Date]";function rd(){return new Ci}var Ci=class extends Rw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,xw.default)(e),isNaN(e)?td:new Date(e))})})}_typeCheck(e){return bw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(ww.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=Qg.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,jg.default)(i)||i>=this.resolve(n)}})}max(e,r=Qg.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,jg.default)(i)||i<=this.resolve(n)}})}};ro.default=Ci;Ci.INVALID_DATE=td;rd.prototype=Ci.prototype;rd.INVALID_DATE=td});var Kg=Y((tW,nd)=>{"use strict";nd.exports=function(t){return Hg(Dw(t),t)};nd.exports.array=Hg;function Hg(t,e){var r=t.length,n=new Array(r),i={},s=r,o=vw(e),a=Cw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,p){if(p.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var d=o.get(c)||new Set;if(d=Array.from(d),l=d.length){p.add(c);do{var f=d[--l];u(f,a.get(f),p)}while(l);p.delete(c)}n[--r]=c}}}function Dw(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 vw(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 Cw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var zg=Y(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=kw;var Nw=yu(require("lodash/has")),Pw=yu(Kg()),Uw=Qs(),Lw=yu(vn()),Mw=yu(bi());function yu(t){return t&&t.__esModule?t:{default:t}}function kw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Uw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Nw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Lw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Mw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Pw.default.array(n,r).reverse()}});var Zg=Y(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});sd.default=Fw;function Jg(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 Fw(t){return(e,r)=>Jg(t,e)-Jg(t,r)}});var sy=Y(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=iy;io.default=void 0;var Xg=qt(require("lodash/has")),ey=qt(require("lodash/snakeCase")),Bw=qt(require("lodash/camelCase")),Gw=qt(require("lodash/mapKeys")),$w=qt(require("lodash/mapValues")),Vw=Qs(),ty=Xt(),qw=qt(zg()),ny=qt(Zg()),Ww=qt(uu()),Qw=qt(bn()),od=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 ry=t=>Object.prototype.toString.call(t)==="[object Object]";function jw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Yw=(0,ny.default)([]),no=class extends od.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Yw,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 ry(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(p=>this._nodes.indexOf(p)===-1)),u={},c=Ni({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let p of a){let m=s[p],d=(0,Xg.default)(i,p);if(m){let f,g=i[p];c.path=(r.path?`${r.path}.`:"")+p,m=m.resolve({value:g,context:r.context,parent:u});let T="spec"in m?m.spec:void 0,y=T?.strict;if(T?.strip){l=l||p in i;continue}f=!r.__validating||!y?m.cast(i[p],c):i[p],f!==void 0&&(u[p]=f)}else d&&!o&&(u[p]=i[p]);u[p]!==i[p]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,p)=>{if(l){if(!Qw.default.isError(l)||u)return void n(l,p);i.push(l)}if(!c||!ry(p)){n(i[0]||null,p);return}a=a||p;let m=this._nodes.map(d=>(f,g)=>{let T=d.indexOf(".")===-1?(r.path?`${r.path}.`:"")+d:`${r.path||""}["${d}"]`,y=this.fields[d];if(y&&"validate"in y){y.validate(p[d],Ni({},r,{path:T,from:o,strict:!0,parent:p,originalValue:a[d]}),g);return}g(null)});(0,Ww.default)({sync:s,tests:m,value:p,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ni({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof od.default&&s instanceof od.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,ny.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,qw.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,Vw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Xg.default)(s,e)&&(o=Ni({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=ty.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=jw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=ty.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Gw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Bw.default)}snakeCase(){return this.transformKeys(ey.default)}constantCase(){return this.transformKeys(e=>(0,ey.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,$w.default)(this.fields,r=>r.describe()),e}};io.default=no;function iy(t){return new no(t)}iy.prototype=no.prototype});var ay=Y(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=oy;oo.default=void 0;var ad=Pi(vi()),Hw=Pi(bi()),Kw=Pi(Ws()),ud=Xt(),zw=Pi(uu()),Jw=Pi(bn()),Zw=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 oy(t){return new so(t)}var so=class extends Zw.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,p=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(d,f)=>{if(d){if(!Jw.default.isError(d)||l)return void n(d,f);o.push(d)}if(!p||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let T=0;T<f.length;T++){let y=f[T],O=`${r.path||""}[${T}]`,S=Eu({},r,{path:O,strict:!0,parent:f,index:T,originalValue:m[T]});g[T]=(L,E)=>c.validate(y,S,E)}(0,zw.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,Hw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Kw.default)(e));return r.innerType=e,r}length(e,r=ud.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,ad.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||ud.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,ad.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||ud.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,ad.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;oy.prototype=so.prototype});var uy=Y(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=tR;ao.default=void 0;var Xw=eR(bi());function eR(t){return t&&t.__esModule?t:{default:t}}function tR(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,Xw.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)}},rR=Tu;ao.default=rR});var cy=Y(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=sR;var nR=iR(Xt());function iR(t){return t&&t.__esModule?t:{default:t}}function sR(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{nR.default[e][r]=t[e][r]})})}});var dd=Y(de=>{"use strict";Object.defineProperty(de,"__esModule",{value:!0});de.addMethod=pR;Object.defineProperty(de,"MixedSchema",{enumerable:!0,get:function(){return ly.default}});Object.defineProperty(de,"mixed",{enumerable:!0,get:function(){return ly.create}});Object.defineProperty(de,"BooleanSchema",{enumerable:!0,get:function(){return ld.default}});Object.defineProperty(de,"bool",{enumerable:!0,get:function(){return ld.create}});Object.defineProperty(de,"boolean",{enumerable:!0,get:function(){return ld.create}});Object.defineProperty(de,"StringSchema",{enumerable:!0,get:function(){return dy.default}});Object.defineProperty(de,"string",{enumerable:!0,get:function(){return dy.create}});Object.defineProperty(de,"NumberSchema",{enumerable:!0,get:function(){return py.default}});Object.defineProperty(de,"number",{enumerable:!0,get:function(){return py.create}});Object.defineProperty(de,"DateSchema",{enumerable:!0,get:function(){return fy.default}});Object.defineProperty(de,"date",{enumerable:!0,get:function(){return fy.create}});Object.defineProperty(de,"ObjectSchema",{enumerable:!0,get:function(){return my.default}});Object.defineProperty(de,"object",{enumerable:!0,get:function(){return my.create}});Object.defineProperty(de,"ArraySchema",{enumerable:!0,get:function(){return hy.default}});Object.defineProperty(de,"array",{enumerable:!0,get:function(){return hy.create}});Object.defineProperty(de,"ref",{enumerable:!0,get:function(){return oR.create}});Object.defineProperty(de,"lazy",{enumerable:!0,get:function(){return aR.create}});Object.defineProperty(de,"ValidationError",{enumerable:!0,get:function(){return uR.default}});Object.defineProperty(de,"reach",{enumerable:!0,get:function(){return cR.default}});Object.defineProperty(de,"isSchema",{enumerable:!0,get:function(){return gy.default}});Object.defineProperty(de,"setLocale",{enumerable:!0,get:function(){return lR.default}});Object.defineProperty(de,"BaseSchema",{enumerable:!0,get:function(){return dR.default}});var ly=Pn(Ng()),ld=Pn(kg()),dy=Pn(Gg()),py=Pn(qg()),fy=Pn(Yg()),my=Pn(sy()),hy=Pn(ay()),oR=vn(),aR=uy(),uR=uo(bn()),cR=uo(Jl()),gy=uo(bi()),lR=uo(cy()),dR=uo(tr());function uo(t){return t&&t.__esModule?t:{default:t}}function yy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return yy=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=yy();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 pR(t,e,r){if(!t||!(0,gy.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 Ey=Y(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});var pd=md();fd.default=()=>{(0,pd.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,pd.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,pd.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 md=Y(De=>{"use strict";var fR=De&&De.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),mR=De&&De.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),hR=De&&De.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&fR(e,t,r);return mR(e,t),e},gR=De&&De.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(De,"__esModule",{value:!0});De.validateOptions=De.registerOptionPreset=De.getOptionPresets=De.getOptionPreset=void 0;var x=hR(dd());dd();var co=Ot(),yR=gR(Ey());It();var Un={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Ty=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(),ER=t=>Un[t]?(0,co.valid)(Un[t]):(0,co.err)(`Option preset '${t}' not found.`);De.getOptionPreset=ER;var TR=()=>Un;De.getOptionPresets=TR;var _R=(t,e)=>{Un[t]=Ty.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};De.registerOptionPreset=_R;var AR=t=>{var e,r,n,i,s,o,a,u,c,l,p,m,d,f,g,T,y,O,S,L;try{(0,yR.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);E=Un[t.preset]}else E=t.preset;else E=Un.default;let A=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(p=E.hours.lowerLimit)!==null&&p!==void 0?p:E.hours.minValue,upperLimit:(m=E.hours.upperLimit)!==null&&m!==void 0?m:E.hours.maxValue},daysOfMonth:{lowerLimit:(d=E.daysOfMonth.lowerLimit)!==null&&d!==void 0?d:E.daysOfMonth.minValue,upperLimit:(f=E.daysOfMonth.upperLimit)!==null&&f!==void 0?f:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(T=E.months.upperLimit)!==null&&T!==void 0?T:E.months.maxValue},daysOfWeek:{lowerLimit:(y=E.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:E.daysOfWeek.minValue,upperLimit:(O=E.daysOfWeek.upperLimit)!==null&&O!==void 0?O:E.daysOfWeek.maxValue},years:{lowerLimit:(S=E.years.lowerLimit)!==null&&S!==void 0?S:E.years.minValue,upperLimit:(L=E.years.upperLimit)!==null&&L!==void 0?L:E.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:Ty.required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({lowerLimit:x.number().min(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:x.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:x.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:x.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:x.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:x.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:x.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:x.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(A,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(E){return(0,co.err)(E.errors)}};De.validateOptions=AR});var $t=Y((lo,gd)=>{"use strict";var Mn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Ln=Ot(),SR=Mn(Hh()),OR=Mn(Kh()),IR=Mn(zh()),xR=Mn(Jh()),wR=Mn(Zh()),RR=Mn(Xh()),bR=Mn(eg()),DR=md();It();var vR=(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)},hd=(t,e={})=>{let r=(0,DR.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=vR(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,SR.default)(s,n)),o.push((0,OR.default)(s,n)),o.push((0,IR.default)(s,n)),o.push((0,xR.default)(s,n)),o.push((0,wR.default)(s,n)),o.push((0,RR.default)(s,n)),n.useYears&&o.push((0,bR.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=hd;gd.exports=hd;gd.exports.default=hd});var qE=Y(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var ir=class extends Error{},xd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},wd=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Rd=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Bn=class extends ir{},wu=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Qe=class extends ir{},Wt=class extends ir{constructor(){super("Zone is an abstract class")}},R="numeric",bt="short",rt="long",Ru={year:R,month:R,day:R},Qy={year:R,month:bt,day:R},CR={year:R,month:bt,day:R,weekday:bt},jy={year:R,month:rt,day:R},Yy={year:R,month:rt,day:R,weekday:rt},Hy={hour:R,minute:R},Ky={hour:R,minute:R,second:R},zy={hour:R,minute:R,second:R,timeZoneName:bt},Jy={hour:R,minute:R,second:R,timeZoneName:rt},Zy={hour:R,minute:R,hourCycle:"h23"},Xy={hour:R,minute:R,second:R,hourCycle:"h23"},eE={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:bt},tE={hour:R,minute:R,second:R,hourCycle:"h23",timeZoneName:rt},rE={year:R,month:R,day:R,hour:R,minute:R},nE={year:R,month:R,day:R,hour:R,minute:R,second:R},iE={year:R,month:bt,day:R,hour:R,minute:R},sE={year:R,month:bt,day:R,hour:R,minute:R,second:R},NR={year:R,month:bt,day:R,weekday:bt,hour:R,minute:R},oE={year:R,month:rt,day:R,hour:R,minute:R,timeZoneName:bt},aE={year:R,month:rt,day:R,hour:R,minute:R,second:R,timeZoneName:bt},uE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,timeZoneName:rt},cE={year:R,month:rt,day:R,weekday:rt,hour:R,minute:R,second:R,timeZoneName:rt},Nr=class{get type(){throw new Wt}get name(){throw new Wt}get ianaName(){return this.name}get isUniversal(){throw new Wt}offsetName(e,r){throw new Wt}formatOffset(e,r){throw new Wt}offset(e){throw new Wt}equals(e){throw new Wt}get isValid(){throw new Wt}},yd=null,Eo=class t extends Nr{static get instance(){return yd===null&&(yd=new t),yd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return dE(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 PR(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 UR={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function LR(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 MR(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=UR[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var _u={},sr=class t extends Nr{static create(e){return _u[e]||(_u[e]=new t(e)),_u[e]}static resetCache(){_u={},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 dE(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=PR(this.name),[i,s,o,a,u,c,l]=n.formatToParts?MR(n,r):LR(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Bd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),d=+r,f=d%1e3;return d-=f>=0?f:1e3+f,(m-d)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},_y={};function kR(t,e={}){let r=JSON.stringify([t,e]),n=_y[r];return n||(n=new Intl.ListFormat(t,e),_y[r]=n),n}var bd={};function Dd(t,e={}){let r=JSON.stringify([t,e]),n=bd[r];return n||(n=new Intl.DateTimeFormat(t,e),bd[r]=n),n}var vd={};function FR(t,e={}){let r=JSON.stringify([t,e]),n=vd[r];return n||(n=new Intl.NumberFormat(t,e),vd[r]=n),n}var Cd={};function BR(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Cd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Cd[i]=s),s}var ho=null;function GR(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function $R(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=Dd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Dd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function VR(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function qR(t){let e=[];for(let r=1;r<=12;r++){let n=Ae.utc(2016,r,1);e.push(t(n))}return e}function WR(t){let e=[];for(let r=1;r<=7;r++){let n=Ae.utc(2016,11,13+r);e.push(t(n))}return e}function Au(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function QR(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 Nd=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=FR(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):Fd(e,3);return xe(r,this.padTo)}}},Pd=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&sr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ae.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Dd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Ud=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&lE()&&(this.rtf=BR(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):ab(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||he.defaultLocale,o=s||(i?"en-US":GR()),a=r||he.defaultNumberingSystem,u=n||he.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,bd={},vd={},Cd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=$R(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=VR(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=QR(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 Au(this,e,n,mE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=qR(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Au(this,e,n,yE,()=>{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]=WR(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Au(this,void 0,e,()=>EE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ae.utc(2016,11,13,9),Ae.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Au(this,e,r,TE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ae.utc(-40,1,1),Ae.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Nd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Pd(e,this.intl,r)}relFormatter(e={}){return new Ud(this.intl,this.isEnglish(),e)}listFormatter(e={}){return kR(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}},Ed=null,nt=class t extends Nr{static get utcInstance(){return Ed===null&&(Ed=new t(0)),Ed}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},bu=class extends Nr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Cr(t,e){if(ne(t)||t===null)return e;if(t instanceof Nr)return t;if(jR(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 Ay=()=>Date.now(),Sy="system",Oy=null,Iy=null,xy=null,wy=60,Ry,he=class{static get now(){return Ay}static set now(e){Ay=e}static set defaultZone(e){Sy=e}static get defaultZone(){return Cr(Sy,Eo.instance)}static get defaultLocale(){return Oy}static set defaultLocale(e){Oy=e}static get defaultNumberingSystem(){return Iy}static set defaultNumberingSystem(e){Iy=e}static get defaultOutputCalendar(){return xy}static set defaultOutputCalendar(e){xy=e}static get twoDigitCutoffYear(){return wy}static set twoDigitCutoffYear(e){wy=e%100}static get throwOnInvalid(){return Ry}static set throwOnInvalid(e){Ry=e}static resetCaches(){_e.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 jR(t){return typeof t=="string"}function YR(t){return Object.prototype.toString.call(t)==="[object Date]"}function lE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function HR(t){return Array.isArray(t)?t:[t]}function by(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 KR(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 zR(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 vr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function kd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Fd(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=zR(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 Bd(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 Ld(t){return t>99?t:t>he.twoDigitCutoffYear?1900+t:2e3+t}function dE(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 pE(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)]=pE(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 KR(t,["hour","minute","second","millisecond"])}var JR=["January","February","March","April","May","June","July","August","September","October","November","December"],fE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ZR=["J","F","M","A","M","J","J","A","S","O","N","D"];function mE(t){switch(t){case"narrow":return[...ZR];case"short":return[...fE];case"long":return[...JR];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 hE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],gE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],XR=["M","T","W","T","F","S","S"];function yE(t){switch(t){case"narrow":return[...XR];case"short":return[...gE];case"long":return[...hE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var EE=["AM","PM"],eb=["Before Christ","Anno Domini"],tb=["BC","AD"],rb=["B","A"];function TE(t){switch(t){case"narrow":return[...rb];case"short":return[...tb];case"long":return[...eb];default:return null}}function nb(t){return EE[t.hour<12?0:1]}function ib(t,e){return yE(e)[t.weekday-1]}function sb(t,e){return mE(e)[t.month-1]}function ob(t,e){return TE(e)[t.year<0?0:1]}function ab(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let p=t==="days";switch(e){case 1:return p?"tomorrow":`next ${i[t][0]}`;case-1:return p?"yesterday":`last ${i[t][0]}`;case 0:return p?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function Dy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var ub={D:Ru,DD:Qy,DDD:jy,DDDD:Yy,t:Hy,tt:Ky,ttt:zy,tttt:Jy,T:Zy,TT:Xy,TTT:eE,TTTT:tE,f:rE,ff:iE,fff:oE,ffff:uE,F:nE,FF:sE,FFF:aE,FFFF:cE},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 ub[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return xe(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(d,f)=>this.loc.extract(e,d,f),o=d=>e.isOffsetFixed&&e.offset===0&&d.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,d.format):"",a=()=>n?nb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(d,f)=>n?sb(e,d):s(f?{month:d}:{month:d,day:"numeric"},"month"),c=(d,f)=>n?ib(e,d):s(f?{weekday:d}:{weekday:d,month:"long",day:"numeric"},"weekday"),l=d=>{let f=t.macroTokenToFormatOpts(d);return f?this.formatWithSystemDefault(e,f):d},p=d=>n?ob(e,d):s({era:d},"era"),m=d=>{switch(d){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return p("short");case"GG":return p("long");case"GGGGG":return p("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(d)}};return Dy(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 Dy(s,i(a))}},tt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},_E=/[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 AE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=vr(e[r+i]);return[n,null,r+i]}}var SE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,cb=`(?:${SE.source}?(?:\\[(${_E.source})\\])?)?`,Gd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,OE=RegExp(`${Gd.source}${cb}`),$d=RegExp(`(?:T${OE.source})?`),lb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,db=/(\d{4})-?W(\d\d)(?:-?(\d))?/,pb=/(\d{4})-?(\d{3})/,fb=AE("weekYear","weekNumber","weekDay"),mb=AE("year","ordinal"),hb=/(\d{4})-(\d\d)-(\d\d)/,IE=RegExp(`${Gd.source} ?(?:${SE.source}|(${_E.source}))?`),gb=RegExp(`(?: ${IE.source})?`);function Mi(t,e,r){let n=t[e];return ne(n)?r:vr(n)}function yb(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:kd(t[e+3])},null,e+4]}function _o(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 Ao(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Eb=RegExp(`^T?${Gd.source}$`),Tb=/^-?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 _b(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",p=u&&u[0]==="-",m=(d,f=!1)=>d!==void 0&&(f||d&&l)?-d:d;return[{years:m(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(kd(c),p)}]}var Ab={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 Vd(t,e,r,n,i,s,o){let a={year:e.length===2?Ld(vr(e)):vr(e),month:fE.indexOf(r)+1,day:vr(n),hour:vr(i),minute:vr(s)};return o&&(a.second=vr(o)),t&&(a.weekday=t.length>3?hE.indexOf(t)+1:gE.indexOf(t)+1),a}var Sb=/^(?:(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 Ob(t){let[,e,r,n,i,s,o,a,u,c,l,p]=t,m=Vd(e,i,n,r,s,o,a),d;return u?d=Ab[u]:c?d=0:d=Pu(l,p),[m,new nt(d)]}function Ib(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var xb=/^(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$/,wb=/^(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$/,Rb=/^(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 vy(t){let[,e,r,n,i,s,o,a]=t;return[Vd(e,i,n,r,s,o,a),nt.utcInstance]}function bb(t){let[,e,r,n,i,s,o,a]=t;return[Vd(e,a,r,n,i,s,o),nt.utcInstance]}var Db=Fi(lb,$d),vb=Fi(db,$d),Cb=Fi(pb,$d),Nb=Fi(OE),xE=Bi(yb,$i,_o,Ao),Pb=Bi(fb,$i,_o,Ao),Ub=Bi(mb,$i,_o,Ao),Lb=Bi($i,_o,Ao);function Mb(t){return Gi(t,[Db,xE],[vb,Pb],[Cb,Ub],[Nb,Lb])}function kb(t){return Gi(Ib(t),[Sb,Ob])}function Fb(t){return Gi(t,[xb,vy],[wb,vy],[Rb,bb])}function Bb(t){return Gi(t,[Tb,_b])}var Gb=Bi($i);function $b(t){return Gi(t,[Eb,Gb])}var Vb=Fi(hb,gb),qb=Fi(IE),Wb=Bi($i,_o,Ao);function Qb(t){return Gi(t,[Vb,xE],[qb,Wb])}var jb="Invalid Duration",wE={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}},Yb={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},...wE},mt=146097/400,Ui=146097/4800,Hb={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},...wE},Fn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],Kb=Fn.slice(0).reverse();function Dr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new we(n)}function zb(t){return t<0?Math.floor(t):Math.ceil(t)}function RE(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?zb(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function Jb(t,e){Kb.reduce((r,n)=>ne(e[n])?r:(r&&RE(t,e,r,e,n),n),null)}function Zb(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?Hb:Yb;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Qe(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Cu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if($n(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Qe(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=Bb(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]=$b(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 Rd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new wu(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?et.create(this.loc,n).formatDurationFromString(this,e):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+=Fd(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 Dr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=pE(e(this.values[n],n));return Dr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Cu(e,t.normalizeUnit)};return Dr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Dr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return Jb(this.matrix,e),Dr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Zb(this.normalize().shiftToAll().toObject());return Dr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of 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)&&RE(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 Dr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Dr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Fn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Li="Invalid Interval";function Xb(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 wd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=Xb(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=we.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=Ae.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ae.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=we.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=we.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=we.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Li}toLocaleString(e=Ru,r={}){return this.isValid?et.create(this.s.loc.clone(r),e).formatInterval(this):Li}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Li}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Li}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Li}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Li}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):we.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Gn=class{static hasDST(e=he.defaultZone){let r=Ae.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return sr.isValidZone(e)}static normalizeZone(e){return Cr(e,he.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:lE()}}};function Cy(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 eD(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=Cy(u,c);return(l-l%7)/7}],["days",Cy]],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 tD(t,e,r,n){let[i,s,o,a]=eD(t,e,r),u=e-i,c=r.filter(p=>["hours","minutes","seconds","milliseconds"].indexOf(p)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=we.fromObject(s,n);return c.length>0?we.fromMillis(u,n).shiftTo(...c).plus(l):l}var qd={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},Ny={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]},rD=qd.hanidec.replace(/[\[|\]]/g,"").split("");function nD(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(qd.hanidec)!==-1)e+=rD.indexOf(t[r]);else for(let i in Ny){let[s,o]=Ny[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${qd[t||"latn"]}${e}`)}var iD="missing Intl.DateTimeFormat.formatToParts support";function ue(t,e=r=>r){return{regex:t,deser:([r])=>e(nD(r))}}var sD=String.fromCharCode(160),bE=`[ ${sD}]`,DE=new RegExp(bE,"g");function oD(t){return t.replace(/\./g,"\\.?").replace(DE,bE)}function Py(t){return t.replace(/\./g,"").replace(DE," ").toLowerCase()}function Rt(t,e){return t===null?null:{regex:RegExp(t.map(oD).join("|")),deser:([r])=>t.findIndex(n=>Py(r)===Py(n))+e}}function Uy(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Td(t){return{regex:t,deser:([e])=>e}}function aD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function uD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),p=wt(e,"{2,4}"),m=wt(e,"{4,6}"),d=T=>({regex:RegExp(aD(T.val)),deser:([y])=>y,literal:!0}),g=(T=>{if(t.literal)return d(T);switch(T.val){case"G":return Rt(e.eras("short",!1),0);case"GG":return Rt(e.eras("long",!1),0);case"y":return ue(c);case"yy":return ue(p,Ld);case"yyyy":return ue(s);case"yyyyy":return ue(m);case"yyyyyy":return ue(o);case"M":return ue(a);case"MM":return ue(n);case"MMM":return Rt(e.months("short",!0,!1),1);case"MMMM":return Rt(e.months("long",!0,!1),1);case"L":return ue(a);case"LL":return ue(n);case"LLL":return Rt(e.months("short",!1,!1),1);case"LLLL":return Rt(e.months("long",!1,!1),1);case"d":return ue(a);case"dd":return ue(n);case"o":return ue(u);case"ooo":return ue(i);case"HH":return ue(n);case"H":return ue(a);case"hh":return ue(n);case"h":return ue(a);case"mm":return ue(n);case"m":return ue(a);case"q":return ue(a);case"qq":return ue(n);case"s":return ue(a);case"ss":return ue(n);case"S":return ue(u);case"SSS":return ue(i);case"u":return Td(l);case"uu":return Td(a);case"uuu":return ue(r);case"a":return Rt(e.meridiems(),0);case"kkkk":return ue(s);case"kk":return ue(p,Ld);case"W":return ue(a);case"WW":return ue(n);case"E":case"c":return ue(r);case"EEE":return Rt(e.weekdays("short",!1,!1),1);case"EEEE":return Rt(e.weekdays("long",!1,!1),1);case"ccc":return Rt(e.weekdays("short",!0,!1),1);case"cccc":return Rt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Uy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Uy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Td(/[a-z_+-/]{1,256}?/i);default:return d(T)}})(t)||{invalidReason:iD};return g.token=t,g}var cD={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 lD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=cD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function dD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function pD(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 fD(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=kd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var _d=null;function mD(){return _d||(_d=Ae.fromMillis(1555555555555)),_d}function hD(t,e){if(t.literal)return t;let r=et.macroTokenToFormatOpts(t.val),n=NE(r,e);return n==null||n.includes(void 0)?t:n}function vE(t,e){return Array.prototype.concat(...t.map(r=>hD(r,e)))}function CE(t,e,r){let n=vE(et.parseFormat(r),t),i=n.map(o=>uD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=dD(i),u=RegExp(o,"i"),[c,l]=pD(e,u,a),[p,m,d]=l?fD(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:p,zone:m,specificOffset:d}}}function gD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=CE(t,e,r);return[n,i,s,o]}function NE(t,e){return t?et.create(e,t).formatDateTimeParts(mD()).map(i=>lD(i,t)):null}var PE=[0,31,59,90,120,151,181,212,243,273,304,334],UE=[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 LE(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 ME(t,e,r){return r+(To(t)?UE:PE)[e-1]}function kE(t,e){let r=To(t)?UE:PE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Md(t){let{year:e,month:r,day:n}=t,i=ME(e,r,n),s=LE(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 Ly(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=LE(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}=kE(a,o);return{year:a,month:u,day:c,...Uu(t)}}function Ad(t){let{year:e,month:r,day:n}=t,i=ME(e,r,n);return{year:e,ordinal:i,...Uu(t)}}function My(t){let{year:e,ordinal:r}=t,{month:n,day:i}=kE(e,r);return{year:e,month:n,day:i,...Uu(t)}}function yD(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 ED(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 FE(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 BE(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 Sd="Invalid DateTime",ky=864e13;function Su(t){return new tt("unsupported zone",`the zone "${t.name}" is not supported`)}function Od(t){return t.weekData===null&&(t.weekData=Md(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ae({...r,...e,old:r})}function GE(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 Fy(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 GE(Bd(t),e,r)}function By(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=Bd(s),[u,c]=GE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ae.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ae.invalid(new tt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ou(t,e,r=!0){return t.isValid?et.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Id(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 Gy(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 $E={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},TD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},_D={ordinal:1,hour:0,minute:0,second:0,millisecond:0},VE=["year","month","day","hour","minute","second","millisecond"],AD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],SD=["year","ordinal","hour","minute","second","millisecond"];function $y(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new wu(t);return e}function Vy(t,e){let r=Cr(e.zone,he.defaultZone),n=_e.fromObject(e),i=he.now(),s,o;if(ne(t.year))s=i;else{for(let c of VE)ne(t[c])&&(t[c]=$E[c]);let a=FE(t)||BE(t);if(a)return Ae.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new Ae({ts:s,zone:r,loc:n,o})}function qy(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Fd(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 Wy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var Ae=class t{constructor(e){let r=e.zone||he.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new tt("invalid input"):null)||(r.isValid?null: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=Fy(this.ts,a),n=Number.isNaN(i.year)?new tt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Wy(arguments),[n,i,s,o,a,u,c]=r;return Vy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Wy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=nt.utcInstance,Vy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=YR(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Cr(r.zone,he.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if($n(e))return e<-ky||e>ky?t.invalid("Timestamp out of range"):new t({ts:e,zone:Cr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if($n(e))return new t({ts:e*1e3,zone:Cr(r.zone,he.defaultZone),loc:_e.fromObject(r)});throw new Qe("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Cr(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,$y),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,p=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&p)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 d=p||o.weekday&&!l,f,g,T=Fy(i,s);d?(f=AD,g=TD,T=Md(T)):a?(f=SD,g=_D,T=Ad(T)):(f=VE,g=$E);let y=!1;for(let w of f){let F=o[w];ne(F)?y?o[w]=g[w]:o[w]=T[w]:y=!0}let O=d?yD(o):a?ED(o):FE(o),S=O||BE(o);if(S)return t.invalid(S);let L=d?Ly(o):a?My(o):o,[E,A]=xu(L,s,n),B=new t({ts:E,zone:n,o:A,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=Mb(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=kb(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=Fb(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Qe("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=gD(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]=Qb(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 xd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=NE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return vE(et.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Od(this).weekYear:NaN}get weekNumber(){return this.isValid?Od(this).weekNumber:NaN}get weekday(){return this.isValid?Od(this).weekday:NaN}get ordinal(){return this.isValid?Ad(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=Cr(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,$y),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=Ly({...Md(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=My({...Ad(this.c),...r});let[l,p]=xu(c,this.o,this.zone);return po(this,{ts:l,o:p})}plus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e);return po(this,By(this,r))}minus(e){if(!this.isValid)return this;let r=we.fromDurationLike(e).negate();return po(this,By(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):Sd}toLocaleString(e=Ru,r={}){return this.isValid?et.create(this.loc.clone(r),e).formatDateTime(this):Sd}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=Id(this,o);return a+="T",a+=Gy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Id(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":"")+Gy(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?Id(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():Sd}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=HR(r).map(we.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=tD(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),qy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?qy(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 by(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Qe("max requires all arguments be DateTimes");return by(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return CE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Ru}static get DATE_MED(){return Qy}static get DATE_MED_WITH_WEEKDAY(){return CR}static get DATE_FULL(){return jy}static get DATE_HUGE(){return Yy}static get TIME_SIMPLE(){return Hy}static get TIME_WITH_SECONDS(){return Ky}static get TIME_WITH_SHORT_OFFSET(){return zy}static get TIME_WITH_LONG_OFFSET(){return Jy}static get TIME_24_SIMPLE(){return Zy}static get TIME_24_WITH_SECONDS(){return Xy}static get TIME_24_WITH_SHORT_OFFSET(){return eE}static get TIME_24_WITH_LONG_OFFSET(){return tE}static get DATETIME_SHORT(){return rE}static get DATETIME_SHORT_WITH_SECONDS(){return nE}static get DATETIME_MED(){return iE}static get DATETIME_MED_WITH_SECONDS(){return sE}static get DATETIME_MED_WITH_WEEKDAY(){return NR}static get DATETIME_FULL(){return oE}static get DATETIME_FULL_WITH_SECONDS(){return aE}static get DATETIME_HUGE(){return uE}static get DATETIME_HUGE_WITH_SECONDS(){return cE}};function mo(t){if(Ae.isDateTime(t))return t;if(t&&t.valueOf&&$n(t.valueOf()))return Ae.fromJSDate(t);if(t&&typeof t=="object")return Ae.fromObject(t);throw new Qe(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var OD="3.2.1";it.DateTime=Ae;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=OD;it.Zone=Nr});var QE=Y((pW,WE)=>{"use strict";var qn=qE();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))}WE.exports=J});var HE=Y((fW,YE)=>{"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 Wd(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 ID(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Wd(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)):(Wd(e,r),r=Wn(i)):r=Wn(i)}return Wd(e,r),e}YE.exports=ID});var zE=Y((mW,KE)=>{"use strict";var xD=HE();function wD(t,e,r){var n=xD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,d){var f=c.start+d;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}KE.exports=wD});var XE=Y((hW,ZE)=>{"use strict";var Qn=QE(),RD=zE(),JE=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,T=f.length;g<T;g++){var y=f[g];if(P._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(P._isValidConstraintChar(n,f)){c.push(f);return}var O=+f;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}var p=u.split(",");if(!p.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(p.length>1)for(var m=0,d=p.length;m<d;m++)l(o(p[m]));else l(o(u));return c.sort(P._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],p=u.split("-");if(p.length>1){if(p.length<2)return+u;if(!p[0].length){if(!p[1].length)throw new Error("Invalid range: "+u);return+u}var m=+p[0],d=+p[1];if(Number.isNaN(m)||Number.isNaN(d)||m<n.min||d>n.max)throw new Error("Constraint error, got range "+m+"-"+d+" expected range "+n.min+"-"+n.max);if(m>d)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&d%7===0&&l.push(0);for(var g=m,T=d;g<=T;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};P._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};P._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=P.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(P._sortCompareFn)}};P._freezeFields=function(t){for(var e=0,r=P.map.length;e<r;++e){var n=P.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};P.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};P.prototype._findSchedule=function(e){function r(y,O){for(var S=0,L=O.length;S<L;S++)if(O[S]>=y)return O[S]===y;return O[0]===y}function n(y,O){if(O<6){if(y.getDate()<8&&O===1)return!0;var S=y.getDate()%7?1:0,L=y.getDate()-y.getDate()%7,E=Math.floor(L/7)+S;return E===O}return!1}function i(y){return y.length>0&&y.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Qn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function p(y){return y.some(function(O){if(!i([O]))return!1;var S=Number.parseInt(O[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+O);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<JE;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var d=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(d=d||p(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,T=o.getHours();if(!m&&(!d||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!d){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(T,this.fields.hour)){if(this._dstEnd===T&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==T){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(T-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=JE)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(RD(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,p=P.map.length;l<p;++l){var m=P.map[l],d=u[u.length>p?l:l-c];if(l<c||!d)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var f=m==="dayOfWeek"?O(d):d;a.push(P._parseField(m,f,P.constraints[l]))}}for(var g={},l=0,p=P.map.length;l<p;l++){var T=P.map[l];g[T]=a[l]}var y=P._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new P(g,o);function O(S){var L=S.split("#");if(L.length>1){var E=+L[L.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(L.length>2||Number.isNaN(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,L[0]}return S}}return i(e,r)};P.fieldsToExpression=function(e,r){function n(m,d,f){if(!d)throw new Error("Validation error, Field "+m+" is missing");if(d.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,T=d.length;g<T;g++){var y=d[g];if(!P._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=P.map.length;s<o;++s){var a=P.map[s],u=e[a];n(a,u,P.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(P._sortCompareFn).filter(function(m,d,f){return!d||m!==f[d-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var p=P._handleMaxDaysInMonth(i);return i.dayOfMonth=p||i.dayOfMonth,new P(i,r||{})};ZE.exports=P});var tT=Y((gW,eT)=>{"use strict";var Lu=XE();function Pr(){}Pr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Lu.parse(e)};if(r.length>6)return{interval:Lu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Pr.parseExpression=function(e,r){return Lu.parse(e,r)};Pr.fieldsToExpression=function(e,r){return Lu.fieldsToExpression(e,r)};Pr.parseString=function(e){for(var r=e.split(`
|
|
5
|
+
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Pr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Pr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Pr.parseString(i.toString()))})};eT.exports=Pr});var zk={};C(zk,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>dp,BadRequestError:()=>Ac,BudibaseError:()=>ms,Config:()=>yp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>hp,DEFAULT_EXPENSES_TABLE_ID:()=>mp,DEFAULT_INVENTORY_TABLE_ID:()=>fp,DEFAULT_JOBS_TABLE_ID:()=>pp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,Duration:()=>ve,DurationType:()=>Ff,EmailUnavailableError:()=>mr,ErrorCode:()=>Ic,FeatureDisabledError:()=>Oc,GlobalRole:()=>gp,HTTPError:()=>ct,Header:()=>Ze,InternalTable:()=>Or,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>mT,NotFoundError:()=>_c,RedisClient:()=>Be,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>lp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UsageLimitError:()=>Sc,UserStatus:()=>qu,ViewName:()=>Mr,accounts:()=>ai,auth:()=>th,blacklist:()=>sh,cache:()=>Ra,configs:()=>rn,constants:()=>Ep,context:()=>ye,db:()=>Qr,docIds:()=>uf,docUpdates:()=>ah,encryption:()=>Zm,env:()=>h,errors:()=>wc,events:()=>Ts,features:()=>qm,getPublicError:()=>xc,init:()=>Kk,installation:()=>Lc,locks:()=>oi,logging:()=>ac,middleware:()=>eh,objectStore:()=>Bp,permissions:()=>Gm,platform:()=>ca,plugins:()=>nh,queue:()=>am,redis:()=>ih,roles:()=>tm,security:()=>Im,sessions:()=>Vc,setEnv:()=>Ro,sql:()=>gh,tenancy:()=>Hk,timers:()=>Fo,userUtils:()=>rm,users:()=>_s,utils:()=>cs,withEnv:()=>_T});module.exports=gO(zk);var rn={};C(rn,{analyticsEnabled:()=>Pc,generateConfigID:()=>Mm,getAIConfig:()=>_M,getConfig:()=>kt,getDefaultGoogleConfig:()=>Um,getGoogleConfig:()=>Yc,getGoogleDatasourceConfig:()=>Fm,getOIDCConfig:()=>yM,getOIDCConfigById:()=>Bm,getOIDCLogosDoc:()=>hM,getPlatformUrl:()=>Na,getSCIMConfig:()=>TM,getSMTPConfig:()=>EM,getSMTPConfigDoc:()=>TS,getSettingsConfig:()=>km,getSettingsConfigDoc:()=>kc,save:()=>fM});var yO=["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"],Eh=[...yO],Th={"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 gl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(gl||{}),yl=(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))(yl||{}),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 El=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(El||{});var Ar=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Ar||{}),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 _h(t){return Object.values(Ar).includes(t)}function Ah(t){return Object.values(Kt).includes(t)}function Tl(t){return Object.values(ln).includes(t)}var yi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(yi||{});var Sh=t=>typeof t=="object"&&t._id&&t._rev;var ws=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(ws||{});var Oh={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var JF={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Rs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Rs||{});var Ga=(p=>(p.APP="app",p.TABLE="table",p.USER="user",p.AUTOMATION="automation",p.WEBHOOK="webhook",p.BUILDER="builder",p.CREATOR="creator",p.GLOBAL_BUILDER="globalBuilder",p.QUERY="query",p.VIEW="view",p.LEGACY_VIEW="legacy_view",p))(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||{}),Ft=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(Ft||{});var me=(A=>(A.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",A.CREATE_ROW="CREATE_ROW",A.UPDATE_ROW="UPDATE_ROW",A.DELETE_ROW="DELETE_ROW",A.EXECUTE_BASH="EXECUTE_BASH",A.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",A.EXECUTE_SCRIPT="EXECUTE_SCRIPT",A.EXECUTE_QUERY="EXECUTE_QUERY",A.SERVER_LOG="SERVER_LOG",A.DELAY="DELAY",A.FILTER="FILTER",A.QUERY_ROWS="QUERY_ROWS",A.LOOP="LOOP",A.COLLECT="COLLECT",A.OPENAI="OPENAI",A.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",A.BRANCH="BRANCH",A.discord="discord",A.slack="slack",A.zapier="zapier",A.integromat="integromat",A.n8n="n8n",A))(me||{}),Ih=[...Object.values(me),...Object.values(Ft)];var _l=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(_l||{});var Al="bb_internal";var xh=["attachment_single","attachment","bb_reference","json","array"];var v="_",ke="\uFFF0",Sr=t=>`${t}${v}`,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||{}),cG=Object.values(Te).sort((t,e)=>e.length-t.length);var Or=(e=>(e.USER_METADATA="ta_users",e))(Or||{}),Sl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Sl||{}),lG=Object.values(Sl).sort((t,e)=>e.length-t.length);function qa(t){return!!t.providerType}var Ol=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ol||{});var qG=Object.values(Ol);var HG=["rows","queries","automations"],KG=["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 xl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(xl||(xl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Ir=t=>{switch(typeof t){case"undefined":return 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"]),_O=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var _i=(t,e)=>{let r;switch(t.code){case I.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case I.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case I.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case I.invalid_union:r="Invalid input";break;case I.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case I.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case I.invalid_arguments:r="Invalid function arguments";break;case I.invalid_return_type:r="Invalid function return type";break;case I.invalid_date:r="Invalid date";break;case I.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case I.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case I.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case I.custom:r="Invalid input";break;case I.invalid_intersection_types:r="Intersection results could not be merged";break;case I.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case I.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},bh=_i;function AO(t){bh=t}function Qa(){return bh}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}},SO=[];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===_i?void 0:_i].filter(i=>!!i)});t.common.issues.push(n)}var Me=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return z;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return z;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},z=Object.freeze({status:"aborted"}),Ti=t=>({status:"dirty",value:t}),Fe=t=>({status:"valid",value:t}),wl=t=>t.status==="aborted",Rl=t=>t.status==="dirty",vs=t=>t.status==="valid",Cs=t=>typeof Promise<"u"&&t instanceof Promise;function Ya(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Dh(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}},wh=(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 Ir(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Ir(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Me,ctx:{common:e.parent.common,data:e.data,parsedType:Ir(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(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:Ir(e)},s=this._parseSync({data:e,path:i.path,parent:i});return wh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Ir(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Cs(i)?i:Promise.resolve(i));return wh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:I.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Je({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return Gt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return Rr.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new Je({...Z(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Ns({typeName:H.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,catchValue:r,typeName:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return Rn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},OO=/^c[^\s-]{8,}$/i,IO=/^[0-9a-z]+$/,xO=/^[0-9A-HJKMNP-TV-Z]{26}$/,wO=/^[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,RO=/^[a-z0-9_-]{21}$/i,bO=/^[-+]?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)?)??$/,DO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,vO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Il,CO=/^(?:(?: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])$/,NO=/^(([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})))$/,PO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,vh="((\\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])))",UO=new RegExp(`^${vh}$`);function Ch(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 LO(t){return new RegExp(`^${Ch(t)}$`)}function Nh(t){let e=`${vh}T${Ch(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 MO(t,e){return!!((e==="v4"||!e)&&CO.test(t)||(e==="v6"||!e)&&NO.test(t))}var xr=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")DO.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")Il||(Il=new RegExp(vO,"u")),Il.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")wO.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")RO.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")OO.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")IO.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")xO.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"?Nh(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"?UO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?LO(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"?bO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?MO(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"?PO.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}};xr.create=t=>{var e;return new xr({checks:[],typeName:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function kO(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"?kO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:$.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:$.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:$.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:$.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};fn.create=t=>new fn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.bigint,received:s.parsedType}),z}let n,i=new Me;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),N(n,{code:I.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,$.toString(r))}gt(e,r){return this.setLimit("min",e,!1,$.toString(r))}lte(e,r){return this.setLimit("max",e,!0,$.toString(r))}lt(e,r){return this.setLimit("max",e,!1,$.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:$.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:$.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:$.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:$.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:$.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:$.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};mn.create=t=>{var e;return new mn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.boolean,received:n.parsedType}),z}return Fe(e.data)}};hn.create=t=>new hn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_type,expected:M.date,received:s.parsedType}),z}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return N(s,{code:I.invalid_date}),z}let n=new Me,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),N(i,{code:I.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:$.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:$.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:H.ZodDate,...Z(t)});var Ai=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.symbol,received:n.parsedType}),z}return Fe(e.data)}};Ai.create=t=>new Ai({typeName:H.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.undefined,received:n.parsedType}),z}return Fe(e.data)}};yn.create=t=>new yn({typeName:H.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.null,received:n.parsedType}),z}return Fe(e.data)}};En.create=t=>new En({typeName:H.ZodNull,...Z(t)});var wr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Fe(e.data)}};wr.create=t=>new wr({typeName:H.ZodAny,...Z(t)});var Jt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Fe(e.data)}};Jt.create=t=>new Jt({typeName:H.ZodUnknown,...Z(t)});var St=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};St.create=t=>new St({typeName:H.ZodNever,...Z(t)});var Si=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.void,received:n.parsedType}),z}return Fe(e.data)}};Si.create=t=>new Si({typeName:H.ZodVoid,...Z(t)});var Zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return N(r,{code:I.invalid_type,expected:M.array,received:r.parsedType}),z;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(N(r,{code:o?I.too_big:I.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(N(r,{code:I.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(N(r,{code:I.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>Me.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return Me.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:$.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:$.toString(r)}})}nonempty(e){return this.min(1,e)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.ZodArray,...Z(e)});function Ei(t){if(t instanceof qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(Ei(n))}return new qe({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:Ei(t.element)}):t instanceof dt?dt.create(Ei(t.unwrap())):t instanceof Gt?Gt.create(Ei(t.unwrap())):t instanceof Bt?Bt.create(t.items.map(e=>Ei(e))):t}var qe=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return N(c,{code:I.invalid_type,expected:M.object,received:c.parsedType}),z}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof St&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],p=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,p,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof St){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(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 p=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,p,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let p=await l.key,m=await l.value;c.push({key:p,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Me.mergeObjectSync(n,c)):Me.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return $.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=$.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:H.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ei(this)}partial(e){let r={};return te.objectKeys(this.shape).forEach(n=>{let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}),new t({...this._def,shape:()=>r})}required(e){let r={};return te.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Ph(te.objectKeys(this.shape))}};qe.create=(t,e)=>new qe({shape:()=>t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.strictCreate=(t,e)=>new qe({shape:()=>t,unknownKeys:"strict",catchall:St.create(),typeName:H.ZodObject,...Z(e)});qe.lazycreate=(t,e)=>new qe({shape:t,unknownKeys:"strip",catchall:St.create(),typeName:H.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return N(r,{code:I.invalid_union,unionErrors:o}),z}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return N(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};Tn.create=(t,e)=>new Tn({options:t,typeName:H.ZodUnion,...Z(e)});var zt=t=>t instanceof An?zt(t.schema):t instanceof Je?zt(t.innerType()):t instanceof Sn?[t.value]:t instanceof On?t.options:t instanceof In?te.objectValues(t.enum):t instanceof xn?zt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...zt(t.unwrap())]:t instanceof Gt?[null,...zt(t.unwrap())]:t instanceof Ns||t instanceof Rn?zt(t.unwrap()):t instanceof wn?zt(t._def.innerType):[],Ha=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return N(r,{code:I.invalid_type,expected:M.object,received:r.parsedType}),z;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(N(r,{code:I.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),z)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function bl(t,e){let r=Ir(t),n=Ir(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=bl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=bl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var _n=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(wl(s)||wl(o))return z;let a=bl(s.value,o.value);return a.valid?((Rl(s)||Rl(o))&&r.dirty(),{status:r.value,value:a.data}):(N(n,{code:I.invalid_intersection_types}),z)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:H.ZodIntersection,...Z(r)});var Bt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return N(n,{code:I.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return N(n,{code:I.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),z;!this._def.rest&&n.data.length>this._def.items.length&&(N(n,{code:I.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Me.mergeArray(r,o)):Me.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Bt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Bt({items:t,typeName:H.ZodTuple,rest:null,...Z(e)})};var 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:H.ZodRecord,...Z(n)}):new t({keyType:xr.create(),valueType:e,typeName:H.ZodRecord,...Z(r)})}},Oi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.map)return N(n,{code:I.invalid_type,expected:M.map,received:n.parsedType}),z;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return z;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Oi.create=(t,e,r)=>new Oi({valueType:e,keyType:t,typeName:H.ZodMap,...Z(r)});var Ii=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return N(n,{code:I.invalid_type,expected:M.set,received:n.parsedType}),z;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(N(n,{code:I.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(N(n,{code:I.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return z;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:$.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:$.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Ii.create=(t,e)=>new Ii({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...Z(e)});var 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(),_i].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(),_i].filter(c=>!!c),issueData:{code:I.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Rr){let a=this;return Fe(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(d=>{throw c.addIssue(n(u,d)),c}),p=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(p,s).catch(d=>{throw c.addIssue(i(p,d)),c})})}else{let a=this;return Fe(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),p=a._def.returns.safeParse(l,s);if(!p.success)throw new ze([i(l,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Bt.create(e).rest(Jt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Bt.create([]).rest(Jt.create()),returns:r||Jt.create(),typeName:H.ZodFunction,...Z(n)})}},An=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};An.create=(t,e)=>new An({getter:t,typeName:H.ZodLazy,...Z(e)});var Sn=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return N(r,{received:r.data,code:I.invalid_literal,expected:this._def.value}),z}return{status:"valid",value:e.data}}get value(){return this._def.value}};Sn.create=(t,e)=>new Sn({value:t,typeName:H.ZodLiteral,...Z(e)});function Ph(t,e){return new On({values:t,typeName:H.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return N(r,{expected:te.joinValues(n),received:r.parsedType,code:I.invalid_type}),z}if(Ya(this,bs,"f")||Dh(this,bs,new Set(this._def.values),"f"),!Ya(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return 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=Ph;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(Ya(this,Ds,"f")||Dh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ya(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return N(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Fe(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;In.create=(t,e)=>new In({values:t,typeName:H.ZodNativeEnum,...Z(e)});var Rr=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})))}};Rr.create=(t,e)=>new Rr({type:t,typeName:H.ZodPromise,...Z(e)});var Je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{N(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return z;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?z:u.status==="dirty"||r.value==="dirty"?Ti(u.value):u});{if(r.value==="aborted")return z;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?z:a.status==="dirty"||r.value==="dirty"?Ti(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?z:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?z:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>vs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};Je.create=(t,e,r)=>new Je({schema:t,typeName:H.ZodEffects,effect:e,...Z(r)});Je.createWithPreprocess=(t,e,r)=>new Je({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===M.undefined?Fe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:H.ZodOptional,...Z(e)});var Gt=class extends X{_parse(e){return this._getType(e)===M.null?Fe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Gt.create=(t,e)=>new Gt({innerType:t,typeName:H.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:H.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Cs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var xi=class extends X{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return N(n,{code:I.invalid_type,expected:M.nan,received:n.parsedType}),z}return{status:"valid",value:e.data}}};xi.create=t=>new xi({typeName:H.ZodNaN,...Z(t)});var FO=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?z:s.status==="dirty"?(r.dirty(),Ti(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?z:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:H.ZodPipeline})}},Rn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Cs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:H.ZodReadonly,...Z(e)});function Uh(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 BO={object:qe.lazycreate},H;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(H||(H={}));var GO=(t,e={message:`Input not instance of ${t.name}`})=>Uh(r=>r instanceof t,e),Lh=xr.create,Mh=fn.create,$O=xi.create,VO=mn.create,kh=hn.create,qO=gn.create,WO=Ai.create,QO=yn.create,jO=En.create,YO=wr.create,HO=Jt.create,KO=St.create,zO=Si.create,JO=Zt.create,ZO=qe.create,XO=qe.strictCreate,eI=Tn.create,tI=Ha.create,rI=_n.create,nI=Bt.create,iI=Ka.create,sI=Oi.create,oI=Ii.create,aI=za.create,uI=An.create,cI=Sn.create,lI=On.create,dI=In.create,pI=Rr.create,Rh=Je.create,fI=dt.create,mI=Gt.create,hI=Je.createWithPreprocess,gI=Ps.create,yI=()=>Lh().optional(),EI=()=>Mh().optional(),TI=()=>kh().optional(),_I={string:t=>xr.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})},AI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:_i,setErrorMap:AO,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:SO,addIssueToContext:N,ParseStatus:Me,INVALID:z,DIRTY:Ti,OK:Fe,isAborted:wl,isDirty:Rl,isValid:vs,isAsync:Cs,get util(){return te},get objectUtil(){return xl},ZodParsedType:M,getParsedType:Ir,ZodType:X,datetimeRegex:Nh,ZodString:xr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:Ai,ZodUndefined:yn,ZodNull:En,ZodAny:wr,ZodUnknown:Jt,ZodNever:St,ZodVoid:Si,ZodArray:Zt,ZodObject:qe,ZodUnion:Tn,ZodDiscriminatedUnion:Ha,ZodIntersection:_n,ZodTuple:Bt,ZodRecord:Ka,ZodMap:Oi,ZodSet:Ii,ZodFunction:za,ZodLazy:An,ZodLiteral:Sn,ZodEnum:On,ZodNativeEnum:In,ZodPromise:Rr,ZodEffects:Je,ZodTransformer:Je,ZodOptional:dt,ZodNullable:Gt,ZodDefault:xn,ZodCatch:wn,ZodNaN:xi,BRAND:FO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Rn,custom:Uh,Schema:X,ZodSchema:X,late:BO,get ZodFirstPartyTypeKind(){return H},coerce:_I,any:YO,array:JO,bigint:VO,boolean:kh,date:qO,discriminatedUnion:tI,effect:Rh,enum:lI,function:aI,instanceof:GO,intersection:rI,lazy:uI,literal:cI,map:sI,nan:$O,nativeEnum:dI,never:KO,null:jO,nullable:mI,number:Mh,object:ZO,oboolean:TI,onumber:EI,optional:fI,ostring:yI,pipeline:gI,preprocess:hI,promise:pI,record:iI,set:oI,strictObject:XO,string:Lh,symbol:WO,transformer:Rh,tuple:nI,undefined:QO,union:eI,unknown:HO,void:zO,NEVER:AI,ZodIssueCode:I,quotelessJson:_O,ZodError:ze});var eu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Fh=ee.record(eu,ee.string()),Ja=ee.record(eu,ee.any()),Za=ee.record(eu,ee.union([ee.any().array(),ee.string()])),Bh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Gh))})),Xa=ee.union([ee.string(),ee.number()]),Gh={string:Fh.optional(),fuzzy:Fh.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:Bh.optional(),$or:Bh.optional()},G$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(yi).optional(),...Gh}).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 Ep={};C(Ep,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>dp,Config:()=>yp,Cookie:()=>ji,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>hp,DEFAULT_EXPENSES_TABLE_ID:()=>mp,DEFAULT_INVENTORY_TABLE_ID:()=>fp,DEFAULT_JOBS_TABLE_ID:()=>pp,DEFAULT_TENANT_ID:()=>ge,DeprecatedViews:()=>Qi,DocumentType:()=>Te,GlobalRole:()=>gp,Header:()=>Ze,InternalTable:()=>Or,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>mT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>lp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,UserStatus:()=>qu,ViewName:()=>Mr});var j1={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var Ze=(O=>(O.API_KEY="x-budibase-api-key",O.LICENSE_KEY="x-budibase-license-key",O.API_VER="x-budibase-api-version",O.APP_ID="x-budibase-app-id",O.SESSION_ID="x-budibase-session-id",O.TYPE="x-budibase-type",O.PREVIEW_ROLE="x-budibase-role",O.TENANT_ID="x-budibase-tenant-id",O.VERIFICATION_CODE="x-budibase-verification-code",O.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",O.RESET_PASSWORD_CODE="x-budibase-reset-password-code",O.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",O.TOKEN="x-budibase-token",O.CSRF_TOKEN="x-csrf-token",O.CORRELATION_ID="x-budibase-correlation-id",O.AUTHORIZATION="authorization",O.MIGRATING_APP="x-budibase-migrating-app",O.COOKIE="cookie",O))(Ze||{});var z1={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var rq="darkest",nq="light",II=[{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"}},$h={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var wi="datasource_internal_bb_default";var Ur={};C(Ur,{ColumnSplitter:()=>zd,NoEmptyFilterStrings:()=>uT,buildQuery:()=>KD,cleanupQuery:()=>Xd,fixupFilterArrays:()=>tp,getKeyNumbering:()=>ep,getValidOperatorsForType:()=>jD,hasFilters:()=>Jd,limit:()=>lT,recurseLogicalOperators:()=>Zd,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>zD,sort:()=>cT,splitFiltersArray:()=>ru});var Vi=j(Vh());var Ri={};C(Ri,{filterValueToLabel:()=>vI,hasSchema:()=>CI,isSupportedUserSearch:()=>Wh,parallelForeach:()=>DI,processSearchFilters:()=>Cl,trimOtherProps:()=>NI,unreachable:()=>bI});var qh=j(require("lodash")),RI=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function bI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function DI(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 vI(){return Object.keys(Xe).reduce((t,e)=>{let n=Xe[e];return t[n.value]=n.label,t},{})}function CI(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function NI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Wh(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(!Wh(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 Cl(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=qh.default.pick(i,RI);return s.field=tu(s.field),s})}]}}var Qt={};C(Qt,{cancelableTimeout:()=>Qh,cron:()=>Qd,deepGet:()=>Nl,getUserColor:()=>UI,getUserInitials:()=>PI,getUserLabel:()=>LI,isGoogleSheets:()=>kI,isSQL:()=>FI,retry:()=>BI,roles:()=>Kd,schema:()=>So,views:()=>Hd,wait:()=>Pl,withTimeout:()=>MI});var Nl=(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},PI=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"},UI=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%)`},LI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Qh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function MI(t,e){let[r,n]=Qh(t),i=await Promise.race([e,r]);return n(),i}function kI(t){return t==="GOOGLE_SHEETS"}function FI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Pl(t){return new Promise(e=>setTimeout(e,t))}async function BI(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 Pl(s);try{return await t()}catch(o){n=o}}throw n}var Qd={};C(Qd,{getNextExecutionDates:()=>vD,validate:()=>CD});var nT=j($t()),iT=j(tT()),rT="(Input cron: ",bD={"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 DD(t){let e=[];for(let r of t){r.includes(rT)&&(r=r.split(rT)[0].trim());for(let[n,i]of Object.entries(bD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function vD(t,e=4){let r=iT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function CD(t){let e=(0,nT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:DD(e.getError())}}var So={};C(So,{decodeNonAscii:()=>jd,encodeNonAscii:()=>UD,isDeprecatedSingleUserColumn:()=>ND,isNumeric:()=>LD,isRequired:()=>PD});function ND(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function PD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function UD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function jd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function LD(t){return t.type==="number"||t.type==="bigint"}var Hd={};C(Hd,{basicFields:()=>GD,calculationFields:()=>BD,hasCalculationFields:()=>FD,isBasicViewField:()=>MD,isCalculationField:()=>Oo,isCalculationView:()=>kD,isV2:()=>$D,isVisible:()=>sT});var Yd=require("lodash");function Oo(t){return"calculationType"in t}function MD(t){return!Oo(t)}function kD(t){return t.type==="calculation"}function FD(t){return Object.values(t.schema||{}).some(Oo)}function BD(t){return(0,Yd.pickBy)(t.schema||{},Oo)}function sT(t){return t.visible!==!1}function GD(t,e){let{visible:r=!0}=e||{};return(0,Yd.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||sT(n)))}function $D(t){return t.version===2}var Kd={};C(Kd,{checkForRoleInheritanceLoops:()=>qD});function VD(t){return`role${v}${t}`}function qD(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=VD(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 WD=/{{([^{].*?)}}/g,aT=Object.values(gi),QD=[...Object.values(Ar),...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},uT=[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 Zd(t,e){for(let r of aT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Xd=t=>{for(let e of uT)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===""||YD(s))&&delete t[e][i]}return t=Zd(t,Xd),t};function YD(t){return Array.isArray(t)&&t.length===0}var tu=t=>ep(t).key,ep=t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},zd=class{constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=ep(e),i;if(this.aliases)for(let o of Object.keys(this.aliases||{})){let a=`${o}.`;n.startsWith(a)&&(i=this.aliases[o],n=n.slice(a.length))}let s;for(let o of this.relationships){let a=`${o}.`;if(n.startsWith(a)){let u=n.split(a);u.shift(),s=a,n=u.join(".");break}}return this.columnPrefix&&n.startsWith(this.columnPrefix)&&(n=jd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function HD(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(WD)||[]).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(Tl(r)){let c=$h[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(_h(r)||Ah(r)||Tl(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 KD(t){if(!t)return{};if(Array.isArray(t)&&(t=Cl(t),!t))return{};let e=oT(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=oT(n.logicalOperator)),{[a]:{conditions:o.map(HD).filter(u=>u)}}})},r}function oT(t){return t==="all"?"$and":"$or"}function tp(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 Zd(t,tp),t}function zD(t,e){let r=Mu(t,e.query);e.sort&&(r=cT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=lT(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=Xd(e),e=tp(e),!Jd(e)&&e.onEmptyFilter==="none")return[];let r=(E,A)=>B=>{for(let[w,F]of Object.entries(e[E]||{})){let ce=Ba(E)?B:Nl(B,tu(w)),an=A(ce,F);if(e.allOr&&an)return!0;if(!e.allOr&&!an)return!1}return!e.allOr},n=r("string",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().startsWith(A.toLowerCase())),i=r("fuzzy",(E,A)=>typeof E!="string"||typeof A!="string"?!1:E.toLowerCase().includes(A.toLowerCase())),s=r("range",(E,A)=>{if(E==null||E===""||((0,jn.isPlainObject)(A.low)&&(0,jn.isEmpty)(A.low)&&(A.low=void 0),(0,jn.isPlainObject)(A.high)&&(0,jn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+E;if(!isNaN(B)){let F=+A.low,ce=+A.high;if(!isNaN(F)&&!isNaN(ce))return B>=F&&B<=ce;if(isNaN(F)){if(!isNaN(ce))return B<=ce}else return B>=F}let w=(0,Vi.default)(E);if(w.isValid()){let F=(0,Vi.default)(A.low||"0000-00-00T00:00:00.000Z"),ce=(0,Vi.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ce.isValid())return w.isAfter(F)&&w.isBefore(ce)||w.isSame(F)||w.isSame(ce);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ce.isValid())return w.isBefore(ce)||w.isSame(ce)}return A.low!=null&&A.high!=null?E>=A.low&&E<=A.high:A.low!=null?E>=A.low:A.high!=null?E<=A.high:!1}),o=(E,A)=>{if(Array.isArray(E)){for(let w of E)if(o(w,A))return!0;return!1}if(E&&typeof E=="object"&&typeof A=="string")return E._id===A;if(E===A)return!0;if(E==null&&A!=null||E!=null&&A==null)return!1;let B=(0,Vi.default)(E);if(B.isValid()){let w=(0,Vi.default)(A);if(w.isValid())return B.isSame(w)}return!1},a=E=>(...A)=>!E(...A),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,p=r("empty",l),m=r("notEmpty",a(l)),d=r("oneOf",(E,A)=>(typeof A=="string"&&(A=A.split(",")),typeof E=="number"&&(A=A.map(B=>parseFloat(B))),Array.isArray(A)?A.some(B=>o(E,B)):!1)),f=E=>(A,B)=>!Array.isArray(A)||(typeof B=="string"&&(B=B.split(","),typeof A[0]=="number"&&(B=B.map(w=>parseFloat(w)))),!Array.isArray(B))?!1:B.length===0?!0:B[E](w=>o(A,w)),g=r("contains",(E,A)=>Array.isArray(A)&&A.length===0?!0:f("every")(E,A)),T=r("notContains",(E,A)=>Array.isArray(A)&&A.length===0?!0:a(f("every"))(E,A)),y=r("containsAny",f("some")),O=r("$and",(E,A)=>{if(!A.length)return!1;for(let B of A)if(!Mu([E],B).length)return!1;return!0}),S=r("$or",(E,A)=>{if(!A.length)return!1;for(let B of A)if(Mu([E],{...B,allOr:!0}).length)return!0;return!1}),L=E=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:p,notEmpty:m,oneOf:d,contains:g,containsAny:y,notContains:T,$and:O,$or:S},B=Object.entries(e||{}).filter(([w,F])=>!["allOr","onEmptyFilter"].includes(w)&&F&&Object.keys(F).length>0).map(([w])=>A[w]?.(E)??!1);return Jd(e)?e.allOr?B.some(w=>w===!0):B.every(w=>w===!0):!0};return t.filter(L)}function cT(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 lT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Jd=t=>{if(!t)return!1;let e=r=>{for(let n of aT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of QD){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={};C(st,{applications:()=>ip,automations:()=>sp,screens:()=>cp,users:()=>up});var ip={};C(ip,{getDevAppID:()=>JD,getProdAppID:()=>np});var rp=Sr("app"),Io=Sr("app_dev");function JD(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Io))return t;let e=t.split(rp);e.shift();let r=e.join(rp);return`${Io}${r}`}function np(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`${rp}${r}`}var sp={};C(sp,{isAppAction:()=>ev,isRowAction:()=>ZD,isWebhookAction:()=>XD});function ZD(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function XD(t){return t.definition.trigger?.stepId==="WEBHOOK"}function ev(t){return t.definition.trigger?.stepId==="APP"}var up={};C(up,{canCreateApps:()=>tv,containsUserID:()=>av,getGlobalUserID:()=>ov,hasAdminPermissions:()=>ap,hasAppBuilderPermissions:()=>Bu,hasAppCreatorPermissions:()=>dT,hasBuilderPermissions:()=>iv,hasCreatorPermissions:()=>Gu,isAdmin:()=>Fu,isAdminOrBuilder:()=>rv,isAdminOrGlobalBuilder:()=>nv,isBuilder:()=>op,isCreator:()=>sv,isGlobalBuilder:()=>ku});var Lr=j(require("lodash/fp"));function op(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(np(e))):!1}function ku(t){return op(t)&&!Bu(t)||Fu(t)}function tv(t){return ku(t)||Gu(t)}function Fu(t){return t?ap(t):!1}function rv(t,e){return op(t,e)||Fu(t)}function nv(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 dT(t){return t?Lr.flow(Lr.get("roles"),Lr.values,Lr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function iv(t){return t?t.builder?.global||Bu(t)||Gu(t):!1}function ap(t){return t?!!t.admin?.global:!1}function Gu(t){return t?!!t.builder?.creator:!1}function sv(t){return t?ku(t)||ap(t)||Gu(t)||Bu(t)||dT(t):!1}function ov(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function av(t){return typeof t!="string"?!1:t.includes(`us${v}`)}var cp={};C(cp,{findInSettings:()=>uv});function uv(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 dQ={string:!0,longform:!0,options:!0,number:!0,datetime:!0,formula:!0,ai:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!1,array:!1,attachment:!1,attachment_single:!1,signature_single:!1,link:!1,json:!1,bb_reference:!1,bb_reference_single:!1},pQ={string:!0,longform:!0,options:!0,number:!0,datetime:!0,auto:!0,internal:!0,barcodeqr:!0,bigint:!0,boolean:!0,json:!0,formula:!1,ai:!1,attachment:!1,attachment_single:!1,signature_single:!1,array:!1,link:!1,bb_reference:!1,bb_reference_single:!1},fQ={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 AQ={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 IQ={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 RQ={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 vQ={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var PQ={name:"Delay",icon:"Clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var MQ={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 BQ={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 VQ={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 QQ={name:"JS Scripting",tagline:"Execute JavaScript Code",icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var qi={EQUAL:"EQUAL",NOT_EQUAL:"NOT_EQUAL",GREATER_THAN:"GREATER_THAN",LESS_THAN:"LESS_THAN"},Ev={[qi.EQUAL]:"Equals",[qi.NOT_EQUAL]:"Not equals",[qi.GREATER_THAN]:"Greater than",[qi.LESS_THAN]:"Less than"},HQ={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:qi.EQUAL},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(qi),pretty:Object.values(Ev)},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 JQ={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 ej={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var nj={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(_l)},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 pT=(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))(pT||{}),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(pT)}},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 fT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(fT||{}),cj={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(fT),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 xv={ascending:"Ascending",descending:"Descending"},pj={description:"Query rows from the database",icon:"Search",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(pn),pretty:Object.values(xv)},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 hj={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 Ej={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 Aj={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 Ij={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 Rj={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 vj={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 Uv={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 Mv={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 Fv={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 Gv={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 Vv={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 Wv={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||{}),Mr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(Mr||{}),Qi={by_email2:["by_email"]},Se={GLOBAL:{name:"global-db",docs:{apiKeys:"apikeys",usageQuota:"usage_quota",licenseInfo:"license_info",environmentVariables:"environmentvariables"}},PLATFORM_INFO:{name:"global-info",docs:{tenants:"tenants",install:"install"}},AUDIT_LOGS:{name:"audit-logs"},SCIM_LOGS:{name:"scim-logs"}},gt=Sr("app"),Vu=Sr("app_dev"),yt=Vu,lp="internal",dp="budibase",or="_design/sqlite",pp="ta_bb_jobs",fp="ta_bb_inventory",mp="ta_bb_expenses",hp="ta_bb_employee";var qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(qu||{}),ji=(s=>(s.Auth="budibase:auth",s.Init="budibase:init",s.ACCOUNT_RETURN_URL="budibase:account:returnurl",s.DatasourceAuth="budibase:datasourceauth",s.OIDC_CONFIG="budibase:oidc:config",s))(ji||{}),gp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(gp||{}),yp=(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))(yp||{}),mT=new Date(-2147483647e3),Wu=new Date(2147483647e3),ge="default";var Ra={};C(Ra,{CacheKey:()=>pr,TTL:()=>ri,app:()=>nf,bustCache:()=>us,destroy:()=>na,docWritethrough:()=>Pm,generic:()=>ia,get:()=>ni,invite:()=>Qf,keys:()=>hc,passwordReset:()=>Cm,store:()=>fr,user:()=>nn,withCache:()=>Kr,writethrough:()=>vm});var ia={};C(ia,{CacheKey:()=>pr,TTL:()=>ri,bustCache:()=>us,destroy:()=>na,get:()=>ni,keys:()=>hc,store:()=>fr,withCache:()=>Kr});var ye={};C(ye,{DEFAULT_TENANT_ID:()=>ge,baseGlobalDBName:()=>ta,doInAppContext:()=>DN,doInAppMigrationContext:()=>CN,doInAutomationContext:()=>bN,doInContext:()=>xf,doInEnvironmentContext:()=>PN,doInIPContext:()=>Rf,doInIdentityContext:()=>wo,doInScimContext:()=>UN,doInTenant:()=>Ge,ensureSnippetContext:()=>Z_,getAppDB:()=>ss,getAppId:()=>Pe,getAuditLogDBName:()=>z_,getAuditLogsDB:()=>MN,getAutomationId:()=>Wp,getCurrentContext:()=>os,getDevAppDB:()=>FN,getEnvironmentVariables:()=>LN,getFeatureFlags:()=>bf,getGlobalDB:()=>se,getGlobalDBName:()=>cr,getIP:()=>wf,getIdentity:()=>ar,getPlatformURL:()=>If,getProdAppDB:()=>kN,getProdAppId:()=>NN,getScimDBName:()=>IN,getTableForView:()=>BN,getTenantIDFromAppID:()=>is,getTenantId:()=>Q,identity:()=>xo,isMultiTenant:()=>Yr,isScim:()=>Pt,isTenancyEnabled:()=>wN,isTenantIdSet:()=>xN,setFeatureFlags:()=>Df,setTableForView:()=>GN});var xo={};C(xo,{doInAccountContext:()=>zv,doInIdentityContext:()=>_p,doInUserContext:()=>Ap,getAccountUserId:()=>hT,getIdentity:()=>Tp});function Tp(){return ar()}function _p(t,e){return wo(t,e)}function Ap(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return _p(n,r)}function zv(t,e){let r=hT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return _p(i,e)}function hT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Yu=require("fs");var ET=require("lodash"),Sp=require("crypto");function Op(){return TT()}function TT(){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 Jv(t){if(t)return parseInt(t)}var gT=!1;!gT&&ju()&&!Op()&&(require("dotenv").config(),gT=!0);var Yi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},yT=!!parseInt(process.env.SELF_HOSTED||"");function Zv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Xv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function eC(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Yu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Yu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ju()&&!Op())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 tC(){return Dt.SERVICE_TYPE==="worker"}function rC(){return Dt.SERVICE_TYPE==="apps"}function nC(){return Dt.BUDIBASE_ENVIRONMENT==="QA"}var Dt={isTest:Op,isJest:TT,isDev:ju,isWorker:tC,isApps:rC,isQA:nC,isProd:()=>!ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Sp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Sp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Zv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION,MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:yT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Yi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:process.env.SERVICE||"budibase",LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:Xv(),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:yT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...eC(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,Dt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Jv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,ET.cloneDeep)(Dt),r;for(r in t)Dt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Dt._set(n,i)}}function _T(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var AT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Dt))e==="0"&&(Dt[t]=0),e==="false"&&(Dt[t]=0);var h=Dt;var ST=require("async_hooks"),Ce=class t{static{this.storage=new ST.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Ip="No app provided";function kr(t){if(!t)throw Ip;return t.startsWith(yt)}function iC(t){if(!t)throw Ip;return t.startsWith(gt)&&!kr(t)}function bo(t){if(!t)throw Ip;return kr(t.appId)}function Hu(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var sC=Hu;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 oC(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=xp(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:xp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},xp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let p=l.split(":");r=p[0],n=p.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var H_=j(require("@budibase/nano"));var OT=j(require("node-fetch"));function Ku(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function IT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,OT.default)(Ku(encodeURI(t)),i)}async function zu(t,e="GET",r){let n=await IT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=j(require("pouchdb"));var xT,wT=!1,wp=(t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function Ju(t){xT=wp(t),wT=!0}var uC=()=>{if(!wT)throw new Error("init has not been called")};function Et(t,e){uC();let r=new xT(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 RT=require("uuid");function Oe(){return(0,RT.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 Of={};C(Of,{breakExternalTableId:()=>Tf,breakRowIdField:()=>AN,buildExternalTableId:()=>hN,convertRowId:()=>_N,encodeTableId:()=>gN,encodeViewId:()=>yN,generateRowIdField:()=>EN,getNativeSql:()=>ns,isExternalTable:()=>Ef,isExternalTableID:()=>fc,isInternalTableID:()=>mN,isInvalidISODateString:()=>_f,isRowId:()=>TN,isValidFilter:()=>mc,isValidISODateString:()=>Af,isValidTime:()=>SN,sqlLog:()=>ra,validateManyToMany:()=>Sf});var Qr={};C(Qr,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>dp,DEFAULT_BB_DATASOURCE_ID:()=>wi,DEFAULT_EMPLOYEE_TABLE_ID:()=>hp,DEFAULT_EXPENSES_TABLE_ID:()=>mp,DEFAULT_INVENTORY_TABLE_ID:()=>fp,DEFAULT_JOBS_TABLE_ID:()=>pp,DatabaseImpl:()=>rs,DatabaseWithConnection:()=>dN,DeprecatedViews:()=>Qi,DocumentType:()=>Te,InternalTable:()=>Or,QueryBuilder:()=>dr,Replication:()=>k_,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>lp,StaticDatabases:()=>Se,UNICODE_MAX:()=>ke,ViewName:()=>Mr,baseGlobalDBName:()=>ta,checkErrorCode:()=>$_,closePouchDB:()=>vo,createApiKeyView:()=>N_,createNewUserEmailView:()=>v_,createPlatformAccountEmailView:()=>U_,createPlatformUserView:()=>L_,createUserAppView:()=>C_,createView:()=>ts,dbExists:()=>iN,directCouchAllDbs:()=>lf,directCouchCall:()=>IT,directCouchFind:()=>gf,directCouchQuery:()=>zu,directCouchUrlCall:()=>Do,doWithDB:()=>at,extractAppUUID:()=>oC,fullSearch:()=>uN,generateAppID:()=>d_,generateAppUserID:()=>lc,generateDevInfoID:()=>E_,generateGlobalUserID:()=>Xi,generatePluginID:()=>T_,generateRoleID:()=>of,generateRowID:()=>sf,generateTableID:()=>p_,generateTemplateID:()=>y_,generateUserMetadataID:()=>h_,generateWorkspaceID:()=>f_,getAllApps:()=>Jo,getAllDbs:()=>D_,getAppsByIDs:()=>eN,getCouchInfo:()=>vt,getDB:()=>Ke,getDevAppID:()=>sC,getDevAppIDs:()=>rN,getDevelopmentAppID:()=>Hu,getDocParams:()=>es,getGlobalDBName:()=>cr,getGlobalIDFromUserMetadataID:()=>g_,getGlobalUserParams:()=>Xn,getPluginParams:()=>b_,getPouch:()=>wp,getPouchDB:()=>Et,getProdAppID:()=>ot,getProdAppIDs:()=>tN,getQueryIndex:()=>__,getRoleParams:()=>pc,getRowParams:()=>af,getStartEndKeyURL:()=>zo,getTemplateParams:()=>R_,getUrlInfo:()=>xp,getUserMetadataParams:()=>w_,getUsersByAppParams:()=>dc,getWorkspaceParams:()=>x_,init:()=>Ju,isDatasourceId:()=>O_,isDevApp:()=>bo,isDevAppID:()=>kr,isDocumentConflictError:()=>lN,isGlobalUserID:()=>m_,isProdAppID:()=>iC,isQueryId:()=>I_,isSameAppID:()=>nN,isTableId:()=>A_,isViewId:()=>S_,paginatedSearch:()=>aN,pagination:()=>cf,prefixRoleID:()=>ur,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>ff,queryPlatformView:()=>Xo,queryView:()=>pf,queryViewRaw:()=>Zo,removeKeyNumbering:()=>ea,searchIndexes:()=>hf});var nf={};C(nf,{AppState:()=>rf,getAppMetadata:()=>cc,invalidateAppMetadata:()=>ZC});var Wr={};C(Wr,{getAppClient:()=>uc,getCacheClient:()=>Xp,getDocWritethroughClient:()=>HC,getInviteClient:()=>Zn,getLockClient:()=>tf,getPasswordResetClient:()=>Ko,getSessionClient:()=>qr,getSocketClient:()=>YC,getUserClient:()=>Ho,getWritethroughClient:()=>ef,init:()=>Nt,shutdown:()=>c_});var a_=j(require("ioredis"));var ec={};C(ec,{Databases:()=>Rp,SEPARATOR:()=>Ki,SelectableDatabase:()=>Zu,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>Xu,getRedisOptions:()=>zi,removeDbPrefix:()=>bp});var cC=2e3,bT=1e4,Ki="-",Rp=(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))(Rp||{}),Zu=(T=>(T[T.DEFAULT=0]="DEFAULT",T[T.SOCKET_IO=1]="SOCKET_IO",T[T.RATE_LIMITING=2]="RATE_LIMITING",T[T.UNUSED_2=3]="UNUSED_2",T[T.UNUSED_3=4]="UNUSED_3",T[T.UNUSED_4=5]="UNUSED_4",T[T.UNUSED_5=6]="UNUSED_5",T[T.UNUSED_6=7]="UNUSED_6",T[T.UNUSED_7=8]="UNUSED_7",T[T.UNUSED_8=9]="UNUSED_8",T[T.UNUSED_9=10]="UNUSED_9",T[T.UNUSED_10=11]="UNUSED_10",T[T.UNUSED_11=12]="UNUSED_11",T[T.UNUSED_12=13]="UNUSED_12",T[T.UNUSED_13=14]="UNUSED_13",T[T.UNUSED_14=15]="UNUSED_14",T))(Zu||{});function Xu(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function zi(){let{host:t,password:e,port:r}=Xu(),n={connectTimeout:bT,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:bT,redisOptions:{...n,tls:{}},slotsRefreshTimeout:cC,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${Ki}${e}`}function bp(t){let e=t.split(Ki);return e.length>=2?(e.shift(),e.join(Ki)):e[0]}var ac={};C(ac,{correlation:()=>Co,logAlert:()=>Kn,logAlertWithInfo:()=>$C,logWarn:()=>Zi,logger:()=>oc,system:()=>Vp});var Co={};C(Co,{getId:()=>Dp,setHeader:()=>lC});var DT=require("correlation-id"),lC=t=>{let e=DT.getId();e&&(t["x-budibase-correlation-id"]=e)};function Dp(){return DT.getId()}var sc=j(require("pino")),s_=j(require("pino-pretty"));var qp=j(require("dd-trace")),o_=require("dd-trace/ext");var Vp={};C(Vp,{getLogReadStream:()=>LC,getSingleFileMaxSizeInfo:()=>i_,localFileDestination:()=>$p});var Uo=j(require("fs")),Gp=j(require("path")),e_=j(require("rotating-file-stream"));var Bp={};C(Bp,{ObjectStore:()=>Ct,ObjectStoreBuckets:()=>pC,SIGNED_FILE_PREFIX:()=>Lp,bucketTTLConfig:()=>tc,budibaseTempDir:()=>Hn,clientLibraryCDNUrl:()=>bC,clientLibraryPath:()=>jT,clientLibraryUrl:()=>DC,createBucketIfNotExists:()=>Po,deleteFile:()=>AC,deleteFiles:()=>SC,deleteFolder:()=>qT,downloadTarball:()=>IC,downloadTarballDirect:()=>OC,enrichPluginURLs:()=>NC,extractBucketAndPath:()=>vp,getAppFileUrl:()=>vC,getGlobalFileS3Key:()=>YT,getGlobalFileUrl:()=>CC,getObjectMetadata:()=>xC,getPluginIconKey:()=>zT,getPluginJSKey:()=>KT,getPluginS3Dir:()=>ZT,getPresignedUrl:()=>$r,getReadStream:()=>rc,listAllObjects:()=>VT,processAutomationAttachment:()=>mC,processObjectStoreAttachment:()=>UT,retrieve:()=>$T,retrieveDirectory:()=>_C,retrieveToTmp:()=>TC,sanitizeBucket:()=>He,sanitizeKey:()=>Ne,streamUpload:()=>GT,upload:()=>EC,uploadDirectory:()=>Mp});var LT=j(require("aws-sdk")),MT=j(require("stream")),Cp=j(require("node-fetch")),Np=j(require("tar-fs")),Pp=j(require("zlib")),kT=require("util"),Gr=require("path"),Fr=j(require("fs"));var No=j(require("path")),vT=require("os"),CT=j(require("fs"));var NT=j(require("stream")),pC={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},PT=(0,No.join)((0,vT.tmpdir)(),".budibase");try{CT.default.mkdirSync(PT)}catch(t){if(t.code!=="EEXIST")throw t}function Hn(){return PT}var tc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function fC(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=No.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:NT.default.Readable.fromWeb(e.body)}}async function UT(t){let e=vp(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await rc(r,n),s=No.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function mC(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await fC(t):await UT(t)}var Up=require("uuid");var FT=j(require("fs/promises")),hC=require("sanitize-s3-objectkey"),BT=(0,kT.promisify)(MT.default.pipeline),gC={bucketCreationPromises:{}},Lp="/files/signed",Br={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},yC=[Br.html,Br.css,Br.js,Br.json];function Ne(t){return hC(He(t)).replace(/\\/g,"/")}function He(t){return t.replace(new RegExp(yt,"g"),gt)}function Ct(t,e={presigning:!1}){let r={s3ForcePathStyle:!0,signatureVersion:"v4",apiVersion:"2006-03-01",accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,region:h.AWS_REGION};return t&&(r.params={Bucket:He(t)}),!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(r.sessionToken=h.AWS_SESSION_TOKEN),h.MINIO_URL&&(e.presigning&&h.MINIO_ENABLED?r.endpoint="minio-service":r.endpoint=h.MINIO_URL),new LT.default.S3(r)}async function Po(t,e){e=He(e);try{return await t.headBucket({Bucket:e}).promise(),{created:!1,exists:!0}}catch(r){let n=gC.bucketCreationPromises,i=r.statusCode===404,s=r.statusCode===403;if(n[e])return await n[e],{created:!1,exists:!0};if(i||s){if(i)return n[e]=t.createBucket({Bucket:e}).promise(),await n[e],delete n[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}async function EC({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await FT.default.open(r)).createReadStream():s,c=Ct(t),l=await Po(c,t);if(o&&l.created){let d=tc(t,o);await c.putBucketLifecycleConfiguration(d).promise()}let p=n;p||(p=a?Br[a.toLowerCase()]:Br.txt);let m={Key:Ne(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let d of Object.keys(i))(!i[d]||typeof i[d]!="string")&&delete i[d];m.Metadata=i}return c.upload(m).promise()}async function GT({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){if(!e)throw new Error("Stream to upload is invalid/undefined");let o=r.split(".").pop(),a=Ct(t),u=await Po(a,t);if(s&&u.created){let g=tc(t,s);await a.putBucketLifecycleConfiguration(g).promise()}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Br[o.toLowerCase()]:Br.txt);let l=He(t),p=Ne(r),m={Bucket:l,Key:p,Body:e,ContentType:c,...i},d=await a.upload(m).promise(),f=await a.headObject({Bucket:l,Key:p}).promise();return{...d,ContentLength:f.ContentLength}}async function $T(t,e){let r=Ct(t),n={Bucket:He(t),Key:Ne(e)},i=await r.getObject(n).promise();return yC.includes(i.ContentType)?i.Body.toString("utf8"):i.Body}async function VT(t,e){let r=Ct(t),n=(a={})=>r.listObjectsV2({...a,Bucket:He(t),Prefix:Ne(e)}).promise(),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}function $r(t,e,r=3600){let n=Ct(t,{presigning:!0}),i={Bucket:He(t),Key:Ne(e),Expires:r},s=n.getSignedUrl("getObject",i);if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Lp}${a}${u}`}else return s}async function TC(t,e){t=He(t),e=Ne(e);let r=await $T(t,e),n=(0,Gr.join)(Hn(),(0,Up.v4)());return Fr.default.writeFileSync(n,r),n}async function _C(t,e){let r=(0,Gr.join)(Hn(),(0,Up.v4)());Fr.default.mkdirSync(r);let n=await VT(t,e),i=await Promise.all(n.map(a=>rc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),p=l.slice(0,l.length-1),m=(0,Gr.join)(r,...p);l.length>1&&!Fr.default.existsSync(m)&&Fr.default.mkdirSync(m,{recursive:!0});let d=Fr.default.createWriteStream((0,Gr.join)(r,...l),{mode:420});c.pipe(d),o.push(new Promise((f,g)=>{c.on("finish",f),c.on("error",g),d.on("error",g)}))}return await Promise.all(o),r}async function AC(t,e){let r=Ct(t);await Po(r,t);let n={Bucket:t,Key:Ne(e)};return r.deleteObject(n).promise()}async function SC(t,e){let r=Ct(t);await Po(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ne(i)}))}};return r.deleteObjects(n).promise()}async function qT(t,e){t=He(t),e=Ne(e);let r=Ct(t),n={Bucket:t,Prefix:e},i=await r.listObjects(n).promise();if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(a=>{s.Delete.Objects.push({Key:a.Key})}),(await r.deleteObjects(s).promise()).Deleted?.length===1e3)return qT(t,e)}async function Mp(t,e,r){t=He(t);let n=[],i=Fr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ne((0,Gr.join)(r,s.name)),a=(0,Gr.join)(e,s.name);s.isDirectory()?n.push(Mp(t,a,o)):n.push(GT({bucket:t,filename:o,stream:Fr.default.createReadStream(a)}))}return await Promise.all(n),i}async function OC(t,e,r={}){e=Ne(e);let n=await(0,Cp.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await BT(n.body,Pp.default.createUnzip(),Np.default.extract(e))}async function IC(t,e,r){e=He(e),r=Ne(r);let n=await(0,Cp.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Gr.join)(Hn(),r);return await BT(n.body,Pp.default.createUnzip(),Np.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Mp(e,i,r),i}async function rc(t,e){t=He(t),e=Ne(e);let r=Ct(t),n={Bucket:t,Key:e};return r.getObject(n).createReadStream()}async function xC(t,e){t=He(t),e=Ne(e);let r=Ct(t),n={Bucket:t,Key:e};try{return await r.headObject(n).promise()}catch{throw new Error("Unable to retrieve metadata from object")}}function vp(t){let e=t.split("?")[0],r=new RegExp(`^${Lp}/(?<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 WT=j(require("aws-cloudfront-sign")),ic;function wC(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return ic||(ic=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),ic)}var RC=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:wC(),expireTime:new Date().getTime()+1e3*60*60*24}),Ji=t=>{let e=kp(t);return WT.getSignedUrl(e,RC())},kp=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var QT=j(require("querystring"));function jT(t){return`${Ne(t)}/budibase-client.js`}function bC(t,e){let r=jT(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),kp(r)):$r(h.APPS_BUCKET_NAME,r)}function DC(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==ge&&(n.tenantId=r),`/api/assets/client?${QT.default.encode(n)}`}function vC(t){return h.CLOUDFRONT_CDN?Ji(t):$r(h.APPS_BUCKET_NAME,t)}var CC=(t,e,r)=>{let n=YT(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),Ji(n)):$r(h.GLOBAL_BUCKET_NAME,n)},YT=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};function NC(t){return!t||!t.length?[]:t.map(e=>{let r=PC(e),n=UC(e);return{...e,jsUrl:r,iconUrl:n}})}function PC(t){let e=KT(t);return HT(e)}function UC(t){let e=zT(t);if(e)return HT(e)}function HT(t){return h.CLOUDFRONT_CDN?Ji(t):$r(h.PLUGIN_BUCKET_NAME,t)}function KT(t){return JT(t,"plugin.min.js")}function zT(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return JT(t,e)}function JT(t,e){return`${ZT(t.name)}/${e}`}function ZT(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var t_="budibase.log",r_="budibase-logs-history.txt",n_=Gp.default.join(Hn(),"systemlogs");function XT(t){return Gp.default.join(n_,t)}function i_(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 $p(){let t=i_(h.ROLLING_LOG_MAX_SIZE);return e_.createStream(t_,{size:t?.size,path:n_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:r_,initialRotation:!1})}function LC(){let t=[],e=XT(r_);if(Uo.default.existsSync(e)){let i=Uo.default.readFileSync(e,"utf-8").split(`
|
|
6
|
+
`);for(let s of i.filter(o=>o))t.push(Uo.default.readFileSync(s))}return t.push(Uo.default.readFileSync(XT(t_))),Buffer.concat(t)}function MC(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function kC(t){return t instanceof Error}function FC(t){return typeof t=="string"}var Vr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,s_.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:$p(),level:t}),Vr=r.length?(0,sc.default)(e,sc.default.multistream(r)):(0,sc.default)(e);let n=u=>{let c,l=[],p="";u.forEach(T=>{FC(T)&&(p=`${p} ${T}`.trimStart()),MC(T)&&l.push(T),kC(T)&&(c=T)});let m=a(),d={};d={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Dp()};let f=qp.default.scope().active();f&&qp.default.inject(f.context(),o_.formats.LOG,d);let g={err:c,pid:process.pid,...d};if(l.length){let T={},y=0;for(let O=0;O<l.length;O++){let S=l[O],L=S._logKey;L?(delete S._logKey,g[L]=S):(T[y]=S,y++)}Object.keys(T).length&&(g.data=T)}return[g,p]};console.log=(...u)=>{let[c,l]=n(u);Vr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Vr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Vr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Vr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Vr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Vr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Pe()}catch{}return u},o=()=>{let u;try{u=Wp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var oc=Vr;var BC=["AccountError"];function GC(t){return t&&t.suppressAlert}function Kn(t,e){e&&BC.includes(e.name)&&GC(e)||console.error(`bb-alert: ${t}`,e)}function $C(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Kn(t,n)}function Zi(t,e){console.warn(`bb-warn: ${t}`,e)}var Fo={};C(Fo,{cleanup:()=>VC,clear:()=>ko,set:()=>Mo});var Lo=[];function Mo(t,e){let r=setInterval(t,e);return Lo.push(r),r}function ko(t){let e=Lo.indexOf(t);e!==-1&&Lo.splice(e,1),clearInterval(t)}function VC(){for(let t of Lo)clearInterval(t);Lo=[]}var jp;if(h.MOCK_REDIS)try{jp=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var qC=2e3,WC=5e3,u_=h.REDIS_CLUSTERED,Kp=0,Bo=!1,Yp={},zn=!1;h.MOCK_REDIS&&(zn=!0);function zp(t){return Yp[t]}function Qp(t,e){Bo||(Bo=!0,clearTimeout(t),zn=!1,Kn("Redis connection failed",e),setTimeout(()=>{Jp()},qC))}function Jp(t=Kp){let e=h.MOCK_REDIS&&jp?jp:a_.default,r;Bo=!1;let n=zp(t);if(n&&zn)return;h.MOCK_REDIS&&(Yp[t]=new e(zi())),r=setTimeout(()=>{zn||Qp(r,"Did not successfully connect in timeout")},WC),n&&n.disconnect();let{host:i,port:s}=Xu(),o=zi();u_?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Qp(r,a)}),n.on("error",a=>{Qp(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),zn=!0}),Yp[t]=n}function QC(t=Kp){return new Promise(e=>{if(zp(t)==null)Jp();else if(zn){e("");return}let r=Mo(()=>{zn&&(ko(r),e(""))},500)})}function jC(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:bp(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var Hp=class{constructor(e,r=null){this._db=e,this._select=r||Kp}getClient(){return zp(this._select)}async init(){return Bo=!1,Jp(this._select),await QC(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Bo=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${Ki}${e}`;let n;return u_?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),jC(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ye(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ye(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ye(r,e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}}async bulkGet(e){let r=this._db;if(e.length===0)return{};let n=e.map(s=>Ye(r,s)),i=await this.getClient().mget(n);if(Array.isArray(i)){let s={},o=0;for(let a of i){if(a){let u;try{u=JSON.parse(a)}catch{u=a}s[e[o]]=u}o++}return s}else throw new Error(`Invalid response: ${i}`)}async store(e,r,n=null){let i=this._db;typeof r=="object"&&(r=JSON.stringify(r));let s=Ye(i,e);await this.getClient().set(s,r),n&&await this.getClient().expire(s,n)}async bulkStore(e,r=null){let n=this.getClient(),i=Object.entries(e).reduce((o,[a,u])=>(o[Ye(this._db,a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=n.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()}async getTTL(e){let r=this._db,n=Ye(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ye(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ye(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ye(r,n)))}async clear(){let e=await this.scan();await Promise.all(e.map(r=>this.delete(r.key)))}async increment(e){let r=await this.getClient().incr(Ye(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
|
|
7
7
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
8
8
|
redis.call('DEL', KEYS[1])
|
|
9
9
|
end
|
|
10
|
-
`;await n.eval(i,1,
|
|
10
|
+
`;await n.eval(i,1,Ye(this._db,e),r)}},Be=Hp;var Go,$o,Vo,qo,Jn,Wo,Qo,jo,Yo,Zp;async function Nt(){Go=await new Be("users").init(),$o=await new Be("session").init(),Vo=await new Be("appMetadata").init(),qo=await new Be("data_cache").init(),Wo=await new Be("locks").init(),Jn=await new Be("writeThrough").init(),jo=await new Be("invitation").init(),Yo=await new Be("pwReset").init(),Qo=await new Be("socket_io",1).init(),Zp=await new Be("docWriteThrough").init()}async function c_(){Go&&await Go.finish(),$o&&await $o.finish(),Vo&&await Vo.finish(),qo&&await qo.finish(),Jn&&await Jn.finish(),Wo&&await Wo.finish(),jo&&await jo.finish(),Yo&&await Yo.finish(),Qo&&await Qo.finish(),Zp&&await Zp.finish()}process.on("exit",async()=>{await c_()});async function Ho(){return Go||await Nt(),Go}async function qr(){return $o||await Nt(),$o}async function uc(){return Vo||await Nt(),Vo}async function Xp(){return qo||await Nt(),qo}async function ef(){return Jn||await Nt(),Jn}async function tf(){return Wo||await Nt(),Wo}async function YC(){return Qo||await Nt(),Qo}async function Zn(){return jo||await Nt(),jo}async function Ko(){return Yo||await Nt(),Yo}async function HC(){return Jn||await Nt(),Jn}var rf=(e=>(e.INVALID="invalid",e))(rf||{}),l_=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 cc(t){let e=await uc(),r=await e.get(t);if(!r){let n=l_;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 uc();await r.delete(t),e&&await r.store(t,e,l_)}var uf={};C(uf,{generateAppID:()=>d_,generateAppUserID:()=>lc,generateDevInfoID:()=>E_,generateGlobalUserID:()=>Xi,generatePluginID:()=>T_,generateRoleID:()=>of,generateRowID:()=>sf,generateTableID:()=>p_,generateTemplateID:()=>y_,generateUserMetadataID:()=>h_,generateWorkspaceID:()=>f_,getDocParams:()=>es,getGlobalIDFromUserMetadataID:()=>g_,getGlobalUserParams:()=>Xn,getPluginParams:()=>b_,getQueryIndex:()=>__,getRoleParams:()=>pc,getRowParams:()=>af,getStartEndKeyURL:()=>zo,getTemplateParams:()=>R_,getUserMetadataParams:()=>w_,getUsersByAppParams:()=>dc,getWorkspaceParams:()=>x_,isDatasourceId:()=>O_,isGlobalUserID:()=>m_,isQueryId:()=>I_,isTableId:()=>A_,isViewId:()=>S_,prefixRoleID:()=>ur});var d_=t=>{let e=gt;return t&&(e+=`${t}${v}`),`${e}${Oe()}`};function p_(){return`ta${v}${Oe()}`}function sf(t,e){return e=e||Oe(),`ro${v}${t}${v}${e}`}function f_(){return`workspace${v}${Oe()}`}function Xi(t){return`us${v}${t||Oe()}`}var XC=new RegExp(`^us${v}.+`);function m_(t){return XC.test(t)}function h_(t){return sf("ta_users",t)}function g_(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function y_(t){return`template${v}${t}${v}${Oe()}`}function lc(t,e){return`${t}${v}${e}`}function of(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function ur(t){return of(t)}var E_=t=>`devinfo${v}${t}`,T_=t=>`plg${v}${t}`;function es(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${ke}`}}function af(t,e,r={}){if(t==null)return es("ro",null,r);let n=e??`${t}${v}`;return es("ro",n,r)}function __(t){return`database/${t}`}var A_=t=>!!t&&(t.startsWith(`ta${v}`)||t.startsWith(`datasource_plus${v}`));function S_(t){return!!t&&t.startsWith(`view${v}`)}function O_(t){return!!t&&t.startsWith(`datasource${v}`)}function I_(t){return!!t&&t.startsWith(`query${v}`)}function x_(t="",e={}){return{...e,startkey:`workspace${v}${t}`,endkey:`workspace${v}${t}${ke}`}}function Xn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${v}${t}`,endkey:`us${v}${t}${ke}`}}function w_(t,e={}){return af("ta_users",t,e)}function dc(t,e={}){let r=ot(t);return{...e,startkey:r,endkey:`${r}${ke}`}}function R_(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${ke}`}}function pc(t,e={}){return es("role",t,e)}function zo(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${ke}"`}var b_=(t,e={})=>es("plg",t,e);async function D_(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await lf(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===ge?await n():(await n(zo("app",i)),await n(zo("app_dev",i)),r.push(cr(i))),r}async function Jo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=ge);let o=(await D_({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(v);if(c[0]==="app"){let l=c[c.length-2],p=c.length===2||l==="dev";return i===ge&&p||l===i}return!1});if(r){let u=o.filter(l=>kr(l)),c=o.filter(l=>!kr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>cc(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 eN(t){return(await Promise.allSettled(t.map(r=>cc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function tN(){return(await Jo({idsOnly:!0})).filter(e=>!kr(e))}async function rN(){return(await Jo({idsOnly:!0})).filter(e=>kr(e))}function nN(t,e){return t==null||e==null?!1:ot(t)===ot(e)}async function iN(t){return at(t,async e=>await e.exists(),{skip_setup:!0})}function cf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var df="_design/database";function sN(){return{_id:df,views:{}}}async function oN(t,e){if(Qi[e])try{let r=await t.get(df);for(let n of Qi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ts(t,e,r){let n;try{n=await t.get(df)}catch{n=sN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ts(t,e,r);throw s}}var v_=async()=>{let t=se(),e=`function(doc) {
|
|
11
11
|
if (doc._id.startsWith("us${v}")) {
|
|
12
12
|
emit(doc.email.toLowerCase(), doc._id)
|
|
13
13
|
}
|
|
14
|
-
}`;await ts(t,e,"by_email2")},
|
|
14
|
+
}`;await ts(t,e,"by_email2")},C_=async()=>{let t=se(),e=`function(doc) {
|
|
15
15
|
if (doc._id.startsWith("us${v}") && doc.roles) {
|
|
16
16
|
for (let prodAppId of Object.keys(doc.roles)) {
|
|
17
17
|
let emitted = prodAppId + "${v}" + doc._id
|
|
18
18
|
emit(emitted, null)
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
}`;await ts(t,e,"by_app")},
|
|
21
|
+
}`;await ts(t,e,"by_app")},N_=async()=>{let t=se(),e=`function(doc) {
|
|
22
22
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
23
23
|
emit(doc.apiKey, doc.userId)
|
|
24
24
|
}
|
|
25
|
-
}`;await ts(t,e,"by_api_key")};async function Zo(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await
|
|
25
|
+
}`;await ts(t,e,"by_api_key")};async function Zo(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await oN(r,t),await n(),Zo(t,e,r,n,i);if(s.status===409)return Zo(t,e,r,n,i);throw s}}var pf=async(t,e,r,n,i)=>{let a=(await Zo(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function P_(t,e){try{await at(Se.PLATFORM_INFO.name,async r=>{await ts(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var U_=async()=>{let t=`function(doc) {
|
|
26
26
|
if (doc._id.startsWith("acc_metadata${v}")) {
|
|
27
27
|
emit(doc.email.toLowerCase(), doc._id)
|
|
28
28
|
}
|
|
29
|
-
}`;await
|
|
29
|
+
}`;await P_(t,"account_by_email")},L_=async()=>{await P_(`function(doc) {
|
|
30
30
|
if (doc.tenantId) {
|
|
31
31
|
emit(doc._id.toLowerCase(), doc._id)
|
|
32
32
|
}
|
|
@@ -34,5 +34,5 @@ attempted value: ${s}
|
|
|
34
34
|
if (doc.ssoId) {
|
|
35
35
|
emit(doc.ssoId, doc._id)
|
|
36
36
|
}
|
|
37
|
-
}`,"platform_users_lowercase_2")},Xo=async(t,e)=>{let r={account_by_email:N_,platform_users_lowercase_2:P_};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return df(t,e,n,i,{arrayResponse:!0})})},U_={by_email2:b_,by_api_key:v_,by_app:D_},cr=async(t,e,r,n)=>{r||(r=se());let i=U_[t];return df(t,e,r,i,n)};async function pf(t,e,r){let n=se(),i=U_[t];return Zo(t,e,n,i,r)}var ff=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([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()}},L_=ff;var k_=j(require("node-fetch"));var ea=Ur.removeKeyNumbering;function ei(t){return t==null||t===""}var lr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=ea(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>ei(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,T="AND")=>{if(ei(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${T} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>ei(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let T=r?"*:* AND ":"",y=r?"AND":void 0;return T+"NOT "+u(f,g,y)},p=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(ei(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let T=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)T+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${T})`};function d(f,g,T){let y="";for(let[O,S]of Object.entries(f)){O=ea(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let L=g(O,S);if(L!=null){if(y.length>0||n.length>0){let E=T?.mode?T.mode:r?"OR":"AND";y+=` ${E} `}y+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(T?.returnBuilt)return y;n+=y}if(this.#e.string&&d(this.#e.string,(f,g)=>ei(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&d(this.#e.range,(f,g)=>{if(ei(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let T=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${T} TO ${y}]`}),this.#e.fuzzy&&d(this.#e.fuzzy,c),this.#e.equal&&d(this.#e.equal,a),this.#e.notEqual&&d(this.#e.notEqual,(f,g)=>ei(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&d(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&d(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&d(this.#e.oneOf,m),this.#e.contains&&d(this.#e.contains,u),this.#e.notContains&&d(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&d(this.#e.containsAny,p),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,d({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await M_(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await M_(n,i,r);throw s}}};async function M_(t,e,r){let n=await(0,k_.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 F_(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=lr.maxLimit;n.limit&&s.length>n.limit-lr.maxLimit&&(o=n.limit-s.length);let a=new lr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<lr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await F_(t,e,r,c)}async function iN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,lr.maxLimit);let s=new lr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function sN(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 F_(t,e,r,n)}}var mf={};N(mf,{createUserIndex:()=>oN});async function oN(){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 B_(t,e){let r=e.toString();if(typeof t=="object")return t.status===e||t.message?.includes(r);if(typeof t=="number")return t===e;if(typeof t=="string")return t.includes(r)}function aN(t){return B_(t,409)}var gf=`${v}${v}`,$_=/^\[.*]$/g,cN=encodeURIComponent(" "),V_=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,lN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function fc(t){return t.startsWith("datasource"+v)}function dN(t){return!fc(t)}function ns(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function yf(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==wi||t?.sourceType==="external"?!0:!!(t?._id&&fc(t._id))}function pN(t,e){return`${t}${gf}${encodeURIComponent(e)}`}function fN(t){return fc(t)?encodeURIComponent(t):t}function mN(t){return encodeURIComponent(t)}function Ef(t){let e=t.split(gf),r=e.shift(),n=e.join(gf);if(n.includes(cN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function hN(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 gN(t){return Array.isArray(t)||typeof t=="string"&&t.match($_)!=null}function yN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match($_)!=null?t.substring(1,t.length-1):t}function EN(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 Tf(t){let e=t.trim();if(!V_.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function _f(t){return V_.test(t.trim())}function mc(t){return t!=null&&t!==""}function TN(t){return lN.test(t)}function ra(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 _N(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Af(t){if(_N(t))return t}var q_="Database does not exist.";function W_(t){return(0,j_.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var jr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function uN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new rs(t,r,e);return new Yi(n)}var rs=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=W_(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=W_(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new jr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===q_)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new jr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new jr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Ah(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new jr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===q_)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 jr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${sr}`;return ra("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(sr)){let e=await this.get(sr);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new jr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ke(t,e){return new Yi(new rs(t,e))}async function at(t,e,r){let n=Ke(t,r);return await e(n)}async function cf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await zu(e)}async function hf(t,e){let r=await zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var H_=null;function ur(t){return t||(t=Q()),ta(t)}function Y_(t){return t||(t=Q()),t===ge?Se.AUDIT_LOGS.name:`${t}${v}${Se.AUDIT_LOGS.name}`}function AN(t){return t||(t=Q()),t===ge?Se.SCIM_LOGS.name:`${t}${v}${Se.SCIM_LOGS.name}`}function ta(t){return!t||t===ge?Se.GLOBAL.name:`${t}${v}${Se.GLOBAL.name}`}function Of(){return h.PLATFORM_URL}function Hr(){return!!h.MULTI_TENANCY}function SN(){return!!Ce.get()?.tenantId}function ON(){return h.MULTI_TENANCY}function is(t){if(!t)return;if(!Hr())return ge;let e=t.split(v),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function IN(t){let e;try{e=Ce.get()}catch{e={}}return e={...e,...t},e}async function Yr(t,e){RN();let r=IN(t);return Ce.run(r,e)}async function xN(t){return await z_(),Yr({tenantId:is(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function If(t,e){let r=is(t);return Yr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||ge),Yr(t?{tenantId:t}:{},e)}async function wN(t,e){return K_(t,e)}async function K_(t,e,r){if(!t)throw new Error("appId is required");let n=is(t),i={appId:t,...r};return n&&(i.tenantId=n),Yr(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Yr(r,e)}function RN(){if(Ce.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function bN(t,e){return K_(t,e,{isMigrating:!0})}function or(){try{return Ce.get()?.identity}catch{}}function Q(){if(!Hr())return ge;let e=Ce.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function qp(){return Ce.get()?.automationId}function Pe(){let e=Ce.get()?.appId;return!e&&h.isTest()&&H_?H_:e}function xf(){return Ce.get()?.ip}var DN=()=>{let t=Pe();if(!t)throw new Error("Could not get appId");return ot(t)};function vN(t,e){if(!t)throw new Error("Must supply environment variables.");return Yr({environmentVariables:t},e)}function CN(t){return Yr({isScim:!0},t)}function wf(t,e){return Yr({ip:t},e)}async function z_(t=!h.isTest()){let e=os();if(!e||e.snippets)return;let r,n=ss();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function NN(){let t=Ce.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=Ce.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ke(ta(t?.tenantId))}function PN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ke(Y_())}function ss(t){let e=Pe();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ke(e,t)}function UN(t){let e=Pe();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ke(ot(e),t)}function LN(t){let e=Pe();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ke(Yu(e),t)}function Pt(){return!!Ce.get()?.isScim}function os(){try{return Ce.get()}catch{return}}function Rf(t){let e=os();if(e)return e.featureFlagCache?.[t]}function bf(t,e){let r=os();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function MN(t){let e=os();if(e)return e.viewToTableCache?.[t]}function kN(t,e){let r=os();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function Qt(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 Zp()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Qt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Qt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Qt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Qt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Qt(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[Qt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Qt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Qt(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(Qt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Qt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var as=new ti,dr=(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))(dr||{}),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||{}),hc=(...t)=>as.keys(...t),ni=(...t)=>as.get(...t),pr=(...t)=>as.store(...t),na=(...t)=>as.delete(...t),Kr=(...t)=>as.withCache(...t),us=(...t)=>as.bustCache(...t);var nn={};N(nn,{getUser:()=>Da,getUsers:()=>eM,invalidateUser:()=>va});var oa={};N(oa,{addTenantToUrl:()=>FN,getTenantDB:()=>Df,getTenantIDFromCtx:()=>sa,isUserInAppTenant:()=>BN});function Df(t){return Ke(ur(t))}function FN(t){let e=Q();if(Hr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var BN=(t,e)=>{let r;return e?r=e.tenantId||ge:r=Q(),(is(t)||ge)===r},GN=Object.values(ws),sa=(t,e)=>{if(!Hr())return ge;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=GN),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(Of()).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={};N(ca,{getPlatformDB:()=>ut,tenants:()=>Gf,users:()=>Ut});var Ut={};N(Ut,{addSsoUser:()=>Z_,addUser:()=>jN,getUserDoc:()=>J_,lookupTenantId:()=>$N,removeUser:()=>HN,updateUserDoc:()=>VN});function ut(){return Ke(Se.PLATFORM_INFO.name)}async function $N(t){return h.MULTI_TENANCY?(await J_(t)).tenantId:ge}async function J_(t){return ut().get(t)}async function VN(t){await ut().put(t)}function qN(t,e){return{_id:t,tenantId:e}}function WN(t,e,r){return{_id:e,userId:t,tenantId:r}}function QN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function vf(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 Z_(t,e,r,n){return vf(t,()=>QN(t,e,r,n))}async function jN(t,e,r,n){let i=[vf(e,()=>qN(e,t)),vf(r,()=>WN(e,r,t))];n&&i.push(Z_(n,r,e,t)),await Promise.all(i)}async function HN(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 Gf={};N(Gf,{addTenant:()=>pP,exists:()=>cP,getTenantIds:()=>uP,removeTenant:()=>fP,tenacyLockOptions:()=>Bf});var oi={};N(oi,{AUTO_EXTEND_POLLING_MS:()=>uA,doWithLock:()=>ds,newRedlock:()=>si});var aA=j(require("redlock"));var cs={};N(cs,{Duration:()=>ve,DurationType:()=>kf,clearCookie:()=>zr,compare:()=>Pf,getAppIdFromCtx:()=>tP,getCookie:()=>ii,hasCircularStructure:()=>iP,hash:()=>Nf,isAudited:()=>Lf,isClient:()=>rP,isPublicApiRequest:()=>eP,isServingApp:()=>JN,isServingBuilder:()=>ZN,isServingBuilderPreview:()=>XN,isValidInternalAPIKey:()=>ua,newid:()=>Oe,openJwt:()=>yc,resolveAppUrl:()=>nA,setCookie:()=>iA,timeout:()=>nP,validEmail:()=>Mf});var Cf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),YN=h.SALT_ROUNDS||10;async function Nf(t){let e=await Cf.genSalt(YN);return Cf.hash(t,e)}async function Pf(t,e){return Cf.compare(t,e)}var gc=j(require("jsonwebtoken")),Uf="app"+v,eA="/app/",tA="/app/preview",KN="/builder",rA=`${KN}/app/`,zN="/api/public/v";function aa(t){return t&&t.startsWith(Uf)?t:void 0}async function nA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=sa(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Jo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function JN(t){return t.path.startsWith(`/${Uf}`)?!0:t.path.startsWith(eA)}function ZN(t){return t.path.startsWith(rA)}function XN(t){return t.path.startsWith(tA)}function eP(t){return t.path.startsWith(zN)}async function tP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=aa(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=aa(t.request.body.appId));let n=X_(t.path);!r&&n&&(r=aa(n));let i=t.path.startsWith(tA),s=t.path.startsWith(eA)&&!i;!r&&s&&(r=aa(await nA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(rA)){let a=X_(t.request.headers.referer);r=aa(a)}return r}function X_(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Uf))}function yc(t){if(t)try{return gc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return gc.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 yc(r)}function iA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=gc.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){iA(t,null,e)}function rP(t){return t.headers["x-budibase-type"]==="client"}function nP(t){return new Promise(e=>setTimeout(e,t))}function Lf(t){return!!Eh[t]}function iP(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 Mf(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 kf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(kf||{}),sA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},ve=class t{static convert(e,r,n){return n*sA[e]/sA[r]}static from(e,r){return{to:n=>t.convert(e,n,r),toMs:()=>t.convert(e,"milliseconds",r),toSeconds:()=>t.convert(e,"seconds",r)}}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function sP(t,e){if(t==="custom")return si(e);switch(t){case"try_once":return si(ls.TRY_ONCE);case"try_twice":return si(ls.TRY_TWICE);case"default":return si(ls.DEFAULT);case"delay_500":return si(ls.DELAY_500);case"auto_extend":return si(ls.AUTO_EXTEND);default:throw Ri.unreachable(t)}}var ls={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function si(t={}){let e={...ls.DEFAULT,...t},n=(await ef()).getClient();return new aA.default([n],e)}function oP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var uA=ve.fromSeconds(10).toMs();async function ds(t,e){let r=await sP(t.type,t.customOptions),n,i;try{let s=oP(t),o=t.type==="auto_extend"?uA: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 Ff=Se.PLATFORM_INFO.docs.tenants,Bf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function uP(){return(await Ec()).tenantIds}async function Ec(){let t=ut(),e;try{e=await t.get(Ff)}catch(r){if(r.status===404)e=await dP();else throw r}return e}async function cP(t){return(await Ec()).tenantIds.indexOf(t)!==-1}function lP(){return{_id:Ff,tenantIds:[]}}async function dP(){let t=ut(),e=lP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Ff);throw r}return e}async function pP(t){let e=ut();await ds(Bf,async()=>{let r=await Ec();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function fP(t){try{await ds(Bf,async()=>{let e=ut(),r=await Ec();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={};N(ai,{getAccount:()=>Jr,getAccountByTenantId:()=>ps,getStatus:()=>mP});var cA=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";Co.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,cA.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 $f=new la(h.ACCOUNT_PORTAL_URL),Vf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(Vf)return;let e={email:t},r=await $f.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(Vf)return;let e={tenantId:t},r=await $f.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]},mP=async()=>{if(Vf)return;let t=await $f.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var _s={};N(_s,{UserDB:()=>Ht,addAppBuilder:()=>z0,bulkGetGlobalUsersById:()=>qc,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>xm,doesUserExist:()=>Q0,getAccountHolderFromUsers:()=>vc,getAllUserIds:()=>q0,getAllUsers:()=>W0,getById:()=>pi,getCreatorCount:()=>Y0,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>fA,getExistingTenantUsers:()=>pA,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>lS,getGlobalUserByEmail:()=>Mt,getPlatformUsers:()=>Tc,getUserCount:()=>H0,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>SA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>AA,isBuilder:()=>gs,isCreator:()=>jt,isGlobalBuilder:()=>_A,paginatedUsers:()=>pS,removeAppBuilder:()=>J0,removePortalUserPermissions:()=>K0,searchExistingEmails:()=>Qf,searchGlobalUsersByApp:()=>Wc,searchGlobalUsersByAppAccess:()=>Im,searchGlobalUsersByEmail:()=>dS,validateUniqueUser:()=>Dc});var tm={};N(tm,{getAccountHolderFromUsers:()=>vc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>SA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>AA,isBuilder:()=>gs,isCreator:()=>jt,isGlobalBuilder:()=>_A,validateUniqueUser:()=>Dc});var Wf={};N(Wf,{createCode:()=>gP,deleteCode:()=>EP,getCode:()=>yP,getExistingInvites:()=>qf,getInviteCodes:()=>dA,updateCode:()=>hP});var lA=ve.fromDays(7).toSeconds();async function hP(t,e){await(await Zn()).store(t,e,lA)}async function gP(t,e){let r=Oe();return await(await Zn()).store(r,{email:t,info:e},lA),r}async function yP(t){let r=await(await Zn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function EP(t){await(await Zn()).delete(t)}async function dA(){let r=(await(await Zn()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function qf(t){return(await dA()).filter(e=>t.includes(e.email))}async function Qf(t){let e=[],r=await pA(t);e.push(...r.map(o=>o.email));let n=await fA(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await qf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Tc(t){return await Xo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Tc(t))[0]??null}async function pA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await cr("by_email2",r,void 0,n)}async function fA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Xo("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Xo("account_by_email",r)}var wc={};N(wc,{BadRequestError:()=>Ac,BudibaseError:()=>ms,EmailUnavailableError:()=>fr,ErrorCode:()=>Ic,FeatureDisabledError:()=>Oc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>_c,UsageLimitError:()=>Sc,getPublicError:()=>xc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},Ic=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Ic||{}),xc=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}},_c=class extends ct{constructor(e){super(e,404)}},Ac=class extends ct{constructor(e){super(e,400)}},Sc=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Oc=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")}},fr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var em={};N(em,{AccessController:()=>Yf,BUILTIN_ROLE_IDS:()=>ma,Role:()=>Zr,RoleHierarchyTraversal:()=>Rc,RoleIDVersion:()=>Kf,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>yA,externalRole:()=>IP,findRole:()=>fa,getAllRoleIds:()=>bP,getAllRoles:()=>Xf,getBuiltinRole:()=>hA,getBuiltinRoles:()=>Jf,getDBRoleID:()=>EA,getExternalRoleID:()=>Xr,getExternalRoleIDs:()=>TA,getRole:()=>xP,getUserRoleHierarchy:()=>Zf,getUserRoleIdHierarchy:()=>gA,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>OP,prefixRoleIDNoBuiltin:()=>Hf,roleIDsAreEqual:()=>Tt,roleToNumber:()=>SP,saveRoles:()=>wP,validInherits:()=>AP});var jf=j(require("semver"));var bc=j(require("lodash/fp/cloneDeep"));var mA=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},pe={...ma,BUILDER:"BUILDER"},Kf={UUID:void 0,NAME:"name"};function _P(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=Kf.NAME}addInheritance(e){return e&&typeof e=="string"?e=Hf(e):e&&Array.isArray(e)&&(e=e.map(Hf)),this.inherits=e,this}},Rc=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&&!_P(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),Pr.roles.checkForRoleInheritanceLoops(i))break}}return(0,mA.uniqBy)(i,s=>s._id)}},zf={ADMIN:new Zr(pe.ADMIN,pe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(pe.POWER),POWER:new Zr(pe.POWER,pe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(pe.BASIC),BASIC:new Zr(pe.BASIC,pe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(pe.PUBLIC),PUBLIC:new Zr(pe.PUBLIC,pe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Zr(pe.BUILDER,pe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Jf(){return(0,bc.default)(zf)}function ui(t){return Object.values(ma).includes(t)}function Hf(t){return ui(t)?t:ar(t)}function hA(t){let e=Object.values(zf).find(r=>t.includes(r._id));if(e)return(0,bc.default)(e)}function AP(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=Jf(),r=Object.values(e).length+1;if(Tt(t,pe.ADMIN)||Tt(t,pe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function SP(t){if(ui(t))return pa(t);let e=await Zf(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 OP(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return ar(t)===ar(e)}function IP(t){let e;return t._id&&(e=Xr(t._id)),{...t,_id:e,inherits:TA(t.inherits,t.version)}}function fa(t,e,r){let n=hA(t);n||(t=ar(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,bc.default)(zf.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 xP(t,e){let r=ss(),n=[];if(!ui(t)){let i=await r.tryGet(EA(t));i&&n.push(i)}return fa(t,n,e)}async function wP(t){await ss().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:ar(r._id)})))}async function RP(t,e){let r=await Xf();if(Tt(t,pe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new Rc(r,e).walk(n)),i}async function gA(t){return(await Zf(t)).map(r=>r._id)}async function Zf(t,e){return RP(t,e)}function yA(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 Xf(t)).map(r=>r._id)}async function Xf(t){if(t)return at(t,e);{let r;try{r=ss()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(pc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Xr(a._id,a.version)));let i=Jf(),s=[];!r||await DP(r)?s=[pe.ADMIN,pe.POWER,pe.BASIC,pe.PUBLIC]:s=[pe.ADMIN,pe.BASIC,pe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Xr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Xr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=yA(o.permissions,a);return n}}async function DP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!jf.default.valid(r)?!0:!jf.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Yf=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,pe.BUILDER)||Tt(r,e)||Tt(r,pe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await gA(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 EA(t){return t?.startsWith("role")?t:ar(t)}function Xr(t,e){if(t.startsWith(`role${v}`)&&(ui(t)||e===Kf.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function TA(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,_A=st.users.isGlobalBuilder,AA=st.users.isAdminOrBuilder,tn=st.users.hasAdminPermissions,_t=st.users.hasBuilderPermissions,SA=st.users.hasAppBuilderPermissions;async function jt(t){let e=st.users.isCreator(t);return!e&&t?await vP(t):e}async function vP(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 Dc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new fr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Jr(t);if(r&&r.verified&&r.tenantId!==e)throw new fr(t)}}async function vc(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={};N(Ts,{account:()=>FA,ai:()=>qA,analytics:()=>Nc,app:()=>BA,auditLog:()=>iS,auth:()=>Gc,automation:()=>GA,backfill:()=>XA,backfillCache:()=>Fc,backup:()=>rS,datasource:()=>$A,email:()=>VA,environmentVariable:()=>nS,group:()=>eS,identification:()=>Lt,initAsyncEvents:()=>b0,installation:()=>_a,layout:()=>QA,license:()=>WA,org:()=>jA,plugin:()=>tS,processors:()=>am,publishEvent:()=>_,query:()=>HA,role:()=>xa,rowAction:()=>sS,rows:()=>KA,screen:()=>YA,serve:()=>JA,shutdown:()=>D0,table:()=>zA,user:()=>$e,view:()=>ZA});var am={};N(am,{analyticsProcessor:()=>PA,init:()=>HP,processors:()=>mr});var Nc={};N(Nc,{enabled:()=>Cc});var Cc=async()=>Pc();var RA=require("posthog-node");var CP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",NP=t=>t==="served:app:preview"||t==="served:app";var IA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},xA=async t=>{if(!CP(t))return!1;let e=await PP(t);if(e){let r=new Date(e.timestamp);switch(IA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await OA(t,{timestamp:Date.now()}),!1):!0}}else return await OA(t,{timestamp:Date.now()}),!1},wA=t=>{let e=`eventsRateLimit:${t}`;return NP(t)&&(e=e+":"+Pe()),e},PP=async t=>{let e=wA(t);return await ni(e)},OA=async(t,e)=>{let r=wA(t),n=IA[t],i;switch(n){case"calendarDay":i=86400}await pr(r,e,i)};var LP=["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 RA.PostHog(e)}async processEvent(e,r,n,i){if(LP.includes(e)||await xA(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Pe();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}shutdown(){this.posthog.shutdown()}};var bA=ha;var MP=["installation:version:upgraded","installation:version:downgraded"],kP=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new bA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!MP.includes(e)&&!await Cc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!kP.includes(e.type)&&!await Cc()||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 rm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){rm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){rm||console.log("[audit] identified",e)}async identifyGroup(e){rm||console.log("[audit] group identified",e)}shutdown(){}};var om={};N(om,{JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>WP});var DA=j(require("events"));function FP(t,e,r){return{id:Oe(),timestamp:Date.now(),queue:t,data:e,opts:r}}var nm=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new DA.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async()=>{if(this._messages.length<=0)return;let n=this._messages.shift(),i=r(n);async function s(a){try{await a}catch{await new Promise(c=>setTimeout(()=>c(),50)),await s(r(n))}}if(i.then!=null)try{await s(i)}catch(a){console.error(a)}this._runCount++;let o=n?.opts?.jobId?.toString();o&&n?.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){let n=r?.jobId?.toString();if(n&&this._queuedJobIds.has(n)){console.log(`Ignoring already queued job ${n}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";n&&this._queuedJobIds.add(n);let i=()=>{this._messages.push(FP(this._name,e,r)),this._addCount++,this._emitter.emit("message")},s=r?.delay;return s?setTimeout(i,s):i(),{id:n}}async close(){}async removeRepeatableByKey(e){console.log(e)}async getRepeatableJobs(){return[]}async removeJobs(e){}async clean(){return[]}async getJob(){return null}on(){return this}},vA=nm;var im=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 CA(t,e,r){$P(t,e),r&&BP(t,r)}function BP(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var GP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function $P(t,e){let r=GP[e];function n(i,s){let o=i.data.event?.appId;if(o)return If(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var VP=ve.fromMinutes(5).toMs(),qP=ve.fromSeconds(30).toMs(),sm=ve.fromSeconds(60).toMs(),Ea=[],Uc;async function NA(){for(let t of Ea)await t.clean(sm,"completed"),await t.clean(sm,"failed")}function ci(t,e={}){let n={redis:zi(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:VP,lockRenewTime:qP}};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 im.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new vA(t,n):i=new im.default(t,n),CA(i,t,e?.removeStalledCb),Ea.push(i),!Uc&&!h.isTest()&&(Uc=Mo(NA,sm),NA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function WP(){if(Uc&&ko(Uc),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=>Ge(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:s})}))}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Lf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Pe(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var 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 PA=new ga,QP=new ya,jP=new Es;function HP(t){return Es.init(t)}var mr=new Ta([PA,QP,jP]);var Lc={};N(Lc,{checkInstallVersion:()=>zP,getInstall:()=>Aa,getInstallFromDB:()=>cm});var um=j(require("semver"));var Aa=async()=>Kr("installation",86400,cm,{useTenancy:!1});async function YP(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 cm();throw r}}var cm=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 YP(t);else throw r}return e}),KP=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await Aa();r.version=t,await e.put(r),await us("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},zP=async()=>{let t=await Aa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=um.default.gt(r,e),i=um.default.lt(r,e);await KP(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await _a.upgraded(e,r):i&&await _a.downgraded(e,r)}),await Lt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Kn(`Invalid version "${r}" - is it semver?`):Kn("Failed to retrieve version",n)}};var JP=async()=>{let t=Ep(),e=Ia(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Sa();return{id:UA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Mc(Q()),s=Sa();return{id:UA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Mc(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")},ZP=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 lm(a,e),await Oa({...a,id:`$${n}_${r}`},e)},XP=async(t,e,r)=>{let n=await Mc(t),i="tenant",s=await li(),o=Ia(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await lm(a,r),await Oa({...a,id:`$${i}_${n}`},r)},eU=async(t,e,r)=>{let n=t._id,i=await Mc(t.tenantId),s="user",o=_t(t),a=tn(t),u;qa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,p=!!e&&l&&e.verified,m=await li(),d=e?e.hosting:Sa(),f=Ia();await Oa({id:n,type:s,hosting:d,installationId:m,tenantId:i,verified:p,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},tU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await li(),c=Ia();if($a(t)){let p=await Mt(t.email);p?._id&&(e=p._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await mr.identify(t,e)},lm=async(t,e)=>{await mr.identifyGroup(t,e)},Ia=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Sa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>rU()?"account-portal":(await Aa()).installId,Mc=async t=>h.SELF_HOSTED?LA(t):t,LA=async t=>Ge(t,()=>Kr("uniqueTenantId",86400,async()=>{let e=se(),r=await kc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),rU=()=>h.SERVICE==="account-portal",UA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Lt={getCurrentIdentity:JP,identifyInstallationGroup:ZP,identifyTenantGroup:XP,identifyUser:eU,identifyAccount:tU,identify:Oa,identifyGroup:lm,getInstallationId:li,getUniqueTenantId:LA};var Fc={};N(Fc,{end:()=>iU,isAlreadySent:()=>fm,isBackfillingEvent:()=>pm,recordEvent:()=>dm,start:()=>nU});var nU=async t=>oU({eventWhitelist:t}),dm=async(t,e)=>{let r=mm(t,e);await pr(r,e,void 0,{useTenancy:!1})},iU=async()=>{await aU(),await uU()},sU=async()=>ni("backfillMetadata"),oU=async t=>pr("backfillMetadata",t),aU=async()=>{await na("backfillMetadata")},uU=async()=>{let t=mm(),e=await hc(t);for(let r of e)await na(r,{useTenancy:!1})},pm=async t=>{let r=(await sU())?.eventWhitelist;return!!(r&&r.includes(t))},fm=async(t,e)=>{let r=mm(t,e);return!!await ni(r,{useTenancy:!1})},cU={"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}`},mm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=cU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var hr;function Bc(){hr=ci("systemEventQueue")}async function MA(){hr&&await hr.close()}async function kA(t){hr||Bc();let{event:e,identity:r}=t;yh.indexOf(e)!==-1&&r.tenantId&&await hr.add(t)}var _=async(t,e,r,n)=>{let i=n||await Lt.getCurrentIdentity();if(!(n?!1:await pm(t))){await kA({event:t,identity:i,properties:e,timestamp:r}),await mr.processEvent(t,i,e,r);return}await fm(t,e)||(await mr.processEvent(t,i,e,r),await dm(t,e))};async function lU(t,e){let r={tenantId:t.tenantId};await _("account:created",r,void 0,e)}async function dU(t){let e={tenantId:t.tenantId};await _("account:deleted",e)}async function pU(t){let e={tenantId:t.tenantId};await _("account:verified",e)}var FA={created:lU,deleted:dU,verified:pU};var fU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:created",r,e)};async function mU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:updated",e)}async function hU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:deleted",e)}async function gU(t,e){let r={appId:t.appId,audited:{name:t.name}};await _("app:published",r,e)}async function yU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:unpublished",e)}async function EU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:file:imported",e)}async function TU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await _("app:duplicated",r)}async function _U(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await _("app:template:imported",r)}async function AU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await _("app:version:updated",n)}async function SU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await _("app:version:reverted",n)}async function OU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:reverted",e)}async function IU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:exported",e)}var BA={created:fU,updated:mU,deleted:hU,published:gU,unpublished:yU,fileImported:EU,duplicated:TU,templateImported:_U,versionUpdated:AU,versionReverted:SU,reverted:OU,exported:IU};async function xU(t,e){let n={userId:(await Lt.getCurrentIdentity()).id,source:t,audited:{email:e}};await _("auth:login",n)}async function wU(t){let r={userId:(await Lt.getCurrentIdentity()).id,audited:{email:t}};await _("auth:logout",r)}async function RU(t,e){let r={type:t};await _("auth:sso:created",r,e)}async function bU(t){let e={type:t};await _("auth:sso:updated",e)}async function DU(t,e){let r={type:t};await _("auth:sso:activated",r,e)}async function vU(t){let e={type:t};await _("auth:sso:deactivated",e)}var Gc={login:xU,logout:wU,SSOCreated:RU,SSOUpdated:bU,SSOActivated:DU,SSODeactivated:vU};async function CU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:created",r,e)}async function NU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:trigger:updated",e)}async function PU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:deleted",e)}async function UU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:tested",e)}var LU=async(t,e)=>{let r={count:t};await _("automations:run",r,e)};async function MU(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:created",n,r)}async function kU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:deleted",r)}var GA={created:CU,triggerUpdated:NU,deleted:PU,tested:UU,run:LU,stepCreated:MU,stepDeleted:kU};function hm(t){return!Object.values(Fa).includes(t.source)}async function FU(t,e){let r={datasourceId:t._id,source:t.source,custom:hm(t)};await _("datasource:created",r,e)}async function BU(t){let e={datasourceId:t._id,source:t.source,custom:hm(t)};await _("datasource:updated",e)}async function GU(t){let e={datasourceId:t._id,source:t.source,custom:hm(t)};await _("datasource:deleted",e)}var $A={created:FU,updated:BU,deleted:GU};async function $U(t){let e={};await _("email:smtp:created",e,t)}async function VU(){let t={};await _("email:smtp:updated",t)}var VA={SMTPCreated:$U,SMTPUpdated:VU};async function qU(t){let e={};await _("ai:config:created",e,t)}async function WU(){let t={};await _("ai:config:updated",t)}var qA={AIConfigCreated:qU,AIConfigUpdated:WU};async function QU(t,e){let r={accountId:t.accountId,...e};await _("license:plan:changed",r)}async function jU(t){let e={accountId:t.accountId};await _("license:activated",e)}async function HU(t){let e={accountId:t.accountId};await _("license:checkout:opened",e)}async function YU(t){let e={accountId:t.accountId};await _("license:checkout:success",e)}async function KU(t){let e={accountId:t.accountId};await _("license:portal:opened",e)}async function zU(t){let e={accountId:t.accountId};await _("license:payment:failed",e)}async function JU(t){let e={accountId:t.accountId};await _("license:payment:recovered",e)}var WA={planChanged:QU,activated:jU,checkoutOpened:HU,checkoutSuccess:YU,portalOpened:KU,paymentFailed:zU,paymentRecovered:JU};async function ZU(t,e){let r={layoutId:t._id};await _("layout:created",r,e)}async function XU(t){let e={layoutId:t};await _("layout:deleted",e)}var QA={created:ZU,deleted:XU};async function eL(t){let e={};await _("org:info:name:updated",e,t)}async function tL(t){let e={};await _("org:info:logo:updated",e,t)}async function rL(t){let e={};await _("org:platformurl:updated",e,t)}async function nL(){let t={};await _("analytics:opt:out",t)}async function iL(){let t={};await _("analytics:opt:out",t)}var jA={nameUpdated:eL,logoUpdated:tL,platformURLUpdated:rL,analyticsOptOut:nL,analyticsOptIn:iL};var sL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:created",n,r)},oL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:updated",r)},aL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:deleted",r)},uL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await _("query:import",n)},cL=async(t,e)=>{let r={count:t};await _("queries:run",r,e)},lL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:previewed",r)},HA={created:sL,updated:oL,deleted:aL,imported:uL,run:cL,previewed:lL};async function dL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:created",r,e)}async function pL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:updated",e)}async function fL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:deleted",e)}async function mL(t,e,r){let n={userId:t._id,roleId:e};await _("role:assigned",n,r)}async function hL(t,e){let r={userId:t._id,roleId:e};await _("role:unassigned",r)}var xa={created:dL,updated:pL,deleted:fL,assigned:mL,unassigned:hL};async function gL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:created",r,e)}async function yL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:deleted",e)}var YA={created:gL,deleted:yL};var EL=async(t,e)=>{let r={count:t};await _("rows:created",r,e)},TL=async(t,e)=>{let r={tableId:t._id,count:e};await _("rows:imported",r)},KA={created:EL,imported:TL};async function _L(t,e){let r={tableId:t._id,audited:{name:t.name}};await _("table:created",r,e)}async function AL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await _("table:updated",i)}async function SL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:deleted",e)}async function OL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await _("table:exported",r)}async function IL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:imported",e)}var zA={created:_L,updated:AL,deleted:SL,exported:OL,imported:IL};async function xL(t){let e={timezone:t};await _("served:builder",e)}async function wL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await _("served:app",n)}async function RL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await _("served:app:preview",r)}var JA={servedBuilder:xL,servedApp:wL,servedAppPreview:RL};async function bL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:created",r,e)}async function DL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:updated",e)}async function vL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:deleted",e)}async function CL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:onboarding:complete",e)}async function NL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:admin:assigned",r,e)}async function PL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:admin:removed",e)}async function UL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:builder:assigned",r,e)}async function LL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:builder:removed",e)}async function ML(t){let e={audited:{email:t}};await _("user:invited",e)}async function kL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:invite:accepted",e)}async function FL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:force:reset",e)}async function BL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:updated",e)}async function GL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset:requested",e)}async function $L(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset",e)}async function VL(t){let e={users:t};await _("user:data:collaboration",e)}var $e={created:bL,updated:DL,deleted:vL,permissionAdminAssigned:NL,permissionAdminRemoved:PL,permissionBuilderAssigned:UL,permissionBuilderRemoved:LL,onboardingComplete:CL,invited:ML,inviteAccepted:kL,passwordForceReset:FL,passwordUpdated:BL,passwordResetRequested:GL,passwordReset:$L,dataCollaboration:VL};async function qL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await _("view:created",r,e)}async function WL(t){let e={tableId:t.tableId};await _("view:updated",e)}async function QL(t){let e={tableId:t.tableId};await _("view:deleted",e)}async function jL(t,e){let r={tableId:t._id,format:e};await _("view:exported",r)}async function HL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await _("view:filter:created",n,r)}async function YL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await _("view:filter:updated",r)}async function KL(t){let e={tableId:t.tableId};await _("view:filter:deleted",e)}async function zL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await _("view:calculation:created",n,r)}async function JL(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:updated",e)}async function ZL(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:deleted",e)}async function XL(t,e){let r={tableId:t};await _("view:join:created",r,e)}var ZA={created:qL,updated:WL,deleted:QL,exported:jL,filterCreated:HL,filterUpdated:YL,filterDeleted:KL,calculationCreated:zL,calculationUpdated:JL,calculationDeleted:ZL,viewJoinCreated:XL};async function e0(t){let e={currentVersion:t};await _("installation:version:checked",e)}async function t0(t,e){let r={from:t,to:e};await _("installation:version:upgraded",r)}async function r0(t,e){let r={from:t,to:e};await _("installation:version:downgraded",r)}async function n0(){let t={};await _("installation:firstStartup",t)}var _a={versionChecked:e0,upgraded:t0,downgraded:r0,firstStartup:n0};var As=!h.SELF_HOSTED&&!h.isDev();async function i0(t){As||await _("app:backfill:succeeded",t)}async function s0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("app:backfill:failed",e)}async function o0(t){As||await _("tenant:backfill:succeeded",t)}async function a0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("tenant:backfill:failed",e)}async function u0(){if(As)return;let t={};await _("installation:backfill:succeeded",t)}async function c0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("installation:backfill:failed",e)}var XA={appSucceeded:i0,appFailed:s0,tenantSucceeded:o0,tenantFailed:a0,installationSucceeded:u0,installationFailed:c0};async function l0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:created",r,e)}async function d0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:updated",e)}async function p0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:deleted",e)}async function f0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:user_added",r)}async function m0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:users_deleted",r)}async function h0(t){let e={groupId:t,onboarding:!0};await _("user_group:onboarding_added",e)}async function g0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await _("user_group:permissions_edited",e)}var eS={created:l0,updated:d0,deleted:p0,usersAdded:f0,usersDeleted:m0,createdOnboarding:h0,permissionsEdited:g0};async function y0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:init",e)}async function E0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await _("plugin:imported",e)}async function T0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:deleted",e)}var tS={init:y0,imported:E0,deleted:T0};async function _0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await _("app:backup:restored",e)}async function A0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await _("app:backup:triggered",s)}var rS={appBackupRestored:_0,appBackupTriggered:A0};async function S0(t,e){let r={name:t,environments:e};await _("environment_variable:created",r)}async function O0(t){let e={name:t};await _("environment_variable:deleted",e)}async function I0(t){let e={userId:t};await _("environment_variable:upgrade_panel_opened",e)}var nS={created:S0,deleted:O0,upgradePanelOpened:I0};async function x0(t){let e={filters:t};await _("audit_log:filtered",e)}async function w0(t){let e={filters:t};await _("audit_log:downloaded",e)}var iS={filtered:x0,downloaded:w0};async function R0(t,e){await _("row_action:created",t,e)}var sS={created:R0};function b0(){}var D0=()=>{mr.shutdown(),console.log("Events shutdown")};var gm=async t=>{await $e.deleted(t),_t(t)&&await $e.permissionBuilderRemoved(t),tn(t)&&await $e.permissionAdminRemoved(t)},v0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},C0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},N0=async(t,e)=>{let r=t.roles,n=e?.roles;await v0(t,r,n),await C0(t,r,n)},ym=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Lt.identifyUser(t,n),e?(await $e.updated(t),U0(t,e)&&await $e.permissionBuilderRemoved(t),M0(t,e)&&await $e.permissionAdminRemoved(t),k0(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),P0(t,e)&&await $e.permissionBuilderAssigned(t),L0(t,e)&&await $e.permissionAdminAssigned(t),await N0(t,e)},P0=(t,e)=>oS(t,e,_t),U0=(t,e)=>aS(t,e,_t),L0=(t,e)=>oS(t,e,tn),M0=(t,e)=>aS(t,e,tn),k0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",oS=(t,e,r)=>!(!r(t)||e&&r(e)),aS=(t,e,r)=>!(r(t)||!e||!r(e));var Vc={};N(Vc,{createASession:()=>B0,endSession:()=>G0,getSession:()=>Tm,getSessionsForUser:()=>$c,invalidateSessions:()=>di,updateSessionTTL:()=>Em});var uS=require("uuid");var cS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):ve.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function $c(t){return t?(await(await qr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function di(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await $c(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await qr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||Zi(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function B0(t,e){await di(t,{reason:"creation"});let r=await qr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,uS.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,cS),o}async function Em(t){let e=await qr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,cS)}async function G0(t,e){await(await qr()).delete(Ss(t,e))}async function Tm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await qr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Om={};N(Om,{PASSWORD_MAX_LENGTH:()=>Am,PASSWORD_MIN_LENGTH:()=>_m,validatePassword:()=>Sm});var _m=+(h.PASSWORD_MIN_LENGTH||12),Am=+(h.PASSWORD_MAX_LENGTH||512);function Sm(t){return!t||t.length<_m?{valid:!1,error:`Password invalid. Minimum ${_m} characters.`}:t.length>Am?{valid:!1,error:`Password invalid. Maximum ${Am} characters.`}:{valid:!0}}var $0=async t=>{let e=t._id;await Ut.removeUser(t),await gm(t),await nn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Ht=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||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 p=Sm(o);if(!p.valid)throw new ct(p.error,400)}u=r.hashPassword?await Nf(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||Xi();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await se().allDocs(Xn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Wc(e,{})).length}}static async getUsersByAppAccess(e){return await Im(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Mt(e)}static async getUser(e){let r=await pi(e);return r&&delete r.password,r}static async bulkGet(e){return await qc(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=se(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await pi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await Mt(s),c&&c._id!==o))throw new fr(s);let l=c?0:1,p=await jt(c)!==await jt(e)?1:0;return t.quotas.addUsers(l,p,async()=>{await Dc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=xm(m,c)),!c&&u?.length&&(m.roles={...u});let d=[];if(!o&&a.length>0)for(let f of a)d.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await ym(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(f.id),await Promise.all(d),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(p=>p.email),u=await Qf(a),c=[];for(let p of e){if(s.find(m=>m.email.toLowerCase()===p.email.toLowerCase())||u.includes(p.email.toLowerCase())){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await jt(p)&&o.push(p)}let l=await ps(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(d=>{i.push(t.buildUser(d,{hashPassword:!0,requirePassword:d.requirePassword},n,void 0,l))});let p=await Promise.all(i);await wa(p);for(let d of p)await Ut.addUser(n,d._id,d.email),await ym(d,void 0);let m=p.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(m)&&r){let d=[],f=m.map(g=>g._id);for(let g of r)d.push(t.groups.addUsers(g,f));await Promise.all(d)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await vc(e);i&&(e=e.filter(d=>d.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(d=>d.userId)})).rows.map(d=>d.doc),a=o.map(d=>({...d,_deleted:!0})),u=await wa(a),l=(await Promise.all(o.map(jt))).filter(d=>!!d).length,p=[];for(let d of o){let g=(await da(d._id)).ssoId;g&&(await Tc(g)).filter(y=>y.ssoId==null).forEach(y=>{p.push({...y,_deleted:!0})}),await $0(d)}await ut().bulkDocs(p),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((d,f)=>(d[f._id]=f,d),m),u.forEach(d=>{let f=m[d.id].email;d.ok?n.successful.push({_id:d.id,email:f}):n.unsuccessful.push({_id:d.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=se(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Jr(o))throw n.userId===or()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await jt(n)?1:0;await t.quotas.removeUsers(1,s),await gm(n),await nn.invalidateUser(i),await di(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await us("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation})}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 qc(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 q0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function W0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(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 Mt(t,e){if(t==null)throw"Must supply an email address to view";let r=await cr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=ba(n)),n}async function Q0(t){try{let e=await Mt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Wc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=dc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await cr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=ba(s)),s}async function Im(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 hf(ur(),i)).rows}function lS(t,e){if(e)return lc(ot(t),e._id)}async function dS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await cr("by_email2",{...e,startkey:i,endkey:`${n}${ke}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=ba(o)),o}var j0=8;async function pS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??j0,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 Wc(r,a),l=p=>lS(r,p)):e?.string?.email?(u=await dS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await qc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Xn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Ur.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Xn(null,a))).rows.map(m=>m.doc),uf(u,s,{paginate:!0,property:c,getKey:l})}async function H0(){return(await pf("by_email2",{limit:0,include_docs:!1})).total_rows}async function Y0(){let t=0;async function e(r){let n=await pS({bookmark:r}),i=await Promise.all(n.data.map(jt));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function K0(t){return delete t.admin,delete t.builder,t}function xm(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 z0(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ht.save(t,{hashPassword:!1})}async function J0(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ht.save(t,{hashPassword:!1})}var fS=3600;async function Z0(t,e){let n=await Df(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 X0(t){let e=await Ht.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Da({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=Z0),!e)try{e=Q()}catch{e=await Ut.lookupTenantId(t)}let i=await Yo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,fS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await Ht.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function eM(t){let e=await Yo(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await X0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,fS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await Yo()).delete(t)}var Dm={};N(Dm,{Writethrough:()=>Rm});var mS=1e4,wm=null;async function bm(){if(!wm){let t=await Xp();wm=new ti(t)}return wm}function Qc(t,e){return t.name+e}function hS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function tM(t,e,r=mS){let n=await bm(),i=e._id,s;i&&(s=await n.get(Qc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let p=await t.put(l,{force:!0});a._id=p.id,a._rev=p.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;Zi("Ignoring conflict in write-through cache")}})).executed||Zi("Ignoring redlock conflict in write-through cache")),s=hS(a,o?null:s?.lastWrite),a._id&&await n.store(Qc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function rM(t,e){let r=await bm(),n=Qc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=hS(s),await r.store(n,i)}return i.doc}async function nM(t,e,r){let n=await bm();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Qc(t,i))}finally{await t.remove(i,r)}}var Rm=class{constructor(e,r=mS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return tM(this.db,e,r)}async get(e){return rM(this.db,e)}async remove(e,r){return nM(this.db,e,r)}};var vm={};N(vm,{createCode:()=>sM,getCode:()=>oM,invalidateCode:()=>aM});var iM=ve.fromHours(1).toSeconds();async function sM(t,e){let r=Oe();return await(await Ko()).store(r,{userId:t,info:e},iM),r}async function oM(t){let r=await(await Ko()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function aM(t){await(await Ko()).delete(t)}var Nm={};N(Nm,{DocWritethrough:()=>Cm,DocWritethroughProcessor:()=>Ca,getProcessor:()=>cM,init:()=>gS});var uM=100,jc,Ca=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:uM}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){let i=Ke(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Cm=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 gS(){return jc=new Ca().init(),jc}function cM(){return jc||gS()}function Lm(t){return`config${v}${t}`}async function kt(t){let e=se();try{return await e.get(Lm(t))}catch(r){if(r.status===404)return;throw r}}async function lM(t){return se().put(t)}async function kc(){let t=await kt("settings");return t||(t={_id:Lm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Na({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Pc({config:t.config}),t}async function Mm(){return(await kc()).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 kt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Pc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Kr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await kt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function dM(){return await kt("google")}async function Hc(){return(await dM())?.config}async function km(){if(!h.SELF_HOSTED)return Pm();let t=await Hc();return(!t||!t.activated)&&(t=Pm()),t}function Pm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function pM(){return kt("logos_oidc")}async function fM(){return kt("oidc")}async function mM(){let t=(await fM())?.config;return t?.configs&&t.configs[0]}async function Fm(t){let e=(await kt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function yS(){return kt("smtp")}async function hM(t){let e=await yS();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 gM(){return(await kt("scim"))?.config}async function yM(){return kt("ai")}var Bm={};N(Bm,{BUILDER:()=>SM,BUILTIN_PERMISSIONS:()=>Yc,CREATOR:()=>OM,GLOBAL_BUILDER:()=>IM,PermissionImpl:()=>fe,PermissionLevel:()=>Rs,PermissionType:()=>Ga,doesHaveBasePermission:()=>_M,getAllowedLevels:()=>AS,getBuiltinPermissionByID:()=>TM,getBuiltinPermissions:()=>EM,isPermissionLevelHigherThanRead:()=>AM,levelToNumber:()=>_S});var ES=j(require("lodash/flatten")),TS=j(require("lodash/fp/cloneDeep")),fe=class{constructor(e,r){this.type=e,this.level=r}};function _S(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function AS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Yc={PUBLIC:{_id:"public",name:"Public",permissions:[new fe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new fe("query","read"),new fe("table","read"),new fe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new fe("query","write"),new fe("table","write"),new fe("automation","execute"),new fe("legacy_view","read"),new fe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new fe("table","write"),new fe("user","read"),new fe("automation","execute"),new fe("webhook","read"),new fe("legacy_view","read"),new fe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new fe("table","admin"),new fe("user","admin"),new fe("automation","admin"),new fe("webhook","read"),new fe("query","admin"),new fe("legacy_view","read"),new fe("app","read")]}};function EM(){return(0,TS.default)(Yc)}function TM(t){return Object.values(Yc).find(r=>r._id===t)}function _M(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Yc),s=(0,ES.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&AS(o.level).indexOf(e)!==-1)return!0;return!1}function AM(t){return _S(t)>1}var SM="builder",OM="creator",IM="globalBuilder";var Vm={};N(Vm,{FlagSet:()=>zc,all:()=>bM,flags:()=>Gm,init:()=>xM,isEnabled:()=>RM,parseEnvFlags:()=>Zc,shutdown:()=>wM,testutils:()=>$m});var Jc=j(require("crypto"));var SS=require("posthog-node"),OS=j(require("dd-trace"));var IS=require("lodash");var Kc;function xM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Kc=new SS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:ve.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function wM(){Kc?.shutdown()}function Zc(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}var zc=class{constructor(e){this.flagSchema=e;this.setId=Jc.randomUUID()}defaults(){return(0,IS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await OS.default.trace("features.fetch",async e=>{let r=Rf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:l,key:p,value:m}of Zc(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=m,n[`flags.${p}.source`]="environment"}let a=or(),u=a?._id;if(!u){let l=xf();l&&(u=Jc.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,Kc&&u){n.readFromPostHog=!0;let l={tenantId:c},p=await Kc.getAllFlags(u,{personProperties:l});for(let[m,d]of Object.entries(p)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${d}`);continue}if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${d}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=d,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${d}`,f)}}}bf(this.setId,i);for(let[l,p]of Object.entries(i))n[`flags.${l}.value`]=p;return e?.addTags(n),i})}},Gm=new zc(Sh);async function RM(t){return await Gm.isEnabled(t)}async function bM(){return await Gm.fetch()}var $m={};N($m,{setFeatureFlags:()=>xS,withFeatureFlags:()=>CM});function DM(){let t={};for(let{tenantId:e,key:r,value:n}of Zc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function vM(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 xS(t,e){let r=DM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=vM(r);return Ro({TENANT_FEATURE_FLAGS:n})}function CM(t,e,r){let n=xS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var eh={};N(eh,{adminOnly:()=>cl,auditLog:()=>sl,authError:()=>Ue,buildAuthMiddleware:()=>Ek,buildCsrfMiddleware:()=>_k,buildTenancyMiddleware:()=>Tk,builderOnly:()=>dl,builderOrAdmin:()=>ll,google:()=>gr,internalApi:()=>al,joiValidator:()=>Ua,oidc:()=>yr,passport:()=>Ak,platformLogout:()=>wk,refreshOAuthToken:()=>Ik,ssoCallbackUrl:()=>sn,updateUserOAuth:()=>xk});var Xm={};N(Xm,{adminOnly:()=>cl,auditLog:()=>sl,authError:()=>Ue,authenticated:()=>il,builderOnly:()=>dl,builderOrAdmin:()=>ll,correlation:()=>BS,csp:()=>QS,csrf:()=>ul,datasource:()=>gk,errorHandling:()=>$S,google:()=>gr,internalApi:()=>al,ip:()=>HS,joiValidator:()=>Ua,local:()=>Os,oidc:()=>yr,pino:()=>kS,querystringToBody:()=>VS,ssoCallbackUrl:()=>sn,tenancy:()=>ol});var Os={};N(Os,{authenticate:()=>UM,options:()=>PM});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 Mm(),n="/api/global/auth";return Hr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var qm="Invalid credentials",NM="This account has expired. Please reset your password",PM={passReqToCallback:!0};async function UM(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await Mt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,qm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,qm)):i.password?await Pf(r,i.password)?(delete i.password,n(null,i)):Ue(n,qm):(console.info(`user=${e} has no password set`,i),Ue(n,NM))}var gr={};N(gr,{buildVerifyFn:()=>bS,getCallbackUrl:()=>kM,strategyFactory:()=>Wm});var Pa=t=>Promise.resolve(t);async function Xc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ue(r,"sso user id required");if(!t.email)return Ue(r,"sso user email required");let i=Xi(t.userId),s;try{s=await pi(i)}catch(a){if(!a.status||a.status!==404)return Ue(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Mt(t.email)),!s&&e)return Ue(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await LM(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 LM(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 MM=require("passport-google-oauth").OAuth2Strategy;function bS(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return Xc(s,!0,i,t)}}async function Wm(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=bS(r);return new MM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function kM(t){return sn("google",t)}var yr={};N(yr,{buildVerifyFn:()=>vS,fetchStrategyConfig:()=>$M,getCallbackUrl:()=>VM,strategyFactory:()=>GM});var DS=j(require("node-fetch"));var FM=require("@techpass/passport-openidconnect").Strategy;function vS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:BM(n,i),oauth2:{accessToken:s,refreshToken:o}};return Xc(l,!1,c,t)}}function BM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Mf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function GM(t,e){try{let r=vS(e),n=new FM(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function $M(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,DS.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 VM(){return sn("oidc")}var Qm={};N(Qm,{postAuth:()=>QM,preAuth:()=>WM});var qM=require("passport-google-oauth").OAuth2Strategy;async function CS(){let t=await km();if(!t)throw new Error("No google configuration found");return t}async function WM(t,e,r){let n=await CS(),s=`${await Na({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Wm(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 QM(t,e,r){let n=await CS(),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 qM({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 pr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var jM=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(jM);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 Jm={};N(Jm,{SecretOption:()=>US,decrypt:()=>zm,decryptFile:()=>ZM,encrypt:()=>KM,encryptFile:()=>zM,getSecret:()=>Km});var Er=j(require("crypto")),on=j(require("fs")),Hm=j(require("zlib"));var jm=require("path"),el="aes-256-ctr",PS="-",HM=1e4,YM=32,tl=16,Ym=16,US=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(US||{});function Km(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 rl(t,e){return Er.default.pbkdf2Sync(t,e,HM,YM,"sha512")}function KM(t,e="api"){let r=Er.default.randomBytes(tl),n=rl(Km(e),r),i=Er.default.createCipheriv(el,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${PS}${a}`}function zm(t,e="api"){let[r,n]=t.split(PS),i=Buffer.from(r,"hex"),s=rl(Km(e),i),o=Er.default.createDecipheriv(el,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function zM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,jm.join)(t,e);if(on.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=on.default.createReadStream(i),o=on.default.createWriteStream((0,jm.join)(t,n)),a=Er.default.randomBytes(tl),u=Er.default.randomBytes(Ym),c=rl(r,a),l=Er.default.createCipheriv(el,c,u);return o.write(a),o.write(u),s.pipe(Hm.default.createGzip()).pipe(l).pipe(o),new Promise(p=>{o.on("finish",()=>{p({filename:n,dir:t})})})}async function JM(t){let e=on.default.createReadStream(t),r=await NS(e,tl),n=await NS(e,Ym);return e.close(),{salt:r,iv:n}}async function ZM(t,e,r){if(on.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await JM(t),s=on.default.createReadStream(t,{start:tl+Ym}),o=on.default.createWriteStream(e),a=rl(r,n),u=Er.default.createDecipheriv(el,a,i),c=Hm.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,p)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),p(m)}),u.on("error",m=>{o.close(),p(m)}),c.on("error",m=>{o.close(),p(m)}),o.on("error",m=>{o.close(),p(m)})})}function NS(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 MS=j(require("dd-trace")),XM=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ek(){return new Date(Date.now()-XM).toISOString()}function LS(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}async function tk(t,e){if(ua(t))return{valid:!0,user:void 0};let n=zm(t).split(v)[0];return Ge(n,async()=>{let i;try{let s=se();i=await cr("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 nl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function il(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=nl(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=nl(n,"x-budibase-token"),c=ii(n,"budibase:auth")||yc(u),l=nl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let p=nl(n,"x-budibase-tenant-id"),m=!1,d,f=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await Tm(O,y),e&&e.populateUser?d=await Da({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):d=await Da({userId:O,tenantId:S.tenantId,email:S.email}),d.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<ek()&&await Em(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 tk(l,y);O&&(m=!0,g="api_key",d=S,f=!S)}!d&&p?d={tenantId:p}:d&&"password"in d&&delete d.password,m||(m=!1);let T=y=>y&&y.email;return T(d)&&MS.default.setUser({id:d._id,tenantId:d.tenantId,budibaseAccess:d.budibaseAccess,status:d.status}),LS(n,{authenticated:m,user:d,internal:f,version:o,publicEndpoint:s,loginMethod:g}),T(d)?_p(d,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 LS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var rk=async(t,e)=>e(),sl=rk;function ol(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=sa(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var al=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 nk=["GET","HEAD","OPTIONS"],ik=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ul(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||nk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ik.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 cl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var ll=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var dl=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var sk=require("koa-pino-logger"),ok=require("correlation-id");function ak(){return{logger:oc,genReqId:ok.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}function uk(){return h.HTTP_LOGGING?sk(ak()):(t,e)=>e()}var ck=uk(),kS=ck;var FS=require("uuid"),lk=require("correlation-id"),dk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,FS.v4)()),lk.withId(r,()=>e())},BS=dk;function GS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of _T){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function pk(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:xc(r)};if(GS(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 $S=pk;function VS(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 WS=j(require("crypto")),qS={"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 fk(t,e){try{let r=WS.default.randomBytes(16).toString("base64"),n={...qS};n["script-src"]=[...qS["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 QS=fk;var Ua={};N(Ua,{body:()=>mk,params:()=>hk});var Zm=j(require("joi"));function jS(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:Zm.default.any().optional(),updatedAt:Zm.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 mk(t,e){return jS(t,"body",e)}function hk(t,e){return jS(t,"params",e)}var HS=async(t,e)=>t.ip?await wf(t.ip,()=>e()):e();var gk={google:Qm};var YS=require("koa-passport"),yk=require("passport-local").Strategy,pl=require("passport-oauth2-refresh"),Ek=il,Tk=ol,_k=ul,Ak=YS;YS.use(new yk(Os.options,Os.authenticate));async function Sk(t,e){let r=await yr.getCallbackUrl(),n,i;try{if(n=await yr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await yr.strategyFactory(n,Pa)}catch{throw new Error("Could not refresh OAuth Token")}return pl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{pl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Ok(t,e){let r=await gr.getCallbackUrl(t),n;try{n=await gr.strategyFactory(t,r,Pa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return pl.use(n),new Promise(i=>{pl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Ik(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Fm(r);return n?Sk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Hc();return n?Ok(n,t):{err:{data:"Google configuration not found"}}}}}async function xk(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 wk(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=ii(e,"budibase:auth"),s=await $c(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 Gc.logout(e.user?.email),await va(r)}var rh={};N(rh,{validate:()=>Ck});var b=j(require("joi")),Rk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function th(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)});th(e,t)}function Dk(t){let e=b.default.object({type:b.default.string().allow(...Object.values(yl)).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(gl)),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(El).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(...Rk),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()}))})});th(n,t)}function vk(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(...Oh).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});th(n,t)}function Ck(t){switch(t?.type){case"component":bk(t);break;case"datasource":Dk(t);break;case"automation":vk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var nh={};N(nh,{Client:()=>Be,clients:()=>Wr,locks:()=>oi,utils:()=>ec});var ih={};N(ih,{isBlacklisted:()=>Pk,refreshBlacklist:()=>ZS});var KS=j(require("dns")),ml=j(require("net"));var zS=require("util"),fl,Nk=(0,zS.promisify)(KS.default.lookup);async function JS(t){return ml.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Nk(t,{all:!0})).map(r=>r.address)}async function ZS(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(ml.default.isIP(i))r.push(i);else{let s=await JS(i);r=r.concat(s)}}fl=r}async function Pk(t){if(fl||await ZS(),fl?.length===0)return!1;let e;return ml.default.isIP(t)?e=[t]:e=await JS(t),!!fl?.find(r=>e.includes(r))}var oh={};N(oh,{init:()=>Lk});var Uk={"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 XS(t,e){let r=Uk[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=XS(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Ge(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return MA()}};var eO,sh;function Lk(t){hr||Bc(),sh||(sh=new La(t)),eO||(eO=hr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await sh.processEvent(r,n,i)}))}var hh={};N(hh,{COUNT_FIELD_NAME:()=>fh,Sql:()=>uO,SqlTable:()=>hl,designDoc:()=>mh,utils:()=>Sf});var iO=require("knex");var Mk=require("knex");function ah(t){return["link","formula","ai"].indexOf(t)!==-1}function tO(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,d]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=d.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(d.meta&&d.meta.toKey&&d.meta.toTable){let{toKey:T,toTable:y}=d.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${T}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":d.timeOnly?t.time(m):t.datetime(m,{useTz:!d.ignoreTimezones});break;case"array":case"bb_reference":Pr.schema.isDeprecatedSingleUserColumn(d)?t.text(m):t.json(m);break;case"link":if(d.relationshipType!=="many-to-one"&&d.relationshipType!=="many-to-many"){if(!d.foreignKey||!d.tableId)throw new Error("Invalid relationship schema");let{tableName:T}=Ef(d.tableId),y=r[T];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=y.primary[0],S=y.schema[O].externalType;S?t.specificType(d.foreignKey,S):t.integer(d.foreignKey).unsigned(),t.foreign(d.foreignKey).references(`${T}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${d.type} is not a valid SQL type`;default:Ri.unreachable(g)}}let p=i?n?.schema[i.old].type:void 0;return i&&p&&!ah(p)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([d,f])=>!ah(f.type)&&e.schema[d]==null).forEach(([d,f])=>{i?.old===d||ah(f.type)||(n.constrained&&n.constrained.indexOf(d)!==-1&&t.dropForeign(d),t.dropColumn(d))}),t}function Fk(t,e,r){return t.createTable(e.name,n=>{tO(n,e,r)})}function Bk(t,e,r,n,i){return t.alterTable(e.name,s=>{tO(s,e,r,n,i)})}function Gk(t,e){return t.dropTable(e.name)}var uh=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,Mk.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=Fk(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=Bk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=ns(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=Gk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ns(n)}},hl=uh;var sO=require("lodash"),fh="__bb_total";function rO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function ch(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function $k(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 oO(t){return Array.isArray(t)?t.map(e=>oO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function nO(t){return t.sourceType==="internal"||t.sourceId===Al}function Vk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function aO(t,e='"'){return`${e}${Vk(t,e)}${e}`}function lh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=aO(t[r],e));return`[${t.join(",")}]`}var qk={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},dh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Ur.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime"){if(Tf(e))return null;if(_f(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,sO.cloneDeep)(e);for(let r of Object.values(_r)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Yt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(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=p=>n.match(new RegExp(`^${p}\\.`));if(!s)return e;for(let p of s){let m=p.tableName,d=a?.[m]||m,f=l(m)||l(d),g=l(p.column);if((f||g)&&p.to&&p.tableName){let T=this.knex.select(this.knex.raw(1)).from({[d]:m}),y=T.clone(),O=Af(p),S;if(f?S=n:S=n.replace(new RegExp(`^${p.column}.`),`${a?.[p.tableName]||p.tableName}.`),O){let L=a?.[O.through]||p.through,E=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(E,function(){this.on(`${d}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(A=>{A.whereExists(i(S,y)),r&&A.orWhereNotExists(T.clone().innerJoin(E,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${d}.${p.to}`,E=`${c}.${p.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(E)),e=e.where(A=>{A.whereExists(i(S,y.clone())),r&&A.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,T,y){let O=(S,L,E)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ce=>T(ce,F?`${F}.${w}`:w,E))};for(let S in f){let L=f[S],E=ea(S),A=E.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let F=c(u);e=y(e,w.id.map(ce=>F?`${F}.${ce}`:ce),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,qk[g],E,(F,ce)=>O(ce,F,L)));else{let F=c(u);e=T(e,F?`${F}.${E}`:E,L)}}}let p=(f,g,T)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${T.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${T}%`]))),m=(f,g=!1)=>{function T(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,O,S)=>(y=T(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(lh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(lh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,O,S)=>T(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(aO(lh(S)))])):l(f,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(f===r?.notContains&&(L=L.not),L=L.where(E=>{for(let A of S){f===r?.containsAny?E=E.or:E=E.and;let B=typeof A=="string"?`"${A.toLowerCase()}"`:A;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),f===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(T=>{this.addFilters(T,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let T of f.conditions)g.orWhere(y=>this.addFilters(y,{...T,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,T)=>{let y=this.getFieldSchema(g),O=Array.isArray(T)?T:[T];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let S of O)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,O)},(f,g,T)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(T)?T:[T]))),r.string&&l(r.string,"string",(f,g,T)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${T.toLowerCase()}%`]):f.whereILike(g,`${T}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",p),r.range&&l(r.range,"range",(f,g,T)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(T.low)&&(T.low=""),y(T.high)&&(T.high="");let O=mc(T.low),S=mc(T.high),L=this.getFieldSchema(g),E=g,A=T.high,B=T.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(A!=null&&(A=`${A.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),A=this.knex.raw("CAST(? AS INTEGER)",[T.high]),B=this.knex.raw("CAST(? AS INTEGER)",[T.low])),o&&(f=f.or),O&&S?f.whereBetween(E,[B,A]):O?f.where(E,">=",B):S?f.where(E,"<=",A):f}),r.equal&&l(r.equal,"equal",(f,g,T)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.whereNotNull(O).andWhere(O,T))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?f.whereLike(g,`${T.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),T])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,T)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.not.whereNull(O).and.where(O,"!=",T)).or.whereNull(O)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?f.not.whereLike(g,`${T.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),T])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let d=s?.[this.table._id]||this.table._id;return r.documentType&&!yf(this.table)&&d&&e.andWhereLike(`${d}._id`,`${Ar(r.documentType)}%`),e}isSqs(){return nO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;nO(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${fh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let p=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(p):m=this.rawQuotedIdentifier(p),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let p of n){let{tableName:m,through:d,to:f,from:g,fromPrimary:T,toPrimary:y}=p;if(!m||!r)continue;let O=c[m];if(!O)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,L=a?.[r]||r,E=d&&a?.[d]||d,A=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=$k(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ce=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),an=`${S}.${y||f}`,V=s.from(A).orderBy(an),k=d&&y&&T,D=k?`${E}.${g}`:`${S}.${f}`,W=k?`${L}.${T}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(d,{alias:E,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${E}.${f}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(w.map(ie=>this.rawQuotedIdentifier(ie))).limit(ch()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,p),K=U(this.knex.raw(`json_group_array(json_object(${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 ${ch()})`));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(ch())});K=s.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[p.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,p=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),d=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(d,function(){for(let f of n){let g=f.fromPrimary,T=f.from;this.orOn(`${p}.${g}`,"=",`${l}.${T}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,T=f.to;this.orOn(`${c}.${g}`,`${l}.${T}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,T=f.to;this.orOn(`${p}.${g}`,"=",`${c}.${T}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let d=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=d}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let p=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):p.length>0?u=this.addAggregations(u,p):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&p.length===0){let m=this.query.tableAliases?.[o.name]||o.name,d=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(d,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},ph=class extends hl{constructor(r,n=rO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=ns(r);return i==="sqlite3"&&(s=oO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,iO.knex)(s),a,u=new dh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:rO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let p=[];for(let m of a)p.push(await n(m,o));return p}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let p;s==="mssql"?p=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(p=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(p,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Al){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 Ih.includes(r.type)&&!Pr.schema.isDeprecatedSingleUserColumn(r)}log(r,n){ra(this.getSqlClient(),r,n)}},uO=ph;var mh={};N(mh,{base:()=>Wk});function Wk(t){return{_id:sr,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Qk={...oa,...ye},jk=(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
|
+
}`,"platform_users_lowercase_2")},Xo=async(t,e)=>{let r={account_by_email:U_,platform_users_lowercase_2:L_};return at(Se.PLATFORM_INFO.name,async n=>{let i=r[t];return pf(t,e,n,i,{arrayResponse:!0})})},M_={by_email2:v_,by_api_key:N_,by_app:C_},lr=async(t,e,r,n)=>{r||(r=se());let i=M_[t];return pf(t,e,r,i,n)};async function ff(t,e,r){let n=se(),i=M_[t];return Zo(t,e,n,i,r)}var mf=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()}},k_=mf;var B_=j(require("node-fetch"));var ea=Ur.removeKeyNumbering;function ei(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=ea(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>ei(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,T="AND")=>{if(ei(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${T} ${e.preprocess(g[O],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>ei(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let T=r?"*:* AND ":"",y=r?"AND":void 0;return T+"NOT "+u(f,g,y)},p=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(ei(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let T=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)T+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${T})`};function d(f,g,T){let y="";for(let[O,S]of Object.entries(f)){O=ea(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let L=g(O,S);if(L!=null){if(y.length>0||n.length>0){let E=T?.mode?T.mode:r?"OR":"AND";y+=` ${E} `}y+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(T?.returnBuilt)return y;n+=y}if(this.#e.string&&d(this.#e.string,(f,g)=>ei(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&d(this.#e.range,(f,g)=>{if(ei(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let T=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${T} TO ${y}]`}),this.#e.fuzzy&&d(this.#e.fuzzy,c),this.#e.equal&&d(this.#e.equal,a),this.#e.notEqual&&d(this.#e.notEqual,(f,g)=>ei(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&d(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&d(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&d(this.#e.oneOf,m),this.#e.contains&&d(this.#e.contains,u),this.#e.notContains&&d(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&d(this.#e.containsAny,p),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,d({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await F_(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await F_(n,i,r);throw s}}};async function F_(t,e,r){let n=await(0,B_.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 G_(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 G_(t,e,r,c)}async function aN(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 uN(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 G_(t,e,r,n)}}var hf={};C(hf,{createUserIndex:()=>cN});async function cN(){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 $_(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 lN(t){return $_(t,409)}var yf=`${v}${v}`,q_=/^\[.*]$/g,pN=encodeURIComponent(" "),W_=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,fN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function fc(t){return t.startsWith("datasource"+v)}function mN(t){return!fc(t)}function ns(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function Ef(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==wi||t?.sourceType==="external"?!0:!!(t?._id&&fc(t._id))}function hN(t,e){return`${t}${yf}${encodeURIComponent(e)}`}function gN(t){return fc(t)?encodeURIComponent(t):t}function yN(t){return encodeURIComponent(t)}function Tf(t){let e=t.split(yf),r=e.shift(),n=e.join(yf);if(n.includes(pN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function EN(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 TN(t){return Array.isArray(t)||typeof t=="string"&&t.match(q_)!=null}function _N(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(q_)!=null?t.substring(1,t.length-1):t}function AN(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 _f(t){let e=t.trim();if(!W_.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function Af(t){return W_.test(t.trim())}function mc(t){return t!=null&&t!==""}function SN(t){return fN.test(t)}function ra(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 ON(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Sf(t){if(ON(t))return t}var Q_="Database does not exist.";function j_(t){return(0,H_.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var jr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function dN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new rs(t,r,e);return new Hi(n)}var rs=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=j_(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=j_(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new jr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===Q_)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new jr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new jr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Sh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new jr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Oe()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===Q_)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 jr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${or}`;return ra("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(or)){let e=await this.get(or);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new jr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ke(t,e){return new Hi(new rs(t,e))}async function at(t,e,r){let n=Ke(t,r);return await e(n)}async function lf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await zu(e)}async function gf(t,e){let r=await zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var K_=null;function cr(t){return t||(t=Q()),ta(t)}function z_(t){return t||(t=Q()),t===ge?Se.AUDIT_LOGS.name:`${t}${v}${Se.AUDIT_LOGS.name}`}function IN(t){return t||(t=Q()),t===ge?Se.SCIM_LOGS.name:`${t}${v}${Se.SCIM_LOGS.name}`}function ta(t){return!t||t===ge?Se.GLOBAL.name:`${t}${v}${Se.GLOBAL.name}`}function If(){return h.PLATFORM_URL}function Yr(){return!!h.MULTI_TENANCY}function xN(){return!!Ce.get()?.tenantId}function wN(){return h.MULTI_TENANCY}function is(t){if(!t)return;if(!Yr())return ge;let e=t.split(v),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function RN(t){let e;try{e=Ce.get()}catch{e={}}return e={...e,...t},e}async function Hr(t,e){vN();let r=RN(t);return Ce.run(r,e)}async function bN(t){return await Z_(),Hr({tenantId:is(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function xf(t,e){let r=is(t);return Hr({tenantId:r,appId:t},e)}async function Ge(t,e){return h.MULTI_TENANCY||(t=t||ge),Hr(t?{tenantId:t}:{},e)}async function DN(t,e){return J_(t,e)}async function J_(t,e,r){if(!t)throw new Error("appId is required");let n=is(t),i={appId:t,...r};return n&&(i.tenantId=n),Hr(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Hr(r,e)}function vN(){if(Ce.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function CN(t,e){return J_(t,e,{isMigrating:!0})}function ar(){try{return Ce.get()?.identity}catch{}}function Q(){if(!Yr())return ge;let e=Ce.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Wp(){return Ce.get()?.automationId}function Pe(){let e=Ce.get()?.appId;return!e&&h.isTest()&&K_?K_:e}function wf(){return Ce.get()?.ip}var NN=()=>{let t=Pe();if(!t)throw new Error("Could not get appId");return ot(t)};function PN(t,e){if(!t)throw new Error("Must supply environment variables.");return Hr({environmentVariables:t},e)}function UN(t){return Hr({isScim:!0},t)}function Rf(t,e){return Hr({ip:t},e)}async function Z_(t=!h.isTest()){let e=os();if(!e||e.snippets)return;let r,n=ss();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function LN(){let t=Ce.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=Ce.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ke(ta(t?.tenantId))}function MN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ke(z_())}function ss(t){let e=Pe();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ke(e,t)}function kN(t){let e=Pe();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ke(ot(e),t)}function FN(t){let e=Pe();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ke(Hu(e),t)}function Pt(){return!!Ce.get()?.isScim}function os(){try{return Ce.get()}catch{return}}function bf(t){let e=os();if(e)return e.featureFlagCache?.[t]}function Df(t,e){let r=os();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function BN(t){let e=os();if(e)return e.viewToTableCache?.[t]}function GN(t,e){let r=os();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function jt(t){let e=Q();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Xp()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?jt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[jt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?jt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>jt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async bustCache(e){let r=await this.getClient();try{await r.delete(jt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?jt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var as=new ti,pr=(a=>(a.CHECKLIST="checklist",a.INSTALLATION="installation",a.ANALYTICS_ENABLED="analyticsEnabled",a.UNIQUE_TENANT_ID="uniqueTenantId",a.EVENTS="events",a.BACKFILL_METADATA="backfillMetadata",a.EVENTS_RATE_LIMIT="eventsRateLimit",a))(pr||{}),ri=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ri||{}),hc=(...t)=>as.keys(...t),ni=(...t)=>as.get(...t),fr=(...t)=>as.store(...t),na=(...t)=>as.delete(...t),Kr=(...t)=>as.withCache(...t),us=(...t)=>as.bustCache(...t);var nn={};C(nn,{getUser:()=>Da,getUsers:()=>nM,invalidateUser:()=>va});var oa={};C(oa,{addTenantToUrl:()=>$N,getTenantDB:()=>vf,getTenantIDFromCtx:()=>sa,isUserInAppTenant:()=>VN});function vf(t){return Ke(cr(t))}function $N(t){let e=Q();if(Yr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var VN=(t,e)=>{let r;return e?r=e.tenantId||ge:r=Q(),(is(t)||ge)===r},qN=Object.values(ws),sa=(t,e)=>{if(!Yr())return ge;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=qN),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(If()).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={};C(ca,{getPlatformDB:()=>ut,tenants:()=>$f,users:()=>Ut});var Ut={};C(Ut,{addSsoUser:()=>eA,addUser:()=>KN,getUserDoc:()=>X_,lookupTenantId:()=>WN,removeUser:()=>zN,updateUserDoc:()=>QN});function ut(){return Ke(Se.PLATFORM_INFO.name)}async function WN(t){return h.MULTI_TENANCY?(await X_(t)).tenantId:ge}async function X_(t){return ut().get(t)}async function QN(t){await ut().put(t)}function jN(t,e){return{_id:t,tenantId:e}}function YN(t,e,r){return{_id:e,userId:t,tenantId:r}}function HN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Cf(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 eA(t,e,r,n){return Cf(t,()=>HN(t,e,r,n))}async function KN(t,e,r,n){let i=[Cf(e,()=>jN(e,t)),Cf(r,()=>YN(e,r,t))];n&&i.push(eA(n,r,e,t)),await Promise.all(i)}async function zN(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 $f={};C($f,{addTenant:()=>hP,exists:()=>pP,getTenantIds:()=>dP,removeTenant:()=>gP,tenacyLockOptions:()=>Gf});var oi={};C(oi,{AUTO_EXTEND_POLLING_MS:()=>lA,doWithLock:()=>ds,newRedlock:()=>si});var cA=j(require("redlock"));var cs={};C(cs,{Duration:()=>ve,DurationType:()=>Ff,clearCookie:()=>zr,compare:()=>Uf,getAppIdFromCtx:()=>iP,getCookie:()=>ii,hasCircularStructure:()=>aP,hash:()=>Pf,isAudited:()=>Mf,isClient:()=>sP,isPublicApiRequest:()=>nP,isServingApp:()=>eP,isServingBuilder:()=>tP,isServingBuilderPreview:()=>rP,isValidInternalAPIKey:()=>ua,newid:()=>Oe,openJwt:()=>yc,resolveAppUrl:()=>sA,setCookie:()=>oA,timeout:()=>oP,validEmail:()=>kf});var Nf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),JN=h.SALT_ROUNDS||10;async function Pf(t){let e=await Nf.genSalt(JN);return Nf.hash(t,e)}async function Uf(t,e){return Nf.compare(t,e)}var gc=j(require("jsonwebtoken")),Lf="app"+v,rA="/app/",nA="/app/preview",ZN="/builder",iA=`${ZN}/app/`,XN="/api/public/v";function aa(t){return t&&t.startsWith(Lf)?t:void 0}async function sA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=sa(t,{includeStrategies:["subdomain"]}));let s=(await Ge(n,()=>Jo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function eP(t){return t.path.startsWith(`/${Lf}`)?!0:t.path.startsWith(rA)}function tP(t){return t.path.startsWith(iA)}function rP(t){return t.path.startsWith(nA)}function nP(t){return t.path.startsWith(XN)}async function iP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=aa(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=aa(t.request.body.appId));let n=tA(t.path);!r&&n&&(r=aa(n));let i=t.path.startsWith(nA),s=t.path.startsWith(rA)&&!i;!r&&s&&(r=aa(await sA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(iA)){let a=tA(t.request.headers.referer);r=aa(a)}return r}function tA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Lf))}function yc(t){if(t)try{return gc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return gc.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 yc(r)}function oA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=gc.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){oA(t,null,e)}function sP(t){return t.headers["x-budibase-type"]==="client"}function oP(t){return new Promise(e=>setTimeout(e,t))}function Mf(t){return!!Th[t]}function aP(t){if(typeof t!="object")return!1;try{JSON.stringify(t)}catch(e){if(e instanceof Error&&e?.message.includes("circular structure"))return!0}return!1}function kf(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 Ff=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Ff||{}),aA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},ve=class t{static convert(e,r,n){return n*aA[e]/aA[r]}static from(e,r){return{to:n=>t.convert(e,n,r),toMs:()=>t.convert(e,"milliseconds",r),toSeconds:()=>t.convert(e,"seconds",r)}}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function uP(t,e){if(t==="custom")return si(e);switch(t){case"try_once":return si(ls.TRY_ONCE);case"try_twice":return si(ls.TRY_TWICE);case"default":return si(ls.DEFAULT);case"delay_500":return si(ls.DELAY_500);case"auto_extend":return si(ls.AUTO_EXTEND);default:throw Ri.unreachable(t)}}var ls={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function si(t={}){let e={...ls.DEFAULT,...t},n=(await tf()).getClient();return new cA.default([n],e)}function cP(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var lA=ve.fromSeconds(10).toMs();async function ds(t,e){let r=await uP(t.type,t.customOptions),n,i;try{let s=cP(t),o=t.type==="auto_extend"?lA: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 Bf=Se.PLATFORM_INFO.docs.tenants,Gf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function dP(){return(await Ec()).tenantIds}async function Ec(){let t=ut(),e;try{e=await t.get(Bf)}catch(r){if(r.status===404)e=await mP();else throw r}return e}async function pP(t){return(await Ec()).tenantIds.indexOf(t)!==-1}function fP(){return{_id:Bf,tenantIds:[]}}async function mP(){let t=ut(),e=fP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Bf);throw r}return e}async function hP(t){let e=ut();await ds(Gf,async()=>{let r=await Ec();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function gP(t){try{await ds(Gf,async()=>{let e=ut(),r=await Ec();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={};C(ai,{getAccount:()=>Jr,getAccountByTenantId:()=>ps,getStatus:()=>yP});var dA=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";Co.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,dA.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 Vf=new la(h.ACCOUNT_PORTAL_URL),qf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Jr=async t=>{if(qf)return;let e={email:t},r=await Vf.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(qf)return;let e={tenantId:t},r=await Vf.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]},yP=async()=>{if(qf)return;let t=await Vf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var _s={};C(_s,{UserDB:()=>Ht,addAppBuilder:()=>X0,bulkGetGlobalUsersById:()=>qc,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>wm,doesUserExist:()=>H0,getAccountHolderFromUsers:()=>vc,getAllUserIds:()=>j0,getAllUsers:()=>Y0,getById:()=>pi,getCreatorCount:()=>J0,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>hA,getExistingTenantUsers:()=>mA,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>pS,getGlobalUserByEmail:()=>Mt,getPlatformUsers:()=>Tc,getUserCount:()=>z0,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>IA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>OA,isBuilder:()=>gs,isCreator:()=>Yt,isGlobalBuilder:()=>SA,paginatedUsers:()=>mS,removeAppBuilder:()=>eM,removePortalUserPermissions:()=>Z0,searchExistingEmails:()=>jf,searchGlobalUsersByApp:()=>Wc,searchGlobalUsersByAppAccess:()=>xm,searchGlobalUsersByEmail:()=>fS,validateUniqueUser:()=>Dc});var rm={};C(rm,{getAccountHolderFromUsers:()=>vc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>IA,hasBuilderPermissions:()=>_t,isAdmin:()=>en,isAdminOrBuilder:()=>OA,isBuilder:()=>gs,isCreator:()=>Yt,isGlobalBuilder:()=>SA,validateUniqueUser:()=>Dc});var Qf={};C(Qf,{createCode:()=>TP,deleteCode:()=>AP,getCode:()=>_P,getExistingInvites:()=>Wf,getInviteCodes:()=>fA,updateCode:()=>EP});var pA=ve.fromDays(7).toSeconds();async function EP(t,e){await(await Zn()).store(t,e,pA)}async function TP(t,e){let r=Oe();return await(await Zn()).store(r,{email:t,info:e},pA),r}async function _P(t){let r=await(await Zn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function AP(t){await(await Zn()).delete(t)}async function fA(){let r=(await(await Zn()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function Wf(t){return(await fA()).filter(e=>t.includes(e.email))}async function jf(t){let e=[],r=await mA(t);e.push(...r.map(o=>o.email));let n=await hA(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await Wf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Tc(t){return await Xo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Tc(t))[0]??null}async function mA(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 hA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Xo("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Xo("account_by_email",r)}var wc={};C(wc,{BadRequestError:()=>Ac,BudibaseError:()=>ms,EmailUnavailableError:()=>mr,ErrorCode:()=>Ic,FeatureDisabledError:()=>Oc,HTTPError:()=>ct,InvalidAPIKeyError:()=>hs,NotFoundError:()=>_c,UsageLimitError:()=>Sc,getPublicError:()=>xc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},Ic=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Ic||{}),xc=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}},_c=class extends ct{constructor(e){super(e,404)}},Ac=class extends ct{constructor(e){super(e,400)}},Sc=class extends ct{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Oc=class extends ct{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var tm={};C(tm,{AccessController:()=>Kf,BUILTIN_ROLE_IDS:()=>ma,Role:()=>Zr,RoleHierarchyTraversal:()=>Rc,RoleIDVersion:()=>zf,builtinRoleToNumber:()=>pa,checkForRoleResourceArray:()=>TA,externalRole:()=>RP,findRole:()=>fa,getAllRoleIds:()=>CP,getAllRoles:()=>em,getBuiltinRole:()=>yA,getBuiltinRoles:()=>Zf,getDBRoleID:()=>_A,getExternalRoleID:()=>Xr,getExternalRoleIDs:()=>AA,getRole:()=>bP,getUserRoleHierarchy:()=>Xf,getUserRoleIdHierarchy:()=>EA,isBuiltin:()=>ui,lowerBuiltinRoleID:()=>wP,prefixRoleIDNoBuiltin:()=>Hf,roleIDsAreEqual:()=>Tt,roleToNumber:()=>xP,saveRoles:()=>DP,validInherits:()=>IP});var Yf=j(require("semver"));var bc=j(require("lodash/fp/cloneDeep"));var gA=require("lodash");var ma={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},pe={...ma,BUILDER:"BUILDER"},zf={UUID:void 0,NAME:"name"};function OP(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=zf.NAME}addInheritance(e){return e&&typeof e=="string"?e=Hf(e):e&&Array.isArray(e)&&(e=e.map(Hf)),this.inherits=e,this}},Rc=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&&!OP(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,gA.uniqBy)(i,s=>s._id)}},Jf={ADMIN:new Zr(pe.ADMIN,pe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(pe.POWER),POWER:new Zr(pe.POWER,pe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(pe.BASIC),BASIC:new Zr(pe.BASIC,pe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(pe.PUBLIC),PUBLIC:new Zr(pe.PUBLIC,pe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new Zr(pe.BUILDER,pe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Zf(){return(0,bc.default)(Jf)}function ui(t){return Object.values(ma).includes(t)}function Hf(t){return ui(t)?t:ur(t)}function yA(t){let e=Object.values(Jf).find(r=>t.includes(r._id));if(e)return(0,bc.default)(e)}function IP(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=Zf(),r=Object.values(e).length+1;if(Tt(t,pe.ADMIN)||Tt(t,pe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function xP(t){if(ui(t))return pa(t);let e=await Xf(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 wP(t,e){return t?e&&pa(t)>pa(e)?e:t:e}function Tt(t,e){return ur(t)===ur(e)}function RP(t){let e;return t._id&&(e=Xr(t._id)),{...t,_id:e,inherits:AA(t.inherits,t.version)}}function fa(t,e,r){let n=yA(t);n||(t=ur(t));let i=e.find(s=>s._id&&Tt(s._id,t));return!i&&!ui(t)&&r?.defaultPublic?(0,bc.default)(Jf.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 bP(t,e){let r=ss(),n=[];if(!ui(t)){let i=await r.tryGet(_A(t));i&&n.push(i)}return fa(t,n,e)}async function DP(t){await ss().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:ur(r._id)})))}async function vP(t,e){let r=await em();if(Tt(t,pe.ADMIN))return r;let n=fa(t,r,e),i=[];return n&&(i=new Rc(r,e).walk(n)),i}async function EA(t){return(await Xf(t)).map(r=>r._id)}async function Xf(t,e){return vP(t,e)}function TA(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 CP(t){return(await em(t)).map(r=>r._id)}async function em(t){if(t)return at(t,e);{let r;try{r=ss()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(pc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Xr(a._id,a.version)));let i=Zf(),s=[];!r||await NP(r)?s=[pe.ADMIN,pe.POWER,pe.BASIC,pe.PUBLIC]:s=[pe.ADMIN,pe.BASIC,pe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Tt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Xr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Xr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=TA(o.permissions,a);return n}}async function NP(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Yf.default.valid(r)?!0:!Yf.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Kf=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Tt(e,pe.BUILDER)||Tt(r,e)||Tt(r,pe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await EA(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 _A(t){return t?.startsWith("role")?t:ur(t)}function Xr(t,e){if(t.startsWith(`role${v}`)&&(ui(t)||e===zf.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function AA(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,SA=st.users.isGlobalBuilder,OA=st.users.isAdminOrBuilder,tn=st.users.hasAdminPermissions,_t=st.users.hasBuilderPermissions,IA=st.users.hasAppBuilderPermissions;async function Yt(t){let e=st.users.isCreator(t);return!e&&t?await PP(t):e}async function PP(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 Dc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Jr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function vc(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={};C(Ts,{account:()=>GA,ai:()=>QA,analytics:()=>Nc,app:()=>$A,auditLog:()=>oS,auth:()=>Gc,automation:()=>VA,backfill:()=>tS,backfillCache:()=>Fc,backup:()=>iS,datasource:()=>qA,email:()=>WA,environmentVariable:()=>sS,group:()=>rS,identification:()=>Lt,initAsyncEvents:()=>C0,installation:()=>_a,layout:()=>YA,license:()=>jA,org:()=>HA,plugin:()=>nS,processors:()=>um,publishEvent:()=>_,query:()=>KA,role:()=>xa,rowAction:()=>aS,rows:()=>JA,screen:()=>zA,serve:()=>XA,shutdown:()=>N0,table:()=>ZA,user:()=>$e,view:()=>eS});var um={};C(um,{analyticsProcessor:()=>LA,init:()=>zP,processors:()=>hr});var Nc={};C(Nc,{enabled:()=>Cc});var Cc=async()=>Pc();var DA=require("posthog-node");var UP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",LP=t=>t==="served:app:preview"||t==="served:app";var wA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},RA=async t=>{if(!UP(t))return!1;let e=await MP(t);if(e){let r=new Date(e.timestamp);switch(wA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await xA(t,{timestamp:Date.now()}),!1):!0}}else return await xA(t,{timestamp:Date.now()}),!1},bA=t=>{let e=`eventsRateLimit:${t}`;return LP(t)&&(e=e+":"+Pe()),e},MP=async t=>{let e=bA(t);return await ni(e)},xA=async(t,e)=>{let r=bA(t),n=wA[t],i;switch(n){case"calendarDay":i=86400}await fr(r,e,i)};var FP=["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 DA.PostHog(e)}async processEvent(e,r,n,i){if(FP.includes(e)||await RA(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Pe();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}shutdown(){this.posthog.shutdown()}};var vA=ha;var BP=["installation:version:upgraded","installation:version:downgraded"],GP=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new vA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!BP.includes(e)&&!await Cc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!GP.includes(e.type)&&!await Cc()||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 nm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){nm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){nm||console.log("[audit] identified",e)}async identifyGroup(e){nm||console.log("[audit] group identified",e)}shutdown(){}};var am={};C(am,{JobQueue:()=>ys,createQueue:()=>ci,shutdown:()=>YP});var CA=j(require("events"));function $P(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 im=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new CA.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{let i=r(n);async function s(a){try{await a}catch{await Qt.wait(50),await s(r(n))}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){let n=r?.jobId?.toString();if(n&&this._queuedJobIds.has(n)){console.log(`Ignoring already queued job ${n}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";n&&this._queuedJobIds.add(n);let i=()=>{let o={id:Oe(),timestamp:Date.now(),queue:this,data:e,opts:r};this._messages.push(o),this._addCount++,this._emitter.emit("message",o)},s=r?.delay;return s?setTimeout(i,s):i(),{id:n}}async close(){}async removeRepeatableByKey(e){console.log(e)}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}on(e,r){return this._emitter.on(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.map(e=>$P(e))}},NA=im;var sm=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 PA(t,e,r){WP(t,e),r&&VP(t,r)}function VP(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var qP={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function WP(t,e){let r=qP[e];function n(i,s){let o=i.data.event?.appId;if(o)return xf(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var QP=ve.fromMinutes(5).toMs(),jP=ve.fromSeconds(30).toMs(),om=ve.fromSeconds(60).toMs(),Ea=[],Uc;async function UA(){for(let t of Ea)await t.clean(om,"completed"),await t.clean(om,"failed")}function ci(t,e={}){let n={redis:zi(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:QP,lockRenewTime:jP}};e.jobOptions&&(n.defaultJobOptions=e.jobOptions);let i;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?i=new sm.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new NA(t,n):i=new sm.default(t,n),PA(i,t,e?.removeStalledCb),Ea.push(i),!Uc&&!h.isTest()&&(Uc=Mo(UA,om),UA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function YP(){if(Uc&&ko(Uc),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=>Ge(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:s})}))}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&Mf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Pe(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var 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 LA=new ga,HP=new ya,KP=new Es;function zP(t){return Es.init(t)}var hr=new Ta([LA,HP,KP]);var Lc={};C(Lc,{checkInstallVersion:()=>XP,getInstall:()=>Aa,getInstallFromDB:()=>lm});var cm=j(require("semver"));var Aa=async()=>Kr("installation",86400,lm,{useTenancy:!1});async function JP(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 lm();throw r}}var lm=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 JP(t);else throw r}return e}),ZP=async t=>{try{await at(Se.PLATFORM_INFO.name,async e=>{let r=await Aa();r.version=t,await e.put(r),await us("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},XP=async()=>{let t=await Aa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=cm.default.gt(r,e),i=cm.default.lt(r,e);await ZP(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await _a.upgraded(e,r):i&&await _a.downgraded(e,r)}),await Lt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Kn(`Invalid version "${r}" - is it semver?`):Kn("Failed to retrieve version",n)}};var eU=async()=>{let t=Tp(),e=Ia(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await li(),i=Sa();return{id:MA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await li(),i=await Mc(Q()),s=Sa();return{id:MA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Mc(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")},tU=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 dm(a,e),await Oa({...a,id:`$${n}_${r}`},e)},rU=async(t,e,r)=>{let n=await Mc(t),i="tenant",s=await li(),o=Ia(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await dm(a,r),await Oa({...a,id:`$${i}_${n}`},r)},nU=async(t,e,r)=>{let n=t._id,i=await Mc(t.tenantId),s="user",o=_t(t),a=tn(t),u;qa(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,p=!!e&&l&&e.verified,m=await li(),d=e?e.hosting:Sa(),f=Ia();await Oa({id:n,type:s,hosting:d,installationId:m,tenantId:i,verified:p,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},iU=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 p=await Mt(t.email);p?._id&&(e=p._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await hr.identify(t,e)},dm=async(t,e)=>{await hr.identifyGroup(t,e)},Ia=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Sa=()=>h.SELF_HOSTED?"self":"cloud",li=async()=>sU()?"account-portal":(await Aa()).installId,Mc=async t=>h.SELF_HOSTED?kA(t):t,kA=async t=>Ge(t,()=>Kr("uniqueTenantId",86400,async()=>{let e=se(),r=await kc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Oe()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),sU=()=>h.SERVICE==="account-portal",MA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Lt={getCurrentIdentity:eU,identifyInstallationGroup:tU,identifyTenantGroup:rU,identifyUser:nU,identifyAccount:iU,identify:Oa,identifyGroup:dm,getInstallationId:li,getUniqueTenantId:kA};var Fc={};C(Fc,{end:()=>aU,isAlreadySent:()=>mm,isBackfillingEvent:()=>fm,recordEvent:()=>pm,start:()=>oU});var oU=async t=>cU({eventWhitelist:t}),pm=async(t,e)=>{let r=hm(t,e);await fr(r,e,void 0,{useTenancy:!1})},aU=async()=>{await lU(),await dU()},uU=async()=>ni("backfillMetadata"),cU=async t=>fr("backfillMetadata",t),lU=async()=>{await na("backfillMetadata")},dU=async()=>{let t=hm(),e=await hc(t);for(let r of e)await na(r,{useTenancy:!1})},fm=async t=>{let r=(await uU())?.eventWhitelist;return!!(r&&r.includes(t))},mm=async(t,e)=>{let r=hm(t,e);return!!await ni(r,{useTenancy:!1})},pU={"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}`},hm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=pU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var gr;function Bc(){gr=ci("systemEventQueue")}async function FA(){gr&&await gr.close()}async function BA(t){gr||Bc();let{event:e,identity:r}=t;Eh.indexOf(e)!==-1&&r.tenantId&&await gr.add(t)}var _=async(t,e,r,n)=>{let i=n||await Lt.getCurrentIdentity();if(!(n?!1:await fm(t))){await BA({event:t,identity:i,properties:e,timestamp:r}),await hr.processEvent(t,i,e,r);return}await mm(t,e)||(await hr.processEvent(t,i,e,r),await pm(t,e))};async function fU(t,e){let r={tenantId:t.tenantId};await _("account:created",r,void 0,e)}async function mU(t){let e={tenantId:t.tenantId};await _("account:deleted",e)}async function hU(t){let e={tenantId:t.tenantId};await _("account:verified",e)}var GA={created:fU,deleted:mU,verified:hU};var gU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:created",r,e)};async function yU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await _("app:updated",e)}async function EU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:deleted",e)}async function TU(t,e){let r={appId:t.appId,audited:{name:t.name}};await _("app:published",r,e)}async function _U(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:unpublished",e)}async function AU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:file:imported",e)}async function SU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await _("app:duplicated",r)}async function OU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await _("app:template:imported",r)}async function IU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await _("app:version:updated",n)}async function xU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await _("app:version:reverted",n)}async function wU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:reverted",e)}async function RU(t){let e={appId:t.appId,audited:{name:t.name}};await _("app:exported",e)}var $A={created:gU,updated:yU,deleted:EU,published:TU,unpublished:_U,fileImported:AU,duplicated:SU,templateImported:OU,versionUpdated:IU,versionReverted:xU,reverted:wU,exported:RU};async function bU(t,e){let n={userId:(await Lt.getCurrentIdentity()).id,source:t,audited:{email:e}};await _("auth:login",n)}async function DU(t){let r={userId:(await Lt.getCurrentIdentity()).id,audited:{email:t}};await _("auth:logout",r)}async function vU(t,e){let r={type:t};await _("auth:sso:created",r,e)}async function CU(t){let e={type:t};await _("auth:sso:updated",e)}async function NU(t,e){let r={type:t};await _("auth:sso:activated",r,e)}async function PU(t){let e={type:t};await _("auth:sso:deactivated",e)}var Gc={login:bU,logout:DU,SSOCreated:vU,SSOUpdated:CU,SSOActivated:NU,SSODeactivated:PU};async function UU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:created",r,e)}async function LU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:trigger:updated",e)}async function MU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await _("automation:deleted",e)}async function kU(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await _("automation:tested",e)}var FU=async(t,e)=>{let r={count:t};await _("automations:run",r,e)};async function BU(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:created",n,r)}async function GU(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await _("automation:step:deleted",r)}var VA={created:UU,triggerUpdated:LU,deleted:MU,tested:kU,run:FU,stepCreated:BU,stepDeleted:GU};function gm(t){return!Object.values(Fa).includes(t.source)}async function $U(t,e){let r={datasourceId:t._id,source:t.source,custom:gm(t)};await _("datasource:created",r,e)}async function VU(t){let e={datasourceId:t._id,source:t.source,custom:gm(t)};await _("datasource:updated",e)}async function qU(t){let e={datasourceId:t._id,source:t.source,custom:gm(t)};await _("datasource:deleted",e)}var qA={created:$U,updated:VU,deleted:qU};async function WU(t){let e={};await _("email:smtp:created",e,t)}async function QU(){let t={};await _("email:smtp:updated",t)}var WA={SMTPCreated:WU,SMTPUpdated:QU};async function jU(t){let e={};await _("ai:config:created",e,t)}async function YU(){let t={};await _("ai:config:updated",t)}var QA={AIConfigCreated:jU,AIConfigUpdated:YU};async function HU(t,e){let r={accountId:t.accountId,...e};await _("license:plan:changed",r)}async function KU(t){let e={accountId:t.accountId};await _("license:activated",e)}async function zU(t){let e={accountId:t.accountId};await _("license:checkout:opened",e)}async function JU(t){let e={accountId:t.accountId};await _("license:checkout:success",e)}async function ZU(t){let e={accountId:t.accountId};await _("license:portal:opened",e)}async function XU(t){let e={accountId:t.accountId};await _("license:payment:failed",e)}async function eL(t){let e={accountId:t.accountId};await _("license:payment:recovered",e)}var jA={planChanged:HU,activated:KU,checkoutOpened:zU,checkoutSuccess:JU,portalOpened:ZU,paymentFailed:XU,paymentRecovered:eL};async function tL(t,e){let r={layoutId:t._id};await _("layout:created",r,e)}async function rL(t){let e={layoutId:t};await _("layout:deleted",e)}var YA={created:tL,deleted:rL};async function nL(t){let e={};await _("org:info:name:updated",e,t)}async function iL(t){let e={};await _("org:info:logo:updated",e,t)}async function sL(t){let e={};await _("org:platformurl:updated",e,t)}async function oL(){let t={};await _("analytics:opt:out",t)}async function aL(){let t={};await _("analytics:opt:out",t)}var HA={nameUpdated:nL,logoUpdated:iL,platformURLUpdated:sL,analyticsOptOut:oL,analyticsOptIn:aL};var uL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:created",n,r)},cL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:updated",r)},lL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:deleted",r)},dL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await _("query:import",n)},pL=async(t,e)=>{let r={count:t};await _("queries:run",r,e)},fL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await _("query:previewed",r)},KA={created:uL,updated:cL,deleted:lL,imported:dL,run:pL,previewed:fL};async function mL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:created",r,e)}async function hL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:updated",e)}async function gL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await _("role:deleted",e)}async function yL(t,e,r){let n={userId:t._id,roleId:e};await _("role:assigned",n,r)}async function EL(t,e){let r={userId:t._id,roleId:e};await _("role:unassigned",r)}var xa={created:mL,updated:hL,deleted:gL,assigned:yL,unassigned:EL};async function TL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:created",r,e)}async function _L(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await _("screen:deleted",e)}var zA={created:TL,deleted:_L};var AL=async(t,e)=>{let r={count:t};await _("rows:created",r,e)},SL=async(t,e)=>{let r={tableId:t._id,count:e};await _("rows:imported",r)},JA={created:AL,imported:SL};async function OL(t,e){let r={tableId:t._id,audited:{name:t.name}};await _("table:created",r,e)}async function IL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await _("table:updated",i)}async function xL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:deleted",e)}async function wL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await _("table:exported",r)}async function RL(t){let e={tableId:t._id,audited:{name:t.name}};await _("table:imported",e)}var ZA={created:OL,updated:IL,deleted:xL,exported:wL,imported:RL};async function bL(t){let e={timezone:t};await _("served:builder",e)}async function DL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await _("served:app",n)}async function vL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await _("served:app:preview",r)}var XA={servedBuilder:bL,servedApp:DL,servedAppPreview:vL};async function CL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:created",r,e)}async function NL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:updated",e)}async function PL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await _("user:deleted",e)}async function UL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:onboarding:complete",e)}async function LL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:admin:assigned",r,e)}async function ML(t){let e={userId:t._id,audited:{email:t.email}};await _("user:admin:removed",e)}async function kL(t,e){let r={userId:t._id,audited:{email:t.email}};await _("user:builder:assigned",r,e)}async function FL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:builder:removed",e)}async function BL(t){let e={audited:{email:t}};await _("user:invited",e)}async function GL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:invite:accepted",e)}async function $L(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:force:reset",e)}async function VL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:updated",e)}async function qL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset:requested",e)}async function WL(t){let e={userId:t._id,audited:{email:t.email}};await _("user:password:reset",e)}async function QL(t){let e={users:t};await _("user:data:collaboration",e)}var $e={created:CL,updated:NL,deleted:PL,permissionAdminAssigned:LL,permissionAdminRemoved:ML,permissionBuilderAssigned:kL,permissionBuilderRemoved:FL,onboardingComplete:UL,invited:BL,inviteAccepted:GL,passwordForceReset:$L,passwordUpdated:VL,passwordResetRequested:qL,passwordReset:WL,dataCollaboration:QL};async function jL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await _("view:created",r,e)}async function YL(t){let e={tableId:t.tableId};await _("view:updated",e)}async function HL(t){let e={tableId:t.tableId};await _("view:deleted",e)}async function KL(t,e){let r={tableId:t._id,format:e};await _("view:exported",r)}async function zL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await _("view:filter:created",n,r)}async function JL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await _("view:filter:updated",r)}async function ZL(t){let e={tableId:t.tableId};await _("view:filter:deleted",e)}async function XL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await _("view:calculation:created",n,r)}async function e0(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:updated",e)}async function t0(t){let e={tableId:t.tableId,calculation:t.calculation};await _("view:calculation:deleted",e)}async function r0(t,e){let r={tableId:t};await _("view:join:created",r,e)}var eS={created:jL,updated:YL,deleted:HL,exported:KL,filterCreated:zL,filterUpdated:JL,filterDeleted:ZL,calculationCreated:XL,calculationUpdated:e0,calculationDeleted:t0,viewJoinCreated:r0};async function n0(t){let e={currentVersion:t};await _("installation:version:checked",e)}async function i0(t,e){let r={from:t,to:e};await _("installation:version:upgraded",r)}async function s0(t,e){let r={from:t,to:e};await _("installation:version:downgraded",r)}async function o0(){let t={};await _("installation:firstStartup",t)}var _a={versionChecked:n0,upgraded:i0,downgraded:s0,firstStartup:o0};var As=!h.SELF_HOSTED&&!h.isDev();async function a0(t){As||await _("app:backfill:succeeded",t)}async function u0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("app:backfill:failed",e)}async function c0(t){As||await _("tenant:backfill:succeeded",t)}async function l0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("tenant:backfill:failed",e)}async function d0(){if(As)return;let t={};await _("installation:backfill:succeeded",t)}async function p0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await _("installation:backfill:failed",e)}var tS={appSucceeded:a0,appFailed:u0,tenantSucceeded:c0,tenantFailed:l0,installationSucceeded:d0,installationFailed:p0};async function f0(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:created",r,e)}async function m0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:updated",e)}async function h0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await _("user_group:deleted",e)}async function g0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:user_added",r)}async function y0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await _("user_group:users_deleted",r)}async function E0(t){let e={groupId:t,onboarding:!0};await _("user_group:onboarding_added",e)}async function T0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await _("user_group:permissions_edited",e)}var rS={created:f0,updated:m0,deleted:h0,usersAdded:g0,usersDeleted:y0,createdOnboarding:E0,permissionsEdited:T0};async function _0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:init",e)}async function A0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await _("plugin:imported",e)}async function S0(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await _("plugin:deleted",e)}var nS={init:_0,imported:A0,deleted:S0};async function O0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await _("app:backup:restored",e)}async function I0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await _("app:backup:triggered",s)}var iS={appBackupRestored:O0,appBackupTriggered:I0};async function x0(t,e){let r={name:t,environments:e};await _("environment_variable:created",r)}async function w0(t){let e={name:t};await _("environment_variable:deleted",e)}async function R0(t){let e={userId:t};await _("environment_variable:upgrade_panel_opened",e)}var sS={created:x0,deleted:w0,upgradePanelOpened:R0};async function b0(t){let e={filters:t};await _("audit_log:filtered",e)}async function D0(t){let e={filters:t};await _("audit_log:downloaded",e)}var oS={filtered:b0,downloaded:D0};async function v0(t,e){await _("row_action:created",t,e)}var aS={created:v0};function C0(){}var N0=()=>{hr.shutdown(),console.log("Events shutdown")};var ym=async t=>{await $e.deleted(t),_t(t)&&await $e.permissionBuilderRemoved(t),tn(t)&&await $e.permissionAdminRemoved(t)},P0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},U0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},L0=async(t,e)=>{let r=t.roles,n=e?.roles;await P0(t,r,n),await U0(t,r,n)},Em=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ps(r)),await Lt.identifyUser(t,n),e?(await $e.updated(t),k0(t,e)&&await $e.permissionBuilderRemoved(t),B0(t,e)&&await $e.permissionAdminRemoved(t),G0(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),M0(t,e)&&await $e.permissionBuilderAssigned(t),F0(t,e)&&await $e.permissionAdminAssigned(t),await L0(t,e)},M0=(t,e)=>uS(t,e,_t),k0=(t,e)=>cS(t,e,_t),F0=(t,e)=>uS(t,e,tn),B0=(t,e)=>cS(t,e,tn),G0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",uS=(t,e,r)=>!(!r(t)||e&&r(e)),cS=(t,e,r)=>!(r(t)||!e||!r(e));var Vc={};C(Vc,{createASession:()=>V0,endSession:()=>q0,getSession:()=>_m,getSessionsForUser:()=>$c,invalidateSessions:()=>di,updateSessionTTL:()=>Tm});var lS=require("uuid");var dS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):ve.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function $c(t){return t?(await(await qr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function di(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await $c(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await qr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||Zi(`Invalidating sessions for ${t} (reason: ${r}) - ${i.map(a=>a.key).join(", ")}`),await Promise.all(o)}}catch(r){console.error(`Error invalidating sessions: ${r}`)}}async function V0(t,e){await di(t,{reason:"creation"});let r=await qr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,lS.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,dS),o}async function Tm(t){let e=await qr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,dS)}async function q0(t,e){await(await qr()).delete(Ss(t,e))}async function _m(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await qr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Im={};C(Im,{PASSWORD_MAX_LENGTH:()=>Sm,PASSWORD_MIN_LENGTH:()=>Am,validatePassword:()=>Om});var Am=+(h.PASSWORD_MIN_LENGTH||12),Sm=+(h.PASSWORD_MAX_LENGTH||512);function Om(t){return!t||t.length<Am?{valid:!1,error:`Password invalid. Minimum ${Am} characters.`}:t.length>Sm?{valid:!1,error:`Password invalid. Maximum ${Sm} characters.`}:{valid:!0}}var W0=async t=>{let e=t._id;await Ut.removeUser(t),await ym(t),await nn.invalidateUser(e),await di(e,{reason:"bulk-deletion"})},Ht=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||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 p=Om(o);if(!p.valid)throw new ct(p.error,400)}u=r.hashPassword?await Pf(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||Xi();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await se().allDocs(Xn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Wc(e,{})).length}}static async getUsersByAppAccess(e){return await xm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Mt(e)}static async getUser(e){let r=await pi(e);return r&&delete r.password,r}static async bulkGet(e){return await qc(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=se(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await pi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(m){if(m.status!==404)throw m}if(!c&&s&&(c=await Mt(s),c&&c._id!==o))throw new mr(s);let l=c?0:1,p=await Yt(c)!==await Yt(e)?1:0;return t.quotas.addUsers(l,p,async()=>{await Dc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=wm(m,c)),!c&&u?.length&&(m.roles={...u});let d=[];if(!o&&a.length>0)for(let f of a)d.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Em(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(f.id),await Promise.all(d),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(p=>p.email),u=await jf(a),c=[];for(let p of e){if(s.find(m=>m.email.toLowerCase()===p.email.toLowerCase())||u.includes(p.email.toLowerCase())){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await Yt(p)&&o.push(p)}let l=await ps(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(d=>{i.push(t.buildUser(d,{hashPassword:!0,requirePassword:d.requirePassword},n,void 0,l))});let p=await Promise.all(i);await wa(p);for(let d of p)await Ut.addUser(n,d._id,d.email),await Em(d,void 0);let m=p.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(m)&&r){let d=[],f=m.map(g=>g._id);for(let g of r)d.push(t.groups.addUsers(g,f));await Promise.all(d)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await vc(e);i&&(e=e.filter(d=>d.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(d=>d.userId)})).rows.map(d=>d.doc),a=o.map(d=>({...d,_deleted:!0})),u=await wa(a),l=(await Promise.all(o.map(Yt))).filter(d=>!!d).length,p=[];for(let d of o){let g=(await da(d._id)).ssoId;g&&(await Tc(g)).filter(y=>y.ssoId==null).forEach(y=>{p.push({...y,_deleted:!0})}),await W0(d)}await ut().bulkDocs(p),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((d,f)=>(d[f._id]=f,d),m),u.forEach(d=>{let f=m[d.id].email;d.ok?n.successful.push({_id:d.id,email:f}):n.unsuccessful.push({_id:d.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=se(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Jr(o))throw n.userId===ar()._id?new ct('Please visit "Account" to delete this user',400):new ct("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await Yt(n)?1:0;await t.quotas.removeUsers(1,s),await ym(n),await nn.invalidateUser(i),await di(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await us("checklist"),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation})}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 qc(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 j0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`})).rows.map(n=>n.id)}async function Y0(){let t=se(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${ke}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(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 Mt(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 H0(t){try{let e=await Mt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Wc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=dc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=ba(s)),s}async function xm(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 gf(cr(),i)).rows}function pS(t,e){if(e)return lc(ot(t),e._id)}async function fS(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 K0=8;async function mS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??K0,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 Wc(r,a),l=p=>pS(r,p)):e?.string?.email?(u=await fS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await qc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(Xn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Ur.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(Xn(null,a))).rows.map(m=>m.doc),cf(u,s,{paginate:!0,property:c,getKey:l})}async function z0(){return(await ff("by_email2",{limit:0,include_docs:!1})).total_rows}async function J0(){let t=0;async function e(r){let n=await mS({bookmark:r}),i=await Promise.all(n.data.map(Yt));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function Z0(t){return delete t.admin,delete t.builder,t}function wm(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 X0(t,e){let r=ot(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Ht.save(t,{hashPassword:!1})}async function eM(t,e){let r=ot(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Ht.save(t,{hashPassword:!1})}var hS=3600;async function tM(t,e){let n=await vf(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 rM(t){let e=await Ht.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Jr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Da({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=tM),!e)try{e=Q()}catch{e=await Ut.lookupTenantId(t)}let i=await Ho(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,hS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!st.users.isGlobalBuilder(s)&&await Ge(e,async()=>{let o=await Ht.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function nM(t){let e=await Ho(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await rM(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,hS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await Ho()).delete(t)}var vm={};C(vm,{Writethrough:()=>bm});var gS=1e4,Rm=null;async function Dm(){if(!Rm){let t=await ef();Rm=new ti(t)}return Rm}function Qc(t,e){return t.name+e}function yS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function iM(t,e,r=gS){let n=await Dm(),i=e._id,s;i&&(s=await n.get(Qc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ds({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let p=await t.put(l,{force:!0});a._id=p.id,a._rev=p.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;Zi("Ignoring conflict in write-through cache")}})).executed||Zi("Ignoring redlock conflict in write-through cache")),s=yS(a,o?null:s?.lastWrite),a._id&&await n.store(Qc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function sM(t,e){let r=await Dm(),n=Qc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=yS(s),await r.store(n,i)}return i.doc}async function oM(t,e,r){let n=await Dm();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Qc(t,i))}finally{await t.remove(i,r)}}var bm=class{constructor(e,r=gS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return iM(this.db,e,r)}async get(e){return sM(this.db,e)}async remove(e,r){return oM(this.db,e,r)}};var Cm={};C(Cm,{createCode:()=>uM,getCode:()=>cM,invalidateCode:()=>lM});var aM=ve.fromHours(1).toSeconds();async function uM(t,e){let r=Oe();return await(await Ko()).store(r,{userId:t,info:e},aM),r}async function cM(t){let r=await(await Ko()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function lM(t){await(await Ko()).delete(t)}var Pm={};C(Pm,{DocWritethrough:()=>Nm,DocWritethroughProcessor:()=>Ca,getProcessor:()=>pM,init:()=>ES});var dM=100,jc,Ca=class t{static get queue(){return t._queue||(t._queue=ci("docWritethroughQueue",{jobOptions:{attempts:dM}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){let i=Ke(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Nm=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 ES(){return jc=new Ca().init(),jc}function pM(){return jc||ES()}function Mm(t){return`config${v}${t}`}async function kt(t){let e=se();try{return await e.get(Mm(t))}catch(r){if(r.status===404)return;throw r}}async function fM(t){return se().put(t)}async function kc(){let t=await kt("settings");return t||(t={_id:Mm("settings"),type:"settings",config:{}}),t.config.platformUrl=await Na({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Pc({config:t.config}),t}async function km(){return(await kc()).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 kt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Pc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Kr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await kt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function mM(){return await kt("google")}async function Yc(){return(await mM())?.config}async function Fm(){if(!h.SELF_HOSTED)return Um();let t=await Yc();return(!t||!t.activated)&&(t=Um()),t}function Um(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function hM(){return kt("logos_oidc")}async function gM(){return kt("oidc")}async function yM(){let t=(await gM())?.config;return t?.configs&&t.configs[0]}async function Bm(t){let e=(await kt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function TS(){return kt("smtp")}async function EM(t){let e=await TS();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 TM(){return(await kt("scim"))?.config}async function _M(){return kt("ai")}var Gm={};C(Gm,{BUILDER:()=>xM,BUILTIN_PERMISSIONS:()=>Hc,CREATOR:()=>wM,GLOBAL_BUILDER:()=>RM,PermissionImpl:()=>fe,PermissionLevel:()=>Rs,PermissionType:()=>Ga,doesHaveBasePermission:()=>OM,getAllowedLevels:()=>OS,getBuiltinPermissionByID:()=>SM,getBuiltinPermissions:()=>AM,isPermissionLevelHigherThanRead:()=>IM,levelToNumber:()=>SS});var _S=j(require("lodash/flatten")),AS=j(require("lodash/fp/cloneDeep")),fe=class{constructor(e,r){this.type=e,this.level=r}};function SS(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function OS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Hc={PUBLIC:{_id:"public",name:"Public",permissions:[new fe("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new fe("query","read"),new fe("table","read"),new fe("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new fe("query","write"),new fe("table","write"),new fe("automation","execute"),new fe("legacy_view","read"),new fe("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new fe("table","write"),new fe("user","read"),new fe("automation","execute"),new fe("webhook","read"),new fe("legacy_view","read"),new fe("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new fe("table","admin"),new fe("user","admin"),new fe("automation","admin"),new fe("webhook","read"),new fe("query","admin"),new fe("legacy_view","read"),new fe("app","read")]}};function AM(){return(0,AS.default)(Hc)}function SM(t){return Object.values(Hc).find(r=>r._id===t)}function OM(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Hc),s=(0,_S.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&OS(o.level).indexOf(e)!==-1)return!0;return!1}function IM(t){return SS(t)>1}var xM="builder",wM="creator",RM="globalBuilder";var qm={};C(qm,{FlagSet:()=>zc,all:()=>CM,flags:()=>$m,init:()=>bM,isEnabled:()=>vM,parseEnvFlags:()=>Zc,shutdown:()=>DM,testutils:()=>Vm});var Jc=j(require("crypto"));var IS=require("posthog-node"),xS=j(require("dd-trace"));var wS=require("lodash");var Kc;function bM(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Kc=new IS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:ve.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function DM(){Kc?.shutdown()}function Zc(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}var zc=class{constructor(e){this.flagSchema=e;this.setId=Jc.randomUUID()}defaults(){return(0,wS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await xS.default.trace("features.fetch",async e=>{let r=bf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:l,key:p,value:m}of Zc(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=m,n[`flags.${p}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let l=wf();l&&(u=Jc.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,Kc&&u){n.readFromPostHog=!0;let l={tenantId:c},p=await Kc.getAllFlags(u,{personProperties:l});for(let[m,d]of Object.entries(p)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${d}`);continue}if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${d}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=d,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${d}`,f)}}}Df(this.setId,i);for(let[l,p]of Object.entries(i))n[`flags.${l}.value`]=p;return e?.addTags(n),i})}},$m=new zc(Oh);async function vM(t){return await $m.isEnabled(t)}async function CM(){return await $m.fetch()}var Vm={};C(Vm,{setFeatureFlags:()=>RS,withFeatureFlags:()=>UM});function NM(){let t={};for(let{tenantId:e,key:r,value:n}of Zc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function PM(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 RS(t,e){let r=NM();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=PM(r);return Ro({TENANT_FEATURE_FLAGS:n})}function UM(t,e,r){let n=RS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var th={};C(th,{adminOnly:()=>cl,auditLog:()=>sl,authError:()=>Ue,buildAuthMiddleware:()=>Ak,buildCsrfMiddleware:()=>Ok,buildTenancyMiddleware:()=>Sk,builderOnly:()=>dl,builderOrAdmin:()=>ll,google:()=>yr,internalApi:()=>al,joiValidator:()=>Ua,oidc:()=>Er,passport:()=>Ik,platformLogout:()=>Dk,refreshOAuthToken:()=>Rk,ssoCallbackUrl:()=>sn,updateUserOAuth:()=>bk});var eh={};C(eh,{adminOnly:()=>cl,auditLog:()=>sl,authError:()=>Ue,authenticated:()=>il,builderOnly:()=>dl,builderOrAdmin:()=>ll,correlation:()=>$S,csp:()=>YS,csrf:()=>ul,datasource:()=>Tk,errorHandling:()=>qS,google:()=>yr,internalApi:()=>al,ip:()=>KS,joiValidator:()=>Ua,local:()=>Os,oidc:()=>Er,pino:()=>BS,querystringToBody:()=>WS,ssoCallbackUrl:()=>sn,tenancy:()=>ol});var Os={};C(Os,{authenticate:()=>kM,options:()=>MM});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 km(),n="/api/global/auth";return Yr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Wm="Invalid credentials",LM="This account has expired. Please reset your password",MM={passReqToCallback:!0};async function kM(t,e,r,n){if(!e)return Ue(n,"Email Required");if(!r)return Ue(n,"Password Required");let i=await Mt(e);return i==null?(console.info(`user=${e} could not be found`),Ue(n,Wm)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ue(n,Wm)):i.password?await Uf(r,i.password)?(delete i.password,n(null,i)):Ue(n,Wm):(console.info(`user=${e} has no password set`,i),Ue(n,LM))}var yr={};C(yr,{buildVerifyFn:()=>vS,getCallbackUrl:()=>GM,strategyFactory:()=>Qm});var Pa=t=>Promise.resolve(t);async function Xc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ue(r,"sso user id required");if(!t.email)return Ue(r,"sso user email required");let i=Xi(t.userId),s;try{s=await pi(i)}catch(a){if(!a.status||a.status!==404)return Ue(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Mt(t.email)),!s&&e)return Ue(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await FM(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 FM(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 BM=require("passport-google-oauth").OAuth2Strategy;function vS(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 Xc(s,!0,i,t)}}async function Qm(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=vS(r);return new BM({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function GM(t){return sn("google",t)}var Er={};C(Er,{buildVerifyFn:()=>NS,fetchStrategyConfig:()=>WM,getCallbackUrl:()=>QM,strategyFactory:()=>qM});var CS=j(require("node-fetch"));var $M=require("@techpass/passport-openidconnect").Strategy;function NS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:VM(n,i),oauth2:{accessToken:s,refreshToken:o}};return Xc(l,!1,c,t)}}function VM(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&kf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function qM(t,e){try{let r=NS(e),n=new $M(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function WM(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,CS.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 QM(){return sn("oidc")}var jm={};C(jm,{postAuth:()=>HM,preAuth:()=>YM});var jM=require("passport-google-oauth").OAuth2Strategy;async function PS(){let t=await Fm();if(!t)throw new Error("No google configuration found");return t}async function YM(t,e,r){let n=await PS(),s=`${await Na({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Qm(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 HM(t,e,r){let n=await PS(),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 jM({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 fr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var KM=/\/:(.*?)(\/.*)?$/g,fi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(KM);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 Zm={};C(Zm,{SecretOption:()=>MS,decrypt:()=>Jm,decryptFile:()=>tk,encrypt:()=>ZM,encryptFile:()=>XM,getSecret:()=>zm});var Tr=j(require("crypto")),on=j(require("fs")),Hm=j(require("zlib"));var Ym=require("path"),el="aes-256-ctr",LS="-",zM=1e4,JM=32,tl=16,Km=16,MS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(MS||{});function zm(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 rl(t,e){return Tr.default.pbkdf2Sync(t,e,zM,JM,"sha512")}function ZM(t,e="api"){let r=Tr.default.randomBytes(tl),n=rl(zm(e),r),i=Tr.default.createCipheriv(el,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${LS}${a}`}function Jm(t,e="api"){let[r,n]=t.split(LS),i=Buffer.from(r,"hex"),s=rl(zm(e),i),o=Tr.default.createDecipheriv(el,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function XM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Ym.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,Ym.join)(t,n)),a=Tr.default.randomBytes(tl),u=Tr.default.randomBytes(Km),c=rl(r,a),l=Tr.default.createCipheriv(el,c,u);return o.write(a),o.write(u),s.pipe(Hm.default.createGzip()).pipe(l).pipe(o),new Promise(p=>{o.on("finish",()=>{p({filename:n,dir:t})})})}async function ek(t){let e=on.default.createReadStream(t),r=await US(e,tl),n=await US(e,Km);return e.close(),{salt:r,iv:n}}async function tk(t,e,r){if(on.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ek(t),s=on.default.createReadStream(t,{start:tl+Km}),o=on.default.createWriteStream(e),a=rl(r,n),u=Tr.default.createDecipheriv(el,a,i),c=Hm.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,p)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),p(m)}),u.on("error",m=>{o.close(),p(m)}),c.on("error",m=>{o.close(),p(m)}),o.on("error",m=>{o.close(),p(m)})})}function US(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 FS=j(require("dd-trace")),rk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function nk(){return new Date(Date.now()-rk).toISOString()}function kS(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 ik(t,e){if(ua(t))return{valid:!0,user:void 0};let n=Jm(t).split(v)[0];return Ge(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 nl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function il(t=[],e={publicAllowed:!1}){let r=t?fi(t):[];return async(n,i)=>{let s=!1,o=nl(n,"x-budibase-api-version");mi(n,r)&&(s=!0);try{let u=nl(n,"x-budibase-token"),c=ii(n,"budibase:auth")||yc(u),l=nl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let p=nl(n,"x-budibase-tenant-id"),m=!1,d,f=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await _m(O,y),e&&e.populateUser?d=await Da({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):d=await Da({userId:O,tenantId:S.tenantId,email:S.email}),d.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<nk()&&await Tm(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 ik(l,y);O&&(m=!0,g="api_key",d=S,f=!S)}!d&&p?d={tenantId:p}:d&&"password"in d&&delete d.password,m||(m=!1);let T=y=>y&&y.email;return T(d)&&FS.default.setUser({id:d._id,tenantId:d.tenantId,budibaseAccess:d.budibaseAccess,status:d.status}),kS(n,{authenticated:m,user:d,internal:f,version:o,publicEndpoint:s,loginMethod:g}),T(d)?Ap(d,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 kS(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var sk=async(t,e)=>e(),sl=sk;function ol(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=sa(s,u);return s.set("x-budibase-tenant-id",l),Ge(l,o)}}var al=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 ok=["GET","HEAD","OPTIONS"],ak=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function ul(t={noCsrfPatterns:[]}){let e=fi(t.noCsrfPatterns);return async(r,n)=>{if(mi(r,e)||ok.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ak.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var cl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var ll=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var dl=async(t,e)=>{let r=Pe(),n=h.isWorker()||!r?_t:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var uk=require("koa-pino-logger"),ck=require("correlation-id");function lk(){return{logger:oc,genReqId:ck.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 dk(){return h.HTTP_LOGGING?uk(lk()):(t,e)=>e()}var pk=dk(),BS=pk;var GS=require("uuid"),fk=require("correlation-id"),mk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,GS.v4)()),fk.withId(r,()=>e())},$S=mk;function VS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of AT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function hk(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:xc(r)};if(VS(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 qS=hk;function WS(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 jS=j(require("crypto")),QS={"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 gk(t,e){try{let r=jS.default.randomBytes(16).toString("base64"),n={...QS};n["script-src"]=[...QS["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 YS=gk;var Ua={};C(Ua,{body:()=>yk,params:()=>Ek});var Xm=j(require("joi"));function HS(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:Xm.default.any().optional(),updatedAt:Xm.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 yk(t,e){return HS(t,"body",e)}function Ek(t,e){return HS(t,"params",e)}var KS=async(t,e)=>t.ip?await Rf(t.ip,()=>e()):e();var Tk={google:jm};var zS=require("koa-passport"),_k=require("passport-local").Strategy,pl=require("passport-oauth2-refresh"),Ak=il,Sk=ol,Ok=ul,Ik=zS;zS.use(new _k(Os.options,Os.authenticate));async function xk(t,e){let r=await Er.getCallbackUrl(),n,i;try{if(n=await Er.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Er.strategyFactory(n,Pa)}catch{throw new Error("Could not refresh OAuth Token")}return pl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{pl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function wk(t,e){let r=await yr.getCallbackUrl(t),n;try{n=await yr.strategyFactory(t,r,Pa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return pl.use(n),new Promise(i=>{pl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Rk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Bm(r);return n?xk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Yc();return n?wk(n,t):{err:{data:"Google configuration not found"}}}}}async function bk(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 Dk(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 $c(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 Gc.logout(e.user?.email),await va(r)}var nh={};C(nh,{validate:()=>Uk});var b=j(require("joi")),vk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function rh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Ck(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)});rh(e,t)}function Nk(t){let e=b.default.object({type:b.default.string().allow(...Object.values(yl)).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(gl)),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(El).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(...vk),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()}))})});rh(n,t)}function Pk(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(...Ih).required(),inputs:b.default.object().optional(),schema:b.default.object({inputs:r,outputs:r}).required()})});rh(n,t)}function Uk(t){switch(t?.type){case"component":Ck(t);break;case"datasource":Nk(t);break;case"automation":Pk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var ih={};C(ih,{Client:()=>Be,clients:()=>Wr,locks:()=>oi,utils:()=>ec});var sh={};C(sh,{isBlacklisted:()=>Mk,refreshBlacklist:()=>eO});var JS=j(require("dns")),ml=j(require("net"));var ZS=require("util"),fl,Lk=(0,ZS.promisify)(JS.default.lookup);async function XS(t){return ml.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Lk(t,{all:!0})).map(r=>r.address)}async function eO(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(ml.default.isIP(i))r.push(i);else{let s=await XS(i);r=r.concat(s)}}fl=r}async function Mk(t){if(fl||await eO(),fl?.length===0)return!1;let e;return ml.default.isIP(t)?e=[t]:e=await XS(t),!!fl?.find(r=>e.includes(r))}var ah={};C(ah,{init:()=>Fk});var kk={"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 tO(t,e){let r=kk[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=tO(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Ge(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return FA()}};var rO,oh;function Fk(t){gr||Bc(),oh||(oh=new La(t)),rO||(rO=gr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await oh.processEvent(r,n,i)}))}var gh={};C(gh,{COUNT_FIELD_NAME:()=>mh,Sql:()=>lO,SqlTable:()=>hl,designDoc:()=>hh,utils:()=>Of});var oO=require("knex");var Bk=require("knex");function uh(t){return["link","formula","ai"].indexOf(t)!==-1}function nO(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,d]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=d.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(d.meta&&d.meta.toKey&&d.meta.toTable){let{toKey:T,toTable:y}=d.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${T}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":d.timeOnly?t.time(m):t.datetime(m,{useTz:!d.ignoreTimezones});break;case"array":case"bb_reference":Qt.schema.isDeprecatedSingleUserColumn(d)?t.text(m):t.json(m);break;case"link":if(d.relationshipType!=="many-to-one"&&d.relationshipType!=="many-to-many"){if(!d.foreignKey||!d.tableId)throw new Error("Invalid relationship schema");let{tableName:T}=Tf(d.tableId),y=r[T];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=y.primary[0],S=y.schema[O].externalType;S?t.specificType(d.foreignKey,S):t.integer(d.foreignKey).unsigned(),t.foreign(d.foreignKey).references(`${T}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${d.type} is not a valid SQL type`;default:Ri.unreachable(g)}}let p=i?n?.schema[i.old].type:void 0;return i&&p&&!uh(p)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([d,f])=>!uh(f.type)&&e.schema[d]==null).forEach(([d,f])=>{i?.old===d||uh(f.type)||(n.constrained&&n.constrained.indexOf(d)!==-1&&t.dropForeign(d),t.dropColumn(d))}),t}function $k(t,e,r){return t.createTable(e.name,n=>{nO(n,e,r)})}function Vk(t,e,r,n,i){return t.alterTable(e.name,s=>{nO(s,e,r,n,i)})}function qk(t,e){return t.dropTable(e.name)}var ch=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,Bk.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=$k(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=Vk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=ns(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=qk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return ns(n)}},hl=ch;var aO=require("lodash"),mh="__bb_total";function iO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function lh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Wk(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 uO(t){return Array.isArray(t)?t.map(e=>uO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function sO(t){return t.sourceType==="internal"||t.sourceId===Al}function Qk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function cO(t,e='"'){return`${e}${Qk(t,e)}${e}`}function dh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=cO(t[r],e));return`[${t.join(",")}]`}var jk={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},ph=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Ur.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime"){if(_f(e))return null;if(Af(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,aO.cloneDeep)(e);for(let r of Object.values(Ar)){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=p=>n.match(new RegExp(`^${p}\\.`));if(!s)return e;for(let p of s){let m=p.tableName,d=a?.[m]||m,f=l(m)||l(d),g=l(p.column);if((f||g)&&p.to&&p.tableName){let T=this.knex.select(this.knex.raw(1)).from({[d]:m}),y=T.clone(),O=Sf(p),S;if(f?S=n:S=n.replace(new RegExp(`^${p.column}.`),`${a?.[p.tableName]||p.tableName}.`),O){let L=a?.[O.through]||p.through,E=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(E,function(){this.on(`${d}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,O)),e=e.where(A=>{A.whereExists(i(S,y)),r&&A.orWhereNotExists(T.clone().innerJoin(E,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${d}.${p.to}`,E=`${c}.${p.from}`;y=y.where(L,"=",this.rawQuotedIdentifier(E)),e=e.where(A=>{A.whereExists(i(S,y.clone())),r&&A.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,T,y){let O=(S,L,E)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ce=>T(ce,F?`${F}.${w}`:w,E))};for(let S in f){let L=f[S],E=ea(S),A=E.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let F=c(u);e=y(e,w.id.map(ce=>F?`${F}.${ce}`:ce),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,jk[g],E,(F,ce)=>O(ce,F,L)));else{let F=c(u);e=T(e,F?`${F}.${E}`:E,L)}}}let p=(f,g,T)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${T.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${T}%`]))),m=(f,g=!1)=>{function T(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,O,S)=>(y=T(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(dh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(dh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,O,S)=>T(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(cO(dh(S)))])):l(f,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(f===r?.notContains&&(L=L.not),L=L.where(E=>{for(let A of S){f===r?.containsAny?E=E.or:E=E.and;let B=typeof A=="string"?`"${A.toLowerCase()}"`:A;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),f===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(T=>{this.addFilters(T,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let T of f.conditions)g.orWhere(y=>this.addFilters(y,{...T,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,T)=>{let y=this.getFieldSchema(g),O=Array.isArray(T)?T:[T];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let S of O)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,O)},(f,g,T)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(T)?T:[T]))),r.string&&l(r.string,"string",(f,g,T)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${T.toLowerCase()}%`]):f.whereILike(g,`${T}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",p),r.range&&l(r.range,"range",(f,g,T)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(T.low)&&(T.low=""),y(T.high)&&(T.high="");let O=mc(T.low),S=mc(T.high),L=this.getFieldSchema(g),E=g,A=T.high,B=T.low;return this.client==="sqlite3"&&L?.type==="datetime"&&L.dateOnly&&(A!=null&&(A=`${A.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),A=this.knex.raw("CAST(? AS INTEGER)",[T.high]),B=this.knex.raw("CAST(? AS INTEGER)",[T.low])),o&&(f=f.or),O&&S?f.whereBetween(E,[B,A]):O?f.where(E,">=",B):S?f.where(E,"<=",A):f}),r.equal&&l(r.equal,"equal",(f,g,T)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.whereNotNull(O).andWhere(O,T))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?f.whereLike(g,`${T.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),T])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,T)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),T]);if(this.client==="oracledb"){let O=this.convertClobs(g);return f.where(S=>S.not.whereNull(O).and.where(O,"!=",T)).or.whereNull(O)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?T!=null?f.not.whereLike(g,`${T.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),T])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let d=s?.[this.table._id]||this.table._id;return r.documentType&&!Ef(this.table)&&d&&e.andWhereLike(`${d}._id`,`${Sr(r.documentType)}%`),e}isSqs(){return sO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;sO(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 ${mh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let p=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(p):m=this.rawQuotedIdentifier(p),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let p of n){let{tableName:m,through:d,to:f,from:g,fromPrimary:T,toPrimary:y}=p;if(!m||!r)continue;let O=c[m];if(!O)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,L=a?.[r]||r,E=d&&a?.[d]||d,A=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=Wk(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ce=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),an=`${S}.${y||f}`,V=s.from(A).orderBy(an),k=d&&y&&T,D=k?`${E}.${g}`:`${S}.${f}`,W=k?`${L}.${T}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(d,{alias:E,schema:u});V=V.join(q,function(){this.on(`${S}.${y}`,"=",`${E}.${f}`)})}V=V.where(this.rawQuotedIdentifier(D),"=",this.rawQuotedIdentifier(W));let U=q=>(V=V.select(w.map(ie=>this.rawQuotedIdentifier(ie))).limit(lh()),s.select(q).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,p),K=U(this.knex.raw(`json_group_array(json_object(${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 ${lh()})`));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(lh())});K=s.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[p.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,p=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),d=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(d,function(){for(let f of n){let g=f.fromPrimary,T=f.from;this.orOn(`${p}.${g}`,"=",`${l}.${T}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,T=f.to;this.orOn(`${c}.${g}`,`${l}.${T}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,T=f.to;this.orOn(`${p}.${g}`,"=",`${c}.${T}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let d=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=d}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let p=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):p.length>0?u=this.addAggregations(u,p):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&p.length===0){let m=this.query.tableAliases?.[o.name]||o.name,d=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(d,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},fh=class extends hl{constructor(r,n=iO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=ns(r);return i==="sqlite3"&&(s=uO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,oO.knex)(s),a,u=new ph(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:iO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let p=[];for(let m of a)p.push(await n(m,o));return p}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let p;s==="mssql"?p=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(p=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(p,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Al){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 xh.includes(r.type)&&!Qt.schema.isDeprecatedSingleUserColumn(r)}log(r,n){ra(this.getSqlClient(),r,n)}},lO=fh;var hh={};C(hh,{base:()=>Yk});function Yk(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Hk={...oa,...ye},Kk=(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
|