@budibase/backend-core 3.2.44 → 3.2.45
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 +8 -8
- package/dist/index.js.map +2 -2
- package/dist/package.json +2 -2
- package/dist/src/db/couch/connections.d.ts +2 -2
- package/dist/src/db/couch/connections.js.map +1 -1
- package/dist/tests/core/users/users.spec.d.ts +1 -0
- package/dist/tests/core/users/users.spec.js +89 -0
- package/dist/tests/core/users/users.spec.js.map +1 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
"use strict";var uO=Object.create;var va=Object.defineProperty;var cO=Object.getOwnPropertyDescriptor;var lO=Object.getOwnPropertyNames;var dO=Object.getPrototypeOf,fO=Object.prototype.hasOwnProperty;var K=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)va(t,r,{get:e[r],enumerable:!0})},ph=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of lO(e))!fO.call(t,i)&&i!==r&&va(t,i,{get:()=>e[i],enumerable:!(n=cO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?uO(dO(t)):{},ph(e||!t||!t.__esModule?va(r,"default",{value:t,enumerable:!0}):r,t)),pO=t=>ph(va({},"__esModule",{value:!0}),t);var Bh=K((Il,xl)=>{"use strict";(function(t,e){typeof Il=="object"&&typeof xl<"u"?xl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Il,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",m="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,_={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(G){var k=["th","st","nd","rd"],R=G%100;return"["+G+(k[(R-20)%10]||k[R]||k[0])+"]"}},E=function(G,k,R){var W=String(G);return!W||W.length>=k?G:""+Array(k+1-W.length).join(R)+G},O={s:E,z:function(G){var k=-G.utcOffset(),R=Math.abs(k),W=Math.floor(R/60),U=R%60;return(k<=0?"+":"-")+E(W,2,"0")+":"+E(U,2,"0")},m:function G(k,R){if(k.date()<R.date())return-G(R,k);var W=12*(R.year()-k.year())+(R.month()-k.month()),U=k.clone().add(W,c),H=R-U<0,q=k.clone().add(W+(H?-1:1),c);return+(-(W+(R-U)/(H?U-q:q-U))||0)},a:function(G){return G<0?Math.ceil(G)||0:Math.floor(G)},p:function(G){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[G]||String(G||"").toLowerCase().replace(/s$/,"")},u:function(G){return G===void 0}},S="en",L={};L[S]=_;var y="$isDayjsObject",A=function(G){return G instanceof ue||!(!G||!G[y])},B=function G(k,R,W){var U;if(!k)return S;if(typeof k=="string"){var H=k.toLowerCase();L[H]&&(U=H),R&&(L[H]=R,U=H);var q=k.split("-");if(!U&&q.length>1)return G(q[0])}else{var se=k.name;L[se]=k,U=se}return!W&&U&&(S=U),U||!W&&S},w=function(G,k){if(A(G))return G.clone();var R=typeof k=="object"?k:{};return R.date=G,R.args=arguments,new ue(R)},F=O;F.l=B,F.i=A,F.w=function(G,k){return w(G,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ue=function(){function G(R){this.$L=B(R.locale,null,!0),this.parse(R),this.$x=this.$x||R.x||{},this[y]=!0}var k=G.prototype;return k.parse=function(R){this.$d=function(W){var U=W.date,H=W.utc;if(U===null)return new Date(NaN);if(F.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var q=U.match(p);if(q){var se=q[2]-1||0,$=(q[7]||"0").substring(0,3);return H?new Date(Date.UTC(q[1],se,q[3]||1,q[4]||0,q[5]||0,q[6]||0,$)):new Date(q[1],se,q[3]||1,q[4]||0,q[5]||0,q[6]||0,$)}}return new Date(U)}(R),this.init()},k.init=function(){var R=this.$d;this.$y=R.getFullYear(),this.$M=R.getMonth(),this.$D=R.getDate(),this.$W=R.getDay(),this.$H=R.getHours(),this.$m=R.getMinutes(),this.$s=R.getSeconds(),this.$ms=R.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==f},k.isSame=function(R,W){var U=w(R);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(R,W){return w(R)<this.startOf(W)},k.isBefore=function(R,W){return this.endOf(W)<w(R)},k.$g=function(R,W,U){return F.u(R)?this[W]:this.set(U,R)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(R,W){var U=this,H=!!F.u(W)||W,q=F.p(R),se=function(rn,Be){var pr=F.w(U.$u?Date.UTC(U.$y,Be,rn):new Date(U.$y,Be,rn),U);return H?pr:pr.endOf(a)},$=function(rn,Be){return F.w(U.toDate()[rn].apply(U.toDate("s"),(H?[0,0,0,0]:[23,59,59,999]).slice(Be)),U)},Oe=this.$W,Ne=this.$M,st=this.$D,ci="set"+(this.$u?"UTC":"");switch(q){case d:return H?se(1,0):se(31,11);case c:return H?se(1,Ne):se(0,Ne+1);case u:var tn=this.$locale().weekStart||0,Es=(Oe<tn?Oe+7:Oe)-tn;return se(H?st-Es:st+(6-Es),Ne);case a:case m:return $(ci+"Hours",0);case o:return $(ci+"Minutes",1);case s:return $(ci+"Seconds",2);case i:return $(ci+"Milliseconds",3);default:return this.clone()}},k.endOf=function(R){return this.startOf(R,!1)},k.$set=function(R,W){var U,H=F.p(R),q="set"+(this.$u?"UTC":""),se=(U={},U[a]=q+"Date",U[m]=q+"Date",U[c]=q+"Month",U[d]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[H],$=H===a?this.$D+(W-this.$W):W;if(H===c||H===d){var Oe=this.clone().set(m,1);Oe.$d[se]($),Oe.init(),this.$d=Oe.set(m,Math.min(this.$D,Oe.daysInMonth())).$d}else se&&this.$d[se]($);return this.init(),this},k.set=function(R,W){return this.clone().$set(R,W)},k.get=function(R){return this[F.p(R)]()},k.add=function(R,W){var U,H=this;R=Number(R);var q=F.p(W),se=function(Ne){var st=w(H);return F.w(st.date(st.date()+Math.round(Ne*R)),H)};if(q===c)return this.set(c,this.$M+R);if(q===d)return this.set(d,this.$y+R);if(q===a)return se(1);if(q===u)return se(7);var $=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,Oe=this.$d.getTime()+R*$;return F.w(Oe,this)},k.subtract=function(R,W){return this.add(-1*R,W)},k.format=function(R){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||f;var H=R||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),se=this.$H,$=this.$m,Oe=this.$M,Ne=U.weekdays,st=U.months,ci=U.meridiem,tn=function(Be,pr,ys,Ra){return Be&&(Be[pr]||Be(W,H))||ys[pr].slice(0,Ra)},Es=function(Be){return F.s(se%12||12,Be,"0")},rn=ci||function(Be,pr,ys){var Ra=Be<12?"AM":"PM";return ys?Ra.toLowerCase():Ra};return H.replace(g,function(Be,pr){return pr||function(ys){switch(ys){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return Oe+1;case"MM":return F.s(Oe+1,2,"0");case"MMM":return tn(U.monthsShort,Oe,st,3);case"MMMM":return tn(st,Oe);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return tn(U.weekdaysMin,W.$W,Ne,2);case"ddd":return tn(U.weekdaysShort,W.$W,Ne,3);case"dddd":return Ne[W.$W];case"H":return String(se);case"HH":return F.s(se,2,"0");case"h":return Es(1);case"hh":return Es(2);case"a":return rn(se,$,!0);case"A":return rn(se,$,!1);case"m":return String($);case"mm":return F.s($,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}(Be)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(R,W,U){var H,q=this,se=F.p(W),$=w(R),Oe=($.utcOffset()-this.utcOffset())*e,Ne=this-$,st=function(){return F.m(q,$)};switch(se){case d:H=st()/12;break;case c:H=st();break;case l:H=st()/3;break;case u:H=(Ne-Oe)/6048e5;break;case a:H=(Ne-Oe)/864e5;break;case o:H=Ne/r;break;case s:H=Ne/e;break;case i:H=Ne/t;break;default:H=Ne}return U?H:F.a(H)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(R,W){if(!R)return this.$L;var U=this.clone(),H=B(R,W,!0);return H&&(U.$L=H),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()},G}(),en=ue.prototype;return w.prototype=en,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function(G){en[G[1]]=function(k){return this.$g(k,G[0],G[1])}}),w.extend=function(G,k){return G.$i||(G(k,ue,w),G.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(G){return w(1e3*G)},w.en=L[S],w.Ls=L,w.p={},w})});var yt=K(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.Err=Ve.Valid=Ve.err=Ve.valid=void 0;var kI=t=>new za(t);Ve.valid=kI;var FI=t=>new Ja(t);Ve.err=FI;var za=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,Ve.valid)(e(this.value))}mapErr(e){return(0,Ve.valid)(this.value)}};Ve.Valid=za;var Ja=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,Ve.err)(this.error)}mapErr(e){return(0,Ve.err)(e(this.error))}};Ve.Err=Ja});var _t=K(qh=>{"use strict";Object.defineProperty(qh,"__esModule",{value:!0})});var Ar=K(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Mt();var re=yt();_t();var BI=["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,Ds=(t,e,r)=>{if(e==="months"&&r.useAliases&&BI.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)},GI=(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):Ds(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):Ds(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."):Ds(n,e,r)}return Ds(t,e,r)},Wh=(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):Ds(t,e,r),qI=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return GI(n[0],e,r);if(n.length===2){let i=Wh(n[0],e,r,0),s=Wh(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,re.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,re.valid)(!0)}return(0,re.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},WI=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '/')`);let i=qI(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,re.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,re.valid)(!0)},QI=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,re.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,re.valid)(!0):(0,re.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,re.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(WI(o,e,r))}),i.every(o=>o.isValid()))return(0,re.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,re.err)(s)};Rl.default=QI});var Qh=K(Rs=>{"use strict";var jI=Rs&&Rs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Rs,"__esModule",{value:!0});Mt();var KI=yt(),YI=jI(Ar());_t();var HI=(t,e)=>{if(!t.seconds)return(0,KI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,YI.default)(r,"seconds",e)};Rs.default=HI});var jh=K(vs=>{"use strict";var zI=vs&&vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vs,"__esModule",{value:!0});Mt();var JI=yt(),ZI=zI(Ar());_t();var XI=(t,e)=>{if(!t.minutes)return(0,JI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ZI.default)(r,"minutes",e)};vs.default=XI});var Kh=K(Cs=>{"use strict";var ex=Cs&&Cs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Cs,"__esModule",{value:!0});Mt();var tx=yt(),rx=ex(Ar());_t();var nx=(t,e)=>{if(!t.hours)return(0,tx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,rx.default)(r,"hours",e)};Cs.default=nx});var Yh=K(Ps=>{"use strict";var ix=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Mt();var Ns=yt(),sx=ix(Ar());_t();var ox=(t,e)=>{if(!t.daysOfMonth)return(0,Ns.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ns.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ns.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ns.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ns.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,sx.default)(r,"daysOfMonth",e)};Ps.default=ox});var Hh=K(Us=>{"use strict";var ax=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Mt();var ux=yt(),cx=ax(Ar());_t();var lx=(t,e)=>{if(!t.months)return(0,ux.err)(["months field is undefined."]);let{months:r}=t;return(0,cx.default)(r,"months",e)};Us.default=lx});var zh=K(Ms=>{"use strict";var dx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Mt();var Ls=yt(),fx=dx(Ar());_t();var px=(t,e)=>{if(!t.daysOfWeek)return(0,Ls.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ls.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ls.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ls.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ls.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,fx.default)(r,"daysOfWeek",e)};Ms.default=px});var Jh=K(ks=>{"use strict";var mx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Mt();var hx=yt(),gx=mx(Ar());_t();var Ex=(t,e)=>{if(!t.years)return(0,hx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,gx.default)(r,"years",e)};ks.default=Ex});var tg=K((R1,eg)=>{"use strict";var vl;try{vl=Map}catch{}var Cl;try{Cl=Set}catch{}function Zh(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(Xh);if(vl&&t instanceof vl)return new Map(Array.from(t.entries()));if(Cl&&t instanceof Cl)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]:Zh(t[i],e,r)}return n}return t}function Xh(t){return Zh(t,[],[])}eg.exports=Xh});var Fs=K(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});Nl.default=Ix;var yx=Object.prototype.toString,_x=Error.prototype.toString,Tx=RegExp.prototype.toString,Ax=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Sx=/^Symbol\((.*)\)(.*)$/;function Ox(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function rg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Ox(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Ax.call(t).replace(Sx,"Symbol($1)");let n=yx.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"?Tx.call(t):null}function Ix(t,e){let r=rg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=rg(this[n],e);return s!==null?s:i},2)}});var Kt=K(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.default=Ie.array=Ie.object=Ie.boolean=Ie.date=Ie.number=Ie.string=Ie.mixed=void 0;var ng=xx(Fs());function xx(t){return t&&t.__esModule?t:{default:t}}var ig={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,ng.default)(r,!0)}\``+(i?` (cast from the value \`${(0,ng.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"};Ie.mixed=ig;var sg={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"};Ie.string=sg;var og={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"};Ie.number=og;var ag={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ie.date=ag;var ug={isValue:"${path} field must be ${value}"};Ie.boolean=ug;var cg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ie.object=cg;var lg={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"};Ie.array=lg;var wx=Object.assign(Object.create(null),{mixed:ig,string:sg,number:og,date:ag,object:cg,array:lg,boolean:ug});Ie.default=wx});var Si=K(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.default=void 0;var bx=t=>t&&t.__isYupSchema__;Za.default=bx});var fg=K(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.default=void 0;var Dx=dg(require("lodash/has")),Rx=dg(Si());function dg(t){return t&&t.__esModule?t:{default:t}}var Pl=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,Rx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},vx=Pl;Xa.default=vx});var Ll=K(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});Ul.default=Cx;function Cx(t){return t==null?[]:[].concat(t)}});var An=K(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});eu.default=void 0;var Nx=pg(Fs()),Px=pg(Ll());function pg(t){return t&&t.__esModule?t:{default:t}}function Ml(){return Ml=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},Ml.apply(this,arguments)}var Ux=/\$\{\s*(\w+)\s*\}/g,kl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Ml({},r,{path:n})),typeof e=="string"?e.replace(Ux,(i,s)=>(0,Nx.default)(r[s])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,n,i){super(),this.name="ValidationError",this.value=r,this.path=n,this.type=i,this.errors=[],this.inner=[],(0,Px.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};eu.default=kl});var tu=K(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.default=kx;var Fl=Lx(An());function Lx(t){return t&&t.__esModule?t:{default:t}}var Mx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function kx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Mx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Fl.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let f=n[m];f(i,function(g){if(g){if(!Fl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new Fl.default(o,s,u),s);return}c(null,s)}})}}});var Bs=K((k1,yg)=>{"use strict";function Sn(t){this._maxSize=t,this.clear()}Sn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Sn.prototype.get=function(t){return this._values[t]};Sn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Fx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Eg=/^\d+$/,Bx=/^\d/,$x=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Vx=/^\s*(['"]?)(.*?)(\1)\s*$/,Gl=512,mg=new Sn(Gl),hg=new Sn(Gl),gg=new Sn(Gl);yg.exports={Cache:Sn,split:Vl,normalizePath:$l,setter:function(t){var e=$l(t);return hg.get(t)||hg.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=$l(t);return gg.get(t)||gg.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+(ql(r)||Eg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Gx(Array.isArray(t)?t:Vl(t),e,r)}};function $l(t){return mg.get(t)||mg.set(t,Vl(t).map(function(e){return e.replace(Vx,"$2")}))}function Vl(t){return t.match(Fx)||[""]}function Gx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Qx(i)&&(i='"'+i+'"'),a=ql(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ql(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function qx(t){return t.match(Bx)&&!t.match(Eg)}function Wx(t){return $x.test(t)}function Qx(t){return!ql(t)&&(qx(t)||Wx(t))}});var On=K(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});Vs.create=Kx;Vs.default=void 0;var jx=Bs(),ru={context:"$",value:"."};function Kx(t,e){return new $s(t,e)}var $s=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]===ru.context,this.isValue=this.key[0]===ru.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?ru.context:this.isValue?ru.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,jx.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Vs.default=$s;$s.prototype.__isYupRef=!0});var _g=K(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.default=Jx;var Yx=Wl(require("lodash/mapValues")),nu=Wl(An()),Hx=Wl(On());function Wl(t){return t&&t.__esModule?t:{default:t}}function iu(){return iu=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},iu.apply(this,arguments)}function zx(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function Jx(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=zx(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:f,message:p}=t,{parent:g,context:_}=a;function E(A){return Hx.default.isRef(A)?A.getValue(i,g,_):A}function O(A={}){let B=(0,Yx.default)(iu({value:i,originalValue:u,label:o,path:A.path||s},f,A.params),E),w=new nu.default(nu.default.formatError(A.message||p,B),i,B.path,A.type||d);return w.params=B,w}let S=iu({path:s,parent:g,type:d,createError:O,resolve:E,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(A=>{nu.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var y;if(L=m.call(S,i,S),typeof((y=L)==null?void 0:y.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}nu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var jl=K(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});Gs.getIn=Tg;Gs.default=void 0;var Zx=Bs(),Xx=t=>t.substr(0,t.length-1).substr(1);function Tg(t,e,r,n=r){let i,s,o;return e?((0,Zx.forEach)(e,(a,u,c)=>{let l=u?Xx(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var ew=(t,e,r,n)=>Tg(t,e,r,n).schema,tw=ew;Gs.default=tw});var Sg=K(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Ag=rw(On());function rw(t){return t&&t.__esModule?t:{default:t}}var Kl=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){Ag.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Ag.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}};su.default=Kl});var Ht=K(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Og=Yt(tg()),Oi=Kt(),nw=Yt(fg()),Ig=Yt(tu()),ou=Yt(_g()),xg=Yt(Fs()),iw=Yt(On()),sw=jl(),ow=Yt(Ll()),wg=Yt(An()),bg=Yt(Sg());function Yt(t){return t&&t.__esModule?t:{default:t}}function ut(){return ut=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},ut.apply(this,arguments)}var Tt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new bg.default,this._blacklist=new bg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Oi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ut({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=ut({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Og.default)(ut({},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=ut({},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(ut({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,xg.default)(e),o=(0,xg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
1
|
+
"use strict";var uO=Object.create;var va=Object.defineProperty;var cO=Object.getOwnPropertyDescriptor;var lO=Object.getOwnPropertyNames;var dO=Object.getPrototypeOf,fO=Object.prototype.hasOwnProperty;var K=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)va(t,r,{get:e[r],enumerable:!0})},ph=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of lO(e))!fO.call(t,i)&&i!==r&&va(t,i,{get:()=>e[i],enumerable:!(n=cO(e,i))||n.enumerable});return t};var j=(t,e,r)=>(r=t!=null?uO(dO(t)):{},ph(e||!t||!t.__esModule?va(r,"default",{value:t,enumerable:!0}):r,t)),pO=t=>ph(va({},"__esModule",{value:!0}),t);var Bh=K((Il,xl)=>{"use strict";(function(t,e){typeof Il=="object"&&typeof xl<"u"?xl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Il,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",p="date",f="Invalid Date",m=/^(\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,_={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(G){var k=["th","st","nd","rd"],R=G%100;return"["+G+(k[(R-20)%10]||k[R]||k[0])+"]"}},y=function(G,k,R){var W=String(G);return!W||W.length>=k?G:""+Array(k+1-W.length).join(R)+G},O={s:y,z:function(G){var k=-G.utcOffset(),R=Math.abs(k),W=Math.floor(R/60),U=R%60;return(k<=0?"+":"-")+y(W,2,"0")+":"+y(U,2,"0")},m:function G(k,R){if(k.date()<R.date())return-G(R,k);var W=12*(R.year()-k.year())+(R.month()-k.month()),U=k.clone().add(W,c),H=R-U<0,q=k.clone().add(W+(H?-1:1),c);return+(-(W+(R-U)/(H?U-q:q-U))||0)},a:function(G){return G<0?Math.ceil(G)||0:Math.floor(G)},p:function(G){return{M:c,y:d,w:u,d:a,D:p,h:o,m:s,s:i,ms:n,Q:l}[G]||String(G||"").toLowerCase().replace(/s$/,"")},u:function(G){return G===void 0}},S="en",L={};L[S]=_;var E="$isDayjsObject",A=function(G){return G instanceof ue||!(!G||!G[E])},B=function G(k,R,W){var U;if(!k)return S;if(typeof k=="string"){var H=k.toLowerCase();L[H]&&(U=H),R&&(L[H]=R,U=H);var q=k.split("-");if(!U&&q.length>1)return G(q[0])}else{var ie=k.name;L[ie]=k,U=ie}return!W&&U&&(S=U),U||!W&&S},w=function(G,k){if(A(G))return G.clone();var R=typeof k=="object"?k:{};return R.date=G,R.args=arguments,new ue(R)},F=O;F.l=B,F.i=A,F.w=function(G,k){return w(G,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var ue=function(){function G(R){this.$L=B(R.locale,null,!0),this.parse(R),this.$x=this.$x||R.x||{},this[E]=!0}var k=G.prototype;return k.parse=function(R){this.$d=function(W){var U=W.date,H=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(m);if(q){var ie=q[2]-1||0,$=(q[7]||"0").substring(0,3);return H?new Date(Date.UTC(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,$)):new Date(q[1],ie,q[3]||1,q[4]||0,q[5]||0,q[6]||0,$)}}return new Date(U)}(R),this.init()},k.init=function(){var R=this.$d;this.$y=R.getFullYear(),this.$M=R.getMonth(),this.$D=R.getDate(),this.$W=R.getDay(),this.$H=R.getHours(),this.$m=R.getMinutes(),this.$s=R.getSeconds(),this.$ms=R.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==f},k.isSame=function(R,W){var U=w(R);return this.startOf(W)<=U&&U<=this.endOf(W)},k.isAfter=function(R,W){return w(R)<this.startOf(W)},k.isBefore=function(R,W){return this.endOf(W)<w(R)},k.$g=function(R,W,U){return F.u(R)?this[W]:this.set(U,R)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(R,W){var U=this,H=!!F.u(W)||W,q=F.p(R),ie=function(rn,Be){var pr=F.w(U.$u?Date.UTC(U.$y,Be,rn):new Date(U.$y,Be,rn),U);return H?pr:pr.endOf(a)},$=function(rn,Be){return F.w(U.toDate()[rn].apply(U.toDate("s"),(H?[0,0,0,0]:[23,59,59,999]).slice(Be)),U)},Oe=this.$W,Ne=this.$M,st=this.$D,ci="set"+(this.$u?"UTC":"");switch(q){case d:return H?ie(1,0):ie(31,11);case c:return H?ie(1,Ne):ie(0,Ne+1);case u:var tn=this.$locale().weekStart||0,ys=(Oe<tn?Oe+7:Oe)-tn;return ie(H?st-ys:st+(6-ys),Ne);case a:case p:return $(ci+"Hours",0);case o:return $(ci+"Minutes",1);case s:return $(ci+"Seconds",2);case i:return $(ci+"Milliseconds",3);default:return this.clone()}},k.endOf=function(R){return this.startOf(R,!1)},k.$set=function(R,W){var U,H=F.p(R),q="set"+(this.$u?"UTC":""),ie=(U={},U[a]=q+"Date",U[p]=q+"Date",U[c]=q+"Month",U[d]=q+"FullYear",U[o]=q+"Hours",U[s]=q+"Minutes",U[i]=q+"Seconds",U[n]=q+"Milliseconds",U)[H],$=H===a?this.$D+(W-this.$W):W;if(H===c||H===d){var Oe=this.clone().set(p,1);Oe.$d[ie]($),Oe.init(),this.$d=Oe.set(p,Math.min(this.$D,Oe.daysInMonth())).$d}else ie&&this.$d[ie]($);return this.init(),this},k.set=function(R,W){return this.clone().$set(R,W)},k.get=function(R){return this[F.p(R)]()},k.add=function(R,W){var U,H=this;R=Number(R);var q=F.p(W),ie=function(Ne){var st=w(H);return F.w(st.date(st.date()+Math.round(Ne*R)),H)};if(q===c)return this.set(c,this.$M+R);if(q===d)return this.set(d,this.$y+R);if(q===a)return ie(1);if(q===u)return ie(7);var $=(U={},U[s]=e,U[o]=r,U[i]=t,U)[q]||1,Oe=this.$d.getTime()+R*$;return F.w(Oe,this)},k.subtract=function(R,W){return this.add(-1*R,W)},k.format=function(R){var W=this,U=this.$locale();if(!this.isValid())return U.invalidDate||f;var H=R||"YYYY-MM-DDTHH:mm:ssZ",q=F.z(this),ie=this.$H,$=this.$m,Oe=this.$M,Ne=U.weekdays,st=U.months,ci=U.meridiem,tn=function(Be,pr,Es,Ra){return Be&&(Be[pr]||Be(W,H))||Es[pr].slice(0,Ra)},ys=function(Be){return F.s(ie%12||12,Be,"0")},rn=ci||function(Be,pr,Es){var Ra=Be<12?"AM":"PM";return Es?Ra.toLowerCase():Ra};return H.replace(g,function(Be,pr){return pr||function(Es){switch(Es){case"YY":return String(W.$y).slice(-2);case"YYYY":return F.s(W.$y,4,"0");case"M":return Oe+1;case"MM":return F.s(Oe+1,2,"0");case"MMM":return tn(U.monthsShort,Oe,st,3);case"MMMM":return tn(st,Oe);case"D":return W.$D;case"DD":return F.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return tn(U.weekdaysMin,W.$W,Ne,2);case"ddd":return tn(U.weekdaysShort,W.$W,Ne,3);case"dddd":return Ne[W.$W];case"H":return String(ie);case"HH":return F.s(ie,2,"0");case"h":return ys(1);case"hh":return ys(2);case"a":return rn(ie,$,!0);case"A":return rn(ie,$,!1);case"m":return String($);case"mm":return F.s($,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}(Be)||q.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(R,W,U){var H,q=this,ie=F.p(W),$=w(R),Oe=($.utcOffset()-this.utcOffset())*e,Ne=this-$,st=function(){return F.m(q,$)};switch(ie){case d:H=st()/12;break;case c:H=st();break;case l:H=st()/3;break;case u:H=(Ne-Oe)/6048e5;break;case a:H=(Ne-Oe)/864e5;break;case o:H=Ne/r;break;case s:H=Ne/e;break;case i:H=Ne/t;break;default:H=Ne}return U?H:F.a(H)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return L[this.$L]},k.locale=function(R,W){if(!R)return this.$L;var U=this.clone(),H=B(R,W,!0);return H&&(U.$L=H),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()},G}(),en=ue.prototype;return w.prototype=en,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",p]].forEach(function(G){en[G[1]]=function(k){return this.$g(k,G[0],G[1])}}),w.extend=function(G,k){return G.$i||(G(k,ue,w),G.$i=!0),w},w.locale=B,w.isDayjs=A,w.unix=function(G){return w(1e3*G)},w.en=L[S],w.Ls=L,w.p={},w})});var Et=K(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.Err=Ve.Valid=Ve.err=Ve.valid=void 0;var kI=t=>new za(t);Ve.valid=kI;var FI=t=>new Ja(t);Ve.err=FI;var za=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,Ve.valid)(e(this.value))}mapErr(e){return(0,Ve.valid)(this.value)}};Ve.Valid=za;var Ja=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,Ve.err)(this.error)}mapErr(e){return(0,Ve.err)(e(this.error))}};Ve.Err=Ja});var _t=K(qh=>{"use strict";Object.defineProperty(qh,"__esModule",{value:!0})});var Ar=K(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Mt();var re=Et();_t();var BI=["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,Ds=(t,e,r)=>{if(e==="months"&&r.useAliases&&BI.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)},GI=(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):Ds(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):Ds(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."):Ds(n,e,r)}return Ds(t,e,r)},Wh=(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):Ds(t,e,r),qI=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return GI(n[0],e,r);if(n.length===2){let i=Wh(n[0],e,r,0),s=Wh(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,re.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,re.valid)(!0)}return(0,re.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},WI=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,re.err)(`List element '${t}' is not valid. (More than one '/')`);let i=qI(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,re.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,re.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,re.valid)(!0)},QI=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,re.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,re.valid)(!0):(0,re.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,re.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(WI(o,e,r))}),i.every(o=>o.isValid()))return(0,re.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,re.err)(s)};Rl.default=QI});var Qh=K(Rs=>{"use strict";var jI=Rs&&Rs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Rs,"__esModule",{value:!0});Mt();var KI=Et(),YI=jI(Ar());_t();var HI=(t,e)=>{if(!t.seconds)return(0,KI.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,YI.default)(r,"seconds",e)};Rs.default=HI});var jh=K(vs=>{"use strict";var zI=vs&&vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vs,"__esModule",{value:!0});Mt();var JI=Et(),ZI=zI(Ar());_t();var XI=(t,e)=>{if(!t.minutes)return(0,JI.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,ZI.default)(r,"minutes",e)};vs.default=XI});var Kh=K(Cs=>{"use strict";var ex=Cs&&Cs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Cs,"__esModule",{value:!0});Mt();var tx=Et(),rx=ex(Ar());_t();var nx=(t,e)=>{if(!t.hours)return(0,tx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,rx.default)(r,"hours",e)};Cs.default=nx});var Yh=K(Ps=>{"use strict";var ix=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Mt();var Ns=Et(),sx=ix(Ar());_t();var ox=(t,e)=>{if(!t.daysOfMonth)return(0,Ns.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ns.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ns.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ns.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ns.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,sx.default)(r,"daysOfMonth",e)};Ps.default=ox});var Hh=K(Us=>{"use strict";var ax=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Mt();var ux=Et(),cx=ax(Ar());_t();var lx=(t,e)=>{if(!t.months)return(0,ux.err)(["months field is undefined."]);let{months:r}=t;return(0,cx.default)(r,"months",e)};Us.default=lx});var zh=K(Ms=>{"use strict";var dx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Mt();var Ls=Et(),fx=dx(Ar());_t();var px=(t,e)=>{if(!t.daysOfWeek)return(0,Ls.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ls.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ls.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ls.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ls.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,fx.default)(r,"daysOfWeek",e)};Ms.default=px});var Jh=K(ks=>{"use strict";var mx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Mt();var hx=Et(),gx=mx(Ar());_t();var yx=(t,e)=>{if(!t.years)return(0,hx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,gx.default)(r,"years",e)};ks.default=yx});var tg=K((C1,eg)=>{"use strict";var vl;try{vl=Map}catch{}var Cl;try{Cl=Set}catch{}function Zh(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(Xh);if(vl&&t instanceof vl)return new Map(Array.from(t.entries()));if(Cl&&t instanceof Cl)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]:Zh(t[i],e,r)}return n}return t}function Xh(t){return Zh(t,[],[])}eg.exports=Xh});var Fs=K(Nl=>{"use strict";Object.defineProperty(Nl,"__esModule",{value:!0});Nl.default=Ix;var Ex=Object.prototype.toString,_x=Error.prototype.toString,Tx=RegExp.prototype.toString,Ax=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Sx=/^Symbol\((.*)\)(.*)$/;function Ox(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function rg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Ox(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Ax.call(t).replace(Sx,"Symbol($1)");let n=Ex.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+_x.call(t)+"]":n==="RegExp"?Tx.call(t):null}function Ix(t,e){let r=rg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=rg(this[n],e);return s!==null?s:i},2)}});var Kt=K(Ie=>{"use strict";Object.defineProperty(Ie,"__esModule",{value:!0});Ie.default=Ie.array=Ie.object=Ie.boolean=Ie.date=Ie.number=Ie.string=Ie.mixed=void 0;var ng=xx(Fs());function xx(t){return t&&t.__esModule?t:{default:t}}var ig={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,ng.default)(r,!0)}\``+(i?` (cast from the value \`${(0,ng.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"};Ie.mixed=ig;var sg={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"};Ie.string=sg;var og={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"};Ie.number=og;var ag={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ie.date=ag;var ug={isValue:"${path} field must be ${value}"};Ie.boolean=ug;var cg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ie.object=cg;var lg={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"};Ie.array=lg;var wx=Object.assign(Object.create(null),{mixed:ig,string:sg,number:og,date:ag,object:cg,array:lg,boolean:ug});Ie.default=wx});var Si=K(Za=>{"use strict";Object.defineProperty(Za,"__esModule",{value:!0});Za.default=void 0;var bx=t=>t&&t.__isYupSchema__;Za.default=bx});var fg=K(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});Xa.default=void 0;var Dx=dg(require("lodash/has")),Rx=dg(Si());function dg(t){return t&&t.__esModule?t:{default:t}}var Pl=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,Rx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},vx=Pl;Xa.default=vx});var Ll=K(Ul=>{"use strict";Object.defineProperty(Ul,"__esModule",{value:!0});Ul.default=Cx;function Cx(t){return t==null?[]:[].concat(t)}});var An=K(eu=>{"use strict";Object.defineProperty(eu,"__esModule",{value:!0});eu.default=void 0;var Nx=pg(Fs()),Px=pg(Ll());function pg(t){return t&&t.__esModule?t:{default:t}}function Ml(){return Ml=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},Ml.apply(this,arguments)}var Ux=/\$\{\s*(\w+)\s*\}/g,kl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Ml({},r,{path:n})),typeof e=="string"?e.replace(Ux,(i,s)=>(0,Nx.default)(r[s])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,n,i){super(),this.name="ValidationError",this.value=r,this.path=n,this.type=i,this.errors=[],this.inner=[],(0,Px.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};eu.default=kl});var tu=K(Bl=>{"use strict";Object.defineProperty(Bl,"__esModule",{value:!0});Bl.default=kx;var Fl=Lx(An());function Lx(t){return t&&t.__esModule?t:{default:t}}var Mx=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function kx(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=Mx(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new Fl.default(o,s,u)):c(null,s);for(let p=0;p<n.length;p++){let f=n[p];f(i,function(g){if(g){if(!Fl.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new Fl.default(o,s,u),s);return}c(null,s)}})}}});var Bs=K((B1,Eg)=>{"use strict";function Sn(t){this._maxSize=t,this.clear()}Sn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Sn.prototype.get=function(t){return this._values[t]};Sn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Fx=/[^.^\]^[]+|(?=\[\]|\.\.)/g,yg=/^\d+$/,Bx=/^\d/,$x=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Vx=/^\s*(['"]?)(.*?)(\1)\s*$/,Gl=512,mg=new Sn(Gl),hg=new Sn(Gl),gg=new Sn(Gl);Eg.exports={Cache:Sn,split:Vl,normalizePath:$l,setter:function(t){var e=$l(t);return hg.get(t)||hg.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=$l(t);return gg.get(t)||gg.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+(ql(r)||yg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){Gx(Array.isArray(t)?t:Vl(t),e,r)}};function $l(t){return mg.get(t)||mg.set(t,Vl(t).map(function(e){return e.replace(Vx,"$2")}))}function Vl(t){return t.match(Fx)||[""]}function Gx(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(Qx(i)&&(i='"'+i+'"'),a=ql(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ql(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function qx(t){return t.match(Bx)&&!t.match(yg)}function Wx(t){return $x.test(t)}function Qx(t){return!ql(t)&&(qx(t)||Wx(t))}});var On=K(Vs=>{"use strict";Object.defineProperty(Vs,"__esModule",{value:!0});Vs.create=Kx;Vs.default=void 0;var jx=Bs(),ru={context:"$",value:"."};function Kx(t,e){return new $s(t,e)}var $s=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]===ru.context,this.isValue=this.key[0]===ru.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?ru.context:this.isValue?ru.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,jx.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Vs.default=$s;$s.prototype.__isYupRef=!0});var _g=K(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.default=Jx;var Yx=Wl(require("lodash/mapValues")),nu=Wl(An()),Hx=Wl(On());function Wl(t){return t&&t.__esModule?t:{default:t}}function iu(){return iu=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},iu.apply(this,arguments)}function zx(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function Jx(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=zx(r,["value","path","label","options","originalValue","sync"]),{name:d,test:p,params:f,message:m}=t,{parent:g,context:_}=a;function y(A){return Hx.default.isRef(A)?A.getValue(i,g,_):A}function O(A={}){let B=(0,Yx.default)(iu({value:i,originalValue:u,label:o,path:A.path||s},f,A.params),y),w=new nu.default(nu.default.formatError(A.message||m,B),i,B.path,A.type||d);return w.params=B,w}let S=iu({path:s,parent:g,type:d,createError:O,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(p.call(S,i,S)).then(A=>{nu.default.isError(A)?n(A):A?n(null,A):n(O())})}catch(A){n(A)}return}let L;try{var E;if(L=p.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}nu.default.isError(L)?n(L):L?n(null,L):n(O())}return e.OPTIONS=t,e}});var jl=K(Gs=>{"use strict";Object.defineProperty(Gs,"__esModule",{value:!0});Gs.getIn=Tg;Gs.default=void 0;var Zx=Bs(),Xx=t=>t.substr(0,t.length-1).substr(1);function Tg(t,e,r,n=r){let i,s,o;return e?((0,Zx.forEach)(e,(a,u,c)=>{let l=u?Xx(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var ew=(t,e,r,n)=>Tg(t,e,r,n).schema,tw=ew;Gs.default=tw});var Sg=K(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Ag=rw(On());function rw(t){return t&&t.__esModule?t:{default:t}}var Kl=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){Ag.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Ag.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}};su.default=Kl});var Ht=K(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var Og=Yt(tg()),Oi=Kt(),nw=Yt(fg()),Ig=Yt(tu()),ou=Yt(_g()),xg=Yt(Fs()),iw=Yt(On()),sw=jl(),ow=Yt(Ll()),wg=Yt(An()),bg=Yt(Sg());function Yt(t){return t&&t.__esModule?t:{default:t}}function ut(){return ut=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},ut.apply(this,arguments)}var Tt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new bg.default,this._blacklist=new bg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Oi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ut({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=ut({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Og.default)(ut({},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=ut({},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(ut({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,xg.default)(e),o=(0,xg.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,ut({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Ig.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},f=>{if(f)return void n(f,l);(0,Ig.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ut({},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(ut({},r,{value:e})),i;return n._validate(e,ut({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(wg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(wg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Og.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=Oi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Oi.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=Oi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,ou.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,ow.default)(e).map(s=>new iw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new nw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,ou.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=Oi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,ou.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=Oi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,ou.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)}}};au.default=Tt;Tt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Tt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,sw.getIn)(this,e,r,n.context);return o[t](i&&i[s],ut({},n,{parent:i,path:e}))};for(let t of["equals","is"])Tt.prototype[t]=Tt.prototype.oneOf;for(let t of["not","nope"])Tt.prototype[t]=Tt.prototype.notOneOf;Tt.prototype.optional=Tt.prototype.notRequired});var Rg=K(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.create=Dg;qs.default=void 0;var aw=uw(Ht());function uw(t){return t&&t.__esModule?t:{default:t}}var Yl=aw.default,cw=Yl;qs.default=cw;function Dg(){return new Yl}Dg.prototype=Yl.prototype});var Ii=K(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var lw=t=>t==null;uu.default=lw});var Ug=K(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=Pg;Qs.default=void 0;var dw=Ng(Ht()),vg=Kt(),Cg=Ng(Ii());function Ng(t){return t&&t.__esModule?t:{default:t}}function Pg(){return new Ws}var Ws=class extends dw.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Cg.default)(r)||r===!0}})}isFalse(e=vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Cg.default)(r)||r===!1}})}};Qs.default=Ws;Pg.prototype=Ws.prototype});var kg=K(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Mg;Ks.default=void 0;var kt=Kt(),zt=Lg(Ii()),fw=Lg(Ht());function Lg(t){return t&&t.__esModule?t:{default:t}}var pw=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,mw=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,hw=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,gw=t=>(0,zt.default)(t)||t===t.trim(),Ew={}.toString();function Mg(){return new js}var js=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=kt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,zt.default)(n)||n.length===this.resolve(e)}})}min(e,r=kt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,zt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=kt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,zt.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||kt.string.matches,params:{regex:e},test:o=>(0,zt.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=kt.string.email){return this.matches(pw,{name:"email",message:e,excludeEmptyString:!0})}url(e=kt.string.url){return this.matches(mw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=kt.string.uuid){return this.matches(hw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=kt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:gw})}lowercase(e=kt.string.lowercase){return this.transform(r=>(0,zt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,zt.default)(r)||r===r.toLowerCase()})}uppercase(e=kt.string.uppercase){return this.transform(r=>(0,zt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,zt.default)(r)||r===r.toUpperCase()})}};Ks.default=js;Mg.prototype=js.prototype});var $g=K(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Bg;Hs.default=void 0;var In=Kt(),xn=Fg(Ii()),yw=Fg(Ht());function Fg(t){return t&&t.__esModule?t:{default:t}}var _w=t=>t!=+t;function Bg(){return new Ys}var Ys=class extends yw.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=In.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,xn.default)(n)||n>=this.resolve(e)}})}max(e,r=In.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,xn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=In.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,xn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=In.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,xn.default)(n)||n>this.resolve(e)}})}positive(e=In.number.positive){return this.moreThan(0,e)}negative(e=In.number.negative){return this.lessThan(0,e)}integer(e=In.number.integer){return this.test({name:"integer",message:e,test:r=>(0,xn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,xn.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,xn.default)(i)?i:Math[e](i))}};Hs.default=Ys;Bg.prototype=Ys.prototype});var Vg=K(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=Aw;var Tw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Aw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Tw.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 Wg=K(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Jl;zs.default=void 0;var Sw=cu(Vg()),Gg=Kt(),qg=cu(Ii()),Ow=cu(On()),Iw=cu(Ht());function cu(t){return t&&t.__esModule?t:{default:t}}var zl=new Date(""),xw=t=>Object.prototype.toString.call(t)==="[object Date]";function Jl(){return new xi}var xi=class extends Iw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Sw.default)(e),isNaN(e)?zl:new Date(e))})})}_typeCheck(e){return xw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Ow.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=Gg.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=Gg.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)}})}};zs.default=xi;xi.INVALID_DATE=zl;Jl.prototype=xi.prototype;Jl.INVALID_DATE=zl});var jg=K((z1,Zl)=>{"use strict";Zl.exports=function(t){return Qg(ww(t),t)};Zl.exports.array=Qg;function Qg(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,d){if(d.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var f=o.get(c)||new Set;if(f=Array.from(f),l=f.length){d.add(c);do{var p=f[--l];u(p,a.get(p),d)}while(l);d.delete(c)}n[--r]=c}}}function ww(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}function bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function Dw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Kg=K(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=Uw;var Rw=lu(require("lodash/has")),vw=lu(jg()),Cw=Bs(),Nw=lu(On()),Pw=lu(Si());function lu(t){return t&&t.__esModule?t:{default:t}}function Uw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Cw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Rw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Nw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Pw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return vw.default.array(n,r).reverse()}});var Hg=K(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=Lw;function Yg(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function Lw(t){return(e,r)=>Yg(t,e)-Yg(t,r)}});var rE=K(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=tE;Zs.default=void 0;var zg=Ft(require("lodash/has")),Jg=Ft(require("lodash/snakeCase")),Mw=Ft(require("lodash/camelCase")),kw=Ft(require("lodash/mapKeys")),Fw=Ft(require("lodash/mapValues")),Bw=Bs(),Zg=Kt(),$w=Ft(Kg()),eE=Ft(Hg()),Vw=Ft(tu()),Gw=Ft(An()),td=Ft(Ht());function Ft(t){return t&&t.__esModule?t:{default:t}}function wi(){return wi=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},wi.apply(this,arguments)}var Xg=t=>Object.prototype.toString.call(t)==="[object Object]";function qw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Ww=(0,eE.default)([]),Js=class extends td.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Ww,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return Xg(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=wi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],f=(0,zg.default)(i,d);if(m){let p,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let _="spec"in m?m.spec:void 0,E=_?.strict;if(_?.strip){l=l||d in i;continue}p=!r.__validating||!E?m.cast(i[d],c):i[d],p!==void 0&&(u[d]=p)}else f&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!Gw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!Xg(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(f=>(p,g)=>{let _=f.indexOf(".")===-1?(r.path?`${r.path}.`:"")+f:`${r.path||""}["${f}"]`,E=this.fields[f];if(E&&"validate"in E){E.validate(d[f],wi({},r,{path:_,from:o,strict:!0,parent:d,originalValue:a[f]}),g);return}g(null)});(0,Vw.default)({sync:s,tests:m,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=wi({},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 td.default&&s instanceof td.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,eE.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,Bw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,zg.default)(s,e)&&(o=wi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Zg.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let s=qw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Zg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Mw.default)}snakeCase(){return this.transformKeys(Jg.default)}constantCase(){return this.transformKeys(e=>(0,Jg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Fw.default)(this.fields,r=>r.describe()),e}};Zs.default=Js;function tE(t){return new Js(t)}tE.prototype=Js.prototype});var iE=K(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=nE;eo.default=void 0;var rd=bi(Ii()),Qw=bi(Si()),jw=bi(Fs()),nd=Kt(),Kw=bi(tu()),Yw=bi(An()),Hw=bi(Ht());function bi(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 nE(t){return new Xs(t)}var Xs=class extends Hw.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,du({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(f,p)=>{if(f){if(!Yw.default.isError(f)||l)return void n(f,p);o.push(f)}if(!d||!c||!this._typeCheck(p)){n(o[0]||null,p);return}m=m||p;let g=new Array(p.length);for(let _=0;_<p.length;_++){let E=p[_],O=`${r.path||""}[${_}]`,S=du({},r,{path:O,strict:!0,parent:p,index:_,originalValue:m[_]});g[_]=(L,y)=>c.validate(E,S,y)}(0,Kw.default)({sync:a,path:u,value:p,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Qw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,jw.default)(e));return r.innerType=e,r}length(e,r=nd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,rd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||nd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,rd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||nd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,rd.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)}};eo.default=Xs;nE.prototype=Xs.prototype});var sE=K(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Zw;to.default=void 0;var zw=Jw(Si());function Jw(t){return t&&t.__esModule?t:{default:t}}function Zw(t){return new fu(t)}var fu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,zw.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},Xw=fu;to.default=Xw});var oE=K(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=rb;var eb=tb(Kt());function tb(t){return t&&t.__esModule?t:{default:t}}function rb(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{eb.default[e][r]=t[e][r]})})}});var od=K(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.addMethod=cb;Object.defineProperty(ce,"MixedSchema",{enumerable:!0,get:function(){return aE.default}});Object.defineProperty(ce,"mixed",{enumerable:!0,get:function(){return aE.create}});Object.defineProperty(ce,"BooleanSchema",{enumerable:!0,get:function(){return sd.default}});Object.defineProperty(ce,"bool",{enumerable:!0,get:function(){return sd.create}});Object.defineProperty(ce,"boolean",{enumerable:!0,get:function(){return sd.create}});Object.defineProperty(ce,"StringSchema",{enumerable:!0,get:function(){return uE.default}});Object.defineProperty(ce,"string",{enumerable:!0,get:function(){return uE.create}});Object.defineProperty(ce,"NumberSchema",{enumerable:!0,get:function(){return cE.default}});Object.defineProperty(ce,"number",{enumerable:!0,get:function(){return cE.create}});Object.defineProperty(ce,"DateSchema",{enumerable:!0,get:function(){return lE.default}});Object.defineProperty(ce,"date",{enumerable:!0,get:function(){return lE.create}});Object.defineProperty(ce,"ObjectSchema",{enumerable:!0,get:function(){return dE.default}});Object.defineProperty(ce,"object",{enumerable:!0,get:function(){return dE.create}});Object.defineProperty(ce,"ArraySchema",{enumerable:!0,get:function(){return fE.default}});Object.defineProperty(ce,"array",{enumerable:!0,get:function(){return fE.create}});Object.defineProperty(ce,"ref",{enumerable:!0,get:function(){return nb.create}});Object.defineProperty(ce,"lazy",{enumerable:!0,get:function(){return ib.create}});Object.defineProperty(ce,"ValidationError",{enumerable:!0,get:function(){return sb.default}});Object.defineProperty(ce,"reach",{enumerable:!0,get:function(){return ob.default}});Object.defineProperty(ce,"isSchema",{enumerable:!0,get:function(){return pE.default}});Object.defineProperty(ce,"setLocale",{enumerable:!0,get:function(){return ab.default}});Object.defineProperty(ce,"BaseSchema",{enumerable:!0,get:function(){return ub.default}});var aE=wn(Rg()),sd=wn(Ug()),uE=wn(kg()),cE=wn($g()),lE=wn(Wg()),dE=wn(rE()),fE=wn(iE()),nb=On(),ib=sE(),sb=ro(An()),ob=ro(jl()),pE=ro(Si()),ab=ro(oE()),ub=ro(Ht());function ro(t){return t&&t.__esModule?t:{default:t}}function mE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return mE=function(){return t},t}function wn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=mE();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function cb(t,e,r){if(!t||!(0,pE.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 hE=K(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});var ad=cd();ud.default=()=>{(0,ad.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,ad.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,ad.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 cd=K(xe=>{"use strict";var lb=xe&&xe.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),db=xe&&xe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),fb=xe&&xe.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&lb(e,t,r);return db(e,t),e},pb=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xe,"__esModule",{value:!0});xe.validateOptions=xe.registerOptionPreset=xe.getOptionPresets=xe.getOptionPreset=void 0;var x=fb(od());od();var no=yt(),mb=pb(hE());_t();var bn={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}}},gE=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),hb=t=>bn[t]?(0,no.valid)(bn[t]):(0,no.err)(`Option preset '${t}' not found.`);xe.getOptionPreset=hb;var gb=()=>bn;xe.getOptionPresets=gb;var Eb=(t,e)=>{bn[t]=gE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};xe.registerOptionPreset=Eb;var yb=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,f,p,g,_,E,O,S,L;try{(0,mb.default)();let y;if(t.preset)if(typeof t.preset=="string"){if(!bn[t.preset])return(0,no.err)([`Option preset ${t.preset} does not exist.`]);y=bn[t.preset]}else y=t.preset;else y=bn.default;let A=Object.assign(Object.assign({presetId:y.presetId,preset:y},{useSeconds:y.useSeconds,useYears:y.useYears,useAliases:(e=y.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:y.useBlankDay,allowOnlyOneBlankDayField:y.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=y.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=y.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=y.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=y.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=y.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=y.seconds.lowerLimit)!==null&&a!==void 0?a:y.seconds.minValue,upperLimit:(u=y.seconds.upperLimit)!==null&&u!==void 0?u:y.seconds.maxValue},minutes:{lowerLimit:(c=y.minutes.lowerLimit)!==null&&c!==void 0?c:y.minutes.minValue,upperLimit:(l=y.minutes.upperLimit)!==null&&l!==void 0?l:y.minutes.maxValue},hours:{lowerLimit:(d=y.hours.lowerLimit)!==null&&d!==void 0?d:y.hours.minValue,upperLimit:(m=y.hours.upperLimit)!==null&&m!==void 0?m:y.hours.maxValue},daysOfMonth:{lowerLimit:(f=y.daysOfMonth.lowerLimit)!==null&&f!==void 0?f:y.daysOfMonth.minValue,upperLimit:(p=y.daysOfMonth.upperLimit)!==null&&p!==void 0?p:y.daysOfMonth.maxValue},months:{lowerLimit:(g=y.months.lowerLimit)!==null&&g!==void 0?g:y.months.minValue,upperLimit:(_=y.months.upperLimit)!==null&&_!==void 0?_:y.months.maxValue},daysOfWeek:{lowerLimit:(E=y.daysOfWeek.lowerLimit)!==null&&E!==void 0?E:y.daysOfWeek.minValue,upperLimit:(O=y.daysOfWeek.upperLimit)!==null&&O!==void 0?O:y.daysOfWeek.maxValue},years:{lowerLimit:(S=y.years.lowerLimit)!==null&&S!==void 0?S:y.years.minValue,upperLimit:(L=y.years.upperLimit)!==null&&L!==void 0?L:y.years.maxValue}}),t.override),w=x.object({presetId:x.string().required(),preset:gE.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(y.seconds.minValue).max(y.seconds.maxValue),upperLimit:x.number().min(y.seconds.minValue).max(y.seconds.maxValue)}).required(),minutes:x.object({lowerLimit:x.number().min(y.minutes.minValue).max(y.minutes.maxValue),upperLimit:x.number().min(y.minutes.minValue).max(y.minutes.maxValue)}).required(),hours:x.object({lowerLimit:x.number().min(y.hours.minValue).max(y.hours.maxValue),upperLimit:x.number().min(y.hours.minValue).max(y.hours.maxValue)}).required(),daysOfMonth:x.object({lowerLimit:x.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue),upperLimit:x.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue)}).required(),months:x.object({lowerLimit:x.number().min(y.months.minValue).max(y.months.maxValue),upperLimit:x.number().min(y.months.minValue).max(y.months.maxValue)}).required(),daysOfWeek:x.object({lowerLimit:x.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue),upperLimit:x.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue)}).required(),years:x.object({lowerLimit:x.number().min(y.years.minValue).max(y.years.maxValue),upperLimit:x.number().min(y.years.minValue).max(y.years.maxValue)}).required()}).required().validateSync(A,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,no.valid)(w)}catch(y){return(0,no.err)(y.errors)}};xe.validateOptions=yb});var Mt=K((io,dd)=>{"use strict";var Rn=io&&io.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(io,"__esModule",{value:!0});var Dn=yt(),_b=Rn(Qh()),Tb=Rn(jh()),Ab=Rn(Kh()),Sb=Rn(Yh()),Ob=Rn(Hh()),Ib=Rn(zh()),xb=Rn(Jh()),wb=cd();_t();var bb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Dn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Dn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Dn.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,Dn.valid)(n)},ld=(t,e={})=>{let r=(0,wb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=bb(t,n);if(i.isError())return(0,Dn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,_b.default)(s,n)),o.push((0,Tb.default)(s,n)),o.push((0,Ab.default)(s,n)),o.push((0,Sb.default)(s,n)),o.push((0,Ob.default)(s,n)),o.push((0,Ib.default)(s,n)),n.useYears&&o.push((0,xb.default)(s,n)),o.every(u=>u.isValid()))return(0,Dn.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,Dn.err)(a)};io.default=ld;dd.exports=ld;dd.exports.default=ld});var $y=K(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});var Zt=class extends Error{},Td=class extends Zt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ad=class extends Zt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Sd=class extends Zt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Nn=class extends Zt{},_u=class extends Zt{constructor(e){super(`Invalid unit ${e}`)}},Ge=class extends Zt{},Bt=class extends Zt{constructor(){super("Zone is an abstract class")}},b="numeric",Ot="short",Je="long",Tu={year:b,month:b,day:b},GE={year:b,month:Ot,day:b},Db={year:b,month:Ot,day:b,weekday:Ot},qE={year:b,month:Je,day:b},WE={year:b,month:Je,day:b,weekday:Je},QE={hour:b,minute:b},jE={hour:b,minute:b,second:b},KE={hour:b,minute:b,second:b,timeZoneName:Ot},YE={hour:b,minute:b,second:b,timeZoneName:Je},HE={hour:b,minute:b,hourCycle:"h23"},zE={hour:b,minute:b,second:b,hourCycle:"h23"},JE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ot},ZE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Je},XE={year:b,month:b,day:b,hour:b,minute:b},ey={year:b,month:b,day:b,hour:b,minute:b,second:b},ty={year:b,month:Ot,day:b,hour:b,minute:b},ry={year:b,month:Ot,day:b,hour:b,minute:b,second:b},Rb={year:b,month:Ot,day:b,weekday:Ot,hour:b,minute:b},ny={year:b,month:Je,day:b,hour:b,minute:b,timeZoneName:Ot},iy={year:b,month:Je,day:b,hour:b,minute:b,second:b,timeZoneName:Ot},sy={year:b,month:Je,day:b,weekday:Je,hour:b,minute:b,timeZoneName:Je},oy={year:b,month:Je,day:b,weekday:Je,hour:b,minute:b,second:b,timeZoneName:Je},xr=class{get type(){throw new Bt}get name(){throw new Bt}get ianaName(){return this.name}get isUniversal(){throw new Bt}offsetName(e,r){throw new Bt}formatOffset(e,r){throw new Bt}offset(e){throw new Bt}equals(e){throw new Bt}get isValid(){throw new Bt}},fd=null,fo=class t extends xr{static get instance(){return fd===null&&(fd=new t),fd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return uy(e,r,n)}formatOffset(e,r){return lo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Eu={};function vb(t){return Eu[t]||(Eu[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"})),Eu[t]}var Cb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Nb(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,s,o,a,u,c,l]=n;return[o,i,s,a,u,c,l]}function Pb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Cb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var pu={},Xt=class t extends xr{static create(e){return pu[e]||(pu[e]=new t(e)),pu[e]}static resetCache(){pu={},Eu={}}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 uy(e,r,n,this.name)}formatOffset(e,r){return lo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=vb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Pb(n,r):Nb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Ud({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),f=+r,p=f%1e3;return f-=p>=0?p:1e3+p,(m-f)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},EE={};function Ub(t,e={}){let r=JSON.stringify([t,e]),n=EE[r];return n||(n=new Intl.ListFormat(t,e),EE[r]=n),n}var Od={};function Id(t,e={}){let r=JSON.stringify([t,e]),n=Od[r];return n||(n=new Intl.DateTimeFormat(t,e),Od[r]=n),n}var xd={};function Lb(t,e={}){let r=JSON.stringify([t,e]),n=xd[r];return n||(n=new Intl.NumberFormat(t,e),xd[r]=n),n}var wd={};function Mb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=wd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),wd[i]=s),s}var uo=null;function kb(){return uo||(uo=new Intl.DateTimeFormat().resolvedOptions().locale,uo)}function Fb(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=Id(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Id(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Bb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function $b(t){let e=[];for(let r=1;r<=12;r++){let n=ye.utc(2016,r,1);e.push(t(n))}return e}function Vb(t){let e=[];for(let r=1;r<=7;r++){let n=ye.utc(2016,11,13+r);e.push(t(n))}return e}function mu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Gb(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var bd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=Lb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):Pd(e,3);return Ae(r,this.padTo)}}},Dd=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&&Xt.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:ye.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=Id(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Rd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&ay()&&(this.rtf=Mb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):iD(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Ee=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||ge.defaultLocale,o=s||(i?"en-US":kb()),a=r||ge.defaultNumberingSystem,u=n||ge.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){uo=null,Od={},xd={},wd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Fb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Bb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Gb(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 mu(this,e,n,dy,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=$b(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return mu(this,e,n,my,()=>{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]=Vb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return mu(this,void 0,e,()=>hy,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[ye.utc(2016,11,13,9),ye.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return mu(this,e,r,gy,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[ye.utc(-40,1,1),ye.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new bd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Dd(e,this.intl,r)}relFormatter(e={}){return new Rd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ub(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},pd=null,Ze=class t extends xr{static get utcInstance(){return pd===null&&(pd=new t(0)),pd}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(wu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${lo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${lo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return lo(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}},Au=class extends xr{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 Ir(t,e){if(ne(t)||t===null)return e;if(t instanceof xr)return t;if(qb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?fo.instance:r==="utc"||r==="gmt"?Ze.utcInstance:Ze.parseSpecifier(r)||Xt.create(t)}else return Un(t)?Ze.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Au(t)}var yE=()=>Date.now(),_E="system",TE=null,AE=null,SE=null,OE=60,IE,ge=class{static get now(){return yE}static set now(e){yE=e}static set defaultZone(e){_E=e}static get defaultZone(){return Ir(_E,fo.instance)}static get defaultLocale(){return TE}static set defaultLocale(e){TE=e}static get defaultNumberingSystem(){return AE}static set defaultNumberingSystem(e){AE=e}static get defaultOutputCalendar(){return SE}static set defaultOutputCalendar(e){SE=e}static get twoDigitCutoffYear(){return OE}static set twoDigitCutoffYear(e){OE=e%100}static get throwOnInvalid(){return IE}static set throwOnInvalid(e){IE=e}static resetCaches(){Ee.resetCache(),Xt.resetCache()}};function ne(t){return typeof t>"u"}function Un(t){return typeof t=="number"}function xu(t){return typeof t=="number"&&t%1===0}function qb(t){return typeof t=="string"}function Wb(t){return Object.prototype.toString.call(t)==="[object Date]"}function ay(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Qb(t){return Array.isArray(t)?t:[t]}function xE(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function jb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Ci(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Jt(t,e,r){return xu(t)&&t>=e&&t<=r}function Kb(t,e){return t-e*Math.floor(t/e)}function Ae(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Or(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function vn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Nd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Pd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function po(t){return t%4===0&&(t%100!==0||t%400===0)}function co(t){return po(t)?366:365}function Su(t,e){let r=Kb(e-1,12)+1,n=t+(e-r)/12;return r===2?po(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Ud(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 Ou(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function vd(t){return t>99?t:t>ge.twoDigitCutoffYear?1900+t:2e3+t}function uy(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 wu(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 cy(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ge(`Invalid unit value ${t}`);return e}function Iu(t,e){let r={};for(let n in t)if(Ci(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=cy(i)}return r}function lo(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}${Ae(r,2)}:${Ae(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Ae(r,2)}${Ae(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function bu(t){return jb(t,["hour","minute","second","millisecond"])}var Yb=["January","February","March","April","May","June","July","August","September","October","November","December"],ly=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Hb=["J","F","M","A","M","J","J","A","S","O","N","D"];function dy(t){switch(t){case"narrow":return[...Hb];case"short":return[...ly];case"long":return[...Yb];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 fy=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],py=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],zb=["M","T","W","T","F","S","S"];function my(t){switch(t){case"narrow":return[...zb];case"short":return[...py];case"long":return[...fy];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var hy=["AM","PM"],Jb=["Before Christ","Anno Domini"],Zb=["BC","AD"],Xb=["B","A"];function gy(t){switch(t){case"narrow":return[...Xb];case"short":return[...Zb];case"long":return[...Jb];default:return null}}function eD(t){return hy[t.hour<12?0:1]}function tD(t,e){return my(e)[t.weekday-1]}function rD(t,e){return dy(e)[t.month-1]}function nD(t,e){return gy(e)[t.year<0?0:1]}function iD(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function wE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var sD={D:Tu,DD:GE,DDD:qE,DDDD:WE,t:QE,tt:jE,ttt:KE,tttt:YE,T:HE,TT:zE,TTT:JE,TTTT:ZE,f:XE,ff:ty,fff:ny,ffff:sy,F:ey,FF:ry,FFF:iy,FFFF:oy},He=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 sD[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 Ae(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=(f,p)=>this.loc.extract(e,f,p),o=f=>e.isOffsetFixed&&e.offset===0&&f.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,f.format):"",a=()=>n?eD(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(f,p)=>n?rD(e,f):s(p?{month:f}:{month:f,day:"numeric"},"month"),c=(f,p)=>n?tD(e,f):s(p?{weekday:f}:{weekday:f,month:"long",day:"numeric"},"weekday"),l=f=>{let p=t.macroTokenToFormatOpts(f);return p?this.formatWithSystemDefault(e,p):f},d=f=>n?nD(e,f):s({era:f},"era"),m=f=>{switch(f){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(f)}};return wE(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 wE(s,i(a))}},ze=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},Ey=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Ni(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Pi(...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 Ui(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 yy(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Or(e[r+i]);return[n,null,r+i]}}var _y=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,oD=`(?:${_y.source}?(?:\\[(${Ey.source})\\])?)?`,Ld=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Ty=RegExp(`${Ld.source}${oD}`),Md=RegExp(`(?:T${Ty.source})?`),aD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,uD=/(\d{4})-?W(\d\d)(?:-?(\d))?/,cD=/(\d{4})-?(\d{3})/,lD=yy("weekYear","weekNumber","weekDay"),dD=yy("year","ordinal"),fD=/(\d{4})-(\d\d)-(\d\d)/,Ay=RegExp(`${Ld.source} ?(?:${_y.source}|(${Ey.source}))?`),pD=RegExp(`(?: ${Ay.source})?`);function vi(t,e,r){let n=t[e];return ne(n)?r:Or(n)}function mD(t,e){return[{year:vi(t,e),month:vi(t,e+1,1),day:vi(t,e+2,1)},null,e+3]}function Li(t,e){return[{hours:vi(t,e,0),minutes:vi(t,e+1,0),seconds:vi(t,e+2,0),milliseconds:Nd(t[e+3])},null,e+4]}function mo(t,e){let r=!t[e]&&!t[e+1],n=wu(t[e+1],t[e+2]),i=r?null:Ze.instance(n);return[{},i,e+3]}function ho(t,e){let r=t[e]?Xt.create(t[e]):null;return[{},r,e+1]}var hD=RegExp(`^T?${Ld.source}$`),gD=/^-?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 ED(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(f,p=!1)=>f!==void 0&&(p||f&&l)?-f:f;return[{years:m(vn(r)),months:m(vn(n)),weeks:m(vn(i)),days:m(vn(s)),hours:m(vn(o)),minutes:m(vn(a)),seconds:m(vn(u),u==="-0"),milliseconds:m(Nd(c),d)}]}var yD={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function kd(t,e,r,n,i,s,o){let a={year:e.length===2?vd(Or(e)):Or(e),month:ly.indexOf(r)+1,day:Or(n),hour:Or(i),minute:Or(s)};return o&&(a.second=Or(o)),t&&(a.weekday=t.length>3?fy.indexOf(t)+1:py.indexOf(t)+1),a}var _D=/^(?:(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 TD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=kd(e,i,n,r,s,o,a),f;return u?f=yD[u]:c?f=0:f=wu(l,d),[m,new Ze(f)]}function AD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var SD=/^(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$/,OD=/^(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$/,ID=/^(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 bE(t){let[,e,r,n,i,s,o,a]=t;return[kd(e,i,n,r,s,o,a),Ze.utcInstance]}function xD(t){let[,e,r,n,i,s,o,a]=t;return[kd(e,a,r,n,i,s,o),Ze.utcInstance]}var wD=Ni(aD,Md),bD=Ni(uD,Md),DD=Ni(cD,Md),RD=Ni(Ty),Sy=Pi(mD,Li,mo,ho),vD=Pi(lD,Li,mo,ho),CD=Pi(dD,Li,mo,ho),ND=Pi(Li,mo,ho);function PD(t){return Ui(t,[wD,Sy],[bD,vD],[DD,CD],[RD,ND])}function UD(t){return Ui(AD(t),[_D,TD])}function LD(t){return Ui(t,[SD,bE],[OD,bE],[ID,xD])}function MD(t){return Ui(t,[gD,ED])}var kD=Pi(Li);function FD(t){return Ui(t,[hD,kD])}var BD=Ni(fD,pD),$D=Ni(Ay),VD=Pi(Li,mo,ho);function GD(t){return Ui(t,[BD,Sy],[$D,VD])}var qD="Invalid Duration",Oy={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}},WD={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},...Oy},ct=146097/400,Di=146097/4800,QD={years:{quarters:4,months:12,weeks:ct/7,days:ct,hours:ct*24,minutes:ct*24*60,seconds:ct*24*60*60,milliseconds:ct*24*60*60*1e3},quarters:{months:3,weeks:ct/28,days:ct/4,hours:ct*24/4,minutes:ct*24*60/4,seconds:ct*24*60*60/4,milliseconds:ct*24*60*60*1e3/4},months:{weeks:Di/7,days:Di,hours:Di*24,minutes:Di*24*60,seconds:Di*24*60*60,milliseconds:Di*24*60*60*1e3},...Oy},Cn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],jD=Cn.slice(0).reverse();function Sr(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 Se(n)}function KD(t){return t<0?Math.floor(t):Math.ceil(t)}function Iy(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?KD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function YD(t,e){jD.reduce((r,n)=>ne(e[n])?r:(r&&Iy(t,e,r,e,n),n),null)}function HD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var Se=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?QD:WD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Ee.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Ge(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Iu(e,t.normalizeUnit),loc:Ee.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Un(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ge(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=MD(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]=FD(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 Ge("need to specify a reason the Duration is invalid");let n=e instanceof ze?e:new ze(e,r);if(ge.throwOnInvalid)throw new Sd(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 _u(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?He.create(this.loc,n).formatDurationFromString(this,e):qD}toHuman(e={}){let r=Cn.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+=Pd(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 Cn)(Ci(r.values,i)||Ci(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Sr(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]=cy(e(this.values[n],n));return Sr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Iu(e,t.normalizeUnit)};return Sr(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 Sr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return YD(this.matrix,e),Sr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=HD(this.normalize().shiftToAll().toObject());return Sr(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 Cn)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;Un(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)Cn.indexOf(c)>Cn.indexOf(o)&&Iy(this.matrix,i,c,r,o)}else Un(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 Sr(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 Sr(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 Cn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Ri="Invalid Interval";function zD(t,e){return!t||!t.isValid?Ln.invalid("missing or invalid start"):!e||!e.isValid?Ln.invalid("missing or invalid end"):e<t?Ln.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 Ln=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 Ge("need to specify a reason the Interval is invalid");let n=e instanceof ze?e:new ze(e,r);if(ge.throwOnInvalid)throw new Ad(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ao(e),i=ao(r),s=zD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=Se.fromDurationLike(r),i=ao(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Se.fromDurationLike(r),i=ao(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=ye.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=ye.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=Se.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=Se.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(ao).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=Se.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()})`:Ri}toLocaleString(e=Tu,r={}){return this.isValid?He.create(this.s.loc.clone(r),e).formatInterval(this):Ri}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Ri}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ri}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Ri}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Ri}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Se.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Pn=class{static hasDST(e=ge.defaultZone){let r=ye.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Xt.isValidZone(e)}static normalizeZone(e){return Ir(e,ge.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ee.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Ee.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ee.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Ee.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Ee.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Ee.create(r,null,"gregory").eras(e)}static features(){return{relative:ay()}}};function DE(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(Se.fromMillis(n).as("days"))}function JD(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=DE(u,c);return(l-l%7)/7}],["days",DE]],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 ZD(t,e,r,n){let[i,s,o,a]=JD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=Se.fromObject(s,n);return c.length>0?Se.fromMillis(u,n).shiftTo(...c).plus(l):l}var Fd={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"},RE={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]},XD=Fd.hanidec.replace(/[\[|\]]/g,"").split("");function eR(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(Fd.hanidec)!==-1)e+=XD.indexOf(t[r]);else for(let i in RE){let[s,o]=RE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function At({numberingSystem:t},e=""){return new RegExp(`${Fd[t||"latn"]}${e}`)}var tR="missing Intl.DateTimeFormat.formatToParts support";function ae(t,e=r=>r){return{regex:t,deser:([r])=>e(eR(r))}}var rR=String.fromCharCode(160),xy=`[ ${rR}]`,wy=new RegExp(xy,"g");function nR(t){return t.replace(/\./g,"\\.?").replace(wy,xy)}function vE(t){return t.replace(/\./g,"").replace(wy," ").toLowerCase()}function St(t,e){return t===null?null:{regex:RegExp(t.map(nR).join("|")),deser:([r])=>t.findIndex(n=>vE(r)===vE(n))+e}}function CE(t,e){return{regex:t,deser:([,r,n])=>wu(r,n),groups:e}}function md(t){return{regex:t,deser:([e])=>e}}function iR(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function sR(t,e){let r=At(e),n=At(e,"{2}"),i=At(e,"{3}"),s=At(e,"{4}"),o=At(e,"{6}"),a=At(e,"{1,2}"),u=At(e,"{1,3}"),c=At(e,"{1,6}"),l=At(e,"{1,9}"),d=At(e,"{2,4}"),m=At(e,"{4,6}"),f=_=>({regex:RegExp(iR(_.val)),deser:([E])=>E,literal:!0}),g=(_=>{if(t.literal)return f(_);switch(_.val){case"G":return St(e.eras("short",!1),0);case"GG":return St(e.eras("long",!1),0);case"y":return ae(c);case"yy":return ae(d,vd);case"yyyy":return ae(s);case"yyyyy":return ae(m);case"yyyyyy":return ae(o);case"M":return ae(a);case"MM":return ae(n);case"MMM":return St(e.months("short",!0,!1),1);case"MMMM":return St(e.months("long",!0,!1),1);case"L":return ae(a);case"LL":return ae(n);case"LLL":return St(e.months("short",!1,!1),1);case"LLLL":return St(e.months("long",!1,!1),1);case"d":return ae(a);case"dd":return ae(n);case"o":return ae(u);case"ooo":return ae(i);case"HH":return ae(n);case"H":return ae(a);case"hh":return ae(n);case"h":return ae(a);case"mm":return ae(n);case"m":return ae(a);case"q":return ae(a);case"qq":return ae(n);case"s":return ae(a);case"ss":return ae(n);case"S":return ae(u);case"SSS":return ae(i);case"u":return md(l);case"uu":return md(a);case"uuu":return ae(r);case"a":return St(e.meridiems(),0);case"kkkk":return ae(s);case"kk":return ae(d,vd);case"W":return ae(a);case"WW":return ae(n);case"E":case"c":return ae(r);case"EEE":return St(e.weekdays("short",!1,!1),1);case"EEEE":return St(e.weekdays("long",!1,!1),1);case"ccc":return St(e.weekdays("short",!0,!1),1);case"cccc":return St(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return CE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return CE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return md(/[a-z_+-/]{1,256}?/i);default:return f(_)}})(t)||{invalidReason:tR};return g.token=t,g}var oR={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 aR(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=oR[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function uR(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function cR(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Ci(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 lR(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=Xt.create(t.z)),ne(t.Z)||(r||(r=new Ze(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=Nd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var hd=null;function dR(){return hd||(hd=ye.fromMillis(1555555555555)),hd}function fR(t,e){if(t.literal)return t;let r=He.macroTokenToFormatOpts(t.val),n=Ry(r,e);return n==null||n.includes(void 0)?t:n}function by(t,e){return Array.prototype.concat(...t.map(r=>fR(r,e)))}function Dy(t,e,r){let n=by(He.parseFormat(r),t),i=n.map(o=>sR(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=uR(i),u=RegExp(o,"i"),[c,l]=cR(e,u,a),[d,m,f]=l?lR(l):[null,null,void 0];if(Ci(l,"a")&&Ci(l,"H"))throw new Nn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:f}}}function pR(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=Dy(t,e,r);return[n,i,s,o]}function Ry(t,e){return t?He.create(e,t).formatDateTimeParts(dR()).map(i=>aR(i,t)):null}var vy=[0,31,59,90,120,151,181,212,243,273,304,334],Cy=[0,31,60,91,121,152,182,213,244,274,305,335];function lt(t,e){return new ze("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function Ny(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 Py(t,e,r){return r+(po(t)?Cy:vy)[e-1]}function Uy(t,e){let r=po(t)?Cy:vy,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Cd(t){let{year:e,month:r,day:n}=t,i=Py(e,r,n),s=Ny(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Ou(a)):o>Ou(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...bu(t)}}function NE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=Ny(e,1,4),s=co(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=co(a)):o>s?(a=e+1,o-=co(e)):a=e;let{month:u,day:c}=Uy(a,o);return{year:a,month:u,day:c,...bu(t)}}function gd(t){let{year:e,month:r,day:n}=t,i=Py(e,r,n);return{year:e,ordinal:i,...bu(t)}}function PE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=Uy(e,r);return{year:e,month:n,day:i,...bu(t)}}function mR(t){let e=xu(t.weekYear),r=Jt(t.weekNumber,1,Ou(t.weekYear)),n=Jt(t.weekday,1,7);return e?r?n?!1:lt("weekday",t.weekday):lt("week",t.week):lt("weekYear",t.weekYear)}function hR(t){let e=xu(t.year),r=Jt(t.ordinal,1,co(t.year));return e?r?!1:lt("ordinal",t.ordinal):lt("year",t.year)}function Ly(t){let e=xu(t.year),r=Jt(t.month,1,12),n=Jt(t.day,1,Su(t.year,t.month));return e?r?n?!1:lt("day",t.day):lt("month",t.month):lt("year",t.year)}function My(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=Jt(e,0,23)||e===24&&r===0&&n===0&&i===0,o=Jt(r,0,59),a=Jt(n,0,59),u=Jt(i,0,999);return s?o?a?u?!1:lt("millisecond",i):lt("second",n):lt("minute",r):lt("hour",e)}var Ed="Invalid DateTime",UE=864e13;function hu(t){return new ze("unsupported zone",`the zone "${t.name}" is not supported`)}function yd(t){return t.weekData===null&&(t.weekData=Cd(t.c)),t.weekData}function so(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new ye({...r,...e,old:r})}function ky(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 LE(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 yu(t,e,r){return ky(Ud(t),e,r)}function ME(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,Su(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Se.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=Ud(s),[u,c]=ky(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function oo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=ye.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return ye.invalid(new ze("unparsable",`the input "${i}" can't be parsed as ${n}`))}function gu(t,e,r=!0){return t.isValid?He.create(Ee.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function _d(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Ae(t.c.year,r?6:4),e?(n+="-",n+=Ae(t.c.month),n+="-",n+=Ae(t.c.day)):(n+=Ae(t.c.month),n+=Ae(t.c.day)),n}function kE(t,e,r,n,i,s){let o=Ae(t.c.hour);return e?(o+=":",o+=Ae(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Ae(t.c.minute),(t.c.second!==0||!r)&&(o+=Ae(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Ae(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Ae(Math.trunc(-t.o/60)),o+=":",o+=Ae(Math.trunc(-t.o%60))):(o+="+",o+=Ae(Math.trunc(t.o/60)),o+=":",o+=Ae(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var Fy={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},gR={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},ER={ordinal:1,hour:0,minute:0,second:0,millisecond:0},By=["year","month","day","hour","minute","second","millisecond"],yR=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_R=["year","ordinal","hour","minute","second","millisecond"];function FE(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 _u(t);return e}function BE(t,e){let r=Ir(e.zone,ge.defaultZone),n=Ee.fromObject(e),i=ge.now(),s,o;if(ne(t.year))s=i;else{for(let c of By)ne(t[c])&&(t[c]=Fy[c]);let a=Ly(t)||My(t);if(a)return ye.invalid(a);let u=r.offset(i);[s,o]=yu(t,u,r)}return new ye({ts:s,zone:r,loc:n,o})}function $E(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Pd(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 VE(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 ye=class t{constructor(e){let r=e.zone||ge.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new ze("invalid input"):null)||(r.isValid?null:hu(r));this.ts=ne(e.ts)?ge.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=LE(this.ts,a),n=Number.isNaN(i.year)?new ze("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Ee.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=VE(arguments),[n,i,s,o,a,u,c]=r;return BE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=VE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=Ze.utcInstance,BE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Wb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Ir(r.zone,ge.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Ee.fromObject(r)}):t.invalid(hu(i))}static fromMillis(e,r={}){if(Un(e))return e<-UE||e>UE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ir(r.zone,ge.defaultZone),loc:Ee.fromObject(r)});throw new Ge(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Un(e))return new t({ts:e*1e3,zone:Ir(r.zone,ge.defaultZone),loc:Ee.fromObject(r)});throw new Ge("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ir(r.zone,ge.defaultZone);if(!n.isValid)return t.invalid(hu(n));let i=ge.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Iu(e,FE),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Ee.fromObject(r);if((l||a)&&d)throw new Nn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Nn("Can't mix ordinal dates with month/day");let f=d||o.weekday&&!l,p,g,_=LE(i,s);f?(p=yR,g=gR,_=Cd(_)):a?(p=_R,g=ER,_=gd(_)):(p=By,g=Fy);let E=!1;for(let w of p){let F=o[w];ne(F)?E?o[w]=g[w]:o[w]=_[w]:E=!0}let O=f?mR(o):a?hR(o):Ly(o),S=O||My(o);if(S)return t.invalid(S);let L=f?NE(o):a?PE(o):o,[y,A]=yu(L,s,n),B=new t({ts:y,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]=PD(e);return oo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=UD(e);return oo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=LD(e);return oo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Ge("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Ee.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=pR(o,e,r);return l?t.invalid(l):oo(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]=GD(e);return oo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ge("need to specify a reason the DateTime is invalid");let n=e instanceof ze?e:new ze(e,r);if(ge.throwOnInvalid)throw new Td(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=Ry(e,Ee.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return by(He.parseFormat(e),Ee.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?yd(this).weekYear:NaN}get weekNumber(){return this.isValid?yd(this).weekNumber:NaN}get weekday(){return this.isValid?yd(this).weekday:NaN}get ordinal(){return this.isValid?gd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Pn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Pn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Pn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Pn.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 po(this.year)}get daysInMonth(){return Su(this.year,this.month)}get daysInYear(){return this.isValid?co(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ou(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=He.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ze.instance(e),r)}toLocal(){return this.setZone(ge.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Ir(e,ge.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=yu(o,s,e)}return so(this,{ts:i,zone:e})}else return t.invalid(hu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return so(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Iu(e,FE),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 Nn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Nn("Can't mix ordinal dates with month/day");let c;n?c=NE({...Cd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Su(c.year,c.month),c.day))):c=PE({...gd(this.c),...r});let[l,d]=yu(c,this.o,this.zone);return so(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=Se.fromDurationLike(e);return so(this,ME(this,r))}minus(e){if(!this.isValid)return this;let r=Se.fromDurationLike(e).negate();return so(this,ME(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=Se.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?He.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Ed}toLocaleString(e=Tu,r={}){return this.isValid?He.create(this.loc.clone(r),e).formatDateTime(this):Ed}toLocaleParts(e={}){return this.isValid?He.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=_d(this,o);return a+="T",a+=kE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?_d(this,e==="extended"):null}toISOWeekDate(){return gu(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":"")+kE(this,o==="extended",r,e,n,s):null}toRFC2822(){return gu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return gu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?_d(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")),gu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ed}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 Se.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Qb(r).map(Se.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=ZD(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?Ln.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),$E(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?$E(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 Ge("min requires all arguments be DateTimes");return xE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ge("max requires all arguments be DateTimes");return xE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Ee.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return Dy(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Tu}static get DATE_MED(){return GE}static get DATE_MED_WITH_WEEKDAY(){return Db}static get DATE_FULL(){return qE}static get DATE_HUGE(){return WE}static get TIME_SIMPLE(){return QE}static get TIME_WITH_SECONDS(){return jE}static get TIME_WITH_SHORT_OFFSET(){return KE}static get TIME_WITH_LONG_OFFSET(){return YE}static get TIME_24_SIMPLE(){return HE}static get TIME_24_WITH_SECONDS(){return zE}static get TIME_24_WITH_SHORT_OFFSET(){return JE}static get TIME_24_WITH_LONG_OFFSET(){return ZE}static get DATETIME_SHORT(){return XE}static get DATETIME_SHORT_WITH_SECONDS(){return ey}static get DATETIME_MED(){return ty}static get DATETIME_MED_WITH_SECONDS(){return ry}static get DATETIME_MED_WITH_WEEKDAY(){return Rb}static get DATETIME_FULL(){return ny}static get DATETIME_FULL_WITH_SECONDS(){return iy}static get DATETIME_HUGE(){return sy}static get DATETIME_HUGE_WITH_SECONDS(){return oy}};function ao(t){if(ye.isDateTime(t))return t;if(t&&t.valueOf&&Un(t.valueOf()))return ye.fromJSDate(t);if(t&&typeof t=="object")return ye.fromObject(t);throw new Ge(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var TR="3.2.1";Xe.DateTime=ye;Xe.Duration=Se;Xe.FixedOffsetZone=Ze;Xe.IANAZone=Xt;Xe.Info=Pn;Xe.Interval=Ln;Xe.InvalidZone=Au;Xe.Settings=ge;Xe.SystemZone=fo;Xe.VERSION=TR;Xe.Zone=xr});var Gy=K((aq,Vy)=>{"use strict";var Mn=$y();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=Mn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Mn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Mn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Mn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Mn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Mn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Mn.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))}Vy.exports=J});var Qy=K((uq,Wy)=>{"use strict";function kn(t){return{start:t,count:1}}function qy(t,e){t.end=e,t.step=e-t.start,t.count=2}function Bd(t,e,r){e&&(e.count===2?(t.push(kn(e.start)),t.push(kn(e.end))):t.push(e)),r&&t.push(r)}function AR(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Bd(e,r,kn(i)),r=void 0):r?r.count===1?qy(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(kn(r.start)),r=kn(r.end),qy(r,i)):(Bd(e,r),r=kn(i)):r=kn(i)}return Bd(e,r),e}Wy.exports=AR});var Ky=K((cq,jy)=>{"use strict";var SR=Qy();function OR(t,e,r){var n=SR(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,f){var p=c.start+f;return(p-c.start)%c.step===0?p:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}jy.exports=OR});var zy=K((lq,Hy)=>{"use strict";var Fn=Gy(),IR=Ky(),Yy=1e4;function P(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Fn(e.currentDate,this._tz),this._startDate=e.startDate?new Fn(e.startDate,this._tz):null,this._endDate=e.endDate?new Fn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=P._freezeFields(t)}P.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];P.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};P.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];P.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];P.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};P.parseDefaults=["0","*","*","*","*","*"];P.standardValidCharacters=/^[,*\d/-]+$/;P.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;P.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;P.validCharacters={second:P.standardValidCharacters,minute:P.standardValidCharacters,hour:P.standardValidCharacters,dayOfMonth:P.dayOfMonthValidCharacters,month:P.standardValidCharacters,dayOfWeek:P.dayOfWeekValidCharacters};P._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};P._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=P.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!P.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(p){if(p instanceof Array)for(var g=0,_=p.length;g<_;g++){var E=p[g];if(P._isValidConstraintChar(n,E)){c.push(E);continue}if(typeof E!="number"||Number.isNaN(E)||E<n.min||E>n.max)throw new Error("Constraint error, got value "+E+" expected range "+n.min+"-"+n.max);c.push(E)}else{if(P._isValidConstraintChar(n,p)){c.push(p);return}var O=+p;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+p+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}var d=u.split(",");if(!d.every(function(p){return p.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,f=d.length;m<f;m++)l(o(d[m]));else l(o(u));return c.sort(P._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],f=+d[1];if(Number.isNaN(m)||Number.isNaN(f)||m<n.min||f>n.max)throw new Error("Constraint error, got range "+m+"-"+f+" expected range "+n.min+"-"+n.max);if(m>f)throw new Error("Invalid range: "+u);var p=+c;if(Number.isNaN(p)||p<=0)throw new Error("Constraint error, cannot repeat at every "+p+" time.");e==="dayOfWeek"&&f%7===0&&l.push(0);for(var g=m,_=f;g<=_;g++){var E=l.indexOf(g)!==-1;!E&&p>0&&p%c===0?(p=1,l.push(g)):p++}return l}return Number.isNaN(+u)?u:+u}return s(r)};P._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};P._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=P.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(P._sortCompareFn)}};P._freezeFields=function(t){for(var e=0,r=P.map.length;e<r;++e){var n=P.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};P.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};P.prototype._findSchedule=function(e){function r(E,O){for(var S=0,L=O.length;S<L;S++)if(O[S]>=E)return O[S]===E;return O[0]===E}function n(E,O){if(O<6){if(E.getDate()<8&&O===1)return!0;var S=E.getDate()%7?1:0,L=E.getDate()-E.getDate()%7,y=Math.floor(L/7)+S;return y===O}return!1}function i(E){return E.length>0&&E.some(function(O){return typeof O=="string"&&O.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Fn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(E){return E.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<Yy;){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 f=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(f=f||d(this.fields.dayOfWeek));var p=this.fields.dayOfMonth.length>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,_=o.getHours();if(!m&&(!f||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!p&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(p&&!g&&!f){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(_,this.fields.hour)){if(this._dstEnd===_&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==_){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(_-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>=Yy)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Fn(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 Fn(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(IR(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 Fn(void 0,n._tz)),P.predefined[s]&&(s=P.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=P.map.length-u.length,l=0,d=P.map.length;l<d;++l){var m=P.map[l],f=u[u.length>d?l:l-c];if(l<c||!f)a.push(P._parseField(m,P.parseDefaults[l],P.constraints[l]));else{var p=m==="dayOfWeek"?O(f):f;a.push(P._parseField(m,p,P.constraints[l]))}}for(var g={},l=0,d=P.map.length;l<d;l++){var _=P.map[l];g[_]=a[l]}var E=P._handleMaxDaysInMonth(g);return g.dayOfMonth=E||g.dayOfMonth,new P(g,o);function O(S){var L=S.split("#");if(L.length>1){var y=+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(y)||y<1||y>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=y,L[0]}return S}}return i(e,r)};P.fieldsToExpression=function(e,r){function n(m,f,p){if(!f)throw new Error("Validation error, Field "+m+" is missing");if(f.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,_=f.length;g<_;g++){var E=f[g];if(!P._isValidConstraintChar(p,E)&&(typeof E!="number"||Number.isNaN(E)||E<p.min||E>p.max))throw new Error("Constraint error, got value "+E+" expected range "+p.min+"-"+p.max)}}for(var i={},s=0,o=P.map.length;s<o;++s){var a=P.map[s],u=e[a];n(a,u,P.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(P._sortCompareFn).filter(function(m,f,p){return!f||m!==p[f-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=P._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new P(i,r||{})};Hy.exports=P});var Zy=K((dq,Jy)=>{"use strict";var Du=zy();function wr(){}wr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Du.parse(e)};if(r.length>6)return{interval:Du.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};wr.parseExpression=function(e,r){return Du.parse(e,r)};wr.fieldsToExpression=function(e,r){return Du.fieldsToExpression(e,r)};wr.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=wr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};wr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,wr.parseString(i.toString()))})};Jy.exports=wr});var ok={};v(ok,{APP_DEV:()=>Lu,APP_DEV_PREFIX:()=>ft,APP_PREFIX:()=>dt,AutomationViewMode:()=>Uu,BUDIBASE_DATASOURCE_TYPE:()=>of,BadRequestError:()=>mc,BudibaseError:()=>as,Config:()=>ff,Cookie:()=>Fi,DEFAULT_BB_DATASOURCE_ID:()=>Ti,DEFAULT_EMPLOYEE_TABLE_ID:()=>lf,DEFAULT_EXPENSES_TABLE_ID:()=>cf,DEFAULT_INVENTORY_TABLE_ID:()=>uf,DEFAULT_JOBS_TABLE_ID:()=>af,DEFAULT_TENANT_ID:()=>le,DeprecatedViews:()=>ki,DocumentType:()=>he,Duration:()=>we,DurationType:()=>Pp,EmailUnavailableError:()=>ar,ErrorCode:()=>Ec,FeatureDisabledError:()=>gc,GlobalRole:()=>df,HTTPError:()=>it,Header:()=>Ke,InternalTable:()=>gr,InvalidAPIKeyError:()=>us,MAX_VALID_DATE:()=>ku,MIN_VALID_DATE:()=>c_,NotFoundError:()=>pc,RedisClient:()=>ke,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>er,SQS_DATASOURCE_INTERNAL:()=>sf,StaticDatabases:()=>pe,UNICODE_MAX:()=>Le,UsageLimitError:()=>hc,UserStatus:()=>Mu,ViewName:()=>vr,accounts:()=>ti,auth:()=>Jm,blacklist:()=>th,cache:()=>Ta,configs:()=>zr,constants:()=>pf,context:()=>me,db:()=>Br,docIds:()=>rp,docUpdates:()=>nh,encryption:()=>Ym,env:()=>h,errors:()=>_c,events:()=>fs,features:()=>Bm,getPublicError:()=>yc,init:()=>sk,installation:()=>Dc,locks:()=>ei,logging:()=>ec,middleware:()=>zm,migrations:()=>Lm,objectStore:()=>Uf,permissions:()=>Mm,platform:()=>is,plugins:()=>Xm,queue:()=>tm,redis:()=>eh,roles:()=>Hp,security:()=>ym,sessions:()=>Lc,setEnv:()=>Ao,sql:()=>fh,tenancy:()=>ik,timers:()=>No,userUtils:()=>zp,users:()=>ps,utils:()=>ts,withEnv:()=>h_});module.exports=pO(ok);var zr={};v(zr,{analyticsEnabled:()=>wc,generateConfigID:()=>vm,getAIConfig:()=>D0,getConfig:()=>Pt,getDefaultGoogleConfig:()=>Dm,getGoogleConfig:()=>$c,getGoogleDatasourceConfig:()=>Nm,getOIDCConfig:()=>x0,getOIDCConfigById:()=>Pm,getOIDCLogosDoc:()=>O0,getPlatformUrl:()=>xa,getSCIMConfig:()=>b0,getSMTPConfig:()=>w0,getSMTPConfigDoc:()=>pS,getSettingsConfig:()=>Cm,getSettingsConfigDoc:()=>vc,save:()=>A0});var mO=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],mh=[...mO],hh={"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 cl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(cl||{}),ll=(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))(ll||{}),Ca=(E=>(E.POSTGRES="POSTGRES",E.DYNAMODB="DYNAMODB",E.MONGODB="MONGODB",E.ELASTICSEARCH="ELASTICSEARCH",E.COUCHDB="COUCHDB",E.SQL_SERVER="SQL_SERVER",E.S3="S3",E.AIRTABLE="AIRTABLE",E.MYSQL="MYSQL",E.ARANGODB="ARANGODB",E.REST="REST",E.ORACLE="ORACLE",E.GOOGLE_SHEETS="GOOGLE_SHEETS",E.FIRESTORE="FIRESTORE",E.REDIS="REDIS",E.SNOWFLAKE="SNOWFLAKE",E.BUDIBASE="BUDIBASE",E))(Ca||{});var dl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(dl||{});var mr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(mr||{}),qt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(qt||{}),nn=(e=>(e.RANGE="range",e))(nn||{}),li=(r=>(r.AND="$and",r.OR="$or",r))(li||{});function Na(t){return Object.values(li).includes(t)}function gh(t){return Object.values(mr).includes(t)}function Eh(t){return Object.values(qt).includes(t)}function fl(t){return Object.values(nn).includes(t)}var di=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(di||{});var yh=t=>typeof t=="object"&&t._id&&t._rev;var _s=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(_s||{});var _h={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var uF={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Ts=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ts||{});var Pa=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Pa||{});var Ua=t=>t.hosting==="cloud";var La=t=>t.authType==="sso";var pl=(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))(pl||{}),ml=(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))(ml||{}),hl=(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))(hl||{});var Th=(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))(Th||{}),Ah=[...Object.values(Th),...Object.values(hl)];var gl="bb_internal";var Sh=["attachment_single","attachment","bb_reference","json","array"];var C="_",Le="\uFFF0",hr=t=>`${t}${C}`,he=($=>($.USER="us",$.GROUP="gr",$.WORKSPACE="workspace",$.CONFIG="config",$.TEMPLATE="template",$.APP="app",$.DEV="dev",$.APP_DEV="app_dev",$.APP_METADATA="app_metadata",$.ROLE="role",$.MIGRATIONS="migrations",$.DEV_INFO="devinfo",$.AUTOMATION_LOG="log_au",$.ACCOUNT_METADATA="acc_metadata",$.PLUGIN="plg",$.DATASOURCE="datasource",$.DATASOURCE_PLUS="datasource_plus",$.APP_BACKUP="backup",$.TABLE="ta",$.ROW="ro",$.AUTOMATION="au",$.LINK="li",$.WEBHOOK="wh",$.INSTANCE="inst",$.LAYOUT="layout",$.SCREEN="screen",$.QUERY="query",$.DEPLOYMENTS="deployments",$.METADATA="metadata",$.MEM_VIEW="view",$.USER_FLAG="flag",$.AUTOMATION_METADATA="meta_au",$.AUDIT_LOG="al",$.APP_MIGRATION_METADATA="_design/migrations",$.SCIM_LOG="scimlog",$.ROW_ACTIONS="ra",$))(he||{}),AB=Object.values(he).sort((t,e)=>e.length-t.length);var gr=(e=>(e.USER_METADATA="ta_users",e))(gr||{}),El=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(El||{}),SB=Object.values(El).sort((t,e)=>e.length-t.length);function Ma(t){return!!t.providerType}var yl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(yl||{});var t$=Object.values(yl);var o$=["rows","queries","automations"],a$=["queries","automations"];var As=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(As||{}),ka=(r=>(r.STRING="string",r.NUMBER="number",r))(ka||{});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 Tl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Tl||(Tl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Er=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:"),Qe=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()}};Qe.create=t=>new Qe(t);var mi=(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}},xh=mi;function yO(t){xh=t}function Fa(){return xh}var Ba=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 N(t,e){let r=Fa(),n=Ba({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===mi?void 0:mi].filter(i=>!!i)});t.common.issues.push(n)}var Pe=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"}),pi=t=>({status:"dirty",value:t}),Me=t=>({status:"valid",value:t}),Al=t=>t.status==="aborted",Sl=t=>t.status==="dirty",Is=t=>t.status==="valid",xs=t=>typeof Promise<"u"&&t instanceof Promise;function $a(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 wh(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 V;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(V||(V={}));var Ss,Os,at=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}},Oh=(t,e)=>{if(Is(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 Qe(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 Er(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Er(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Pe,ctx:{common:e.parent.common,data:e.data,parsedType:Er(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(xs(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:Er(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Oh(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:Er(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(xs(i)?i:Promise.resolve(i));return Oh(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 ot.create(this,this._def)}nullable(){return Lt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return jt.create(this,this._def)}promise(){return Tr.create(this,this._def)}or(e){return fn.create([this,e],this._def)}and(e){return pn.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 yn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new ws({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new _n({...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 bs.create(this,e)}readonly(){return Tn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},TO=/^c[^\s-]{8,}$/i,AO=/^[0-9a-z]+$/,SO=/^[0-9A-HJKMNP-TV-Z]{26}$/,OO=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,IO=/^[a-z0-9_-]{21}$/i,xO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,wO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,bO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",_l,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])$/,RO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,vO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bh="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",CO=new RegExp(`^${bh}$`);function Dh(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function NO(t){return new RegExp(`^${Dh(t)}$`)}function Rh(t){let e=`${bh}T${Dh(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function PO(t,e){return!!((e==="v4"||!e)&&DO.test(t)||(e==="v6"||!e)&&RO.test(t))}var yr=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 Pe,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")wO.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")_l||(_l=new RegExp(bO,"u")),_l.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")OO.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")IO.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")TO.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")AO.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")SO.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"?Rh(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"?CO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?NO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?xO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?PO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?vO.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,...V.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...V.errToObj(e)})}url(e){return this._addCheck({kind:"url",...V.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...V.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...V.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...V.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...V.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...V.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...V.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...V.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...V.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,...V.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,...V.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...V.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...V.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...V.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...V.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...V.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...V.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...V.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...V.errToObj(r)})}nonempty(e){return this.min(1,V.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}};yr.create=t=>{var e;return new yr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function UO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var on=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 Pe;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"?UO(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,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:V.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:V.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:V.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:V.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:V.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)}};on.create=t=>new on({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var an=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 Pe;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,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:V.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:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.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}};an.create=t=>{var e;return new an({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var un=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 Me(e.data)}};un.create=t=>new un({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var cn=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 Pe,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:V.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:V.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}};cn.create=t=>new cn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var hi=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 Me(e.data)}};hi.create=t=>new hi({typeName:Y.ZodSymbol,...Z(t)});var ln=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 Me(e.data)}};ln.create=t=>new ln({typeName:Y.ZodUndefined,...Z(t)});var dn=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 Me(e.data)}};dn.create=t=>new dn({typeName:Y.ZodNull,...Z(t)});var _r=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Me(e.data)}};_r.create=t=>new _r({typeName:Y.ZodAny,...Z(t)});var Qt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Me(e.data)}};Qt.create=t=>new Qt({typeName:Y.ZodUnknown,...Z(t)});var Et=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};Et.create=t=>new Et({typeName:Y.ZodNever,...Z(t)});var gi=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 Me(e.data)}};gi.create=t=>new gi({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 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 at(r,o,r.path,a)))).then(o=>Pe.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new at(r,o,r.path,a)));return Pe.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:V.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:V.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:V.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 fi(t){if(t instanceof $e){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=ot.create(fi(n))}return new $e({...t._def,shape:()=>e})}else return t instanceof jt?new jt({...t._def,type:fi(t.element)}):t instanceof ot?ot.create(fi(t.unwrap())):t instanceof Lt?Lt.create(fi(t.unwrap())):t instanceof Ut?Ut.create(t.items.map(e=>fi(e))):t}var $e=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 Et&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new at(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Et){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(N(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new at(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>Pe.mergeObjectSync(n,c)):Pe.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return V.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=V.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 fi(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 ot;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return vh(te.objectKeys(this.shape))}};$e.create=(t,e)=>new $e({shape:()=>t,unknownKeys:"strip",catchall:Et.create(),typeName:Y.ZodObject,...Z(e)});$e.strictCreate=(t,e)=>new $e({shape:()=>t,unknownKeys:"strict",catchall:Et.create(),typeName:Y.ZodObject,...Z(e)});$e.lazycreate=(t,e)=>new $e({shape:t,unknownKeys:"strip",catchall:Et.create(),typeName:Y.ZodObject,...Z(e)});var fn=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 Qe(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 Qe(u));return N(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};fn.create=(t,e)=>new fn({options:t,typeName:Y.ZodUnion,...Z(e)});var Wt=t=>t instanceof mn?Wt(t.schema):t instanceof je?Wt(t.innerType()):t instanceof hn?[t.value]:t instanceof gn?t.options:t instanceof En?te.objectValues(t.enum):t instanceof yn?Wt(t._def.innerType):t instanceof ln?[void 0]:t instanceof dn?[null]:t instanceof ot?[void 0,...Wt(t.unwrap())]:t instanceof Lt?[null,...Wt(t.unwrap())]:t instanceof ws||t instanceof Tn?Wt(t.unwrap()):t instanceof _n?Wt(t._def.innerType):[],Va=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=Wt(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 Ol(t,e){let r=Er(t),n=Er(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=Ol(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=Ol(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 pn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Al(s)||Al(o))return z;let a=Ol(s.value,o.value);return a.valid?((Sl(s)||Sl(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}))}};pn.create=(t,e,r)=>new pn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Ut=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 at(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Pe.mergeArray(r,o)):Pe.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Ut.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ut({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Ga=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 at(n,a,n.path,a)),value:o._parse(new at(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Pe.mergeObjectAsync(r,i):Pe.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:yr.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},Ei=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 at(n,a,n.path,[c,"key"])),value:s._parse(new at(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}}}};Ei.create=(t,e,r)=>new Ei({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var yi=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 at(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:V.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:V.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};yi.create=(t,e)=>new yi({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var qa=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 Ba({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Fa(),mi].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Ba({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Fa(),mi].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 Tr){let a=this;return Me(async function(...u){let c=new Qe([]),l=await a._def.args.parseAsync(u,s).catch(f=>{throw c.addIssue(n(u,f)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(f=>{throw c.addIssue(i(d,f)),c})})}else{let a=this;return Me(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new Qe([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Qe([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Ut.create(e).rest(Qt.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||Ut.create([]).rest(Qt.create()),returns:r||Qt.create(),typeName:Y.ZodFunction,...Z(n)})}},mn=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})}};mn.create=(t,e)=>new mn({getter:t,typeName:Y.ZodLazy,...Z(e)});var hn=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}};hn.create=(t,e)=>new hn({value:t,typeName:Y.ZodLiteral,...Z(e)});function vh(t,e){return new gn({values:t,typeName:Y.ZodEnum,...Z(e)})}var gn=class t extends X{constructor(){super(...arguments),Ss.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($a(this,Ss,"f")||wh(this,Ss,new Set(this._def.values),"f"),!$a(this,Ss,"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 Me(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})}};Ss=new WeakMap;gn.create=vh;var En=class extends X{constructor(){super(...arguments),Os.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($a(this,Os,"f")||wh(this,Os,new Set(te.getValidEnumValues(this._def.values)),"f"),!$a(this,Os,"f").has(e.data)){let i=te.objectValues(r);return N(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Me(e.data)}get enum(){return this._def.values}};Os=new WeakMap;En.create=(t,e)=>new En({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var Tr=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 Me(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Tr.create=(t,e)=>new Tr({type:t,typeName:Y.ZodPromise,...Z(e)});var je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{N(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return z;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?z:u.status==="dirty"||r.value==="dirty"?pi(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"?pi(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(!Is(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=>Is(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 ot=class extends X{_parse(e){return this._getType(e)===M.undefined?Me(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ot.create=(t,e)=>new ot({innerType:t,typeName:Y.ZodOptional,...Z(e)});var Lt=class extends X{_parse(e){return this._getType(e)===M.null?Me(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Lt.create=(t,e)=>new Lt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var yn=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}};yn.create=(t,e)=>new yn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var _n=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 xs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Qe(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Qe(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};_n.create=(t,e)=>new _n({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var _i=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}}};_i.create=t=>new _i({typeName:Y.ZodNaN,...Z(t)});var LO=Symbol("zod_brand"),ws=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}},bs=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(),pi(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})}},Tn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Is(i)&&(i.value=Object.freeze(i.value)),i);return xs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Tn.create=(t,e)=>new Tn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Ch(t,e={},r){return t?_r.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})}}):_r.create()}var MO={object:$e.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 kO=(t,e={message:`Input not instance of ${t.name}`})=>Ch(r=>r instanceof t,e),Nh=yr.create,Ph=on.create,FO=_i.create,BO=an.create,Uh=un.create,$O=cn.create,VO=hi.create,GO=ln.create,qO=dn.create,WO=_r.create,QO=Qt.create,jO=Et.create,KO=gi.create,YO=jt.create,HO=$e.create,zO=$e.strictCreate,JO=fn.create,ZO=Va.create,XO=pn.create,eI=Ut.create,tI=Ga.create,rI=Ei.create,nI=yi.create,iI=qa.create,sI=mn.create,oI=hn.create,aI=gn.create,uI=En.create,cI=Tr.create,Ih=je.create,lI=ot.create,dI=Lt.create,fI=je.createWithPreprocess,pI=bs.create,mI=()=>Nh().optional(),hI=()=>Ph().optional(),gI=()=>Uh().optional(),EI={string:t=>yr.create({...t,coerce:!0}),number:t=>on.create({...t,coerce:!0}),boolean:t=>un.create({...t,coerce:!0}),bigint:t=>an.create({...t,coerce:!0}),date:t=>cn.create({...t,coerce:!0})},yI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:mi,setErrorMap:yO,getErrorMap:Fa,makeIssue:Ba,EMPTY_PATH:_O,addIssueToContext:N,ParseStatus:Pe,INVALID:z,DIRTY:pi,OK:Me,isAborted:Al,isDirty:Sl,isValid:Is,isAsync:xs,get util(){return te},get objectUtil(){return Tl},ZodParsedType:M,getParsedType:Er,ZodType:X,datetimeRegex:Rh,ZodString:yr,ZodNumber:on,ZodBigInt:an,ZodBoolean:un,ZodDate:cn,ZodSymbol:hi,ZodUndefined:ln,ZodNull:dn,ZodAny:_r,ZodUnknown:Qt,ZodNever:Et,ZodVoid:gi,ZodArray:jt,ZodObject:$e,ZodUnion:fn,ZodDiscriminatedUnion:Va,ZodIntersection:pn,ZodTuple:Ut,ZodRecord:Ga,ZodMap:Ei,ZodSet:yi,ZodFunction:qa,ZodLazy:mn,ZodLiteral:hn,ZodEnum:gn,ZodNativeEnum:En,ZodPromise:Tr,ZodEffects:je,ZodTransformer:je,ZodOptional:ot,ZodNullable:Lt,ZodDefault:yn,ZodCatch:_n,ZodNaN:_i,BRAND:LO,ZodBranded:ws,ZodPipeline:bs,ZodReadonly:Tn,custom:Ch,Schema:X,ZodSchema:X,late:MO,get ZodFirstPartyTypeKind(){return Y},coerce:EI,any:WO,array:YO,bigint:BO,boolean:Uh,date:$O,discriminatedUnion:ZO,effect:Ih,enum:aI,function:iI,instanceof:kO,intersection:XO,lazy:sI,literal:oI,map:rI,nan:FO,nativeEnum:uI,never:jO,null:qO,nullable:dI,number:Ph,object:HO,oboolean:gI,onumber:hI,optional:lI,ostring:mI,pipeline:pI,preprocess:fI,promise:cI,record:tI,set:nI,strictObject:zO,string:Nh,symbol:VO,transformer:Ih,tuple:eI,undefined:GO,union:JO,unknown:QO,void:KO,NEVER:yI,ZodIssueCode:I,quotelessJson:EO,ZodError:Qe});var Ka=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Lh=ee.record(Ka,ee.string()),Wa=ee.record(Ka,ee.any()),Qa=ee.record(Ka,ee.union([ee.any().array(),ee.string()])),Mh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(kh))})),ja=ee.union([ee.string(),ee.number()]),kh={string:Lh.optional(),fuzzy:Lh.optional(),range:ee.record(Ka,ee.union([ee.object({high:ja,low:ja}),ee.object({high:ja}),ee.object({low:ja})])).optional(),equal:Wa.optional(),notEqual:Wa.optional(),empty:Wa.optional(),notEmpty:Wa.optional(),oneOf:Qa.optional(),contains:Qa.optional(),notContains:Qa.optional(),containsAny:Qa.optional(),$and:Mh.optional(),$or:Mh.optional()},X$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(di).optional(),...kh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(As).optional(),sortType:ee.nativeEnum(ka).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var pf={};v(pf,{APP_DEV:()=>Lu,APP_DEV_PREFIX:()=>ft,APP_PREFIX:()=>dt,AutomationViewMode:()=>Uu,BUDIBASE_DATASOURCE_TYPE:()=>of,Config:()=>ff,Cookie:()=>Fi,DEFAULT_BB_DATASOURCE_ID:()=>Ti,DEFAULT_EMPLOYEE_TABLE_ID:()=>lf,DEFAULT_EXPENSES_TABLE_ID:()=>cf,DEFAULT_INVENTORY_TABLE_ID:()=>uf,DEFAULT_JOBS_TABLE_ID:()=>af,DEFAULT_TENANT_ID:()=>le,DeprecatedViews:()=>ki,DocumentType:()=>he,GlobalRole:()=>df,Header:()=>Ke,InternalTable:()=>gr,MAX_VALID_DATE:()=>ku,MIN_VALID_DATE:()=>c_,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>er,SQS_DATASOURCE_INTERNAL:()=>sf,StaticDatabases:()=>pe,UNICODE_MAX:()=>Le,UserStatus:()=>Mu,ViewName:()=>vr});var VG={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 Ke=(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))(Ke||{});var QG={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var JG="darkest",ZG="light",AI=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var Ye={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"}},Fh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Ti="datasource_internal_bb_default";var Dr={};v(Dr,{ColumnSplitter:()=>Qd,NoEmptyFilterStrings:()=>s_,buildQuery:()=>jR,cleanupQuery:()=>Yd,fixupFilterArrays:()=>zd,getKeyNumbering:()=>Hd,getValidOperatorsForType:()=>qR,hasFilters:()=>jd,limit:()=>a_,recurseLogicalOperators:()=>Kd,removeKeyNumbering:()=>Ya,runQuery:()=>Ru,search:()=>KR,sort:()=>o_,splitFiltersArray:()=>Ha});var Mi=j(Bh());var Ai={};v(Ai,{filterValueToLabel:()=>bI,hasSchema:()=>DI,isSupportedUserSearch:()=>Vh,parallelForeach:()=>wI,processSearchFilters:()=>wl,trimOtherProps:()=>RI,unreachable:()=>xI});var $h=j(require("lodash")),II=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function xI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function wI(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function bI(){return Object.keys(Ye).reduce((t,e)=>{let n=Ye[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 RI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Vh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(Na(r)){for(let o of t[r].conditions)if(!Vh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function wl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Ha(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=$h.default.pick(i,II);return s.field=Ya(s.field),s})}]}}var br={};v(br,{cancelableTimeout:()=>Gh,cron:()=>$d,deepGet:()=>bl,getUserColor:()=>CI,getUserInitials:()=>vI,getUserLabel:()=>NI,isGoogleSheets:()=>UI,isSQL:()=>LI,retry:()=>MI,roles:()=>Wd,schema:()=>go,views:()=>qd,wait:()=>Dl,withTimeout:()=>PI});var bl=(t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},vI=t=>{if(!t)return"?";let e="";return e+=t.firstName?t.firstName[0]:"",e+=t.lastName?t.lastName[0]:"",e!==""?e:t.email?.[0]||"U"},CI=t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},NI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Gh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function PI(t,e){let[r,n]=Gh(t),i=await Promise.race([e,r]);return n(),i}function UI(t){return t==="GOOGLE_SHEETS"}function LI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Dl(t){return new Promise(e=>setTimeout(e,t))}async function MI(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let s=1.5**i*1e3*(Math.random()+.5);await Dl(s);try{return await t()}catch(o){n=o}}throw n}var $d={};v($d,{getNextExecutionDates:()=>bR,validate:()=>DR});var e_=j(Mt()),t_=j(Zy()),Xy="(Input cron: ",xR={"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 wR(t){let e=[];for(let r of t){r.includes(Xy)&&(r=r.split(Xy)[0].trim());for(let[n,i]of Object.entries(xR))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function bR(t,e=4){let r=t_.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function DR(t){let e=(0,e_.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:wR(e.getError())}}var go={};v(go,{decodeNonAscii:()=>Vd,encodeNonAscii:()=>CR,isDeprecatedSingleUserColumn:()=>RR,isNumeric:()=>NR,isRequired:()=>vR});function RR(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function vR(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function CR(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Vd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function NR(t){return t.type==="number"||t.type==="bigint"}var qd={};v(qd,{basicFields:()=>kR,calculationFields:()=>MR,hasCalculationFields:()=>LR,isBasicViewField:()=>PR,isCalculationField:()=>Eo,isCalculationView:()=>UR,isV2:()=>FR,isVisible:()=>r_});var Gd=require("lodash");function Eo(t){return"calculationType"in t}function PR(t){return!Eo(t)}function UR(t){return t.type==="calculation"}function LR(t){return Object.values(t.schema||{}).some(Eo)}function MR(t){return(0,Gd.pickBy)(t.schema||{},Eo)}function r_(t){return t.visible!==!1}function kR(t,e){let{visible:r=!0}=e||{};return(0,Gd.pickBy)(t.schema||{},n=>!Eo(n)&&(!r||r_(n)))}function FR(t){return t.version===2}var Wd={};v(Wd,{checkForRoleInheritanceLoops:()=>$R});function BR(t){return`role${C}${t}`}function $R(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=BR(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 Bn=require("lodash");var VR=/{{([^{].*?)}}/g,i_=Object.values(li),GR=[...Object.values(mr),...Object.values(qt),...Object.values(nn)],qR=(t,e,r)=>{let n=Ye,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"||go.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},s_=[Ye.StartsWith.value,Ye.Like.value,Ye.Equals.value,Ye.NotEquals.value,Ye.Contains.value,Ye.NotContains.value,Ye.ContainsAny.value,Ye.In.value];function Kd(t,e){for(let r of i_)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Yd=t=>{for(let e of s_)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===""||WR(s))&&delete t[e][i]}return t=Kd(t,Yd),t};function WR(t){return Array.isArray(t)&&t.length===0}var Ya=t=>Hd(t).key,Hd=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}},Qd=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}=Hd(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=Vd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function QR(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(VR)||[]).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(fl(r)){let c=Fh[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(gh(r)||Eh(r)||fl(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 Ha(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 jR(t){if(!t)return{};if(Array.isArray(t)&&(t=wl(t),!t))return{};let e=n_(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}=Ha(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=n_(n.logicalOperator)),{[a]:{conditions:o.map(QR).filter(u=>u)}}})},r}function n_(t){return t==="all"?"$and":"$or"}function zd(t){if(!t)return t;for(let e of Object.values(qt)){let r=t[e];if(!(r==null||!(0,Bn.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 Kd(t,zd),t}function KR(t,e){let r=Ru(t,e.query);e.sort&&(r=o_(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=a_(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Ru(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Yd(e),e=zd(e),!jd(e)&&e.onEmptyFilter==="none")return[];let r=(y,A)=>B=>{for(let[w,F]of Object.entries(e[y]||{})){let ue=Na(y)?B:bl(B,Ya(w)),en=A(ue,F);if(e.allOr&&en)return!0;if(!e.allOr&&!en)return!1}return!e.allOr},n=r("string",(y,A)=>typeof y!="string"||typeof A!="string"?!1:y.toLowerCase().startsWith(A.toLowerCase())),i=r("fuzzy",(y,A)=>typeof y!="string"||typeof A!="string"?!1:y.toLowerCase().includes(A.toLowerCase())),s=r("range",(y,A)=>{if(y==null||y===""||((0,Bn.isPlainObject)(A.low)&&(0,Bn.isEmpty)(A.low)&&(A.low=void 0),(0,Bn.isPlainObject)(A.high)&&(0,Bn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+y;if(!isNaN(B)){let F=+A.low,ue=+A.high;if(!isNaN(F)&&!isNaN(ue))return B>=F&&B<=ue;if(isNaN(F)){if(!isNaN(ue))return B<=ue}else return B>=F}let w=(0,Mi.default)(y);if(w.isValid()){let F=(0,Mi.default)(A.low||"0000-00-00T00:00:00.000Z"),ue=(0,Mi.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ue.isValid())return w.isAfter(F)&&w.isBefore(ue)||w.isSame(F)||w.isSame(ue);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ue.isValid())return w.isBefore(ue)||w.isSame(ue)}return A.low!=null&&A.high!=null?y>=A.low&&y<=A.high:A.low!=null?y>=A.low:A.high!=null?y<=A.high:!1}),o=(y,A)=>{if(Array.isArray(y)){for(let w of y)if(o(w,A))return!0;return!1}if(y&&typeof y=="object"&&typeof A=="string")return y._id===A;if(y===A)return!0;if(y==null&&A!=null||y!=null&&A==null)return!1;let B=(0,Mi.default)(y);if(B.isValid()){let w=(0,Mi.default)(A);if(w.isValid())return B.isSame(w)}return!1},a=y=>(...A)=>!y(...A),u=r("equal",o),c=r("notEqual",a(o)),l=y=>typeof y=="string"?y==="":Array.isArray(y)?y.length===0:y&&typeof y=="object"?Object.keys(y).length===0:y==null,d=r("empty",l),m=r("notEmpty",a(l)),f=r("oneOf",(y,A)=>(typeof A=="string"&&(A=A.split(",")),typeof y=="number"&&(A=A.map(B=>parseFloat(B))),Array.isArray(A)?A.some(B=>o(y,B)):!1)),p=y=>(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[y](w=>o(A,w)),g=r("contains",(y,A)=>Array.isArray(A)&&A.length===0?!0:p("every")(y,A)),_=r("notContains",(y,A)=>Array.isArray(A)&&A.length===0?!0:a(p("every"))(y,A)),E=r("containsAny",p("some")),O=r("$and",(y,A)=>{if(!A.length)return!1;for(let B of A)if(!Ru([y],B).length)return!1;return!0}),S=r("$or",(y,A)=>{if(!A.length)return!1;for(let B of A)if(Ru([y],{...B,allOr:!0}).length)return!0;return!1}),L=y=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:f,contains:g,containsAny:E,notContains:_,$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]?.(y)??!1);return jd(e)?e.allOr?B.some(w=>w===!0):B.every(w=>w===!0):!0};return t.filter(L)}function o_(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 a_(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 i_)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of GR){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 et={};v(et,{applications:()=>Xd,automations:()=>ef,users:()=>nf});var Xd={};v(Xd,{getDevAppID:()=>YR,getProdAppID:()=>Zd});var Jd=hr("app"),yo=hr("app_dev");function YR(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(yo))return t;let e=t.split(Jd);e.shift();let r=e.join(Jd);return`${yo}${r}`}function Zd(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(yo))return t;let e=t.split(yo);e.shift();let r=e.join(yo);return`${Jd}${r}`}var ef={};v(ef,{isAppAction:()=>JR,isRowAction:()=>HR,isWebhookAction:()=>zR});function HR(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function zR(t){return t.definition.trigger?.stepId==="WEBHOOK"}function JR(t){return t.definition.trigger?.stepId==="APP"}var nf={};v(nf,{canCreateApps:()=>ZR,containsUserID:()=>iv,getGlobalUserID:()=>nv,hasAdminPermissions:()=>rf,hasAppBuilderPermissions:()=>Nu,hasAppCreatorPermissions:()=>u_,hasBuilderPermissions:()=>tv,hasCreatorPermissions:()=>Pu,isAdmin:()=>Cu,isAdminOrBuilder:()=>XR,isAdminOrGlobalBuilder:()=>ev,isBuilder:()=>tf,isCreator:()=>rv,isGlobalBuilder:()=>vu});var Rr=j(require("lodash/fp"));function tf(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Zd(e))):!1}function vu(t){return tf(t)&&!Nu(t)||Cu(t)}function ZR(t){return vu(t)||Pu(t)}function Cu(t){return t?rf(t):!1}function XR(t,e){return tf(t,e)||Cu(t)}function ev(t){return vu(t)||Cu(t)}function Nu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function u_(t){return t?Rr.flow(Rr.get("roles"),Rr.values,Rr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function tv(t){return t?t.builder?.global||Nu(t)||Pu(t):!1}function rf(t){return t?!!t.admin?.global:!1}function Pu(t){return t?!!t.builder?.creator:!1}function rv(t){return t?vu(t)||rf(t)||Pu(t)||Nu(t)||u_(t):!1}function nv(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function iv(t){return typeof t!="string"?!1:t.includes(`us${C}`)}var oW={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},aW={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},uW={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 Uu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Uu||{}),vr=(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))(vr||{}),ki={by_email2:["by_email"]},pe={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"}},dt=hr("app"),Lu=hr("app_dev"),ft=Lu,sf="internal",of="budibase",er="_design/sqlite",af="ta_bb_jobs",uf="ta_bb_inventory",cf="ta_bb_expenses",lf="ta_bb_employee";var Mu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Mu||{}),Fi=(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))(Fi||{}),df=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(df||{}),ff=(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))(ff||{}),c_=new Date(-2147483647e3),ku=new Date(2147483647e3),le="default";var Ta={};v(Ta,{CacheKey:()=>sr,TTL:()=>zn,app:()=>Zf,bustCache:()=>es,destroy:()=>zo,docWritethrough:()=>bm,generic:()=>Jo,get:()=>Jn,invite:()=>Bp,keys:()=>uc,passwordReset:()=>xm,store:()=>or,user:()=>Jr,withCache:()=>qr,writethrough:()=>Im});var Jo={};v(Jo,{CacheKey:()=>sr,TTL:()=>zn,bustCache:()=>es,destroy:()=>zo,get:()=>Jn,keys:()=>uc,store:()=>or,withCache:()=>qr});var me={};v(me,{DEFAULT_TENANT_ID:()=>le,baseGlobalDBName:()=>Yo,doInAppContext:()=>Tp,doInAppMigrationContext:()=>BC,doInAutomationContext:()=>kC,doInContext:()=>_p,doInEnvironmentContext:()=>VC,doInIPContext:()=>Sp,doInIdentityContext:()=>To,doInScimContext:()=>GC,doInTenant:()=>ve,ensureSnippetContext:()=>jT,getAppDB:()=>Ji,getAppId:()=>Re,getAuditLogDBName:()=>WT,getAuditLogsDB:()=>WC,getAutomationId:()=>Bf,getCurrentContext:()=>Zi,getDevAppDB:()=>jC,getEnvironmentVariables:()=>qC,getFeatureFlags:()=>Op,getGlobalDB:()=>ie,getGlobalDBName:()=>Dt,getIP:()=>Ap,getIdentity:()=>tr,getPlatformURL:()=>yp,getProdAppDB:()=>QC,getProdAppId:()=>$C,getScimDBName:()=>PC,getTableForView:()=>KC,getTenantIDFromAppID:()=>zi,getTenantId:()=>Q,identity:()=>_o,isMultiTenant:()=>Vr,isScim:()=>Rt,isTenancyEnabled:()=>LC,isTenantIdSet:()=>UC,setFeatureFlags:()=>Ip,setTableForView:()=>YC});var _o={};v(_o,{doInAccountContext:()=>sv,doInIdentityContext:()=>hf,doInUserContext:()=>gf,getAccountUserId:()=>l_,getIdentity:()=>mf});function mf(){return tr()}function hf(t,e){return To(t,e)}function gf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return hf(n,r)}function sv(t,e){let r=l_(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return hf(i,e)}function l_(t){let e;return Ua(t)?e=t.budibaseUserId:e=t.accountId,e}var $u=require("fs");var p_=require("lodash"),Ef=require("crypto");function yf(){return m_()}function m_(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Bu(){return process.env.NODE_ENV!=="production"}function ov(t){if(t)return parseInt(t)}var d_=!1;!d_&&Bu()&&!yf()&&(require("dotenv").config(),d_=!0);var Bi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},f_=!!parseInt(process.env.SELF_HOSTED||"");function av(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function uv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function cv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,$u.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,$u.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Bu()&&!yf())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 lv(){return It.SERVICE_TYPE==="worker"}function dv(){return It.SERVICE_TYPE==="apps"}function fv(){return It.BUDIBASE_ENVIRONMENT==="QA"}var It={isTest:yf,isJest:m_,isDev:Bu,isWorker:lv,isApps:dv,isQA:fv,isProd:()=>!Bu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Ef.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Ef.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:av(),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:f_,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||Bi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Bi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Bi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Bi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Bi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Bi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:process.env.SERVICE||"budibase",LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:uv(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:f_?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...cv(),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,It[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:ov(process.env.BSON_BUFFER_SIZE)};function Ao(t){let e=(0,p_.cloneDeep)(It),r;for(r in t)It._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))It._set(n,i)}}function h_(t,e){let r=Ao(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var g_=["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(It))e==="0"&&(It[t]=0),e==="false"&&(It[t]=0);var h=It;var E_=require("async_hooks"),be=class t{static{this.storage=new E_.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var _f="No app provided";function Cr(t){if(!t)throw _f;return t.startsWith(ft)}function pv(t){if(!t)throw _f;return t.startsWith(dt)&&!Cr(t)}function So(t){if(!t)throw _f;return Cr(t.appId)}function Vu(t){if(!t||t.startsWith(ft))return t;let e=t.split(dt);e.shift();let r=e.join(dt);return`${ft}${r}`}var mv=Vu;function tt(t){if(!t||!t.startsWith(ft))return t;let e=t.split(ft);e.shift();let r=e.join(ft);return`${dt}${r}`}function hv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var xt=t=>{let e=Tf(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:Tf(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Tf=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var GT=j(require("@budibase/nano"));var y_=j(require("node-fetch"));function Gu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function __(t,e="GET",r){let{url:n,cookie:i}=xt(),s=`${n}/${t}`;return await Oo({url:s,cookie:i,method:e,body:r})}async function Oo({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,y_.default)(Gu(encodeURI(t)),i)}async function qu(t,e="GET",r){let n=await __(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var $n=j(require("pouchdb"));var T_,A_=!1,Af=(t={})=>{let{url:e,cookie:r}=xt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),$n.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");$n.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");$n.default.plugin(i.plugin),$n.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");$n.default.plugin(i)}return $n.default.defaults(n)};function Wu(t){T_=Af(t),A_=!0}var Ev=()=>{if(!A_)throw new Error("init has not been called")};function pt(t,e){Ev();let r=new T_(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 Io(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var S_=require("uuid");function _e(){return(0,S_.v4)().replace(/-/g,"")}var Te=j(require("dd-trace")),$i=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Te.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 Te.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Te.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 Te.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 Te.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 Te.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 Te.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 Te.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Te.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 Te.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 Te.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 Te.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 Te.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 Te.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Te.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Te.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Te.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Te.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 Te.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 Te.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Ep={};v(Ep,{breakExternalTableId:()=>pp,breakRowIdField:()=>vC,buildExternalTableId:()=>IC,convertRowId:()=>RC,encodeTableId:()=>xC,encodeViewId:()=>wC,generateRowIdField:()=>bC,getNativeSql:()=>Hi,isExternalTable:()=>fp,isExternalTableID:()=>oc,isInternalTableID:()=>OC,isInvalidISODateString:()=>mp,isRowId:()=>DC,isValidFilter:()=>ac,isValidISODateString:()=>hp,isValidTime:()=>CC,sqlLog:()=>Ho,validateManyToMany:()=>gp});var Br={};v(Br,{APP_DEV:()=>Lu,APP_DEV_PREFIX:()=>ft,APP_PREFIX:()=>dt,AutomationViewMode:()=>Uu,BUDIBASE_DATASOURCE_TYPE:()=>of,DEFAULT_BB_DATASOURCE_ID:()=>Ti,DEFAULT_EMPLOYEE_TABLE_ID:()=>lf,DEFAULT_EXPENSES_TABLE_ID:()=>cf,DEFAULT_INVENTORY_TABLE_ID:()=>uf,DEFAULT_JOBS_TABLE_ID:()=>af,DatabaseImpl:()=>Yi,DatabaseWithConnection:()=>TC,DeprecatedViews:()=>ki,DocumentType:()=>he,InternalTable:()=>gr,QueryBuilder:()=>ir,Replication:()=>CT,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>er,SQS_DATASOURCE_INTERNAL:()=>sf,StaticDatabases:()=>pe,UNICODE_MAX:()=>Le,ViewName:()=>vr,baseGlobalDBName:()=>Yo,checkErrorCode:()=>LT,closePouchDB:()=>Io,createApiKeyView:()=>wT,createNewUserEmailView:()=>IT,createPlatformAccountEmailView:()=>DT,createPlatformUserView:()=>RT,createUserAppView:()=>xT,createView:()=>Ki,dbExists:()=>pC,directCouchAllDbs:()=>ip,directCouchCall:()=>__,directCouchFind:()=>lp,directCouchQuery:()=>qu,directCouchUrlCall:()=>Oo,doWithDB:()=>rt,extractAppUUID:()=>hv,fullSearch:()=>EC,generateAppID:()=>oT,generateAppUserID:()=>nc,generateDevInfoID:()=>pT,generateGlobalUserID:()=>Qi,generatePluginID:()=>mT,generateRoleID:()=>ep,generateRowID:()=>Xf,generateTableID:()=>aT,generateTemplateID:()=>fT,generateUserMetadataID:()=>lT,generateWorkspaceID:()=>uT,getAllApps:()=>Kn,getAllDbs:()=>OT,getAppsByIDs:()=>cC,getCouchInfo:()=>xt,getDB:()=>Ue,getDevAppID:()=>mv,getDevAppIDs:()=>dC,getDevelopmentAppID:()=>Vu,getDocParams:()=>ji,getGlobalDBName:()=>Dt,getGlobalIDFromUserMetadataID:()=>dT,getGlobalUserParams:()=>jn,getPluginParams:()=>ST,getPouch:()=>Af,getPouchDB:()=>pt,getProdAppID:()=>tt,getProdAppIDs:()=>lC,getQueryIndex:()=>hT,getRoleParams:()=>sc,getRowParams:()=>tp,getStartEndKeyURL:()=>Wo,getTemplateParams:()=>AT,getUrlInfo:()=>Tf,getUserMetadataParams:()=>TT,getUsersByAppParams:()=>ic,getWorkspaceParams:()=>_T,init:()=>Wu,isDatasourceId:()=>yT,isDevApp:()=>So,isDevAppID:()=>Cr,isDocumentConflictError:()=>_C,isGlobalUserID:()=>cT,isProdAppID:()=>pv,isSameAppID:()=>fC,isTableId:()=>gT,isViewId:()=>ET,paginatedSearch:()=>gC,pagination:()=>np,prefixRoleID:()=>rr,queryGlobalView:()=>nr,queryGlobalViewRaw:()=>ap,queryPlatformView:()=>jo,queryView:()=>op,queryViewRaw:()=>Qo,removeKeyNumbering:()=>Ko,searchIndexes:()=>cp});var Zf={};v(Zf,{AppState:()=>Jf,getAppMetadata:()=>rc,invalidateAppMetadata:()=>aC});var Fr={};v(Fr,{getAppClient:()=>tc,getCacheClient:()=>Yf,getDocWritethroughClient:()=>nC,getInviteClient:()=>Qn,getLockClient:()=>zf,getPasswordResetClient:()=>qo,getSessionClient:()=>kr,getSocketClient:()=>rC,getUserClient:()=>Go,getWritethroughClient:()=>Hf,init:()=>bt,shutdown:()=>iT});var rT=j(require("ioredis"));var Ku={};v(Ku,{Databases:()=>Sf,SEPARATOR:()=>Vi,SelectableDatabase:()=>Qu,addDbPrefix:()=>qe,getRedisConnectionDetails:()=>ju,getRedisOptions:()=>Gi,removeDbPrefix:()=>Of});var yv=2e3,O_=1e4,Vi="-",Sf=(E=>(E.PW_RESETS="pwReset",E.VERIFICATIONS="verification",E.INVITATIONS="invitation",E.DEV_LOCKS="devLocks",E.DEBOUNCE="debounce",E.SESSIONS="session",E.USER_CACHE="users",E.FLAGS="flags",E.APP_METADATA="appMetadata",E.QUERY_VARS="queryVars",E.LICENSES="license",E.GENERIC_CACHE="data_cache",E.WRITE_THROUGH="writeThrough",E.LOCKS="locks",E.SOCKET_IO="socket_io",E.BPM_EVENTS="bpmEvents",E.DOC_WRITE_THROUGH="docWriteThrough",E))(Sf||{}),Qu=(_=>(_[_.DEFAULT=0]="DEFAULT",_[_.SOCKET_IO=1]="SOCKET_IO",_[_.RATE_LIMITING=2]="RATE_LIMITING",_[_.UNUSED_2=3]="UNUSED_2",_[_.UNUSED_3=4]="UNUSED_3",_[_.UNUSED_4=5]="UNUSED_4",_[_.UNUSED_5=6]="UNUSED_5",_[_.UNUSED_6=7]="UNUSED_6",_[_.UNUSED_7=8]="UNUSED_7",_[_.UNUSED_8=9]="UNUSED_8",_[_.UNUSED_9=10]="UNUSED_9",_[_.UNUSED_10=11]="UNUSED_10",_[_.UNUSED_11=12]="UNUSED_11",_[_.UNUSED_12=13]="UNUSED_12",_[_.UNUSED_13=14]="UNUSED_13",_[_.UNUSED_14=15]="UNUSED_14",_))(Qu||{});function ju(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function Gi(){let{host:t,password:e,port:r}=ju(),n={connectTimeout:O_,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:O_,redisOptions:{...n,tls:{}},slotsRefreshTimeout:yv,dnsLookup:(s,o)=>o(null,s)}),i}function qe(t,e){return e.includes(t)?e:`${t}${Vi}${e}`}function Of(t){let e=t.split(Vi);return e.length>=2?(e.shift(),e.join(Vi)):e[0]}var ec={};v(ec,{correlation:()=>xo,logAlert:()=>Gn,logAlertWithInfo:()=>zv,logWarn:()=>Wi,logger:()=>Xu,system:()=>kf});var xo={};v(xo,{getId:()=>If,setHeader:()=>_v});var I_=require("correlation-id"),_v=t=>{let e=I_.getId();e&&(t["x-budibase-correlation-id"]=e)};function If(){return I_.getId()}var Zu=j(require("pino")),eT=j(require("pino-pretty"));var Ff=j(require("dd-trace")),tT=require("dd-trace/ext");var kf={};v(kf,{getLogReadStream:()=>Wv,getSingleFileMaxSizeInfo:()=>X_,localFileDestination:()=>Mf});var Do=j(require("fs")),Lf=j(require("path")),H_=j(require("rotating-file-stream"));var Uf={};v(Uf,{ObjectStore:()=>wt,ObjectStoreBuckets:()=>Av,SIGNED_FILE_PREFIX:()=>vf,bucketTTLConfig:()=>Yu,budibaseTempDir:()=>Vn,clientLibraryCDNUrl:()=>kv,clientLibraryPath:()=>V_,clientLibraryUrl:()=>Fv,createBucketIfNotExists:()=>bo,deleteFile:()=>vv,deleteFiles:()=>Cv,deleteFolder:()=>F_,downloadTarball:()=>Pv,downloadTarballDirect:()=>Nv,enrichPluginURLs:()=>Vv,extractBucketAndPath:()=>xf,getAppFileUrl:()=>Bv,getGlobalFileS3Key:()=>G_,getGlobalFileUrl:()=>$v,getObjectMetadata:()=>Uv,getPluginIconKey:()=>Q_,getPluginJSKey:()=>W_,getPluginS3Dir:()=>K_,getPresignedUrl:()=>Lr,getReadStream:()=>Hu,listAllObjects:()=>k_,processAutomationAttachment:()=>Ov,processObjectStoreAttachment:()=>R_,retrieve:()=>M_,retrieveDirectory:()=>Rv,retrieveToTmp:()=>Dv,sanitizeBucket:()=>We,sanitizeKey:()=>De,streamUpload:()=>L_,upload:()=>bv,uploadDirectory:()=>Cf});var v_=j(require("aws-sdk")),C_=j(require("stream")),wf=j(require("node-fetch")),bf=j(require("tar-fs")),Df=j(require("zlib")),N_=require("util"),Ur=require("path"),Nr=j(require("fs"));var wo=j(require("path")),x_=require("os"),w_=j(require("fs"));var b_=j(require("stream")),Av={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},D_=(0,wo.join)((0,x_.tmpdir)(),".budibase");try{w_.default.mkdirSync(D_)}catch(t){if(t.code!=="EEXIST")throw t}function Vn(){return D_}var Yu=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function Sv(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=wo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:b_.default.Readable.fromWeb(e.body)}}async function R_(t){let e=xf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Hu(r,n),s=wo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function Ov(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await Sv(t):await R_(t)}var Rf=require("uuid");var P_=j(require("fs/promises")),Iv=require("sanitize-s3-objectkey"),U_=(0,N_.promisify)(C_.default.pipeline),xv={bucketCreationPromises:{}},vf="/files/signed",Pr={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"},wv=[Pr.html,Pr.css,Pr.js,Pr.json];function De(t){return Iv(We(t)).replace(/\\/g,"/")}function We(t){return t.replace(new RegExp(ft,"g"),dt)}function wt(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:We(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 v_.default.S3(r)}async function bo(t,e){e=We(e);try{return await t.headBucket({Bucket:e}).promise(),{created:!1,exists:!0}}catch(r){let n=xv.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 bv({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await P_.default.open(r)).createReadStream():s,c=wt(t),l=await bo(c,t);if(o&&l.created){let f=Yu(t,o);await c.putBucketLifecycleConfiguration(f).promise()}let d=n;d||(d=a?Pr[a.toLowerCase()]:Pr.txt);let m={Key:De(e),Body:u,ContentType:d};if(i&&typeof i=="object"){for(let f of Object.keys(i))(!i[f]||typeof i[f]!="string")&&delete i[f];m.Metadata=i}return c.upload(m).promise()}async function L_({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=wt(t),u=await bo(a,t);if(s&&u.created){let g=Yu(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?Pr[o.toLowerCase()]:Pr.txt);let l=We(t),d=De(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await a.upload(m).promise(),p=await a.headObject({Bucket:l,Key:d}).promise();return{...f,ContentLength:p.ContentLength}}async function M_(t,e){let r=wt(t),n={Bucket:We(t),Key:De(e)},i=await r.getObject(n).promise();return wv.includes(i.ContentType)?i.Body.toString("utf8"):i.Body}async function k_(t,e){let r=wt(t),n=(a={})=>r.listObjectsV2({...a,Bucket:We(t),Prefix:De(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 Lr(t,e,r=3600){let n=wt(t,{presigning:!0}),i={Bucket:We(t),Key:De(e),Expires:r},s=n.getSignedUrl("getObject",i);if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${vf}${a}${u}`}else return s}async function Dv(t,e){t=We(t),e=De(e);let r=await M_(t,e),n=(0,Ur.join)(Vn(),(0,Rf.v4)());return Nr.default.writeFileSync(n,r),n}async function Rv(t,e){let r=(0,Ur.join)(Vn(),(0,Rf.v4)());Nr.default.mkdirSync(r);let n=await k_(t,e),i=await Promise.all(n.map(a=>Hu(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,Ur.join)(r,...d);l.length>1&&!Nr.default.existsSync(m)&&Nr.default.mkdirSync(m,{recursive:!0});let f=Nr.default.createWriteStream((0,Ur.join)(r,...l),{mode:420});c.pipe(f),o.push(new Promise((p,g)=>{c.on("finish",p),c.on("error",g),f.on("error",g)}))}return await Promise.all(o),r}async function vv(t,e){let r=wt(t);await bo(r,t);let n={Bucket:t,Key:De(e)};return r.deleteObject(n).promise()}async function Cv(t,e){let r=wt(t);await bo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:De(i)}))}};return r.deleteObjects(n).promise()}async function F_(t,e){t=We(t),e=De(e);let r=wt(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 F_(t,e)}async function Cf(t,e,r){t=We(t);let n=[],i=Nr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=De((0,Ur.join)(r,s.name)),a=(0,Ur.join)(e,s.name);s.isDirectory()?n.push(Cf(t,a,o)):n.push(L_({bucket:t,filename:o,stream:Nr.default.createReadStream(a)}))}return await Promise.all(n),i}async function Nv(t,e,r={}){e=De(e);let n=await(0,wf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await U_(n.body,Df.default.createUnzip(),bf.default.extract(e))}async function Pv(t,e,r){e=We(e),r=De(r);let n=await(0,wf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Ur.join)(Vn(),r);return await U_(n.body,Df.default.createUnzip(),bf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Cf(e,i,r),i}async function Hu(t,e){t=We(t),e=De(e);let r=wt(t),n={Bucket:t,Key:e};return r.getObject(n).createReadStream()}async function Uv(t,e){t=We(t),e=De(e);let r=wt(t),n={Bucket:t,Key:e};try{return await r.headObject(n).promise()}catch{throw new Error("Unable to retrieve metadata from object")}}function xf(t){let e=t.split("?")[0],r=new RegExp(`^${vf}/(?<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 B_=j(require("aws-cloudfront-sign")),Ju;function Lv(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ju||(Ju=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ju)}var Mv=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Lv(),expireTime:new Date().getTime()+1e3*60*60*24}),qi=t=>{let e=Nf(t);return B_.getSignedUrl(e,Mv())},Nf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var $_=j(require("querystring"));function V_(t){return`${De(t)}/budibase-client.js`}function kv(t,e){let r=V_(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Nf(r)):Lr(h.APPS_BUCKET_NAME,r)}function Fv(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==le&&(n.tenantId=r),`/api/assets/client?${$_.default.encode(n)}`}function Bv(t){return h.CLOUDFRONT_CDN?qi(t):Lr(h.APPS_BUCKET_NAME,t)}var $v=(t,e,r)=>{let n=G_(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),qi(n)):Lr(h.GLOBAL_BUCKET_NAME,n)},G_=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};function Vv(t){return!t||!t.length?[]:t.map(e=>{let r=Gv(e),n=qv(e);return{...e,jsUrl:r,iconUrl:n}})}function Gv(t){let e=W_(t);return q_(e)}function qv(t){let e=Q_(t);if(e)return q_(e)}function q_(t){return h.CLOUDFRONT_CDN?qi(t):Lr(h.PLUGIN_BUCKET_NAME,t)}function W_(t){return j_(t,"plugin.min.js")}function Q_(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return j_(t,e)}function j_(t,e){return`${K_(t.name)}/${e}`}function K_(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var z_="budibase.log",J_="budibase-logs-history.txt",Z_=Lf.default.join(Vn(),"systemlogs");function Y_(t){return Lf.default.join(Z_,t)}function X_(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 Mf(){let t=X_(h.ROLLING_LOG_MAX_SIZE);return H_.createStream(z_,{size:t?.size,path:Z_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:J_,initialRotation:!1})}function Wv(){let t=[],e=Y_(J_);if(Do.default.existsSync(e)){let i=Do.default.readFileSync(e,"utf-8").split(`
|
|
6
|
-
`);for(let s of i.filter(o=>o))t.push(Do.default.readFileSync(s))}return t.push(Do.default.readFileSync(Y_(z_))),Buffer.concat(t)}function Qv(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function jv(t){return t instanceof Error}function Kv(t){return typeof t=="string"}var Mr;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,eT.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Mf(),level:t}),Mr=r.length?(0,Zu.default)(e,Zu.default.multistream(r)):(0,Zu.default)(e);let n=u=>{let c,l=[],d="";u.forEach(_=>{Kv(_)&&(d=`${d} ${_}`.trimStart()),Qv(_)&&l.push(_),jv(_)&&(c=_)});let
|
|
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,ut({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,Ig.default)({args:d,value:l,path:s,sync:i,tests:p,endEarly:c},f=>{if(f)return void n(f,l);(0,Ig.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ut({},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(ut({},r,{value:e})),i;return n._validate(e,ut({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(wg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(wg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Og.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=Oi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Oi.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=Oi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,ou.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,ow.default)(e).map(s=>new iw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new nw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,ou.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=Oi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,ou.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=Oi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,ou.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)}}};au.default=Tt;Tt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Tt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,sw.getIn)(this,e,r,n.context);return o[t](i&&i[s],ut({},n,{parent:i,path:e}))};for(let t of["equals","is"])Tt.prototype[t]=Tt.prototype.oneOf;for(let t of["not","nope"])Tt.prototype[t]=Tt.prototype.notOneOf;Tt.prototype.optional=Tt.prototype.notRequired});var Rg=K(qs=>{"use strict";Object.defineProperty(qs,"__esModule",{value:!0});qs.create=Dg;qs.default=void 0;var aw=uw(Ht());function uw(t){return t&&t.__esModule?t:{default:t}}var Yl=aw.default,cw=Yl;qs.default=cw;function Dg(){return new Yl}Dg.prototype=Yl.prototype});var Ii=K(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var lw=t=>t==null;uu.default=lw});var Ug=K(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=Pg;Qs.default=void 0;var dw=Ng(Ht()),vg=Kt(),Cg=Ng(Ii());function Ng(t){return t&&t.__esModule?t:{default:t}}function Pg(){return new Ws}var Ws=class extends dw.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Cg.default)(r)||r===!0}})}isFalse(e=vg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Cg.default)(r)||r===!1}})}};Qs.default=Ws;Pg.prototype=Ws.prototype});var kg=K(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Mg;Ks.default=void 0;var kt=Kt(),zt=Lg(Ii()),fw=Lg(Ht());function Lg(t){return t&&t.__esModule?t:{default:t}}var pw=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,mw=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,hw=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,gw=t=>(0,zt.default)(t)||t===t.trim(),yw={}.toString();function Mg(){return new js}var js=class extends fw.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===yw?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=kt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,zt.default)(n)||n.length===this.resolve(e)}})}min(e,r=kt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,zt.default)(n)||n.length>=this.resolve(e)}})}max(e,r=kt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,zt.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||kt.string.matches,params:{regex:e},test:o=>(0,zt.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=kt.string.email){return this.matches(pw,{name:"email",message:e,excludeEmptyString:!0})}url(e=kt.string.url){return this.matches(mw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=kt.string.uuid){return this.matches(hw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=kt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:gw})}lowercase(e=kt.string.lowercase){return this.transform(r=>(0,zt.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,zt.default)(r)||r===r.toLowerCase()})}uppercase(e=kt.string.uppercase){return this.transform(r=>(0,zt.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,zt.default)(r)||r===r.toUpperCase()})}};Ks.default=js;Mg.prototype=js.prototype});var $g=K(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Bg;Hs.default=void 0;var In=Kt(),xn=Fg(Ii()),Ew=Fg(Ht());function Fg(t){return t&&t.__esModule?t:{default:t}}var _w=t=>t!=+t;function Bg(){return new Ys}var Ys=class extends Ew.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!_w(e)}min(e,r=In.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,xn.default)(n)||n>=this.resolve(e)}})}max(e,r=In.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,xn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=In.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,xn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=In.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,xn.default)(n)||n>this.resolve(e)}})}positive(e=In.number.positive){return this.moreThan(0,e)}negative(e=In.number.negative){return this.lessThan(0,e)}integer(e=In.number.integer){return this.test({name:"integer",message:e,test:r=>(0,xn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,xn.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,xn.default)(i)?i:Math[e](i))}};Hs.default=Ys;Bg.prototype=Ys.prototype});var Vg=K(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=Aw;var Tw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Aw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=Tw.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 Wg=K(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Jl;zs.default=void 0;var Sw=cu(Vg()),Gg=Kt(),qg=cu(Ii()),Ow=cu(On()),Iw=cu(Ht());function cu(t){return t&&t.__esModule?t:{default:t}}var zl=new Date(""),xw=t=>Object.prototype.toString.call(t)==="[object Date]";function Jl(){return new xi}var xi=class extends Iw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Sw.default)(e),isNaN(e)?zl:new Date(e))})})}_typeCheck(e){return xw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Ow.default.isRef(e))n=e;else{let i=this.cast(e);if(!this._typeCheck(i))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);n=i}return n}min(e,r=Gg.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=Gg.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)}})}};zs.default=xi;xi.INVALID_DATE=zl;Jl.prototype=xi.prototype;Jl.INVALID_DATE=zl});var jg=K((Z1,Zl)=>{"use strict";Zl.exports=function(t){return Qg(ww(t),t)};Zl.exports.array=Qg;function Qg(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,d){if(d.has(c)){var p;try{p=", node was:"+JSON.stringify(c)}catch{p=""}throw new Error("Cyclic dependency"+p)}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 f=o.get(c)||new Set;if(f=Array.from(f),l=f.length){d.add(c);do{var m=f[--l];u(m,a.get(m),d)}while(l);d.delete(c)}n[--r]=c}}}function ww(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}function bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++){var i=t[r];e.has(i[0])||e.set(i[0],new Set),e.has(i[1])||e.set(i[1],new Set),e.get(i[0]).add(i[1])}return e}function Dw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Kg=K(Xl=>{"use strict";Object.defineProperty(Xl,"__esModule",{value:!0});Xl.default=Uw;var Rw=lu(require("lodash/has")),vw=lu(jg()),Cw=Bs(),Nw=lu(On()),Pw=lu(Si());function lu(t){return t&&t.__esModule?t:{default:t}}function Uw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Cw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Rw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Nw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,Pw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return vw.default.array(n,r).reverse()}});var Hg=K(ed=>{"use strict";Object.defineProperty(ed,"__esModule",{value:!0});ed.default=Lw;function Yg(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function Lw(t){return(e,r)=>Yg(t,e)-Yg(t,r)}});var ry=K(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=ty;Zs.default=void 0;var zg=Ft(require("lodash/has")),Jg=Ft(require("lodash/snakeCase")),Mw=Ft(require("lodash/camelCase")),kw=Ft(require("lodash/mapKeys")),Fw=Ft(require("lodash/mapValues")),Bw=Bs(),Zg=Kt(),$w=Ft(Kg()),ey=Ft(Hg()),Vw=Ft(tu()),Gw=Ft(An()),td=Ft(Ht());function Ft(t){return t&&t.__esModule?t:{default:t}}function wi(){return wi=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},wi.apply(this,arguments)}var Xg=t=>Object.prototype.toString.call(t)==="[object Object]";function qw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Ww=(0,ey.default)([]),Js=class extends td.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Ww,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(n){if(typeof n=="string")try{n=JSON.parse(n)}catch{n=null}return this.isType(n)?n:null}),e&&this.shape(e)})}_typeCheck(e){return Xg(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=wi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let p=s[d],f=(0,zg.default)(i,d);if(p){let m,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,p=p.resolve({value:g,context:r.context,parent:u});let _="spec"in p?p.spec:void 0,y=_?.strict;if(_?.strip){l=l||d in i;continue}m=!r.__validating||!y?p.cast(i[d],c):i[d],m!==void 0&&(u[d]=m)}else f&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!Gw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!Xg(d)){n(i[0]||null,d);return}a=a||d;let p=this._nodes.map(f=>(m,g)=>{let _=f.indexOf(".")===-1?(r.path?`${r.path}.`:"")+f:`${r.path||""}["${f}"]`,y=this.fields[f];if(y&&"validate"in y){y.validate(d[f],wi({},r,{path:_,from:o,strict:!0,parent:d,originalValue:a[f]}),g);return}g(null)});(0,Vw.default)({sync:s,tests:p,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=wi({},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 td.default&&s instanceof td.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,ey.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,Bw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,zg.default)(s,e)&&(o=wi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Zg.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let s=qw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Zg.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Mw.default)}snakeCase(){return this.transformKeys(Jg.default)}constantCase(){return this.transformKeys(e=>(0,Jg.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Fw.default)(this.fields,r=>r.describe()),e}};Zs.default=Js;function ty(t){return new Js(t)}ty.prototype=Js.prototype});var iy=K(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=ny;eo.default=void 0;var rd=bi(Ii()),Qw=bi(Si()),jw=bi(Fs()),nd=Kt(),Kw=bi(tu()),Yw=bi(An()),Hw=bi(Ht());function bi(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 ny(t){return new Xs(t)}var Xs=class extends Hw.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,du({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(f,m)=>{if(f){if(!Yw.default.isError(f)||l)return void n(f,m);o.push(f)}if(!d||!c||!this._typeCheck(m)){n(o[0]||null,m);return}p=p||m;let g=new Array(m.length);for(let _=0;_<m.length;_++){let y=m[_],O=`${r.path||""}[${_}]`,S=du({},r,{path:O,strict:!0,parent:m,index:_,originalValue:p[_]});g[_]=(L,E)=>c.validate(y,S,E)}(0,Kw.default)({sync:a,path:u,value:m,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Qw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,jw.default)(e));return r.innerType=e,r}length(e,r=nd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,rd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||nd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,rd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||nd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,rd.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)}};eo.default=Xs;ny.prototype=Xs.prototype});var sy=K(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Zw;to.default=void 0;var zw=Jw(Si());function Jw(t){return t&&t.__esModule?t:{default:t}}function Zw(t){return new fu(t)}var fu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,zw.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},Xw=fu;to.default=Xw});var oy=K(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=rb;var eb=tb(Kt());function tb(t){return t&&t.__esModule?t:{default:t}}function rb(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{eb.default[e][r]=t[e][r]})})}});var od=K(ce=>{"use strict";Object.defineProperty(ce,"__esModule",{value:!0});ce.addMethod=cb;Object.defineProperty(ce,"MixedSchema",{enumerable:!0,get:function(){return ay.default}});Object.defineProperty(ce,"mixed",{enumerable:!0,get:function(){return ay.create}});Object.defineProperty(ce,"BooleanSchema",{enumerable:!0,get:function(){return sd.default}});Object.defineProperty(ce,"bool",{enumerable:!0,get:function(){return sd.create}});Object.defineProperty(ce,"boolean",{enumerable:!0,get:function(){return sd.create}});Object.defineProperty(ce,"StringSchema",{enumerable:!0,get:function(){return uy.default}});Object.defineProperty(ce,"string",{enumerable:!0,get:function(){return uy.create}});Object.defineProperty(ce,"NumberSchema",{enumerable:!0,get:function(){return cy.default}});Object.defineProperty(ce,"number",{enumerable:!0,get:function(){return cy.create}});Object.defineProperty(ce,"DateSchema",{enumerable:!0,get:function(){return ly.default}});Object.defineProperty(ce,"date",{enumerable:!0,get:function(){return ly.create}});Object.defineProperty(ce,"ObjectSchema",{enumerable:!0,get:function(){return dy.default}});Object.defineProperty(ce,"object",{enumerable:!0,get:function(){return dy.create}});Object.defineProperty(ce,"ArraySchema",{enumerable:!0,get:function(){return fy.default}});Object.defineProperty(ce,"array",{enumerable:!0,get:function(){return fy.create}});Object.defineProperty(ce,"ref",{enumerable:!0,get:function(){return nb.create}});Object.defineProperty(ce,"lazy",{enumerable:!0,get:function(){return ib.create}});Object.defineProperty(ce,"ValidationError",{enumerable:!0,get:function(){return sb.default}});Object.defineProperty(ce,"reach",{enumerable:!0,get:function(){return ob.default}});Object.defineProperty(ce,"isSchema",{enumerable:!0,get:function(){return py.default}});Object.defineProperty(ce,"setLocale",{enumerable:!0,get:function(){return ab.default}});Object.defineProperty(ce,"BaseSchema",{enumerable:!0,get:function(){return ub.default}});var ay=wn(Rg()),sd=wn(Ug()),uy=wn(kg()),cy=wn($g()),ly=wn(Wg()),dy=wn(ry()),fy=wn(iy()),nb=On(),ib=sy(),sb=ro(An()),ob=ro(jl()),py=ro(Si()),ab=ro(oy()),ub=ro(Ht());function ro(t){return t&&t.__esModule?t:{default:t}}function my(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return my=function(){return t},t}function wn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=my();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function cb(t,e,r){if(!t||!(0,py.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 hy=K(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});var ad=cd();ud.default=()=>{(0,ad.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,ad.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,ad.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 cd=K(xe=>{"use strict";var lb=xe&&xe.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),db=xe&&xe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),fb=xe&&xe.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&lb(e,t,r);return db(e,t),e},pb=xe&&xe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xe,"__esModule",{value:!0});xe.validateOptions=xe.registerOptionPreset=xe.getOptionPresets=xe.getOptionPreset=void 0;var x=fb(od());od();var no=Et(),mb=pb(hy());_t();var bn={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}}},gy=x.object({presetId:x.string().required(),useSeconds:x.boolean().required(),useYears:x.boolean().required(),useAliases:x.boolean(),useBlankDay:x.boolean().required(),allowOnlyOneBlankDayField:x.boolean().required(),mustHaveBlankDayField:x.boolean(),useLastDayOfMonth:x.boolean(),useLastDayOfWeek:x.boolean(),useNearestWeekday:x.boolean(),useNthWeekdayOfMonth:x.boolean(),seconds:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),minutes:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),hours:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfMonth:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),months:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),daysOfWeek:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required(),years:x.object({minValue:x.number().min(0).required(),maxValue:x.number().min(0).required(),lowerLimit:x.number().min(0),upperLimit:x.number().min(0)}).required()}).required(),hb=t=>bn[t]?(0,no.valid)(bn[t]):(0,no.err)(`Option preset '${t}' not found.`);xe.getOptionPreset=hb;var gb=()=>bn;xe.getOptionPresets=gb;var yb=(t,e)=>{bn[t]=gy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};xe.registerOptionPreset=yb;var Eb=t=>{var e,r,n,i,s,o,a,u,c,l,d,p,f,m,g,_,y,O,S,L;try{(0,mb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!bn[t.preset])return(0,no.err)([`Option preset ${t.preset} does not exist.`]);E=bn[t.preset]}else E=t.preset;else E=bn.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:(d=E.hours.lowerLimit)!==null&&d!==void 0?d:E.hours.minValue,upperLimit:(p=E.hours.upperLimit)!==null&&p!==void 0?p:E.hours.maxValue},daysOfMonth:{lowerLimit:(f=E.daysOfMonth.lowerLimit)!==null&&f!==void 0?f:E.daysOfMonth.minValue,upperLimit:(m=E.daysOfMonth.upperLimit)!==null&&m!==void 0?m:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(_=E.months.upperLimit)!==null&&_!==void 0?_: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:gy.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,no.valid)(w)}catch(E){return(0,no.err)(E.errors)}};xe.validateOptions=Eb});var Mt=K((io,dd)=>{"use strict";var Rn=io&&io.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(io,"__esModule",{value:!0});var Dn=Et(),_b=Rn(Qh()),Tb=Rn(jh()),Ab=Rn(Kh()),Sb=Rn(Yh()),Ob=Rn(Hh()),Ib=Rn(zh()),xb=Rn(Jh()),wb=cd();_t();var bb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Dn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Dn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Dn.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,Dn.valid)(n)},ld=(t,e={})=>{let r=(0,wb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=bb(t,n);if(i.isError())return(0,Dn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,_b.default)(s,n)),o.push((0,Tb.default)(s,n)),o.push((0,Ab.default)(s,n)),o.push((0,Sb.default)(s,n)),o.push((0,Ob.default)(s,n)),o.push((0,Ib.default)(s,n)),n.useYears&&o.push((0,xb.default)(s,n)),o.every(u=>u.isValid()))return(0,Dn.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,Dn.err)(a)};io.default=ld;dd.exports=ld;dd.exports.default=ld});var $E=K(Xe=>{"use strict";Object.defineProperty(Xe,"__esModule",{value:!0});var Zt=class extends Error{},Td=class extends Zt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ad=class extends Zt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Sd=class extends Zt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Nn=class extends Zt{},_u=class extends Zt{constructor(e){super(`Invalid unit ${e}`)}},Ge=class extends Zt{},Bt=class extends Zt{constructor(){super("Zone is an abstract class")}},b="numeric",Ot="short",Je="long",Tu={year:b,month:b,day:b},Gy={year:b,month:Ot,day:b},Db={year:b,month:Ot,day:b,weekday:Ot},qy={year:b,month:Je,day:b},Wy={year:b,month:Je,day:b,weekday:Je},Qy={hour:b,minute:b},jy={hour:b,minute:b,second:b},Ky={hour:b,minute:b,second:b,timeZoneName:Ot},Yy={hour:b,minute:b,second:b,timeZoneName:Je},Hy={hour:b,minute:b,hourCycle:"h23"},zy={hour:b,minute:b,second:b,hourCycle:"h23"},Jy={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ot},Zy={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Je},Xy={year:b,month:b,day:b,hour:b,minute:b},eE={year:b,month:b,day:b,hour:b,minute:b,second:b},tE={year:b,month:Ot,day:b,hour:b,minute:b},rE={year:b,month:Ot,day:b,hour:b,minute:b,second:b},Rb={year:b,month:Ot,day:b,weekday:Ot,hour:b,minute:b},nE={year:b,month:Je,day:b,hour:b,minute:b,timeZoneName:Ot},iE={year:b,month:Je,day:b,hour:b,minute:b,second:b,timeZoneName:Ot},sE={year:b,month:Je,day:b,weekday:Je,hour:b,minute:b,timeZoneName:Je},oE={year:b,month:Je,day:b,weekday:Je,hour:b,minute:b,second:b,timeZoneName:Je},xr=class{get type(){throw new Bt}get name(){throw new Bt}get ianaName(){return this.name}get isUniversal(){throw new Bt}offsetName(e,r){throw new Bt}formatOffset(e,r){throw new Bt}offset(e){throw new Bt}equals(e){throw new Bt}get isValid(){throw new Bt}},fd=null,fo=class t extends xr{static get instance(){return fd===null&&(fd=new t),fd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return uE(e,r,n)}formatOffset(e,r){return lo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},yu={};function vb(t){return yu[t]||(yu[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"})),yu[t]}var Cb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Nb(t,e){let r=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(r),[,i,s,o,a,u,c,l]=n;return[o,i,s,a,u,c,l]}function Pb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Cb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var pu={},Xt=class t extends xr{static create(e){return pu[e]||(pu[e]=new t(e)),pu[e]}static resetCache(){pu={},yu={}}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 uE(e,r,n,this.name)}formatOffset(e,r){return lo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=vb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?Pb(n,r):Nb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let p=Ud({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),f=+r,m=f%1e3;return f-=m>=0?m:1e3+m,(p-f)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},yy={};function Ub(t,e={}){let r=JSON.stringify([t,e]),n=yy[r];return n||(n=new Intl.ListFormat(t,e),yy[r]=n),n}var Od={};function Id(t,e={}){let r=JSON.stringify([t,e]),n=Od[r];return n||(n=new Intl.DateTimeFormat(t,e),Od[r]=n),n}var xd={};function Lb(t,e={}){let r=JSON.stringify([t,e]),n=xd[r];return n||(n=new Intl.NumberFormat(t,e),xd[r]=n),n}var wd={};function Mb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=wd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),wd[i]=s),s}var uo=null;function kb(){return uo||(uo=new Intl.DateTimeFormat().resolvedOptions().locale,uo)}function Fb(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=Id(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Id(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Bb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function $b(t){let e=[];for(let r=1;r<=12;r++){let n=Ee.utc(2016,r,1);e.push(t(n))}return e}function Vb(t){let e=[];for(let r=1;r<=7;r++){let n=Ee.utc(2016,11,13+r);e.push(t(n))}return e}function mu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Gb(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem==="latn"}var bd=class{constructor(e,r,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:i,floor:s,...o}=n;if(!r||Object.keys(o).length>0){let a={useGrouping:!1,...n};n.padTo>0&&(a.minimumIntegerDigits=n.padTo),this.inf=Lb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):Pd(e,3);return Ae(r,this.padTo)}}},Dd=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&&Xt.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ee.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=Id(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Rd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&aE()&&(this.rtf=Mb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):iD(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},ye=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||ge.defaultLocale,o=s||(i?"en-US":kb()),a=r||ge.defaultNumberingSystem,u=n||ge.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){uo=null,Od={},xd={},wd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=Fb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Bb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Gb(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 mu(this,e,n,dE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=$b(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return mu(this,e,n,mE,()=>{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]=Vb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return mu(this,void 0,e,()=>hE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ee.utc(2016,11,13,9),Ee.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return mu(this,e,r,gE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ee.utc(-40,1,1),Ee.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new bd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Dd(e,this.intl,r)}relFormatter(e={}){return new Rd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ub(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},pd=null,Ze=class t extends xr{static get utcInstance(){return pd===null&&(pd=new t(0)),pd}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(wu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${lo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${lo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return lo(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}},Au=class extends xr{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 Ir(t,e){if(ne(t)||t===null)return e;if(t instanceof xr)return t;if(qb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?fo.instance:r==="utc"||r==="gmt"?Ze.utcInstance:Ze.parseSpecifier(r)||Xt.create(t)}else return Un(t)?Ze.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Au(t)}var Ey=()=>Date.now(),_y="system",Ty=null,Ay=null,Sy=null,Oy=60,Iy,ge=class{static get now(){return Ey}static set now(e){Ey=e}static set defaultZone(e){_y=e}static get defaultZone(){return Ir(_y,fo.instance)}static get defaultLocale(){return Ty}static set defaultLocale(e){Ty=e}static get defaultNumberingSystem(){return Ay}static set defaultNumberingSystem(e){Ay=e}static get defaultOutputCalendar(){return Sy}static set defaultOutputCalendar(e){Sy=e}static get twoDigitCutoffYear(){return Oy}static set twoDigitCutoffYear(e){Oy=e%100}static get throwOnInvalid(){return Iy}static set throwOnInvalid(e){Iy=e}static resetCaches(){ye.resetCache(),Xt.resetCache()}};function ne(t){return typeof t>"u"}function Un(t){return typeof t=="number"}function xu(t){return typeof t=="number"&&t%1===0}function qb(t){return typeof t=="string"}function Wb(t){return Object.prototype.toString.call(t)==="[object Date]"}function aE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Qb(t){return Array.isArray(t)?t:[t]}function xy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function jb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Ci(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Jt(t,e,r){return xu(t)&&t>=e&&t<=r}function Kb(t,e){return t-e*Math.floor(t/e)}function Ae(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Or(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function vn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Nd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Pd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function po(t){return t%4===0&&(t%100!==0||t%400===0)}function co(t){return po(t)?366:365}function Su(t,e){let r=Kb(e-1,12)+1,n=t+(e-r)/12;return r===2?po(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Ud(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 Ou(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function vd(t){return t>99?t:t>ge.twoDigitCutoffYear?1900+t:2e3+t}function uE(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 wu(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 cE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ge(`Invalid unit value ${t}`);return e}function Iu(t,e){let r={};for(let n in t)if(Ci(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=cE(i)}return r}function lo(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}${Ae(r,2)}:${Ae(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Ae(r,2)}${Ae(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function bu(t){return jb(t,["hour","minute","second","millisecond"])}var Yb=["January","February","March","April","May","June","July","August","September","October","November","December"],lE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Hb=["J","F","M","A","M","J","J","A","S","O","N","D"];function dE(t){switch(t){case"narrow":return[...Hb];case"short":return[...lE];case"long":return[...Yb];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var fE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],pE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],zb=["M","T","W","T","F","S","S"];function mE(t){switch(t){case"narrow":return[...zb];case"short":return[...pE];case"long":return[...fE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var hE=["AM","PM"],Jb=["Before Christ","Anno Domini"],Zb=["BC","AD"],Xb=["B","A"];function gE(t){switch(t){case"narrow":return[...Xb];case"short":return[...Zb];case"long":return[...Jb];default:return null}}function eD(t){return hE[t.hour<12?0:1]}function tD(t,e){return mE(e)[t.weekday-1]}function rD(t,e){return dE(e)[t.month-1]}function nD(t,e){return gE(e)[t.year<0?0:1]}function iD(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function wy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var sD={D:Tu,DD:Gy,DDD:qy,DDDD:Wy,t:Qy,tt:jy,ttt:Ky,tttt:Yy,T:Hy,TT:zy,TTT:Jy,TTTT:Zy,f:Xy,ff:tE,fff:nE,ffff:sE,F:eE,FF:rE,FFF:iE,FFFF:oE},He=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 sD[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 Ae(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=(f,m)=>this.loc.extract(e,f,m),o=f=>e.isOffsetFixed&&e.offset===0&&f.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,f.format):"",a=()=>n?eD(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(f,m)=>n?rD(e,f):s(m?{month:f}:{month:f,day:"numeric"},"month"),c=(f,m)=>n?tD(e,f):s(m?{weekday:f}:{weekday:f,month:"long",day:"numeric"},"weekday"),l=f=>{let m=t.macroTokenToFormatOpts(f);return m?this.formatWithSystemDefault(e,m):f},d=f=>n?nD(e,f):s({era:f},"era"),p=f=>{switch(f){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(f)}};return wy(t.parseFormat(r),p)}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 wy(s,i(a))}},ze=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},yE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Ni(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Pi(...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 Ui(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 EE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Or(e[r+i]);return[n,null,r+i]}}var _E=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,oD=`(?:${_E.source}?(?:\\[(${yE.source})\\])?)?`,Ld=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,TE=RegExp(`${Ld.source}${oD}`),Md=RegExp(`(?:T${TE.source})?`),aD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,uD=/(\d{4})-?W(\d\d)(?:-?(\d))?/,cD=/(\d{4})-?(\d{3})/,lD=EE("weekYear","weekNumber","weekDay"),dD=EE("year","ordinal"),fD=/(\d{4})-(\d\d)-(\d\d)/,AE=RegExp(`${Ld.source} ?(?:${_E.source}|(${yE.source}))?`),pD=RegExp(`(?: ${AE.source})?`);function vi(t,e,r){let n=t[e];return ne(n)?r:Or(n)}function mD(t,e){return[{year:vi(t,e),month:vi(t,e+1,1),day:vi(t,e+2,1)},null,e+3]}function Li(t,e){return[{hours:vi(t,e,0),minutes:vi(t,e+1,0),seconds:vi(t,e+2,0),milliseconds:Nd(t[e+3])},null,e+4]}function mo(t,e){let r=!t[e]&&!t[e+1],n=wu(t[e+1],t[e+2]),i=r?null:Ze.instance(n);return[{},i,e+3]}function ho(t,e){let r=t[e]?Xt.create(t[e]):null;return[{},r,e+1]}var hD=RegExp(`^T?${Ld.source}$`),gD=/^-?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 yD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",p=(f,m=!1)=>f!==void 0&&(m||f&&l)?-f:f;return[{years:p(vn(r)),months:p(vn(n)),weeks:p(vn(i)),days:p(vn(s)),hours:p(vn(o)),minutes:p(vn(a)),seconds:p(vn(u),u==="-0"),milliseconds:p(Nd(c),d)}]}var ED={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function kd(t,e,r,n,i,s,o){let a={year:e.length===2?vd(Or(e)):Or(e),month:lE.indexOf(r)+1,day:Or(n),hour:Or(i),minute:Or(s)};return o&&(a.second=Or(o)),t&&(a.weekday=t.length>3?fE.indexOf(t)+1:pE.indexOf(t)+1),a}var _D=/^(?:(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 TD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,p=kd(e,i,n,r,s,o,a),f;return u?f=ED[u]:c?f=0:f=wu(l,d),[p,new Ze(f)]}function AD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var SD=/^(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$/,OD=/^(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$/,ID=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function by(t){let[,e,r,n,i,s,o,a]=t;return[kd(e,i,n,r,s,o,a),Ze.utcInstance]}function xD(t){let[,e,r,n,i,s,o,a]=t;return[kd(e,a,r,n,i,s,o),Ze.utcInstance]}var wD=Ni(aD,Md),bD=Ni(uD,Md),DD=Ni(cD,Md),RD=Ni(TE),SE=Pi(mD,Li,mo,ho),vD=Pi(lD,Li,mo,ho),CD=Pi(dD,Li,mo,ho),ND=Pi(Li,mo,ho);function PD(t){return Ui(t,[wD,SE],[bD,vD],[DD,CD],[RD,ND])}function UD(t){return Ui(AD(t),[_D,TD])}function LD(t){return Ui(t,[SD,by],[OD,by],[ID,xD])}function MD(t){return Ui(t,[gD,yD])}var kD=Pi(Li);function FD(t){return Ui(t,[hD,kD])}var BD=Ni(fD,pD),$D=Ni(AE),VD=Pi(Li,mo,ho);function GD(t){return Ui(t,[BD,SE],[$D,VD])}var qD="Invalid Duration",OE={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}},WD={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},...OE},ct=146097/400,Di=146097/4800,QD={years:{quarters:4,months:12,weeks:ct/7,days:ct,hours:ct*24,minutes:ct*24*60,seconds:ct*24*60*60,milliseconds:ct*24*60*60*1e3},quarters:{months:3,weeks:ct/28,days:ct/4,hours:ct*24/4,minutes:ct*24*60/4,seconds:ct*24*60*60/4,milliseconds:ct*24*60*60*1e3/4},months:{weeks:Di/7,days:Di,hours:Di*24,minutes:Di*24*60,seconds:Di*24*60*60,milliseconds:Di*24*60*60*1e3},...OE},Cn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],jD=Cn.slice(0).reverse();function Sr(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 Se(n)}function KD(t){return t<0?Math.floor(t):Math.ceil(t)}function IE(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?KD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function YD(t,e){jD.reduce((r,n)=>ne(e[n])?r:(r&&IE(t,e,r,e,n),n),null)}function HD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var Se=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?QD:WD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ye.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 Ge(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Iu(e,t.normalizeUnit),loc:ye.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Un(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ge(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=MD(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]=FD(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 Ge("need to specify a reason the Duration is invalid");let n=e instanceof ze?e:new ze(e,r);if(ge.throwOnInvalid)throw new Sd(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 _u(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?He.create(this.loc,n).formatDurationFromString(this,e):qD}toHuman(e={}){let r=Cn.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+=Pd(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 Cn)(Ci(r.values,i)||Ci(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Sr(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]=cE(e(this.values[n],n));return Sr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Iu(e,t.normalizeUnit)};return Sr(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 Sr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return YD(this.matrix,e),Sr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=HD(this.normalize().shiftToAll().toObject());return Sr(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 Cn)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;Un(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)Cn.indexOf(c)>Cn.indexOf(o)&&IE(this.matrix,i,c,r,o)}else Un(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 Sr(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 Sr(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 Cn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Ri="Invalid Interval";function zD(t,e){return!t||!t.isValid?Ln.invalid("missing or invalid start"):!e||!e.isValid?Ln.invalid("missing or invalid end"):e<t?Ln.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 Ln=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 Ge("need to specify a reason the Interval is invalid");let n=e instanceof ze?e:new ze(e,r);if(ge.throwOnInvalid)throw new Ad(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ao(e),i=ao(r),s=zD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=Se.fromDurationLike(r),i=ao(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Se.fromDurationLike(r),i=ao(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=Ee.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ee.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=Se.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=Se.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(ao).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=Se.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()})`:Ri}toLocaleString(e=Tu,r={}){return this.isValid?He.create(this.s.loc.clone(r),e).formatInterval(this):Ri}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Ri}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ri}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Ri}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Ri}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Se.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Pn=class{static hasDST(e=ge.defaultZone){let r=Ee.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return Xt.isValidZone(e)}static normalizeZone(e){return Ir(e,ge.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||ye.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||ye.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ye.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||ye.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ye.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return ye.create(r,null,"gregory").eras(e)}static features(){return{relative:aE()}}};function Dy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(Se.fromMillis(n).as("days"))}function JD(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=Dy(u,c);return(l-l%7)/7}],["days",Dy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function ZD(t,e,r,n){let[i,s,o,a]=JD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=Se.fromObject(s,n);return c.length>0?Se.fromMillis(u,n).shiftTo(...c).plus(l):l}var Fd={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"},Ry={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]},XD=Fd.hanidec.replace(/[\[|\]]/g,"").split("");function eR(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(Fd.hanidec)!==-1)e+=XD.indexOf(t[r]);else for(let i in Ry){let[s,o]=Ry[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function At({numberingSystem:t},e=""){return new RegExp(`${Fd[t||"latn"]}${e}`)}var tR="missing Intl.DateTimeFormat.formatToParts support";function ae(t,e=r=>r){return{regex:t,deser:([r])=>e(eR(r))}}var rR=String.fromCharCode(160),xE=`[ ${rR}]`,wE=new RegExp(xE,"g");function nR(t){return t.replace(/\./g,"\\.?").replace(wE,xE)}function vy(t){return t.replace(/\./g,"").replace(wE," ").toLowerCase()}function St(t,e){return t===null?null:{regex:RegExp(t.map(nR).join("|")),deser:([r])=>t.findIndex(n=>vy(r)===vy(n))+e}}function Cy(t,e){return{regex:t,deser:([,r,n])=>wu(r,n),groups:e}}function md(t){return{regex:t,deser:([e])=>e}}function iR(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function sR(t,e){let r=At(e),n=At(e,"{2}"),i=At(e,"{3}"),s=At(e,"{4}"),o=At(e,"{6}"),a=At(e,"{1,2}"),u=At(e,"{1,3}"),c=At(e,"{1,6}"),l=At(e,"{1,9}"),d=At(e,"{2,4}"),p=At(e,"{4,6}"),f=_=>({regex:RegExp(iR(_.val)),deser:([y])=>y,literal:!0}),g=(_=>{if(t.literal)return f(_);switch(_.val){case"G":return St(e.eras("short",!1),0);case"GG":return St(e.eras("long",!1),0);case"y":return ae(c);case"yy":return ae(d,vd);case"yyyy":return ae(s);case"yyyyy":return ae(p);case"yyyyyy":return ae(o);case"M":return ae(a);case"MM":return ae(n);case"MMM":return St(e.months("short",!0,!1),1);case"MMMM":return St(e.months("long",!0,!1),1);case"L":return ae(a);case"LL":return ae(n);case"LLL":return St(e.months("short",!1,!1),1);case"LLLL":return St(e.months("long",!1,!1),1);case"d":return ae(a);case"dd":return ae(n);case"o":return ae(u);case"ooo":return ae(i);case"HH":return ae(n);case"H":return ae(a);case"hh":return ae(n);case"h":return ae(a);case"mm":return ae(n);case"m":return ae(a);case"q":return ae(a);case"qq":return ae(n);case"s":return ae(a);case"ss":return ae(n);case"S":return ae(u);case"SSS":return ae(i);case"u":return md(l);case"uu":return md(a);case"uuu":return ae(r);case"a":return St(e.meridiems(),0);case"kkkk":return ae(s);case"kk":return ae(d,vd);case"W":return ae(a);case"WW":return ae(n);case"E":case"c":return ae(r);case"EEE":return St(e.weekdays("short",!1,!1),1);case"EEEE":return St(e.weekdays("long",!1,!1),1);case"ccc":return St(e.weekdays("short",!0,!1),1);case"cccc":return St(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Cy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Cy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return md(/[a-z_+-/]{1,256}?/i);default:return f(_)}})(t)||{invalidReason:tR};return g.token=t,g}var oR={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 aR(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=oR[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function uR(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function cR(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Ci(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 lR(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=Xt.create(t.z)),ne(t.Z)||(r||(r=new Ze(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=Nd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var hd=null;function dR(){return hd||(hd=Ee.fromMillis(1555555555555)),hd}function fR(t,e){if(t.literal)return t;let r=He.macroTokenToFormatOpts(t.val),n=RE(r,e);return n==null||n.includes(void 0)?t:n}function bE(t,e){return Array.prototype.concat(...t.map(r=>fR(r,e)))}function DE(t,e,r){let n=bE(He.parseFormat(r),t),i=n.map(o=>sR(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=uR(i),u=RegExp(o,"i"),[c,l]=cR(e,u,a),[d,p,f]=l?lR(l):[null,null,void 0];if(Ci(l,"a")&&Ci(l,"H"))throw new Nn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:p,specificOffset:f}}}function pR(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=DE(t,e,r);return[n,i,s,o]}function RE(t,e){return t?He.create(e,t).formatDateTimeParts(dR()).map(i=>aR(i,t)):null}var vE=[0,31,59,90,120,151,181,212,243,273,304,334],CE=[0,31,60,91,121,152,182,213,244,274,305,335];function lt(t,e){return new ze("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function NE(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 PE(t,e,r){return r+(po(t)?CE:vE)[e-1]}function UE(t,e){let r=po(t)?CE:vE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Cd(t){let{year:e,month:r,day:n}=t,i=PE(e,r,n),s=NE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Ou(a)):o>Ou(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...bu(t)}}function Ny(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=NE(e,1,4),s=co(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=co(a)):o>s?(a=e+1,o-=co(e)):a=e;let{month:u,day:c}=UE(a,o);return{year:a,month:u,day:c,...bu(t)}}function gd(t){let{year:e,month:r,day:n}=t,i=PE(e,r,n);return{year:e,ordinal:i,...bu(t)}}function Py(t){let{year:e,ordinal:r}=t,{month:n,day:i}=UE(e,r);return{year:e,month:n,day:i,...bu(t)}}function mR(t){let e=xu(t.weekYear),r=Jt(t.weekNumber,1,Ou(t.weekYear)),n=Jt(t.weekday,1,7);return e?r?n?!1:lt("weekday",t.weekday):lt("week",t.week):lt("weekYear",t.weekYear)}function hR(t){let e=xu(t.year),r=Jt(t.ordinal,1,co(t.year));return e?r?!1:lt("ordinal",t.ordinal):lt("year",t.year)}function LE(t){let e=xu(t.year),r=Jt(t.month,1,12),n=Jt(t.day,1,Su(t.year,t.month));return e?r?n?!1:lt("day",t.day):lt("month",t.month):lt("year",t.year)}function ME(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=Jt(e,0,23)||e===24&&r===0&&n===0&&i===0,o=Jt(r,0,59),a=Jt(n,0,59),u=Jt(i,0,999);return s?o?a?u?!1:lt("millisecond",i):lt("second",n):lt("minute",r):lt("hour",e)}var yd="Invalid DateTime",Uy=864e13;function hu(t){return new ze("unsupported zone",`the zone "${t.name}" is not supported`)}function Ed(t){return t.weekData===null&&(t.weekData=Cd(t.c)),t.weekData}function so(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ee({...r,...e,old:r})}function kE(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function Ly(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 Eu(t,e,r){return kE(Ud(t),e,r)}function My(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,Su(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Se.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=Ud(s),[u,c]=kE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function oo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ee.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ee.invalid(new ze("unparsable",`the input "${i}" can't be parsed as ${n}`))}function gu(t,e,r=!0){return t.isValid?He.create(ye.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function _d(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Ae(t.c.year,r?6:4),e?(n+="-",n+=Ae(t.c.month),n+="-",n+=Ae(t.c.day)):(n+=Ae(t.c.month),n+=Ae(t.c.day)),n}function ky(t,e,r,n,i,s){let o=Ae(t.c.hour);return e?(o+=":",o+=Ae(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Ae(t.c.minute),(t.c.second!==0||!r)&&(o+=Ae(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Ae(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Ae(Math.trunc(-t.o/60)),o+=":",o+=Ae(Math.trunc(-t.o%60))):(o+="+",o+=Ae(Math.trunc(t.o/60)),o+=":",o+=Ae(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var FE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},gR={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},yR={ordinal:1,hour:0,minute:0,second:0,millisecond:0},BE=["year","month","day","hour","minute","second","millisecond"],ER=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_R=["year","ordinal","hour","minute","second","millisecond"];function Fy(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 _u(t);return e}function By(t,e){let r=Ir(e.zone,ge.defaultZone),n=ye.fromObject(e),i=ge.now(),s,o;if(ne(t.year))s=i;else{for(let c of BE)ne(t[c])&&(t[c]=FE[c]);let a=LE(t)||ME(t);if(a)return Ee.invalid(a);let u=r.offset(i);[s,o]=Eu(t,u,r)}return new Ee({ts:s,zone:r,loc:n,o})}function $y(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Pd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function Vy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var Ee=class t{constructor(e){let r=e.zone||ge.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new ze("invalid input"):null)||(r.isValid?null:hu(r));this.ts=ne(e.ts)?ge.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=Ly(this.ts,a),n=Number.isNaN(i.year)?new ze("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||ye.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=Vy(arguments),[n,i,s,o,a,u,c]=r;return By({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Vy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=Ze.utcInstance,By({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Wb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Ir(r.zone,ge.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:ye.fromObject(r)}):t.invalid(hu(i))}static fromMillis(e,r={}){if(Un(e))return e<-Uy||e>Uy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ir(r.zone,ge.defaultZone),loc:ye.fromObject(r)});throw new Ge(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Un(e))return new t({ts:e*1e3,zone:Ir(r.zone,ge.defaultZone),loc:ye.fromObject(r)});throw new Ge("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ir(r.zone,ge.defaultZone);if(!n.isValid)return t.invalid(hu(n));let i=ge.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Iu(e,Fy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,p=ye.fromObject(r);if((l||a)&&d)throw new Nn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Nn("Can't mix ordinal dates with month/day");let f=d||o.weekday&&!l,m,g,_=Ly(i,s);f?(m=ER,g=gR,_=Cd(_)):a?(m=_R,g=yR,_=gd(_)):(m=BE,g=FE);let y=!1;for(let w of m){let F=o[w];ne(F)?y?o[w]=g[w]:o[w]=_[w]:y=!0}let O=f?mR(o):a?hR(o):LE(o),S=O||ME(o);if(S)return t.invalid(S);let L=f?Ny(o):a?Py(o):o,[E,A]=Eu(L,s,n),B=new t({ts:E,zone:n,o:A,loc:p});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]=PD(e);return oo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=UD(e);return oo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=LD(e);return oo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Ge("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=ye.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=pR(o,e,r);return l?t.invalid(l):oo(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]=GD(e);return oo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ge("need to specify a reason the DateTime is invalid");let n=e instanceof ze?e:new ze(e,r);if(ge.throwOnInvalid)throw new Td(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=RE(e,ye.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return bE(He.parseFormat(e),ye.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?Ed(this).weekYear:NaN}get weekNumber(){return this.isValid?Ed(this).weekNumber:NaN}get weekday(){return this.isValid?Ed(this).weekday:NaN}get ordinal(){return this.isValid?gd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Pn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Pn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Pn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Pn.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 po(this.year)}get daysInMonth(){return Su(this.year,this.month)}get daysInYear(){return this.isValid?co(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ou(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=He.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(Ze.instance(e),r)}toLocal(){return this.setZone(ge.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Ir(e,ge.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=Eu(o,s,e)}return so(this,{ts:i,zone:e})}else return t.invalid(hu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return so(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Iu(e,Fy),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 Nn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Nn("Can't mix ordinal dates with month/day");let c;n?c=Ny({...Cd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Su(c.year,c.month),c.day))):c=Py({...gd(this.c),...r});let[l,d]=Eu(c,this.o,this.zone);return so(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=Se.fromDurationLike(e);return so(this,My(this,r))}minus(e){if(!this.isValid)return this;let r=Se.fromDurationLike(e).negate();return so(this,My(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=Se.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?He.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):yd}toLocaleString(e=Tu,r={}){return this.isValid?He.create(this.loc.clone(r),e).formatDateTime(this):yd}toLocaleParts(e={}){return this.isValid?He.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=_d(this,o);return a+="T",a+=ky(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?_d(this,e==="extended"):null}toISOWeekDate(){return gu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+ky(this,o==="extended",r,e,n,s):null}toRFC2822(){return gu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return gu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?_d(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")),gu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():yd}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 Se.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Qb(r).map(Se.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=ZD(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?Ln.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),$y(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?$y(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Ge("min requires all arguments be DateTimes");return xy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ge("max requires all arguments be DateTimes");return xy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=ye.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return DE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Tu}static get DATE_MED(){return Gy}static get DATE_MED_WITH_WEEKDAY(){return Db}static get DATE_FULL(){return qy}static get DATE_HUGE(){return Wy}static get TIME_SIMPLE(){return Qy}static get TIME_WITH_SECONDS(){return jy}static get TIME_WITH_SHORT_OFFSET(){return Ky}static get TIME_WITH_LONG_OFFSET(){return Yy}static get TIME_24_SIMPLE(){return Hy}static get TIME_24_WITH_SECONDS(){return zy}static get TIME_24_WITH_SHORT_OFFSET(){return Jy}static get TIME_24_WITH_LONG_OFFSET(){return Zy}static get DATETIME_SHORT(){return Xy}static get DATETIME_SHORT_WITH_SECONDS(){return eE}static get DATETIME_MED(){return tE}static get DATETIME_MED_WITH_SECONDS(){return rE}static get DATETIME_MED_WITH_WEEKDAY(){return Rb}static get DATETIME_FULL(){return nE}static get DATETIME_FULL_WITH_SECONDS(){return iE}static get DATETIME_HUGE(){return sE}static get DATETIME_HUGE_WITH_SECONDS(){return oE}};function ao(t){if(Ee.isDateTime(t))return t;if(t&&t.valueOf&&Un(t.valueOf()))return Ee.fromJSDate(t);if(t&&typeof t=="object")return Ee.fromObject(t);throw new Ge(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var TR="3.2.1";Xe.DateTime=Ee;Xe.Duration=Se;Xe.FixedOffsetZone=Ze;Xe.IANAZone=Xt;Xe.Info=Pn;Xe.Interval=Ln;Xe.InvalidZone=Au;Xe.Settings=ge;Xe.SystemZone=fo;Xe.VERSION=TR;Xe.Zone=xr});var GE=K((cq,VE)=>{"use strict";var Mn=$E();J.prototype.addYear=function(){this._date=this._date.plus({years:1})};J.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};J.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};J.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};J.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};J.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};J.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};J.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};J.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};J.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};J.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};J.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};J.prototype.getDate=function(){return this._date.day};J.prototype.getFullYear=function(){return this._date.year};J.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};J.prototype.getMonth=function(){return this._date.month-1};J.prototype.getHours=function(){return this._date.hour};J.prototype.getMinutes=function(){return this._date.minute};J.prototype.getSeconds=function(){return this._date.second};J.prototype.getMilliseconds=function(){return this._date.millisecond};J.prototype.getTime=function(){return this._date.valueOf()};J.prototype.getUTCDate=function(){return this._getUTC().day};J.prototype.getUTCFullYear=function(){return this._getUTC().year};J.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};J.prototype.getUTCMonth=function(){return this._getUTC().month-1};J.prototype.getUTCHours=function(){return this._getUTC().hour};J.prototype.getUTCMinutes=function(){return this._getUTC().minute};J.prototype.getUTCSeconds=function(){return this._getUTC().second};J.prototype.toISOString=function(){return this._date.toUTC().toISO()};J.prototype.toJSON=function(){return this._date.toJSON()};J.prototype.setDate=function(t){this._date=this._date.set({day:t})};J.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};J.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};J.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};J.prototype.setHours=function(t){this._date=this._date.set({hour:t})};J.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};J.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};J.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};J.prototype._getUTC=function(){return this._date.toUTC()};J.prototype.toString=function(){return this.toDate().toString()};J.prototype.toDate=function(){return this._date.toJSDate()};J.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};J.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function J(t,e){var r={zone:e};if(t?t instanceof J?this._date=t._date:t instanceof Date?this._date=Mn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Mn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Mn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Mn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Mn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Mn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Mn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}VE.exports=J});var QE=K((lq,WE)=>{"use strict";function kn(t){return{start:t,count:1}}function qE(t,e){t.end=e,t.step=e-t.start,t.count=2}function Bd(t,e,r){e&&(e.count===2?(t.push(kn(e.start)),t.push(kn(e.end))):t.push(e)),r&&t.push(r)}function AR(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Bd(e,r,kn(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(kn(r.start)),r=kn(r.end),qE(r,i)):(Bd(e,r),r=kn(i)):r=kn(i)}return Bd(e,r),e}WE.exports=AR});var KE=K((dq,jE)=>{"use strict";var SR=QE();function OR(t,e,r){var n=SR(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(p,f){var m=c.start+f;return(m-c.start)%c.step===0?m:null}).filter(function(p){return p!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}jE.exports=OR});var zE=K((fq,HE)=>{"use strict";var Fn=GE(),IR=KE(),YE=1e4;function P(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Fn(e.currentDate,this._tz),this._startDate=e.startDate?new Fn(e.startDate,this._tz):null,this._endDate=e.endDate?new Fn(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(m){if(m instanceof Array)for(var g=0,_=m.length;g<_;g++){var y=m[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,m)){c.push(m);return}var O=+m;if(Number.isNaN(O)||O<n.min||O>n.max)throw new Error("Constraint error, got value "+m+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(O=O%7),c.push(O)}}var d=u.split(",");if(!d.every(function(m){return m.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var p=0,f=d.length;p<f;p++)l(o(d[p]));else l(o(u));return c.sort(P._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var p=+d[0],f=+d[1];if(Number.isNaN(p)||Number.isNaN(f)||p<n.min||f>n.max)throw new Error("Constraint error, got range "+p+"-"+f+" expected range "+n.min+"-"+n.max);if(p>f)throw new Error("Invalid range: "+u);var m=+c;if(Number.isNaN(m)||m<=0)throw new Error("Constraint error, cannot repeat at every "+m+" time.");e==="dayOfWeek"&&f%7===0&&l.push(0);for(var g=p,_=f;g<=_;g++){var y=l.indexOf(g)!==-1;!y&&m>0&&m%c===0?(m=1,l.push(g)):m++}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 Fn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(O){if(!i([O]))return!1;var S=Number.parseInt(O[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+O);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<YE;){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 p=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||o.isLastDayOfMonth());var f=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(f=f||d(this.fields.dayOfWeek));var m=this.fields.dayOfMonth.length>=P.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===P.constraints[5].max-P.constraints[5].min+1,_=o.getHours();if(!p&&(!f||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!m&&g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(m&&!g&&!f){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(_,this.fields.hour)){if(this._dstEnd===_&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==_){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(_-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>=YE)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Fn(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 Fn(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(IR(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 Fn(void 0,n._tz)),P.predefined[s]&&(s=P.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=P.map.length-u.length,l=0,d=P.map.length;l<d;++l){var p=P.map[l],f=u[u.length>d?l:l-c];if(l<c||!f)a.push(P._parseField(p,P.parseDefaults[l],P.constraints[l]));else{var m=p==="dayOfWeek"?O(f):f;a.push(P._parseField(p,m,P.constraints[l]))}}for(var g={},l=0,d=P.map.length;l<d;l++){var _=P.map[l];g[_]=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(p,f,m){if(!f)throw new Error("Validation error, Field "+p+" is missing");if(f.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,_=f.length;g<_;g++){var y=f[g];if(!P._isValidConstraintChar(m,y)&&(typeof y!="number"||Number.isNaN(y)||y<m.min||y>m.max))throw new Error("Constraint error, got value "+y+" expected range "+m.min+"-"+m.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(p,f,m){return!f||p!==m[f-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=P._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new P(i,r||{})};HE.exports=P});var ZE=K((pq,JE)=>{"use strict";var Du=zE();function wr(){}wr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Du.parse(e)};if(r.length>6)return{interval:Du.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};wr.parseExpression=function(e,r){return Du.parse(e,r)};wr.fieldsToExpression=function(e,r){return Du.fieldsToExpression(e,r)};wr.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=wr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};wr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,wr.parseString(i.toString()))})};JE.exports=wr});var ok={};v(ok,{APP_DEV:()=>Lu,APP_DEV_PREFIX:()=>ft,APP_PREFIX:()=>dt,AutomationViewMode:()=>Uu,BUDIBASE_DATASOURCE_TYPE:()=>of,BadRequestError:()=>mc,BudibaseError:()=>as,Config:()=>ff,Cookie:()=>Fi,DEFAULT_BB_DATASOURCE_ID:()=>Ti,DEFAULT_EMPLOYEE_TABLE_ID:()=>lf,DEFAULT_EXPENSES_TABLE_ID:()=>cf,DEFAULT_INVENTORY_TABLE_ID:()=>uf,DEFAULT_JOBS_TABLE_ID:()=>af,DEFAULT_TENANT_ID:()=>le,DeprecatedViews:()=>ki,DocumentType:()=>he,Duration:()=>we,DurationType:()=>Pp,EmailUnavailableError:()=>ar,ErrorCode:()=>yc,FeatureDisabledError:()=>gc,GlobalRole:()=>df,HTTPError:()=>it,Header:()=>Ke,InternalTable:()=>gr,InvalidAPIKeyError:()=>us,MAX_VALID_DATE:()=>ku,MIN_VALID_DATE:()=>c_,NotFoundError:()=>pc,RedisClient:()=>ke,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>er,SQS_DATASOURCE_INTERNAL:()=>sf,StaticDatabases:()=>pe,UNICODE_MAX:()=>Le,UsageLimitError:()=>hc,UserStatus:()=>Mu,ViewName:()=>vr,accounts:()=>ti,auth:()=>Jm,blacklist:()=>th,cache:()=>Ta,configs:()=>zr,constants:()=>pf,context:()=>me,db:()=>Br,docIds:()=>rp,docUpdates:()=>nh,encryption:()=>Ym,env:()=>h,errors:()=>_c,events:()=>fs,features:()=>Bm,getPublicError:()=>Ec,init:()=>sk,installation:()=>Dc,locks:()=>ei,logging:()=>ec,middleware:()=>zm,migrations:()=>Lm,objectStore:()=>Uf,permissions:()=>Mm,platform:()=>is,plugins:()=>Xm,queue:()=>tm,redis:()=>eh,roles:()=>Hp,security:()=>Em,sessions:()=>Lc,setEnv:()=>Ao,sql:()=>fh,tenancy:()=>ik,timers:()=>No,userUtils:()=>zp,users:()=>ps,utils:()=>ts,withEnv:()=>h_});module.exports=pO(ok);var zr={};v(zr,{analyticsEnabled:()=>wc,generateConfigID:()=>vm,getAIConfig:()=>D0,getConfig:()=>Pt,getDefaultGoogleConfig:()=>Dm,getGoogleConfig:()=>$c,getGoogleDatasourceConfig:()=>Nm,getOIDCConfig:()=>x0,getOIDCConfigById:()=>Pm,getOIDCLogosDoc:()=>O0,getPlatformUrl:()=>xa,getSCIMConfig:()=>b0,getSMTPConfig:()=>w0,getSMTPConfigDoc:()=>pS,getSettingsConfig:()=>Cm,getSettingsConfigDoc:()=>vc,save:()=>A0});var mO=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],mh=[...mO],hh={"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 cl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(cl||{}),ll=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(ll||{}),Ca=(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))(Ca||{});var dl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(dl||{});var mr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(mr||{}),qt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(qt||{}),nn=(e=>(e.RANGE="range",e))(nn||{}),li=(r=>(r.AND="$and",r.OR="$or",r))(li||{});function Na(t){return Object.values(li).includes(t)}function gh(t){return Object.values(mr).includes(t)}function yh(t){return Object.values(qt).includes(t)}function fl(t){return Object.values(nn).includes(t)}var di=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(di||{});var Eh=t=>typeof t=="object"&&t._id&&t._rev;var _s=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(_s||{});var _h={USE_ZOD_VALIDATOR:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var uF={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Ts=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ts||{});var Pa=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(Pa||{});var Ua=t=>t.hosting==="cloud";var La=t=>t.authType==="sso";var pl=(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))(pl||{}),ml=(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))(ml||{}),hl=(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))(hl||{});var Th=(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))(Th||{}),Ah=[...Object.values(Th),...Object.values(hl)];var gl="bb_internal";var Sh=["attachment_single","attachment","bb_reference","json","array"];var C="_",Le="\uFFF0",hr=t=>`${t}${C}`,he=($=>($.USER="us",$.GROUP="gr",$.WORKSPACE="workspace",$.CONFIG="config",$.TEMPLATE="template",$.APP="app",$.DEV="dev",$.APP_DEV="app_dev",$.APP_METADATA="app_metadata",$.ROLE="role",$.MIGRATIONS="migrations",$.DEV_INFO="devinfo",$.AUTOMATION_LOG="log_au",$.ACCOUNT_METADATA="acc_metadata",$.PLUGIN="plg",$.DATASOURCE="datasource",$.DATASOURCE_PLUS="datasource_plus",$.APP_BACKUP="backup",$.TABLE="ta",$.ROW="ro",$.AUTOMATION="au",$.LINK="li",$.WEBHOOK="wh",$.INSTANCE="inst",$.LAYOUT="layout",$.SCREEN="screen",$.QUERY="query",$.DEPLOYMENTS="deployments",$.METADATA="metadata",$.MEM_VIEW="view",$.USER_FLAG="flag",$.AUTOMATION_METADATA="meta_au",$.AUDIT_LOG="al",$.APP_MIGRATION_METADATA="_design/migrations",$.SCIM_LOG="scimlog",$.ROW_ACTIONS="ra",$))(he||{}),AB=Object.values(he).sort((t,e)=>e.length-t.length);var gr=(e=>(e.USER_METADATA="ta_users",e))(gr||{}),yl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(yl||{}),SB=Object.values(yl).sort((t,e)=>e.length-t.length);function Ma(t){return!!t.providerType}var El=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(El||{});var t$=Object.values(El);var o$=["rows","queries","automations"],a$=["queries","automations"];var As=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(As||{}),ka=(r=>(r.STRING="string",r.NUMBER="number",r))(ka||{});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 Tl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Tl||(Tl={}));var M=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),yr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},I=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),yO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Qe=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()}};Qe.create=t=>new Qe(t);var mi=(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}},xh=mi;function EO(t){xh=t}function Fa(){return xh}var Ba=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 N(t,e){let r=Fa(),n=Ba({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===mi?void 0:mi].filter(i=>!!i)});t.common.issues.push(n)}var Pe=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"}),pi=t=>({status:"dirty",value:t}),Me=t=>({status:"valid",value:t}),Al=t=>t.status==="aborted",Sl=t=>t.status==="dirty",Is=t=>t.status==="valid",xs=t=>typeof Promise<"u"&&t instanceof Promise;function $a(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 wh(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 V;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(V||(V={}));var Ss,Os,at=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}},Oh=(t,e)=>{if(Is(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 Qe(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 yr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:yr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Pe,ctx:{common:e.parent.common,data:e.data,parsedType:yr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(xs(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:yr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Oh(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:yr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(xs(i)?i:Promise.resolve(i));return Oh(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 ot.create(this,this._def)}nullable(){return Lt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return jt.create(this,this._def)}promise(){return Tr.create(this,this._def)}or(e){return fn.create([this,e],this._def)}and(e){return pn.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 En({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new ws({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new _n({...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 bs.create(this,e)}readonly(){return Tn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},TO=/^c[^\s-]{8,}$/i,AO=/^[0-9a-z]+$/,SO=/^[0-9A-HJKMNP-TV-Z]{26}$/,OO=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,IO=/^[a-z0-9_-]{21}$/i,xO=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,wO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,bO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",_l,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])$/,RO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,vO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,bh="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",CO=new RegExp(`^${bh}$`);function Dh(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function NO(t){return new RegExp(`^${Dh(t)}$`)}function Rh(t){let e=`${bh}T${Dh(t)}`,r=[];return r.push(t.local?"Z?":"Z"),t.offset&&r.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${r.join("|")})`,new RegExp(`^${e}$`)}function PO(t,e){return!!((e==="v4"||!e)&&DO.test(t)||(e==="v6"||!e)&&RO.test(t))}var Er=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 Pe,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")wO.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")_l||(_l=new RegExp(bO,"u")),_l.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")OO.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")IO.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")TO.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")AO.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")SO.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"?Rh(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"?CO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?NO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{code:I.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?xO.test(e.data)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"duration",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?PO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),N(i,{validation:"ip",code:I.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?vO.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,...V.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...V.errToObj(e)})}url(e){return this._addCheck({kind:"url",...V.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...V.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...V.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...V.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...V.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...V.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...V.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...V.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...V.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,...V.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,...V.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...V.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...V.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...V.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...V.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...V.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...V.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...V.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...V.errToObj(r)})}nonempty(e){return this.min(1,V.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}};Er.create=t=>{var e;return new Er({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function UO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var on=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 Pe;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"?UO(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,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:V.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:V.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:V.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:V.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:V.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)}};on.create=t=>new on({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var an=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 Pe;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,V.toString(r))}gt(e,r){return this.setLimit("min",e,!1,V.toString(r))}lte(e,r){return this.setLimit("max",e,!0,V.toString(r))}lt(e,r){return this.setLimit("max",e,!1,V.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:V.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:V.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:V.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:V.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:V.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:V.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}};an.create=t=>{var e;return new an({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var un=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 Me(e.data)}};un.create=t=>new un({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var cn=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 Pe,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:V.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:V.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}};cn.create=t=>new cn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var hi=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 Me(e.data)}};hi.create=t=>new hi({typeName:Y.ZodSymbol,...Z(t)});var ln=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 Me(e.data)}};ln.create=t=>new ln({typeName:Y.ZodUndefined,...Z(t)});var dn=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 Me(e.data)}};dn.create=t=>new dn({typeName:Y.ZodNull,...Z(t)});var _r=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Me(e.data)}};_r.create=t=>new _r({typeName:Y.ZodAny,...Z(t)});var Qt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Me(e.data)}};Qt.create=t=>new Qt({typeName:Y.ZodUnknown,...Z(t)});var yt=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return N(r,{code:I.invalid_type,expected:M.never,received:r.parsedType}),z}};yt.create=t=>new yt({typeName:Y.ZodNever,...Z(t)});var gi=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 Me(e.data)}};gi.create=t=>new gi({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 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 at(r,o,r.path,a)))).then(o=>Pe.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new at(r,o,r.path,a)));return Pe.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:V.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:V.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:V.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 fi(t){if(t instanceof $e){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=ot.create(fi(n))}return new $e({...t._def,shape:()=>e})}else return t instanceof jt?new jt({...t._def,type:fi(t.element)}):t instanceof ot?ot.create(fi(t.unwrap())):t instanceof Lt?Lt.create(fi(t.unwrap())):t instanceof Ut?Ut.create(t.items.map(e=>fi(e))):t}var $e=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 yt&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new at(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof yt){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(N(i,{code:I.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new at(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,p=await l.value;c.push({key:d,value:p,alwaysSet:l.alwaysSet})}return c}).then(c=>Pe.mergeObjectSync(n,c)):Pe.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return V.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=V.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 fi(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 ot;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return vh(te.objectKeys(this.shape))}};$e.create=(t,e)=>new $e({shape:()=>t,unknownKeys:"strip",catchall:yt.create(),typeName:Y.ZodObject,...Z(e)});$e.strictCreate=(t,e)=>new $e({shape:()=>t,unknownKeys:"strict",catchall:yt.create(),typeName:Y.ZodObject,...Z(e)});$e.lazycreate=(t,e)=>new $e({shape:t,unknownKeys:"strip",catchall:yt.create(),typeName:Y.ZodObject,...Z(e)});var fn=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 Qe(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 Qe(u));return N(r,{code:I.invalid_union,unionErrors:a}),z}}get options(){return this._def.options}};fn.create=(t,e)=>new fn({options:t,typeName:Y.ZodUnion,...Z(e)});var Wt=t=>t instanceof mn?Wt(t.schema):t instanceof je?Wt(t.innerType()):t instanceof hn?[t.value]:t instanceof gn?t.options:t instanceof yn?te.objectValues(t.enum):t instanceof En?Wt(t._def.innerType):t instanceof ln?[void 0]:t instanceof dn?[null]:t instanceof ot?[void 0,...Wt(t.unwrap())]:t instanceof Lt?[null,...Wt(t.unwrap())]:t instanceof ws||t instanceof Tn?Wt(t.unwrap()):t instanceof _n?Wt(t._def.innerType):[],Va=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=Wt(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 Ol(t,e){let r=yr(t),n=yr(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=Ol(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=Ol(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 pn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Al(s)||Al(o))return z;let a=Ol(s.value,o.value);return a.valid?((Sl(s)||Sl(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}))}};pn.create=(t,e,r)=>new pn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Ut=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 at(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Pe.mergeArray(r,o)):Pe.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Ut.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ut({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Ga=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 at(n,a,n.path,a)),value:o._parse(new at(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Pe.mergeObjectAsync(r,i):Pe.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:Er.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},yi=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 at(n,a,n.path,[c,"key"])),value:s._parse(new at(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}}}};yi.create=(t,e,r)=>new yi({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var Ei=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 at(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:V.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:V.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Ei.create=(t,e)=>new Ei({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var qa=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 Ba({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Fa(),mi].filter(c=>!!c),issueData:{code:I.invalid_arguments,argumentsError:u}})}function i(a,u){return Ba({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Fa(),mi].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 Tr){let a=this;return Me(async function(...u){let c=new Qe([]),l=await a._def.args.parseAsync(u,s).catch(f=>{throw c.addIssue(n(u,f)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(f=>{throw c.addIssue(i(d,f)),c})})}else{let a=this;return Me(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new Qe([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Qe([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Ut.create(e).rest(Qt.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||Ut.create([]).rest(Qt.create()),returns:r||Qt.create(),typeName:Y.ZodFunction,...Z(n)})}},mn=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})}};mn.create=(t,e)=>new mn({getter:t,typeName:Y.ZodLazy,...Z(e)});var hn=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}};hn.create=(t,e)=>new hn({value:t,typeName:Y.ZodLiteral,...Z(e)});function vh(t,e){return new gn({values:t,typeName:Y.ZodEnum,...Z(e)})}var gn=class t extends X{constructor(){super(...arguments),Ss.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($a(this,Ss,"f")||wh(this,Ss,new Set(this._def.values),"f"),!$a(this,Ss,"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 Me(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})}};Ss=new WeakMap;gn.create=vh;var yn=class extends X{constructor(){super(...arguments),Os.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($a(this,Os,"f")||wh(this,Os,new Set(te.getValidEnumValues(this._def.values)),"f"),!$a(this,Os,"f").has(e.data)){let i=te.objectValues(r);return N(n,{received:n.data,code:I.invalid_enum_value,options:i}),z}return Me(e.data)}get enum(){return this._def.values}};Os=new WeakMap;yn.create=(t,e)=>new yn({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var Tr=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 Me(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Tr.create=(t,e)=>new Tr({type:t,typeName:Y.ZodPromise,...Z(e)});var je=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{N(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return z;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?z:u.status==="dirty"||r.value==="dirty"?pi(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"?pi(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(!Is(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=>Is(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 ot=class extends X{_parse(e){return this._getType(e)===M.undefined?Me(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};ot.create=(t,e)=>new ot({innerType:t,typeName:Y.ZodOptional,...Z(e)});var Lt=class extends X{_parse(e){return this._getType(e)===M.null?Me(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Lt.create=(t,e)=>new Lt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var En=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}};En.create=(t,e)=>new En({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var _n=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 xs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Qe(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Qe(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};_n.create=(t,e)=>new _n({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var _i=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}}};_i.create=t=>new _i({typeName:Y.ZodNaN,...Z(t)});var LO=Symbol("zod_brand"),ws=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}},bs=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(),pi(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})}},Tn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Is(i)&&(i.value=Object.freeze(i.value)),i);return xs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Tn.create=(t,e)=>new Tn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Ch(t,e={},r){return t?_r.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})}}):_r.create()}var MO={object:$e.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 kO=(t,e={message:`Input not instance of ${t.name}`})=>Ch(r=>r instanceof t,e),Nh=Er.create,Ph=on.create,FO=_i.create,BO=an.create,Uh=un.create,$O=cn.create,VO=hi.create,GO=ln.create,qO=dn.create,WO=_r.create,QO=Qt.create,jO=yt.create,KO=gi.create,YO=jt.create,HO=$e.create,zO=$e.strictCreate,JO=fn.create,ZO=Va.create,XO=pn.create,eI=Ut.create,tI=Ga.create,rI=yi.create,nI=Ei.create,iI=qa.create,sI=mn.create,oI=hn.create,aI=gn.create,uI=yn.create,cI=Tr.create,Ih=je.create,lI=ot.create,dI=Lt.create,fI=je.createWithPreprocess,pI=bs.create,mI=()=>Nh().optional(),hI=()=>Ph().optional(),gI=()=>Uh().optional(),yI={string:t=>Er.create({...t,coerce:!0}),number:t=>on.create({...t,coerce:!0}),boolean:t=>un.create({...t,coerce:!0}),bigint:t=>an.create({...t,coerce:!0}),date:t=>cn.create({...t,coerce:!0})},EI=z,ee=Object.freeze({__proto__:null,defaultErrorMap:mi,setErrorMap:EO,getErrorMap:Fa,makeIssue:Ba,EMPTY_PATH:_O,addIssueToContext:N,ParseStatus:Pe,INVALID:z,DIRTY:pi,OK:Me,isAborted:Al,isDirty:Sl,isValid:Is,isAsync:xs,get util(){return te},get objectUtil(){return Tl},ZodParsedType:M,getParsedType:yr,ZodType:X,datetimeRegex:Rh,ZodString:Er,ZodNumber:on,ZodBigInt:an,ZodBoolean:un,ZodDate:cn,ZodSymbol:hi,ZodUndefined:ln,ZodNull:dn,ZodAny:_r,ZodUnknown:Qt,ZodNever:yt,ZodVoid:gi,ZodArray:jt,ZodObject:$e,ZodUnion:fn,ZodDiscriminatedUnion:Va,ZodIntersection:pn,ZodTuple:Ut,ZodRecord:Ga,ZodMap:yi,ZodSet:Ei,ZodFunction:qa,ZodLazy:mn,ZodLiteral:hn,ZodEnum:gn,ZodNativeEnum:yn,ZodPromise:Tr,ZodEffects:je,ZodTransformer:je,ZodOptional:ot,ZodNullable:Lt,ZodDefault:En,ZodCatch:_n,ZodNaN:_i,BRAND:LO,ZodBranded:ws,ZodPipeline:bs,ZodReadonly:Tn,custom:Ch,Schema:X,ZodSchema:X,late:MO,get ZodFirstPartyTypeKind(){return Y},coerce:yI,any:WO,array:YO,bigint:BO,boolean:Uh,date:$O,discriminatedUnion:ZO,effect:Ih,enum:aI,function:iI,instanceof:kO,intersection:XO,lazy:sI,literal:oI,map:rI,nan:FO,nativeEnum:uI,never:jO,null:qO,nullable:dI,number:Ph,object:HO,oboolean:gI,onumber:hI,optional:lI,ostring:mI,pipeline:pI,preprocess:fI,promise:cI,record:tI,set:nI,strictObject:zO,string:Nh,symbol:VO,transformer:Ih,tuple:eI,undefined:GO,union:JO,unknown:QO,void:KO,NEVER:EI,ZodIssueCode:I,quotelessJson:yO,ZodError:Qe});var Ka=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Lh=ee.record(Ka,ee.string()),Wa=ee.record(Ka,ee.any()),Qa=ee.record(Ka,ee.union([ee.any().array(),ee.string()])),Mh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(kh))})),ja=ee.union([ee.string(),ee.number()]),kh={string:Lh.optional(),fuzzy:Lh.optional(),range:ee.record(Ka,ee.union([ee.object({high:ja,low:ja}),ee.object({high:ja}),ee.object({low:ja})])).optional(),equal:Wa.optional(),notEqual:Wa.optional(),empty:Wa.optional(),notEmpty:Wa.optional(),oneOf:Qa.optional(),contains:Qa.optional(),notContains:Qa.optional(),containsAny:Qa.optional(),$and:Mh.optional(),$or:Mh.optional()},X$=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(di).optional(),...kh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(As).optional(),sortType:ee.nativeEnum(ka).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var pf={};v(pf,{APP_DEV:()=>Lu,APP_DEV_PREFIX:()=>ft,APP_PREFIX:()=>dt,AutomationViewMode:()=>Uu,BUDIBASE_DATASOURCE_TYPE:()=>of,Config:()=>ff,Cookie:()=>Fi,DEFAULT_BB_DATASOURCE_ID:()=>Ti,DEFAULT_EMPLOYEE_TABLE_ID:()=>lf,DEFAULT_EXPENSES_TABLE_ID:()=>cf,DEFAULT_INVENTORY_TABLE_ID:()=>uf,DEFAULT_JOBS_TABLE_ID:()=>af,DEFAULT_TENANT_ID:()=>le,DeprecatedViews:()=>ki,DocumentType:()=>he,GlobalRole:()=>df,Header:()=>Ke,InternalTable:()=>gr,MAX_VALID_DATE:()=>ku,MIN_VALID_DATE:()=>c_,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>er,SQS_DATASOURCE_INTERNAL:()=>sf,StaticDatabases:()=>pe,UNICODE_MAX:()=>Le,UserStatus:()=>Mu,ViewName:()=>vr});var qG={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 Ke=(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))(Ke||{});var KG={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"]};var XG="darkest",e1="light",AI=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var Ye={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"}},Fh={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Ti="datasource_internal_bb_default";var Dr={};v(Dr,{ColumnSplitter:()=>Qd,NoEmptyFilterStrings:()=>s_,buildQuery:()=>jR,cleanupQuery:()=>Yd,fixupFilterArrays:()=>zd,getKeyNumbering:()=>Hd,getValidOperatorsForType:()=>qR,hasFilters:()=>jd,limit:()=>a_,recurseLogicalOperators:()=>Kd,removeKeyNumbering:()=>Ya,runQuery:()=>Ru,search:()=>KR,sort:()=>o_,splitFiltersArray:()=>Ha});var Mi=j(Bh());var Ai={};v(Ai,{filterValueToLabel:()=>bI,hasSchema:()=>DI,isSupportedUserSearch:()=>Vh,parallelForeach:()=>wI,processSearchFilters:()=>wl,trimOtherProps:()=>RI,unreachable:()=>xI});var $h=j(require("lodash")),II=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function xI(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function wI(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function bI(){return Object.keys(Ye).reduce((t,e)=>{let n=Ye[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 RI(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Vh(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}];for(let[r,n]of Object.entries(t)){if(typeof n!="object")return!1;if(Na(r)){for(let o of t[r].conditions)if(!Vh(o))return!1;return!0}let i=Object.keys(n||{});if(i.length===0)continue;if(!e.find(o=>o.op===r&&i.length===1&&i[0]===o.key))return!1}return!0}function wl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=Ha(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=$h.default.pick(i,II);return s.field=Ya(s.field),s})}]}}var br={};v(br,{cancelableTimeout:()=>Gh,cron:()=>$d,deepGet:()=>bl,getUserColor:()=>CI,getUserInitials:()=>vI,getUserLabel:()=>NI,isGoogleSheets:()=>UI,isSQL:()=>LI,retry:()=>MI,roles:()=>Wd,schema:()=>go,views:()=>qd,wait:()=>Dl,withTimeout:()=>PI});var bl=(t,e)=>{if(!t||!e)return null;if(Object.prototype.hasOwnProperty.call(t,e))return t[e];let r=e.split(".");for(let n=0;n<r.length;n++)t=t?.[r[n]];return t},vI=t=>{if(!t)return"?";let e="";return e+=t.firstName?t.firstName[0]:"",e+=t.lastName?t.lastName[0]:"",e!==""?e:t.email?.[0]||"U"},CI=t=>{let e=t?._id;if(!e)return"var(--spectrum-global-color-blue-400)";e=e.replace("ro_ta_users_","");let r=1;for(let n=0;n<e.length;n++)r+=e.charCodeAt(n),r=r%36;return`hsl(${r*10}, 50%, 40%)`},NI=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Gh(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function PI(t,e){let[r,n]=Gh(t),i=await Promise.race([e,r]);return n(),i}function UI(t){return t==="GOOGLE_SHEETS"}function LI(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Dl(t){return new Promise(e=>setTimeout(e,t))}async function MI(t,e){let{times:r=3}=e||{};if(r<1)throw new Error(`invalid retry count: ${r}`);let n;for(let i=0;i<r;i++){let s=1.5**i*1e3*(Math.random()+.5);await Dl(s);try{return await t()}catch(o){n=o}}throw n}var $d={};v($d,{getNextExecutionDates:()=>bR,validate:()=>DR});var e_=j(Mt()),t_=j(ZE()),XE="(Input cron: ",xR={"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 wR(t){let e=[];for(let r of t){r.includes(XE)&&(r=r.split(XE)[0].trim());for(let[n,i]of Object.entries(xR))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function bR(t,e=4){let r=t_.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function DR(t){let e=(0,e_.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:wR(e.getError())}}var go={};v(go,{decodeNonAscii:()=>Vd,encodeNonAscii:()=>CR,isDeprecatedSingleUserColumn:()=>RR,isNumeric:()=>NR,isRequired:()=>vR});function RR(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function vR(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function CR(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Vd(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function NR(t){return t.type==="number"||t.type==="bigint"}var qd={};v(qd,{basicFields:()=>kR,calculationFields:()=>MR,hasCalculationFields:()=>LR,isBasicViewField:()=>PR,isCalculationField:()=>yo,isCalculationView:()=>UR,isV2:()=>FR,isVisible:()=>r_});var Gd=require("lodash");function yo(t){return"calculationType"in t}function PR(t){return!yo(t)}function UR(t){return t.type==="calculation"}function LR(t){return Object.values(t.schema||{}).some(yo)}function MR(t){return(0,Gd.pickBy)(t.schema||{},yo)}function r_(t){return t.visible!==!1}function kR(t,e){let{visible:r=!0}=e||{};return(0,Gd.pickBy)(t.schema||{},n=>!yo(n)&&(!r||r_(n)))}function FR(t){return t.version===2}var Wd={};v(Wd,{checkForRoleInheritanceLoops:()=>$R});function BR(t){return`role${C}${t}`}function $R(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=BR(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 Bn=require("lodash");var VR=/{{([^{].*?)}}/g,i_=Object.values(li),GR=[...Object.values(mr),...Object.values(qt),...Object.values(nn)],qR=(t,e,r)=>{let n=Ye,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"||go.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},s_=[Ye.StartsWith.value,Ye.Like.value,Ye.Equals.value,Ye.NotEquals.value,Ye.Contains.value,Ye.NotContains.value,Ye.ContainsAny.value,Ye.In.value];function Kd(t,e){for(let r of i_)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Yd=t=>{for(let e of s_)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===""||WR(s))&&delete t[e][i]}return t=Kd(t,Yd),t};function WR(t){return Array.isArray(t)&&t.length===0}var Ya=t=>Hd(t).key,Hd=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}},Qd=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}=Hd(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=Vd(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function QR(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(VR)||[]).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(fl(r)){let c=Fh[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(gh(r)||yh(r)||fl(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 Ha(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 jR(t){if(!t)return{};if(Array.isArray(t)&&(t=wl(t),!t))return{};let e=n_(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}=Ha(n.filters||[]);s&&(r.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=n_(n.logicalOperator)),{[a]:{conditions:o.map(QR).filter(u=>u)}}})},r}function n_(t){return t==="all"?"$and":"$or"}function zd(t){if(!t)return t;for(let e of Object.values(qt)){let r=t[e];if(!(r==null||!(0,Bn.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 Kd(t,zd),t}function KR(t,e){let r=Ru(t,e.query);e.sort&&(r=o_(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=a_(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Ru(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Yd(e),e=zd(e),!jd(e)&&e.onEmptyFilter==="none")return[];let r=(E,A)=>B=>{for(let[w,F]of Object.entries(e[E]||{})){let ue=Na(E)?B:bl(B,Ya(w)),en=A(ue,F);if(e.allOr&&en)return!0;if(!e.allOr&&!en)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,Bn.isPlainObject)(A.low)&&(0,Bn.isEmpty)(A.low)&&(A.low=void 0),(0,Bn.isPlainObject)(A.high)&&(0,Bn.isEmpty)(A.high)&&(A.high=void 0),A.low==null&&A.high==null))return!1;let B=+E;if(!isNaN(B)){let F=+A.low,ue=+A.high;if(!isNaN(F)&&!isNaN(ue))return B>=F&&B<=ue;if(isNaN(F)){if(!isNaN(ue))return B<=ue}else return B>=F}let w=(0,Mi.default)(E);if(w.isValid()){let F=(0,Mi.default)(A.low||"0000-00-00T00:00:00.000Z"),ue=(0,Mi.default)(A.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&ue.isValid())return w.isAfter(F)&&w.isBefore(ue)||w.isSame(F)||w.isSame(ue);if(F.isValid())return w.isAfter(F)||w.isSame(F);if(ue.isValid())return w.isBefore(ue)||w.isSame(ue)}return A.low!=null&&A.high!=null?E>=A.low&&E<=A.high:A.low!=null?E>=A.low:A.high!=null?E<=A.high:!1}),o=(E,A)=>{if(Array.isArray(E)){for(let w of E)if(o(w,A))return!0;return!1}if(E&&typeof E=="object"&&typeof A=="string")return E._id===A;if(E===A)return!0;if(E==null&&A!=null||E!=null&&A==null)return!1;let B=(0,Mi.default)(E);if(B.isValid()){let w=(0,Mi.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,d=r("empty",l),p=r("notEmpty",a(l)),f=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)),m=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:m("every")(E,A)),_=r("notContains",(E,A)=>Array.isArray(A)&&A.length===0?!0:a(m("every"))(E,A)),y=r("containsAny",m("some")),O=r("$and",(E,A)=>{if(!A.length)return!1;for(let B of A)if(!Ru([E],B).length)return!1;return!0}),S=r("$or",(E,A)=>{if(!A.length)return!1;for(let B of A)if(Ru([E],{...B,allOr:!0}).length)return!0;return!1}),L=E=>{let A={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:p,oneOf:f,contains:g,containsAny:y,notContains:_,$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 o_(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 a_(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 i_)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of GR){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 et={};v(et,{applications:()=>Xd,automations:()=>ef,users:()=>nf});var Xd={};v(Xd,{getDevAppID:()=>YR,getProdAppID:()=>Zd});var Jd=hr("app"),Eo=hr("app_dev");function YR(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Eo))return t;let e=t.split(Jd);e.shift();let r=e.join(Jd);return`${Eo}${r}`}function Zd(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Eo))return t;let e=t.split(Eo);e.shift();let r=e.join(Eo);return`${Jd}${r}`}var ef={};v(ef,{isAppAction:()=>JR,isRowAction:()=>HR,isWebhookAction:()=>zR});function HR(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function zR(t){return t.definition.trigger?.stepId==="WEBHOOK"}function JR(t){return t.definition.trigger?.stepId==="APP"}var nf={};v(nf,{canCreateApps:()=>ZR,containsUserID:()=>iv,getGlobalUserID:()=>nv,hasAdminPermissions:()=>rf,hasAppBuilderPermissions:()=>Nu,hasAppCreatorPermissions:()=>u_,hasBuilderPermissions:()=>tv,hasCreatorPermissions:()=>Pu,isAdmin:()=>Cu,isAdminOrBuilder:()=>XR,isAdminOrGlobalBuilder:()=>ev,isBuilder:()=>tf,isCreator:()=>rv,isGlobalBuilder:()=>vu});var Rr=j(require("lodash/fp"));function tf(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Zd(e))):!1}function vu(t){return tf(t)&&!Nu(t)||Cu(t)}function ZR(t){return vu(t)||Pu(t)}function Cu(t){return t?rf(t):!1}function XR(t,e){return tf(t,e)||Cu(t)}function ev(t){return vu(t)||Cu(t)}function Nu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function u_(t){return t?Rr.flow(Rr.get("roles"),Rr.values,Rr.find(e=>["CREATOR","ADMIN"].includes(e)),e=>!!e)(t):!1}function tv(t){return t?t.builder?.global||Nu(t)||Pu(t):!1}function rf(t){return t?!!t.admin?.global:!1}function Pu(t){return t?!!t.builder?.creator:!1}function rv(t){return t?vu(t)||rf(t)||Pu(t)||Nu(t)||u_(t):!1}function nv(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function iv(t){return typeof t!="string"?!1:t.includes(`us${C}`)}var uW={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},cW={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},lW={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 Uu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Uu||{}),vr=(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))(vr||{}),ki={by_email2:["by_email"]},pe={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"}},dt=hr("app"),Lu=hr("app_dev"),ft=Lu,sf="internal",of="budibase",er="_design/sqlite",af="ta_bb_jobs",uf="ta_bb_inventory",cf="ta_bb_expenses",lf="ta_bb_employee";var Mu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Mu||{}),Fi=(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))(Fi||{}),df=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(df||{}),ff=(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))(ff||{}),c_=new Date(-2147483647e3),ku=new Date(2147483647e3),le="default";var Ta={};v(Ta,{CacheKey:()=>sr,TTL:()=>zn,app:()=>Zf,bustCache:()=>es,destroy:()=>zo,docWritethrough:()=>bm,generic:()=>Jo,get:()=>Jn,invite:()=>Bp,keys:()=>uc,passwordReset:()=>xm,store:()=>or,user:()=>Jr,withCache:()=>qr,writethrough:()=>Im});var Jo={};v(Jo,{CacheKey:()=>sr,TTL:()=>zn,bustCache:()=>es,destroy:()=>zo,get:()=>Jn,keys:()=>uc,store:()=>or,withCache:()=>qr});var me={};v(me,{DEFAULT_TENANT_ID:()=>le,baseGlobalDBName:()=>Yo,doInAppContext:()=>Tp,doInAppMigrationContext:()=>BC,doInAutomationContext:()=>kC,doInContext:()=>_p,doInEnvironmentContext:()=>VC,doInIPContext:()=>Sp,doInIdentityContext:()=>To,doInScimContext:()=>GC,doInTenant:()=>ve,ensureSnippetContext:()=>jT,getAppDB:()=>Ji,getAppId:()=>Re,getAuditLogDBName:()=>WT,getAuditLogsDB:()=>WC,getAutomationId:()=>Bf,getCurrentContext:()=>Zi,getDevAppDB:()=>jC,getEnvironmentVariables:()=>qC,getFeatureFlags:()=>Op,getGlobalDB:()=>se,getGlobalDBName:()=>Dt,getIP:()=>Ap,getIdentity:()=>tr,getPlatformURL:()=>Ep,getProdAppDB:()=>QC,getProdAppId:()=>$C,getScimDBName:()=>PC,getTableForView:()=>KC,getTenantIDFromAppID:()=>zi,getTenantId:()=>Q,identity:()=>_o,isMultiTenant:()=>Vr,isScim:()=>Rt,isTenancyEnabled:()=>LC,isTenantIdSet:()=>UC,setFeatureFlags:()=>Ip,setTableForView:()=>YC});var _o={};v(_o,{doInAccountContext:()=>sv,doInIdentityContext:()=>hf,doInUserContext:()=>gf,getAccountUserId:()=>l_,getIdentity:()=>mf});function mf(){return tr()}function hf(t,e){return To(t,e)}function gf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return hf(n,r)}function sv(t,e){let r=l_(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return hf(i,e)}function l_(t){let e;return Ua(t)?e=t.budibaseUserId:e=t.accountId,e}var $u=require("fs");var p_=require("lodash"),yf=require("crypto");function Ef(){return m_()}function m_(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Bu(){return process.env.NODE_ENV!=="production"}function ov(t){if(t)return parseInt(t)}var d_=!1;!d_&&Bu()&&!Ef()&&(require("dotenv").config(),d_=!0);var Bi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},f_=!!parseInt(process.env.SELF_HOSTED||"");function av(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function uv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function cv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,$u.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,$u.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Bu()&&!Ef())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 lv(){return It.SERVICE_TYPE==="worker"}function dv(){return It.SERVICE_TYPE==="apps"}function fv(){return It.BUDIBASE_ENVIRONMENT==="QA"}var It={isTest:Ef,isJest:m_,isDev:Bu,isWorker:lv,isApps:dv,isQA:fv,isProd:()=>!Bu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,yf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,yf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:av(),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:f_,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||Bi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Bi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Bi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Bi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Bi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Bi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:process.env.SERVICE||"budibase",LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:uv(),ENABLE_AUDIT_LOG_IP_ADDR:process.env.ENABLE_AUDIT_LOG_IP_ADDR,SQL_LOGGING_ENABLE:process.env.SQL_LOGGING_ENABLE,SQL_MAX_ROWS:process.env.SQL_MAX_ROWS,SQL_MAX_RELATED_ROWS:process.env.MAX_RELATED_ROWS,SMTP_FALLBACK_ENABLED:process.env.SMTP_FALLBACK_ENABLED,SMTP_USER:process.env.SMTP_USER,SMTP_PASSWORD:process.env.SMTP_PASSWORD,SMTP_HOST:process.env.SMTP_HOST,SMTP_PORT:parseInt(process.env.SMTP_PORT||""),SMTP_FROM_ADDRESS:process.env.SMTP_FROM_ADDRESS,DISABLE_JWT_WARNING:process.env.DISABLE_JWT_WARNING,BLACKLIST_IPS:process.env.BLACKLIST_IPS,SERVICE_TYPE:"unknown",PASSWORD_MIN_LENGTH:process.env.PASSWORD_MIN_LENGTH,PASSWORD_MAX_LENGTH:process.env.PASSWORD_MAX_LENGTH,ENABLE_SSO_MAINTENANCE_MODE:f_?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...cv(),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,It[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:ov(process.env.BSON_BUFFER_SIZE)};function Ao(t){let e=(0,p_.cloneDeep)(It),r;for(r in t)It._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))It._set(n,i)}}function h_(t,e){let r=Ao(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var g_=["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(It))e==="0"&&(It[t]=0),e==="false"&&(It[t]=0);var h=It;var y_=require("async_hooks"),be=class t{static{this.storage=new y_.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var _f="No app provided";function Cr(t){if(!t)throw _f;return t.startsWith(ft)}function pv(t){if(!t)throw _f;return t.startsWith(dt)&&!Cr(t)}function So(t){if(!t)throw _f;return Cr(t.appId)}function Vu(t){if(!t||t.startsWith(ft))return t;let e=t.split(dt);e.shift();let r=e.join(dt);return`${ft}${r}`}var mv=Vu;function tt(t){if(!t||!t.startsWith(ft))return t;let e=t.split(ft);e.shift();let r=e.join(ft);return`${dt}${r}`}function hv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var xt=t=>{let e=Tf(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:Tf(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Tf=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var GT=j(require("@budibase/nano"));var E_=j(require("node-fetch"));function Gu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function __(t,e="GET",r){let{url:n,cookie:i}=xt(),s=`${n}/${t}`;return await Oo({url:s,cookie:i,method:e,body:r})}async function Oo({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,E_.default)(Gu(encodeURI(t)),i)}async function qu(t,e="GET",r){let n=await __(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var $n=j(require("pouchdb"));var T_,A_=!1,Af=(t={})=>{let{url:e,cookie:r}=xt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),$n.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");$n.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");$n.default.plugin(i.plugin),$n.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");$n.default.plugin(i)}return $n.default.defaults(n)};function Wu(t){T_=Af(t),A_=!0}var yv=()=>{if(!A_)throw new Error("init has not been called")};function pt(t,e){yv();let r=new T_(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 Io(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var S_=require("uuid");function _e(){return(0,S_.v4)().replace(/-/g,"")}var Te=j(require("dd-trace")),$i=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Te.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 Te.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Te.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 Te.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 Te.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 Te.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 Te.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 Te.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return Te.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 Te.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 Te.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 Te.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 Te.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 Te.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Te.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Te.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Te.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Te.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 Te.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 Te.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var yp={};v(yp,{breakExternalTableId:()=>pp,breakRowIdField:()=>vC,buildExternalTableId:()=>IC,convertRowId:()=>RC,encodeTableId:()=>xC,encodeViewId:()=>wC,generateRowIdField:()=>bC,getNativeSql:()=>Hi,isExternalTable:()=>fp,isExternalTableID:()=>oc,isInternalTableID:()=>OC,isInvalidISODateString:()=>mp,isRowId:()=>DC,isValidFilter:()=>ac,isValidISODateString:()=>hp,isValidTime:()=>CC,sqlLog:()=>Ho,validateManyToMany:()=>gp});var Br={};v(Br,{APP_DEV:()=>Lu,APP_DEV_PREFIX:()=>ft,APP_PREFIX:()=>dt,AutomationViewMode:()=>Uu,BUDIBASE_DATASOURCE_TYPE:()=>of,DEFAULT_BB_DATASOURCE_ID:()=>Ti,DEFAULT_EMPLOYEE_TABLE_ID:()=>lf,DEFAULT_EXPENSES_TABLE_ID:()=>cf,DEFAULT_INVENTORY_TABLE_ID:()=>uf,DEFAULT_JOBS_TABLE_ID:()=>af,DatabaseImpl:()=>Yi,DatabaseWithConnection:()=>TC,DeprecatedViews:()=>ki,DocumentType:()=>he,InternalTable:()=>gr,QueryBuilder:()=>ir,Replication:()=>CT,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>er,SQS_DATASOURCE_INTERNAL:()=>sf,StaticDatabases:()=>pe,UNICODE_MAX:()=>Le,ViewName:()=>vr,baseGlobalDBName:()=>Yo,checkErrorCode:()=>LT,closePouchDB:()=>Io,createApiKeyView:()=>wT,createNewUserEmailView:()=>IT,createPlatformAccountEmailView:()=>DT,createPlatformUserView:()=>RT,createUserAppView:()=>xT,createView:()=>Ki,dbExists:()=>pC,directCouchAllDbs:()=>ip,directCouchCall:()=>__,directCouchFind:()=>lp,directCouchQuery:()=>qu,directCouchUrlCall:()=>Oo,doWithDB:()=>rt,extractAppUUID:()=>hv,fullSearch:()=>yC,generateAppID:()=>oT,generateAppUserID:()=>nc,generateDevInfoID:()=>pT,generateGlobalUserID:()=>Qi,generatePluginID:()=>mT,generateRoleID:()=>ep,generateRowID:()=>Xf,generateTableID:()=>aT,generateTemplateID:()=>fT,generateUserMetadataID:()=>lT,generateWorkspaceID:()=>uT,getAllApps:()=>Kn,getAllDbs:()=>OT,getAppsByIDs:()=>cC,getCouchInfo:()=>xt,getDB:()=>Ue,getDevAppID:()=>mv,getDevAppIDs:()=>dC,getDevelopmentAppID:()=>Vu,getDocParams:()=>ji,getGlobalDBName:()=>Dt,getGlobalIDFromUserMetadataID:()=>dT,getGlobalUserParams:()=>jn,getPluginParams:()=>ST,getPouch:()=>Af,getPouchDB:()=>pt,getProdAppID:()=>tt,getProdAppIDs:()=>lC,getQueryIndex:()=>hT,getRoleParams:()=>sc,getRowParams:()=>tp,getStartEndKeyURL:()=>Wo,getTemplateParams:()=>AT,getUrlInfo:()=>Tf,getUserMetadataParams:()=>TT,getUsersByAppParams:()=>ic,getWorkspaceParams:()=>_T,init:()=>Wu,isDatasourceId:()=>ET,isDevApp:()=>So,isDevAppID:()=>Cr,isDocumentConflictError:()=>_C,isGlobalUserID:()=>cT,isProdAppID:()=>pv,isSameAppID:()=>fC,isTableId:()=>gT,isViewId:()=>yT,paginatedSearch:()=>gC,pagination:()=>np,prefixRoleID:()=>rr,queryGlobalView:()=>nr,queryGlobalViewRaw:()=>ap,queryPlatformView:()=>jo,queryView:()=>op,queryViewRaw:()=>Qo,removeKeyNumbering:()=>Ko,searchIndexes:()=>cp});var Zf={};v(Zf,{AppState:()=>Jf,getAppMetadata:()=>rc,invalidateAppMetadata:()=>aC});var Fr={};v(Fr,{getAppClient:()=>tc,getCacheClient:()=>Yf,getDocWritethroughClient:()=>nC,getInviteClient:()=>Qn,getLockClient:()=>zf,getPasswordResetClient:()=>qo,getSessionClient:()=>kr,getSocketClient:()=>rC,getUserClient:()=>Go,getWritethroughClient:()=>Hf,init:()=>bt,shutdown:()=>iT});var rT=j(require("ioredis"));var Ku={};v(Ku,{Databases:()=>Sf,SEPARATOR:()=>Vi,SelectableDatabase:()=>Qu,addDbPrefix:()=>qe,getRedisConnectionDetails:()=>ju,getRedisOptions:()=>Gi,removeDbPrefix:()=>Of});var Ev=2e3,O_=1e4,Vi="-",Sf=(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))(Sf||{}),Qu=(_=>(_[_.DEFAULT=0]="DEFAULT",_[_.SOCKET_IO=1]="SOCKET_IO",_[_.RATE_LIMITING=2]="RATE_LIMITING",_[_.UNUSED_2=3]="UNUSED_2",_[_.UNUSED_3=4]="UNUSED_3",_[_.UNUSED_4=5]="UNUSED_4",_[_.UNUSED_5=6]="UNUSED_5",_[_.UNUSED_6=7]="UNUSED_6",_[_.UNUSED_7=8]="UNUSED_7",_[_.UNUSED_8=9]="UNUSED_8",_[_.UNUSED_9=10]="UNUSED_9",_[_.UNUSED_10=11]="UNUSED_10",_[_.UNUSED_11=12]="UNUSED_11",_[_.UNUSED_12=13]="UNUSED_12",_[_.UNUSED_13=14]="UNUSED_13",_[_.UNUSED_14=15]="UNUSED_14",_))(Qu||{});function ju(){let t=h.REDIS_PASSWORD,e=h.REDIS_URL.split("//");e=e.length>1?e[1]:e[0],e=e.split("@"),e.length>1?(t=e[0].split(":")[1],e=e[1]):e=e[0];let[r,n]=e.split(":"),i=parseInt(n);return{host:r,password:t,port:isNaN(i)?6379:i}}function Gi(){let{host:t,password:e,port:r}=ju(),n={connectTimeout:O_,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:O_,redisOptions:{...n,tls:{}},slotsRefreshTimeout:Ev,dnsLookup:(s,o)=>o(null,s)}),i}function qe(t,e){return e.includes(t)?e:`${t}${Vi}${e}`}function Of(t){let e=t.split(Vi);return e.length>=2?(e.shift(),e.join(Vi)):e[0]}var ec={};v(ec,{correlation:()=>xo,logAlert:()=>Gn,logAlertWithInfo:()=>zv,logWarn:()=>Wi,logger:()=>Xu,system:()=>kf});var xo={};v(xo,{getId:()=>If,setHeader:()=>_v});var I_=require("correlation-id"),_v=t=>{let e=I_.getId();e&&(t["x-budibase-correlation-id"]=e)};function If(){return I_.getId()}var Zu=j(require("pino")),eT=j(require("pino-pretty"));var Ff=j(require("dd-trace")),tT=require("dd-trace/ext");var kf={};v(kf,{getLogReadStream:()=>Wv,getSingleFileMaxSizeInfo:()=>X_,localFileDestination:()=>Mf});var Do=j(require("fs")),Lf=j(require("path")),H_=j(require("rotating-file-stream"));var Uf={};v(Uf,{ObjectStore:()=>wt,ObjectStoreBuckets:()=>Av,SIGNED_FILE_PREFIX:()=>vf,bucketTTLConfig:()=>Yu,budibaseTempDir:()=>Vn,clientLibraryCDNUrl:()=>kv,clientLibraryPath:()=>V_,clientLibraryUrl:()=>Fv,createBucketIfNotExists:()=>bo,deleteFile:()=>vv,deleteFiles:()=>Cv,deleteFolder:()=>F_,downloadTarball:()=>Pv,downloadTarballDirect:()=>Nv,enrichPluginURLs:()=>Vv,extractBucketAndPath:()=>xf,getAppFileUrl:()=>Bv,getGlobalFileS3Key:()=>G_,getGlobalFileUrl:()=>$v,getObjectMetadata:()=>Uv,getPluginIconKey:()=>Q_,getPluginJSKey:()=>W_,getPluginS3Dir:()=>K_,getPresignedUrl:()=>Lr,getReadStream:()=>Hu,listAllObjects:()=>k_,processAutomationAttachment:()=>Ov,processObjectStoreAttachment:()=>R_,retrieve:()=>M_,retrieveDirectory:()=>Rv,retrieveToTmp:()=>Dv,sanitizeBucket:()=>We,sanitizeKey:()=>De,streamUpload:()=>L_,upload:()=>bv,uploadDirectory:()=>Cf});var v_=j(require("aws-sdk")),C_=j(require("stream")),wf=j(require("node-fetch")),bf=j(require("tar-fs")),Df=j(require("zlib")),N_=require("util"),Ur=require("path"),Nr=j(require("fs"));var wo=j(require("path")),x_=require("os"),w_=j(require("fs"));var b_=j(require("stream")),Av={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},D_=(0,wo.join)((0,x_.tmpdir)(),".budibase");try{w_.default.mkdirSync(D_)}catch(t){if(t.code!=="EEXIST")throw t}function Vn(){return D_}var Yu=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function Sv(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=wo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:b_.default.Readable.fromWeb(e.body)}}async function R_(t){let e=xf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Hu(r,n),s=wo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function Ov(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await Sv(t):await R_(t)}var Rf=require("uuid");var P_=j(require("fs/promises")),Iv=require("sanitize-s3-objectkey"),U_=(0,N_.promisify)(C_.default.pipeline),xv={bucketCreationPromises:{}},vf="/files/signed",Pr={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"},wv=[Pr.html,Pr.css,Pr.js,Pr.json];function De(t){return Iv(We(t)).replace(/\\/g,"/")}function We(t){return t.replace(new RegExp(ft,"g"),dt)}function wt(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:We(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 v_.default.S3(r)}async function bo(t,e){e=We(e);try{return await t.headBucket({Bucket:e}).promise(),{created:!1,exists:!0}}catch(r){let n=xv.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 bv({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await P_.default.open(r)).createReadStream():s,c=wt(t),l=await bo(c,t);if(o&&l.created){let f=Yu(t,o);await c.putBucketLifecycleConfiguration(f).promise()}let d=n;d||(d=a?Pr[a.toLowerCase()]:Pr.txt);let p={Key:De(e),Body:u,ContentType:d};if(i&&typeof i=="object"){for(let f of Object.keys(i))(!i[f]||typeof i[f]!="string")&&delete i[f];p.Metadata=i}return c.upload(p).promise()}async function L_({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=wt(t),u=await bo(a,t);if(s&&u.created){let g=Yu(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?Pr[o.toLowerCase()]:Pr.txt);let l=We(t),d=De(r),p={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await a.upload(p).promise(),m=await a.headObject({Bucket:l,Key:d}).promise();return{...f,ContentLength:m.ContentLength}}async function M_(t,e){let r=wt(t),n={Bucket:We(t),Key:De(e)},i=await r.getObject(n).promise();return wv.includes(i.ContentType)?i.Body.toString("utf8"):i.Body}async function k_(t,e){let r=wt(t),n=(a={})=>r.listObjectsV2({...a,Bucket:We(t),Prefix:De(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 Lr(t,e,r=3600){let n=wt(t,{presigning:!0}),i={Bucket:We(t),Key:De(e),Expires:r},s=n.getSignedUrl("getObject",i);if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${vf}${a}${u}`}else return s}async function Dv(t,e){t=We(t),e=De(e);let r=await M_(t,e),n=(0,Ur.join)(Vn(),(0,Rf.v4)());return Nr.default.writeFileSync(n,r),n}async function Rv(t,e){let r=(0,Ur.join)(Vn(),(0,Rf.v4)());Nr.default.mkdirSync(r);let n=await k_(t,e),i=await Promise.all(n.map(a=>Hu(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),p=(0,Ur.join)(r,...d);l.length>1&&!Nr.default.existsSync(p)&&Nr.default.mkdirSync(p,{recursive:!0});let f=Nr.default.createWriteStream((0,Ur.join)(r,...l),{mode:420});c.pipe(f),o.push(new Promise((m,g)=>{c.on("finish",m),c.on("error",g),f.on("error",g)}))}return await Promise.all(o),r}async function vv(t,e){let r=wt(t);await bo(r,t);let n={Bucket:t,Key:De(e)};return r.deleteObject(n).promise()}async function Cv(t,e){let r=wt(t);await bo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:De(i)}))}};return r.deleteObjects(n).promise()}async function F_(t,e){t=We(t),e=De(e);let r=wt(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 F_(t,e)}async function Cf(t,e,r){t=We(t);let n=[],i=Nr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=De((0,Ur.join)(r,s.name)),a=(0,Ur.join)(e,s.name);s.isDirectory()?n.push(Cf(t,a,o)):n.push(L_({bucket:t,filename:o,stream:Nr.default.createReadStream(a)}))}return await Promise.all(n),i}async function Nv(t,e,r={}){e=De(e);let n=await(0,wf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await U_(n.body,Df.default.createUnzip(),bf.default.extract(e))}async function Pv(t,e,r){e=We(e),r=De(r);let n=await(0,wf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Ur.join)(Vn(),r);return await U_(n.body,Df.default.createUnzip(),bf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Cf(e,i,r),i}async function Hu(t,e){t=We(t),e=De(e);let r=wt(t),n={Bucket:t,Key:e};return r.getObject(n).createReadStream()}async function Uv(t,e){t=We(t),e=De(e);let r=wt(t),n={Bucket:t,Key:e};try{return await r.headObject(n).promise()}catch{throw new Error("Unable to retrieve metadata from object")}}function xf(t){let e=t.split("?")[0],r=new RegExp(`^${vf}/(?<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 B_=j(require("aws-cloudfront-sign")),Ju;function Lv(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ju||(Ju=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ju)}var Mv=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:Lv(),expireTime:new Date().getTime()+1e3*60*60*24}),qi=t=>{let e=Nf(t);return B_.getSignedUrl(e,Mv())},Nf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var $_=j(require("querystring"));function V_(t){return`${De(t)}/budibase-client.js`}function kv(t,e){let r=V_(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Nf(r)):Lr(h.APPS_BUCKET_NAME,r)}function Fv(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==le&&(n.tenantId=r),`/api/assets/client?${$_.default.encode(n)}`}function Bv(t){return h.CLOUDFRONT_CDN?qi(t):Lr(h.APPS_BUCKET_NAME,t)}var $v=(t,e,r)=>{let n=G_(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),qi(n)):Lr(h.GLOBAL_BUCKET_NAME,n)},G_=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};function Vv(t){return!t||!t.length?[]:t.map(e=>{let r=Gv(e),n=qv(e);return{...e,jsUrl:r,iconUrl:n}})}function Gv(t){let e=W_(t);return q_(e)}function qv(t){let e=Q_(t);if(e)return q_(e)}function q_(t){return h.CLOUDFRONT_CDN?qi(t):Lr(h.PLUGIN_BUCKET_NAME,t)}function W_(t){return j_(t,"plugin.min.js")}function Q_(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return j_(t,e)}function j_(t,e){return`${K_(t.name)}/${e}`}function K_(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var z_="budibase.log",J_="budibase-logs-history.txt",Z_=Lf.default.join(Vn(),"systemlogs");function Y_(t){return Lf.default.join(Z_,t)}function X_(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 Mf(){let t=X_(h.ROLLING_LOG_MAX_SIZE);return H_.createStream(z_,{size:t?.size,path:Z_,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:J_,initialRotation:!1})}function Wv(){let t=[],e=Y_(J_);if(Do.default.existsSync(e)){let i=Do.default.readFileSync(e,"utf-8").split(`
|
|
6
|
+
`);for(let s of i.filter(o=>o))t.push(Do.default.readFileSync(s))}return t.push(Do.default.readFileSync(Y_(z_))),Buffer.concat(t)}function Qv(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function jv(t){return t instanceof Error}function Kv(t){return typeof t=="string"}var Mr;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,eT.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Mf(),level:t}),Mr=r.length?(0,Zu.default)(e,Zu.default.multistream(r)):(0,Zu.default)(e);let n=u=>{let c,l=[],d="";u.forEach(_=>{Kv(_)&&(d=`${d} ${_}`.trimStart()),Qv(_)&&l.push(_),jv(_)&&(c=_)});let p=a(),f={};f={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:If()};let m=Ff.default.scope().active();m&&Ff.default.inject(m.context(),tT.formats.LOG,f);let g={err:c,pid:process.pid,...f};if(l.length){let _={},y=0;for(let O=0;O<l.length;O++){let S=l[O],L=S._logKey;L?(delete S._logKey,g[L]=S):(_[y]=S,y++)}Object.keys(_).length&&(g.data=_)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Mr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Mr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Mr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Mr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Mr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Mr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Re()}catch{}return u},o=()=>{let u;try{u=Bf()}catch{}return u},a=()=>{let u;try{u=tr()}catch{}return u}}var Xu=Mr;var Yv=["AccountError"];function Hv(t){return t&&t.suppressAlert}function Gn(t,e){e&&Yv.includes(e.name)&&Hv(e)||console.error(`bb-alert: ${t}`,e)}function zv(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Gn(t,n)}function Wi(t,e){console.warn(`bb-warn: ${t}`,e)}var No={};v(No,{cleanup:()=>Jv,clear:()=>Co,set:()=>vo});var Ro=[];function vo(t,e){let r=setInterval(t,e);return Ro.push(r),r}function Co(t){let e=Ro.indexOf(t);e!==-1&&Ro.splice(e,1),clearInterval(t)}function Jv(){for(let t of Ro)clearInterval(t);Ro=[]}var Vf;if(h.MOCK_REDIS)try{Vf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var Zv=2e3,Xv=5e3,nT=h.REDIS_CLUSTERED,Wf=0,Po=!1,Gf={},qn=!1;h.MOCK_REDIS&&(qn=!0);function Qf(t){return Gf[t]}function $f(t,e){Po||(Po=!0,clearTimeout(t),qn=!1,Gn("Redis connection failed",e),setTimeout(()=>{jf()},Zv))}function jf(t=Wf){let e=h.MOCK_REDIS&&Vf?Vf:rT.default,r;Po=!1;let n=Qf(t);if(n&&qn)return;h.MOCK_REDIS&&(Gf[t]=new e(Gi())),r=setTimeout(()=>{qn||$f(r,"Did not successfully connect in timeout")},Xv),n&&n.disconnect();let{host:i,port:s}=ju(),o=Gi();nT?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||$f(r,a)}),n.on("error",a=>{$f(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),qn=!0}),Gf[t]=n}function eC(t=Wf){return new Promise(e=>{if(Qf(t)==null)jf();else if(qn){e("");return}let r=vo(()=>{qn&&(Co(r),e(""))},500)})}function tC(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:Of(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var qf=class{constructor(e,r=null){this._db=e,this._select=r||Wf}getClient(){return Qf(this._select)}async init(){return Po=!1,jf(this._select),await eC(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Po=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${Vi}${e}`;let n;return nT?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),tC(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(qe(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(qe(r,e))}async get(e){let r=this._db,n=await this.getClient().get(qe(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=>qe(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=qe(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[qe(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=qe(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=qe(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(qe(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>qe(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(qe(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,qe(this._db,e),r)}},ke=qf;var Uo,Lo,Mo,ko,Wn,Fo,Bo,$o,Vo,Kf;async function bt(){Uo=await new ke("users").init(),Lo=await new ke("session").init(),Mo=await new ke("appMetadata").init(),ko=await new ke("data_cache").init(),Fo=await new ke("locks").init(),Wn=await new ke("writeThrough").init(),$o=await new ke("invitation").init(),Vo=await new ke("pwReset").init(),Bo=await new ke("socket_io",1).init(),Kf=await new ke("docWriteThrough").init()}async function iT(){Uo&&await Uo.finish(),Lo&&await Lo.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Wn&&await Wn.finish(),Fo&&await Fo.finish(),$o&&await $o.finish(),Vo&&await Vo.finish(),Bo&&await Bo.finish(),Kf&&await Kf.finish()}process.on("exit",async()=>{await iT()});async function Go(){return Uo||await bt(),Uo}async function kr(){return Lo||await bt(),Lo}async function tc(){return Mo||await bt(),Mo}async function Yf(){return ko||await bt(),ko}async function Hf(){return Wn||await bt(),Wn}async function zf(){return Fo||await bt(),Fo}async function rC(){return Bo||await bt(),Bo}async function Qn(){return $o||await bt(),$o}async function qo(){return Vo||await bt(),Vo}async function nC(){return Wn||await bt(),Wn}var Jf=(e=>(e.INVALID="invalid",e))(Jf||{}),sT=3600,iC=60;async function sC(t){return rt(t,e=>e.get("app_metadata"),{skip_setup:!0})}function oC(t){return!t||t.state==="invalid"}async function rc(t){let e=await tc(),r=await e.get(t);if(!r){let n=sT;try{r=await sC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=iC;else throw i}if(oC(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function aC(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await tc();await r.delete(t),e&&await r.store(t,e,sT)}var rp={};v(rp,{generateAppID:()=>oT,generateAppUserID:()=>nc,generateDevInfoID:()=>pT,generateGlobalUserID:()=>Qi,generatePluginID:()=>mT,generateRoleID:()=>ep,generateRowID:()=>Xf,generateTableID:()=>aT,generateTemplateID:()=>fT,generateUserMetadataID:()=>lT,generateWorkspaceID:()=>uT,getDocParams:()=>ji,getGlobalIDFromUserMetadataID:()=>dT,getGlobalUserParams:()=>jn,getPluginParams:()=>ST,getQueryIndex:()=>hT,getRoleParams:()=>sc,getRowParams:()=>tp,getStartEndKeyURL:()=>Wo,getTemplateParams:()=>AT,getUserMetadataParams:()=>TT,getUsersByAppParams:()=>ic,getWorkspaceParams:()=>_T,isDatasourceId:()=>
|
|
10
|
+
`;await n.eval(i,1,qe(this._db,e),r)}},ke=qf;var Uo,Lo,Mo,ko,Wn,Fo,Bo,$o,Vo,Kf;async function bt(){Uo=await new ke("users").init(),Lo=await new ke("session").init(),Mo=await new ke("appMetadata").init(),ko=await new ke("data_cache").init(),Fo=await new ke("locks").init(),Wn=await new ke("writeThrough").init(),$o=await new ke("invitation").init(),Vo=await new ke("pwReset").init(),Bo=await new ke("socket_io",1).init(),Kf=await new ke("docWriteThrough").init()}async function iT(){Uo&&await Uo.finish(),Lo&&await Lo.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Wn&&await Wn.finish(),Fo&&await Fo.finish(),$o&&await $o.finish(),Vo&&await Vo.finish(),Bo&&await Bo.finish(),Kf&&await Kf.finish()}process.on("exit",async()=>{await iT()});async function Go(){return Uo||await bt(),Uo}async function kr(){return Lo||await bt(),Lo}async function tc(){return Mo||await bt(),Mo}async function Yf(){return ko||await bt(),ko}async function Hf(){return Wn||await bt(),Wn}async function zf(){return Fo||await bt(),Fo}async function rC(){return Bo||await bt(),Bo}async function Qn(){return $o||await bt(),$o}async function qo(){return Vo||await bt(),Vo}async function nC(){return Wn||await bt(),Wn}var Jf=(e=>(e.INVALID="invalid",e))(Jf||{}),sT=3600,iC=60;async function sC(t){return rt(t,e=>e.get("app_metadata"),{skip_setup:!0})}function oC(t){return!t||t.state==="invalid"}async function rc(t){let e=await tc(),r=await e.get(t);if(!r){let n=sT;try{r=await sC(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=iC;else throw i}if(oC(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function aC(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await tc();await r.delete(t),e&&await r.store(t,e,sT)}var rp={};v(rp,{generateAppID:()=>oT,generateAppUserID:()=>nc,generateDevInfoID:()=>pT,generateGlobalUserID:()=>Qi,generatePluginID:()=>mT,generateRoleID:()=>ep,generateRowID:()=>Xf,generateTableID:()=>aT,generateTemplateID:()=>fT,generateUserMetadataID:()=>lT,generateWorkspaceID:()=>uT,getDocParams:()=>ji,getGlobalIDFromUserMetadataID:()=>dT,getGlobalUserParams:()=>jn,getPluginParams:()=>ST,getQueryIndex:()=>hT,getRoleParams:()=>sc,getRowParams:()=>tp,getStartEndKeyURL:()=>Wo,getTemplateParams:()=>AT,getUserMetadataParams:()=>TT,getUsersByAppParams:()=>ic,getWorkspaceParams:()=>_T,isDatasourceId:()=>ET,isGlobalUserID:()=>cT,isTableId:()=>gT,isViewId:()=>yT,prefixRoleID:()=>rr});var oT=t=>{let e=dt;return t&&(e+=`${t}${C}`),`${e}${_e()}`};function aT(){return`ta${C}${_e()}`}function Xf(t,e){return e=e||_e(),`ro${C}${t}${C}${e}`}function uT(){return`workspace${C}${_e()}`}function Qi(t){return`us${C}${t||_e()}`}var uC=new RegExp(`^us${C}.+`);function cT(t){return uC.test(t)}function lT(t){return Xf("ta_users",t)}function dT(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}function fT(t){return`template${C}${t}${C}${_e()}`}function nc(t,e){return`${t}${C}${e}`}function ep(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}function rr(t){return ep(t)}var pT=t=>`devinfo${C}${t}`,mT=t=>`plg${C}${t}`;function ji(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${C}${e}`,endkey:`${t}${C}${e}${Le}`}}function tp(t,e,r={}){if(t==null)return ji("ro",null,r);let n=e??`${t}${C}`;return ji("ro",n,r)}function hT(t){return`database/${t}`}var gT=t=>!!t&&(t.startsWith(`ta${C}`)||t.startsWith(`datasource_plus${C}`));function yT(t){return!!t&&t.startsWith(`view${C}`)}var ET=t=>!!t&&t.startsWith(`datasource${C}`);function _T(t="",e={}){return{...e,startkey:`workspace${C}${t}`,endkey:`workspace${C}${t}${Le}`}}function jn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${Le}`}}function TT(t,e={}){return tp("ta_users",t,e)}function ic(t,e={}){let r=tt(t);return{...e,startkey:r,endkey:`${r}${Le}`}}function AT(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${Le}`}}function sc(t,e={}){return ji("role",t,e)}function Wo(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Le}"`}var ST=(t,e={})=>ji("plg",t,e);async function OT(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await ip(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===le?await n():(await n(Wo("app",i)),await n(Wo("app_dev",i)),r.push(Dt(i))),r}async function Kn({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=le);let o=(await OT({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(C);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===le&&d||l===i}return!1});if(r){let u=o.filter(l=>Cr(l)),c=o.filter(l=>!Cr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>rc(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:So(l)?"development":"published"})):c.filter(l=>t?So(l):!So(l))}}async function cC(t){return(await Promise.allSettled(t.map(r=>rc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function lC(){return(await Kn({idsOnly:!0})).filter(e=>!Cr(e))}async function dC(){return(await Kn({idsOnly:!0})).filter(e=>Cr(e))}function fC(t,e){return t==null||e==null?!1:tt(t)===tt(e)}async function pC(t){return rt(t,async e=>await e.exists(),{skip_setup:!0})}function np(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 sp="_design/database";function mC(){return{_id:sp,views:{}}}async function hC(t,e){if(ki[e])try{let r=await t.get(sp);for(let n of ki[e])delete r.views?.[n];await t.put(r)}catch{}}async function Ki(t,e,r){let n;try{n=await t.get(sp)}catch{n=mC()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await Ki(t,e,r);throw s}}var IT=async()=>{let t=se(),e=`function(doc) {
|
|
11
11
|
if (doc._id.startsWith("us${C}")) {
|
|
12
12
|
emit(doc.email.toLowerCase(), doc._id)
|
|
13
13
|
}
|
|
14
|
-
}`;await Ki(t,e,"by_email2")},xT=async()=>{let t=
|
|
14
|
+
}`;await Ki(t,e,"by_email2")},xT=async()=>{let t=se(),e=`function(doc) {
|
|
15
15
|
if (doc._id.startsWith("us${C}") && doc.roles) {
|
|
16
16
|
for (let prodAppId of Object.keys(doc.roles)) {
|
|
17
17
|
let emitted = prodAppId + "${C}" + doc._id
|
|
18
18
|
emit(emitted, null)
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
}`;await Ki(t,e,"by_app")},wT=async()=>{let t=
|
|
21
|
+
}`;await Ki(t,e,"by_app")},wT=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
|
}
|
|
@@ -34,5 +34,5 @@ attempted value: ${s}
|
|
|
34
34
|
if (doc.ssoId) {
|
|
35
35
|
emit(doc.ssoId, doc._id)
|
|
36
36
|
}
|
|
37
|
-
}`,"platform_users_lowercase_2")},jo=async(t,e)=>{let r={account_by_email:DT,platform_users_lowercase_2:RT};return rt(pe.PLATFORM_INFO.name,async n=>{let i=r[t];return op(t,e,n,i,{arrayResponse:!0})})},vT={by_email2:IT,by_api_key:wT,by_app:xT},nr=async(t,e,r,n)=>{r||(r=ie());let i=vT[t];return op(t,e,r,i,n)};async function ap(t,e,r){let n=ie(),i=vT[t];return Qo(t,e,n,i,r)}var up=class{constructor({source:e,target:r}){this.source=pt(e),this.target=pt(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([Io(this.source),Io(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=pt(this.target.name),await this.replicate()}},CT=up;var PT=j(require("node-fetch"));var Ko=Dr.removeKeyNumbering;function Yn(t){return t==null||t===""}var ir=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#f,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Ko(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(p,g)=>Yn(g)?null:`${p}:${e.preprocess(g,s)}`,u=(p,g,_="AND")=>{if(Yn(g))return null;if(!Array.isArray(g))return`${p}:${g}`;let E=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)E+=` ${_} ${e.preprocess(g[O],{escape:!0})}`;return`${p}:(${E})`},c=(p,g)=>Yn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${p}:/.*${g}.*/`),l=(p,g)=>{let _=r?"*:* AND ":"",E=r?"AND":void 0;return _+"NOT "+u(p,g,E)},d=(p,g)=>u(p,g,"OR"),m=(p,g)=>{if(Yn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let _=`${e.preprocess(g[0],s)}`;for(let E=1;E<g.length;E++)_+=` OR ${e.preprocess(g[E],s)}`;return`${p}:(${_})`};function f(p,g,_){let E="";for(let[O,S]of Object.entries(p)){O=Ko(O),O=e.preprocess(e.handleSpaces(O),{escape:!0});let L=g(O,S);if(L!=null){if(E.length>0||n.length>0){let y=_?.mode?_.mode:r?"OR":"AND";E+=` ${y} `}E+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(_?.returnBuilt)return E;n+=E}if(this.#e.string&&f(this.#e.string,(p,g)=>Yn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${p}:${g}*`)),this.#e.range&&f(this.#e.range,(p,g)=>{if(Yn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let _=e.preprocess(g.low,s),E=e.preprocess(g.high,s);return`${p}:[${_} TO ${E}]`}),this.#e.fuzzy&&f(this.#e.fuzzy,c),this.#e.equal&&f(this.#e.equal,a),this.#e.notEqual&&f(this.#e.notEqual,(p,g)=>Yn(g)?null:typeof g=="boolean"?`(*:* AND !${p}:${g})`:`!${p}:${e.preprocess(g,s)}`),this.#e.empty&&f(this.#e.empty,p=>(i=!1,`(*:* -${p}:["" TO *])`)),this.#e.notEmpty&&f(this.#e.notEmpty,p=>(i=!1,`${p}:["" TO *]`)),this.#e.oneOf&&f(this.#e.oneOf,m),this.#e.contains&&f(this.#e.contains,u),this.#e.notContains&&f(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&f(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,f({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#p();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=xt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await NT(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await NT(n,i,r);throw s}}};async function NT(t,e,r){let n=await(0,PT.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 UT(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=ir.maxLimit;n.limit&&s.length>n.limit-ir.maxLimit&&(o=n.limit-s.length);let a=new ir(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<ir.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await UT(t,e,r,c)}async function gC(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,ir.maxLimit);let s=new ir(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 EC(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 UT(t,e,r,n)}}var cp={};v(cp,{createUserIndex:()=>yC});async function yC(){let t=ie(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function LT(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 _C(t){return LT(t,409)}var dp=`${C}${C}`,kT=/^\[.*]$/g,AC=encodeURIComponent(" "),FT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,SC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function oc(t){return t.startsWith("datasource"+C)}function OC(t){return!oc(t)}function Hi(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 fp(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==Ti||t?.sourceType==="external"?!0:!!(t?._id&&oc(t._id))}function IC(t,e){return`${t}${dp}${encodeURIComponent(e)}`}function xC(t){return oc(t)?encodeURIComponent(t):t}function wC(t){return encodeURIComponent(t)}function pp(t){let e=t.split(dp),r=e.shift(),n=e.join(dp);if(n.includes(AC)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function bC(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 DC(t){return Array.isArray(t)||typeof t=="string"&&t.match(kT)!=null}function RC(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(kT)!=null?t.substring(1,t.length-1):t}function vC(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function mp(t){let e=t.trim();if(!FT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function hp(t){return FT.test(t.trim())}function ac(t){return t!=null&&t!==""}function CC(t){return SC.test(t)}function Ho(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 NC(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function gp(t){if(NC(t))return t}var BT="Database does not exist.";function $T(t){return(0,GT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var $r=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 TC(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Yi(t,r,e);return new $i(n)}var Yi=class t{constructor(e,r,n){this.couchInfo=xt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=xt(n),this.instanceNano=$T(this.couchInfo)),t.nano||t.init()}static init(){let e=xt();t.nano=$T(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Oo({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 $r(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===BT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new $r(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new $r(`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(yh(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 $r(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=_e()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===BT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Gu(`${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 Oo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new $r("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}/${er}`;return Ho("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(er)){let e=await this.get(er);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 $r(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return pt(this.name).dump(e,r)}async load(e){return pt(this.name).load(e)}async createIndex(e){return pt(this.name).createIndex(e)}async deleteIndex(e){return pt(this.name).deleteIndex(e)}async getIndexes(){return pt(this.name).getIndexes()}};function Ue(t,e){return new $i(new Yi(t,e))}async function rt(t,e,r){let n=Ue(t,r);return await e(n)}async function ip(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await qu(e)}async function lp(t,e){let r=await qu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var qT=null;function Dt(t){return t||(t=Q()),Yo(t)}function WT(t){return t||(t=Q()),t===le?pe.AUDIT_LOGS.name:`${t}${C}${pe.AUDIT_LOGS.name}`}function PC(t){return t||(t=Q()),t===le?pe.SCIM_LOGS.name:`${t}${C}${pe.SCIM_LOGS.name}`}function Yo(t){return!t||t===le?pe.GLOBAL.name:`${t}${C}${pe.GLOBAL.name}`}function yp(){return h.PLATFORM_URL}function Vr(){return!!h.MULTI_TENANCY}function UC(){return!!be.get()?.tenantId}function LC(){return h.MULTI_TENANCY}function zi(t){if(!t)return;if(!Vr())return le;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function MC(t){let e;try{e=be.get()}catch{e={}}return e={...e,...t},e}async function Gr(t,e){FC();let r=MC(t);return be.run(r,e)}async function kC(t){return await jT(),Gr({tenantId:zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function _p(t,e){let r=zi(t);return Gr({tenantId:r,appId:t},e)}async function ve(t,e){return h.MULTI_TENANCY||(t=t||le),Gr(t?{tenantId:t}:{},e)}async function Tp(t,e){return QT(t,e)}async function QT(t,e,r){if(!t)throw new Error("appId is required");let n=zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Gr(i,e)}async function To(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Gr(r,e)}function FC(){if(be.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function BC(t,e){return QT(t,e,{isMigrating:!0})}function tr(){try{return be.get()?.identity}catch{}}function Q(){if(!Vr())return le;let e=be.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Bf(){return be.get()?.automationId}function Re(){let e=be.get()?.appId;return!e&&h.isTest()&&qT?qT:e}function Ap(){return be.get()?.ip}var $C=()=>{let t=Re();if(!t)throw new Error("Could not get appId");return tt(t)};function VC(t,e){if(!t)throw new Error("Must supply environment variables.");return Gr({environmentVariables:t},e)}function GC(t){return Gr({isScim:!0},t)}function Sp(t,e){return Gr({ip:t},e)}async function jT(t=!h.isTest()){let e=Zi();if(!e||e.snippets)return;let r,n=Ji();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function qC(){let t=be.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=be.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ue(Yo(t?.tenantId))}function WC(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ue(WT())}function Ji(t){let e=Re();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ue(e,t)}function QC(t){let e=Re();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ue(tt(e),t)}function jC(t){let e=Re();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ue(Vu(e),t)}function Rt(){return!!be.get()?.isScim}function Zi(){try{return be.get()}catch{return}}function Op(t){let e=Zi();if(e)return e.featureFlagCache?.[t]}function Ip(t,e){let r=Zi();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function KC(t){let e=Zi();if(e)return e.viewToTableCache?.[t]}function YC(t,e){let r=Zi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function $t(t){let e=Q();return`${t}:${e}`}var Hn=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Yf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>$t(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?$t(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[$t(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>$t(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($t(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?$t(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Xi=new Hn,sr=(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))(sr||{}),zn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(zn||{}),uc=(...t)=>Xi.keys(...t),Jn=(...t)=>Xi.get(...t),or=(...t)=>Xi.store(...t),zo=(...t)=>Xi.delete(...t),qr=(...t)=>Xi.withCache(...t),es=(...t)=>Xi.bustCache(...t);var Jr={};v(Jr,{getUser:()=>Sa,getUsers:()=>d0,invalidateUser:()=>Oa});var Xo={};v(Xo,{addTenantToUrl:()=>HC,getTenantDB:()=>xp,getTenantIDFromCtx:()=>Zo,isUserInAppTenant:()=>zC});function xp(t){return Ue(Dt(t))}function HC(t){let e=Q();if(Vr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var zC=(t,e)=>{let r;return e?r=e.tenantId||le:r=Q(),(zi(t)||le)===r},JC=Object.values(_s),Zo=(t,e)=>{if(!Vr())return le;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=JC),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(yp()).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 is={};v(is,{getPlatformDB:()=>nt,tenants:()=>ra,users:()=>vt});var vt={};v(vt,{addSsoUser:()=>YT,addUser:()=>nN,getUserDoc:()=>KT,lookupTenantId:()=>ZC,removeUser:()=>iN,updateUserDoc:()=>XC});function nt(){return Ue(pe.PLATFORM_INFO.name)}async function ZC(t){return h.MULTI_TENANCY?(await KT(t)).tenantId:le}async function KT(t){return nt().get(t)}async function XC(t){await nt().put(t)}function eN(t,e){return{_id:t,tenantId:e}}function tN(t,e,r){return{_id:e,userId:t,tenantId:r}}function rN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function wp(t,e){let r=nt(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function YT(t,e,r,n){return wp(t,()=>rN(t,e,r,n))}async function nN(t,e,r,n){let i=[wp(e,()=>eN(e,t)),wp(r,()=>tN(e,r,t))];n&&i.push(YT(n,r,e,t)),await Promise.all(i)}async function iN(t){let e=nt(),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 ra={};v(ra,{addTenant:()=>ON,exists:()=>TN,getTenantIds:()=>_N,removeTenant:()=>IN,tenacyLockOptions:()=>Lp});var ei={};v(ei,{AUTO_EXTEND_POLLING_MS:()=>iA,doWithLock:()=>ns,newRedlock:()=>Xn});var nA=j(require("redlock"));var ts={};v(ts,{Duration:()=>we,DurationType:()=>Pp,clearCookie:()=>Wr,compare:()=>Rp,getAppIdFromCtx:()=>fN,getCookie:()=>Zn,hasCircularStructure:()=>hN,hash:()=>Dp,isAudited:()=>Cp,isClient:()=>pN,isPublicApiRequest:()=>dN,isServingApp:()=>uN,isServingBuilder:()=>cN,isServingBuilderPreview:()=>lN,isValidInternalAPIKey:()=>ta,newid:()=>_e,openJwt:()=>lc,resolveAppUrl:()=>XT,setCookie:()=>eA,timeout:()=>mN,validEmail:()=>Np});var bp=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),sN=h.SALT_ROUNDS||10;async function Dp(t){let e=await bp.genSalt(sN);return bp.hash(t,e)}async function Rp(t,e){return bp.compare(t,e)}var cc=j(require("jsonwebtoken")),vp="app"+C,zT="/app/",JT="/app/preview",oN="/builder",ZT=`${oN}/app/`,aN="/api/public/v";function ea(t){return t&&t.startsWith(vp)?t:void 0}async function XT(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Zo(t,{includeStrategies:["subdomain"]}));let s=(await ve(n,()=>Kn({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function uN(t){return t.path.startsWith(`/${vp}`)?!0:t.path.startsWith(zT)}function cN(t){return t.path.startsWith(ZT)}function lN(t){return t.path.startsWith(JT)}function dN(t){return t.path.startsWith(aN)}async function fN(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=ea(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=ea(t.request.body.appId));let n=HT(t.path);!r&&n&&(r=ea(n));let i=t.path.startsWith(JT),s=t.path.startsWith(zT)&&!i;!r&&s&&(r=ea(await XT(t)));let o=t.request.headers.referer;if(!r&&o?.includes(ZT)){let a=HT(t.request.headers.referer);r=ea(a)}return r}function HT(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(vp))}function lc(t){if(t)try{return cc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return cc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function ta(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function Zn(t,e){let r=t.cookies.get(e);if(r)return lc(r)}function eA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=cc.default.sign(e,h.JWT_SECRET));let i={expires:ku,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Wr(t,e){eA(t,null,e)}function pN(t){return t.headers["x-budibase-type"]==="client"}function mN(t){return new Promise(e=>setTimeout(e,t))}function Cp(t){return!!hh[t]}function hN(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 Np(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 Pp=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Pp||{}),tA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},we=class t{static convert(e,r,n){return n*tA[e]/tA[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 gN(t,e){if(t==="custom")return Xn(e);switch(t){case"try_once":return Xn(rs.TRY_ONCE);case"try_twice":return Xn(rs.TRY_TWICE);case"default":return Xn(rs.DEFAULT);case"delay_500":return Xn(rs.DELAY_500);case"auto_extend":return Xn(rs.AUTO_EXTEND);default:throw Ai.unreachable(t)}}var rs={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 Xn(t={}){let e={...rs.DEFAULT,...t},n=(await zf()).getClient();return new nA.default([n],e)}function EN(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var iA=we.fromSeconds(10).toMs();async function ns(t,e){let r=await gN(t.type,t.customOptions),n,i;try{let s=EN(t),o=t.type==="auto_extend"?iA: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 Up=pe.PLATFORM_INFO.docs.tenants,Lp={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function _N(){return(await dc()).tenantIds}async function dc(){let t=nt(),e;try{e=await t.get(Up)}catch(r){if(r.status===404)e=await SN();else throw r}return e}async function TN(t){return(await dc()).tenantIds.indexOf(t)!==-1}function AN(){return{_id:Up,tenantIds:[]}}async function SN(){let t=nt(),e=AN();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Up);throw r}return e}async function ON(t){let e=nt();await ns(Lp,async()=>{let r=await dc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function IN(t){try{await ns(Lp,async()=>{let e=nt(),r=await dc();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 ti={};v(ti,{getAccount:()=>Qr,getAccountByTenantId:()=>ss,getStatus:()=>xN});var sA=j(require("node-fetch"));var na=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";xo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,sA.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 Mp=new na(h.ACCOUNT_PORTAL_URL),kp=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Qr=async t=>{if(kp)return;let e={email:t},r=await Mp.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]},ss=async t=>{if(kp)return;let e={tenantId:t},r=await Mp.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]},xN=async()=>{if(kp)return;let t=await Mp.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 ps={};v(ps,{UserDB:()=>Gt,addAppBuilder:()=>a0,bulkGetGlobalUsersById:()=>Mc,bulkUpdateGlobalUsers:()=>_a,cleanseUserObject:()=>Tm,doesUserExist:()=>r0,getAccountHolderFromUsers:()=>Oc,getAllUserIds:()=>e0,getAllUsers:()=>t0,getById:()=>oi,getCreatorCount:()=>s0,getExistingAccounts:()=>os,getExistingPlatformUsers:()=>cA,getExistingTenantUsers:()=>uA,getFirstPlatformUser:()=>ia,getGlobalUserByAppPage:()=>oS,getGlobalUserByEmail:()=>Nt,getPlatformUsers:()=>fc,getUserCount:()=>i0,hasAdminPermissions:()=>Hr,hasAppBuilderPermissions:()=>yA,hasBuilderPermissions:()=>ht,isAdmin:()=>Yr,isAdminOrBuilder:()=>EA,isBuilder:()=>cs,isCreator:()=>Vt,isGlobalBuilder:()=>gA,paginatedUsers:()=>uS,removeAppBuilder:()=>u0,removePortalUserPermissions:()=>o0,searchExistingEmails:()=>$p,searchGlobalUsersByApp:()=>kc,searchGlobalUsersByAppAccess:()=>_m,searchGlobalUsersByEmail:()=>aS,validateUniqueUser:()=>Sc});var zp={};v(zp,{getAccountHolderFromUsers:()=>Oc,hasAdminPermissions:()=>Hr,hasAppBuilderPermissions:()=>yA,hasBuilderPermissions:()=>ht,isAdmin:()=>Yr,isAdminOrBuilder:()=>EA,isBuilder:()=>cs,isCreator:()=>Vt,isGlobalBuilder:()=>gA,validateUniqueUser:()=>Sc});var Bp={};v(Bp,{createCode:()=>bN,deleteCode:()=>RN,getCode:()=>DN,getExistingInvites:()=>Fp,getInviteCodes:()=>aA,updateCode:()=>wN});var oA=we.fromDays(7).toSeconds();async function wN(t,e){await(await Qn()).store(t,e,oA)}async function bN(t,e){let r=_e();return await(await Qn()).store(r,{email:t,info:e},oA),r}async function DN(t){let r=await(await Qn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function RN(t){await(await Qn()).delete(t)}async function aA(){let r=(await(await Qn()).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 Fp(t){return(await aA()).filter(e=>t.includes(e.email))}async function $p(t){let e=[],r=await uA(t);e.push(...r.map(o=>o.email));let n=await cA(t);e.push(...n.map(o=>o._id));let i=await os(t);e.push(...i.map(o=>o.email));let s=await Fp(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function fc(t){return await jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ia(t){return(await fc(t))[0]??null}async function uA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await nr("by_email2",r,void 0,n)}async function cA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await jo("platform_users_lowercase_2",r)}async function os(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await jo("account_by_email",r)}var _c={};v(_c,{BadRequestError:()=>mc,BudibaseError:()=>as,EmailUnavailableError:()=>ar,ErrorCode:()=>Ec,FeatureDisabledError:()=>gc,HTTPError:()=>it,InvalidAPIKeyError:()=>us,NotFoundError:()=>pc,UsageLimitError:()=>hc,getPublicError:()=>yc});var as=class extends Error{constructor(r,n){super(r);this.code=n}},Ec=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Ec||{}),yc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},it=class extends as{constructor(r,n,i="http"){super(r,i);this.status=n}},pc=class extends it{constructor(e){super(e,404)}},mc=class extends it{constructor(e){super(e,400)}},hc=class extends it{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},gc=class extends it{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},us=class extends as{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},ar=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var Hp={};v(Hp,{AccessController:()=>qp,BUILTIN_ROLE_IDS:()=>aa,Role:()=>jr,RoleHierarchyTraversal:()=>Tc,RoleIDVersion:()=>Wp,builtinRoleToNumber:()=>sa,checkForRoleResourceArray:()=>pA,externalRole:()=>LN,findRole:()=>oa,getAllRoleIds:()=>BN,getAllRoles:()=>Yp,getBuiltinRole:()=>dA,getBuiltinRoles:()=>jp,getDBRoleID:()=>mA,getExternalRoleID:()=>Kr,getExternalRoleIDs:()=>hA,getRole:()=>MN,getUserRoleHierarchy:()=>Kp,getUserRoleIdHierarchy:()=>fA,isBuiltin:()=>ri,lowerBuiltinRoleID:()=>UN,prefixRoleIDNoBuiltin:()=>Gp,roleIDsAreEqual:()=>mt,roleToNumber:()=>PN,saveRoles:()=>kN,validInherits:()=>NN});var Vp=j(require("semver"));var Ac=j(require("lodash/fp/cloneDeep"));var lA=require("lodash");var aa={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},de={...aa,BUILDER:"BUILDER"},Wp={UUID:void 0,NAME:"name"};function CN(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var jr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Wp.NAME}addInheritance(e){return e&&typeof e=="string"?e=Gp(e):e&&Array.isArray(e)&&(e=e.map(Gp)),this.inherits=e,this}},Tc=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=oa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!CN(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=oa(o.inherits,n,r),o&&i.push(o),br.roles.checkForRoleInheritanceLoops(i))break}}return(0,lA.uniqBy)(i,s=>s._id)}},Qp={ADMIN:new jr(de.ADMIN,de.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(de.POWER),POWER:new jr(de.POWER,de.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(de.BASIC),BASIC:new jr(de.BASIC,de.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(de.PUBLIC),PUBLIC:new jr(de.PUBLIC,de.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new jr(de.BUILDER,de.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function jp(){return(0,Ac.default)(Qp)}function ri(t){return Object.values(aa).includes(t)}function Gp(t){return ri(t)?t:rr(t)}function dA(t){let e=Object.values(Qp).find(r=>t.includes(r._id));if(e)return(0,Ac.default)(e)}function NN(t,e){if(!e)return!1;let r=n=>t.find(i=>mt(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 sa(t){let e=jp(),r=Object.values(e).length+1;if(mt(t,de.ADMIN)||mt(t,de.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function PN(t){if(ri(t))return sa(t);let e=await Kp(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=>mt(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(ri(n.inherits))return sa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function UN(t,e){return t?e&&sa(t)>sa(e)?e:t:e}function mt(t,e){return rr(t)===rr(e)}function LN(t){let e;return t._id&&(e=Kr(t._id)),{...t,_id:e,inherits:hA(t.inherits,t.version)}}function oa(t,e,r){let n=dA(t);n||(t=rr(t));let i=e.find(s=>s._id&&mt(s._id,t));return!i&&!ri(t)&&r?.defaultPublic?(0,Ac.default)(Qp.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Kr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function MN(t,e){let r=Ji(),n=[];if(!ri(t)){let i=await r.tryGet(mA(t));i&&n.push(i)}return oa(t,n,e)}async function kN(t){await Ji().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:rr(r._id)})))}async function FN(t,e){let r=await Yp();if(mt(t,de.ADMIN))return r;let n=oa(t,r,e),i=[];return n&&(i=new Tc(r,e).walk(n)),i}async function fA(t){return(await Kp(t)).map(r=>r._id)}async function Kp(t,e){return FN(t,e)}function pA(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 BN(t){return(await Yp(t)).map(r=>r._id)}async function Yp(t){if(t)return rt(t,e);{let r;try{r=Ji()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(sc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Kr(a._id,a.version)));let i=jp(),s=[];!r||await $N(r)?s=[de.ADMIN,de.POWER,de.BASIC,de.PUBLIC]:s=[de.ADMIN,de.BASIC,de.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>mt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Kr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Kr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=pA(o.permissions,a);return n}}async function $N(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Vp.default.valid(r)?!0:!Vp.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var qp=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||mt(e,de.BUILDER)||mt(r,e)||mt(r,de.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await fA(r),this.userHierarchies[r]=n),n?.find(i=>mt(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 mA(t){return t?.startsWith("role")?t:rr(t)}function Kr(t,e){if(t.startsWith(`role${C}`)&&(ri(t)||e===Wp.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function hA(t,e){return t&&(typeof t=="string"?Kr(t,e):t.map(r=>Kr(r,e)))}var cs=et.users.isBuilder,Yr=et.users.isAdmin,gA=et.users.isGlobalBuilder,EA=et.users.isAdminOrBuilder,Hr=et.users.hasAdminPermissions,ht=et.users.hasBuilderPermissions,yA=et.users.hasAppBuilderPermissions;async function Vt(t){let e=et.users.isCreator(t);return!e&&t?await VN(t):e}async function VN(t){let e=t?.userGroups||[];if(e.length>0){let r=ie(),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(aa.ADMIN))}return!1}async function Sc(t,e){if(h.MULTI_TENANCY){let r=await ia(t);if(r!=null&&r.tenantId!==e)throw new ar(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Qr(t);if(r&&r.verified&&r.tenantId!==e)throw new ar(t)}}async function Oc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await os(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var fs={};v(fs,{account:()=>UA,ai:()=>BA,analytics:()=>xc,app:()=>LA,auditLog:()=>eS,auth:()=>Pc,automation:()=>MA,backfill:()=>HA,backfillCache:()=>Cc,backup:()=>ZA,datasource:()=>kA,email:()=>FA,environmentVariable:()=>XA,group:()=>zA,identification:()=>Ct,initAsyncEvents:()=>BL,installation:()=>pa,layout:()=>VA,license:()=>$A,org:()=>GA,plugin:()=>JA,processors:()=>rm,publishEvent:()=>T,query:()=>qA,role:()=>ya,rowAction:()=>tS,rows:()=>QA,screen:()=>WA,serve:()=>KA,shutdown:()=>$L,table:()=>jA,user:()=>Fe,view:()=>YA});var rm={};v(rm,{analyticsProcessor:()=>RA,init:()=>iP,processors:()=>ur});var xc={};v(xc,{enabled:()=>Ic});var Ic=async()=>wc();var OA=require("posthog-node");var GN=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",qN=t=>t==="served:app:preview"||t==="served:app";var TA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},AA=async t=>{if(!GN(t))return!1;let e=await WN(t);if(e){let r=new Date(e.timestamp);switch(TA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await _A(t,{timestamp:Date.now()}),!1):!0}}else return await _A(t,{timestamp:Date.now()}),!1},SA=t=>{let e=`eventsRateLimit:${t}`;return qN(t)&&(e=e+":"+Re()),e},WN=async t=>{let e=SA(t);return await Jn(e)},_A=async(t,e)=>{let r=SA(t),n=TA[t],i;switch(n){case"calendarDay":i=86400}await or(r,e,i)};var jN=["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"],ua=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new OA.PostHog(e)}async processEvent(e,r,n,i){if(jN.includes(e)||await AA(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Re();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 IA=ua;var KN=["installation:version:upgraded","installation:version:downgraded"],YN=["installation","tenant"],ca=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new IA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!KN.includes(e)&&!await Ic()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!YN.includes(e.type)&&!await Ic()||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 Jp=h.SELF_HOSTED&&!h.isDev(),la=class{async processEvent(e,r,n){Jp||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Jp||console.log("[audit] identified",e)}async identifyGroup(e){Jp||console.log("[audit] group identified",e)}shutdown(){}};var tm={};v(tm,{JobQueue:()=>ls,createQueue:()=>ni,shutdown:()=>tP});var xA=j(require("events"));function HN(t,e,r){return{id:_e(),timestamp:Date.now(),queue:t,data:e,opts:r}}var Zp=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new xA.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(HN(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}},wA=Zp;var Xp=j(require("bull"));var ls=(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))(ls||{});function bA(t,e,r){ZN(t,e),r&&zN(t,r)}function zN(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 gt(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 JN={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function ZN(t,e){let r=JN[e];function n(i,s){let o=i.data.event?.appId;if(o)return _p(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...gt(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...gt(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...gt(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...gt(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...gt(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...gt(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...gt(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...gt(r,"paused"))}).on("resumed",()=>{console.info(...gt(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...gt(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...gt(r,"drained"))}).on("removed",i=>{console.info(...gt(r,"removed",{job:i}))})}var XN=we.fromMinutes(5).toMs(),eP=we.fromSeconds(30).toMs(),em=we.fromSeconds(60).toMs(),da=[],bc;async function DA(){for(let t of da)await t.clean(em,"completed"),await t.clean(em,"failed")}function ni(t,e={}){let n={redis:Gi(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:XN,lockRenewTime:eP}};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 Xp.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new wA(t,n):i=new Xp.default(t,n),bA(i,t,e?.removeStalledCb),da.push(i),!bc&&!h.isTest()&&(bc=vo(DA,em),DA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function tP(){if(bc&&Co(bc),da.length){for(let t of da)await t.close();da=[]}console.log("Queues shutdown")}var ds=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ni("auditLogQueue"),t.auditLogQueue.process(async n=>ve(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&&Cp(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Re(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var fa=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 RA=new ca,rP=new la,nP=new ds;function iP(t){return ds.init(t)}var ur=new fa([RA,rP,nP]);var Dc={};v(Dc,{checkInstallVersion:()=>aP,getInstall:()=>ma,getInstallFromDB:()=>im});var nm=j(require("semver"));var ma=async()=>qr("installation",86400,im,{useTenancy:!1});async function sP(t){let e={_id:pe.PLATFORM_INFO.docs.install,installId:_e(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return im();throw r}}var im=async()=>rt(pe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(pe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await sP(t);else throw r}return e}),oP=async t=>{try{await rt(pe.PLATFORM_INFO.name,async e=>{let r=await ma();r.version=t,await e.put(r),await es("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},aP=async()=>{let t=await ma(),e=t.version,r=h.VERSION;try{if(e!==r){let n=nm.default.gt(r,e),i=nm.default.lt(r,e);await oP(r)&&(await To({_id:t.installId,type:"installation"},async()=>{n?await pa.upgraded(e,r):i&&await pa.downgraded(e,r)}),await Ct.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Gn(`Invalid version "${r}" - is it semver?`):Gn("Failed to retrieve version",n)}};var uP=async()=>{let t=mf(),e=Ea(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await ii(),i=ha();return{id:vA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await ii(),i=await Rc(Q()),s=ha();return{id:vA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Rc(Q()),s=await ii(),o=n.account,a;return o?a=o.hosting:a=ha(),{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")},cP=async(t,e)=>{let r=t,n="installation",i=ha(),s=h.VERSION,o=Ea(),a={id:r,type:n,hosting:i,version:s,environment:o};await sm(a,e),await ga({...a,id:`$${n}_${r}`},e)},lP=async(t,e,r)=>{let n=await Rc(t),i="tenant",s=await ii(),o=Ea(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await sm(a,r),await ga({...a,id:`$${i}_${n}`},r)},dP=async(t,e,r)=>{let n=t._id,i=await Rc(t.tenantId),s="user",o=ht(t),a=Hr(t),u;Ma(t)&&(u=t.providerType);let l=(await os([t.email])).length>0,d=!!e&&l&&e.verified,m=await ii(),f=e?e.hosting:ha(),p=Ea();await ga({id:n,type:s,hosting:f,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:p},r)},fP=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=La(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await ii(),c=Ea();if(Ua(t)){let d=await Nt(t.email);d?._id&&(e=d._id)}await ga({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},ga=async(t,e)=>{await ur.identify(t,e)},sm=async(t,e)=>{await ur.identifyGroup(t,e)},Ea=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,ha=()=>h.SELF_HOSTED?"self":"cloud",ii=async()=>pP()?"account-portal":(await ma()).installId,Rc=async t=>h.SELF_HOSTED?CA(t):t,CA=async t=>ve(t,()=>qr("uniqueTenantId",86400,async()=>{let e=ie(),r=await vc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${_e()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),pP=()=>h.SERVICE==="account-portal",vA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ct={getCurrentIdentity:uP,identifyInstallationGroup:cP,identifyTenantGroup:lP,identifyUser:dP,identifyAccount:fP,identify:ga,identifyGroup:sm,getInstallationId:ii,getUniqueTenantId:CA};var Cc={};v(Cc,{end:()=>hP,isAlreadySent:()=>um,isBackfillingEvent:()=>am,recordEvent:()=>om,start:()=>mP});var mP=async t=>EP({eventWhitelist:t}),om=async(t,e)=>{let r=cm(t,e);await or(r,e,void 0,{useTenancy:!1})},hP=async()=>{await yP(),await _P()},gP=async()=>Jn("backfillMetadata"),EP=async t=>or("backfillMetadata",t),yP=async()=>{await zo("backfillMetadata")},_P=async()=>{let t=cm(),e=await uc(t);for(let r of e)await zo(r,{useTenancy:!1})},am=async t=>{let r=(await gP())?.eventWhitelist;return!!(r&&r.includes(t))},um=async(t,e)=>{let r=cm(t,e);return!!await Jn(r,{useTenancy:!1})},TP={"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}`},cm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=TP[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var cr;function Nc(){cr=ni("systemEventQueue")}async function NA(){cr&&await cr.close()}async function PA(t){cr||Nc();let{event:e,identity:r}=t;mh.indexOf(e)!==-1&&r.tenantId&&await cr.add(t)}var T=async(t,e,r,n)=>{let i=n||await Ct.getCurrentIdentity();if(!(n?!1:await am(t))){await PA({event:t,identity:i,properties:e,timestamp:r}),await ur.processEvent(t,i,e,r);return}await um(t,e)||(await ur.processEvent(t,i,e,r),await om(t,e))};async function AP(t,e){let r={tenantId:t.tenantId};await T("account:created",r,void 0,e)}async function SP(t){let e={tenantId:t.tenantId};await T("account:deleted",e)}async function OP(t){let e={tenantId:t.tenantId};await T("account:verified",e)}var UA={created:AP,deleted:SP,verified:OP};var IP=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await T("app:created",r,e)};async function xP(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await T("app:updated",e)}async function wP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:deleted",e)}async function bP(t,e){let r={appId:t.appId,audited:{name:t.name}};await T("app:published",r,e)}async function DP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:unpublished",e)}async function RP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:file:imported",e)}async function vP(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await T("app:duplicated",r)}async function CP(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await T("app:template:imported",r)}async function NP(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await T("app:version:updated",n)}async function PP(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await T("app:version:reverted",n)}async function UP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:reverted",e)}async function LP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:exported",e)}var LA={created:IP,updated:xP,deleted:wP,published:bP,unpublished:DP,fileImported:RP,duplicated:vP,templateImported:CP,versionUpdated:NP,versionReverted:PP,reverted:UP,exported:LP};async function MP(t,e){let n={userId:(await Ct.getCurrentIdentity()).id,source:t,audited:{email:e}};await T("auth:login",n)}async function kP(t){let r={userId:(await Ct.getCurrentIdentity()).id,audited:{email:t}};await T("auth:logout",r)}async function FP(t,e){let r={type:t};await T("auth:sso:created",r,e)}async function BP(t){let e={type:t};await T("auth:sso:updated",e)}async function $P(t,e){let r={type:t};await T("auth:sso:activated",r,e)}async function VP(t){let e={type:t};await T("auth:sso:deactivated",e)}var Pc={login:MP,logout:kP,SSOCreated:FP,SSOUpdated:BP,SSOActivated:$P,SSODeactivated:VP};async function GP(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 T("automation:created",r,e)}async function qP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await T("automation:trigger:updated",e)}async function WP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await T("automation:deleted",e)}async function QP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await T("automation:tested",e)}var jP=async(t,e)=>{let r={count:t};await T("automations:run",r,e)};async function KP(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 T("automation:step:created",n,r)}async function YP(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 T("automation:step:deleted",r)}var MA={created:GP,triggerUpdated:qP,deleted:WP,tested:QP,run:jP,stepCreated:KP,stepDeleted:YP};function lm(t){return!Object.values(Ca).includes(t.source)}async function HP(t,e){let r={datasourceId:t._id,source:t.source,custom:lm(t)};await T("datasource:created",r,e)}async function zP(t){let e={datasourceId:t._id,source:t.source,custom:lm(t)};await T("datasource:updated",e)}async function JP(t){let e={datasourceId:t._id,source:t.source,custom:lm(t)};await T("datasource:deleted",e)}var kA={created:HP,updated:zP,deleted:JP};async function ZP(t){let e={};await T("email:smtp:created",e,t)}async function XP(){let t={};await T("email:smtp:updated",t)}var FA={SMTPCreated:ZP,SMTPUpdated:XP};async function eU(t){let e={};await T("ai:config:created",e,t)}async function tU(){let t={};await T("ai:config:updated",t)}var BA={AIConfigCreated:eU,AIConfigUpdated:tU};async function rU(t,e){let r={accountId:t.accountId,...e};await T("license:plan:changed",r)}async function nU(t){let e={accountId:t.accountId};await T("license:activated",e)}async function iU(t){let e={accountId:t.accountId};await T("license:checkout:opened",e)}async function sU(t){let e={accountId:t.accountId};await T("license:checkout:success",e)}async function oU(t){let e={accountId:t.accountId};await T("license:portal:opened",e)}async function aU(t){let e={accountId:t.accountId};await T("license:payment:failed",e)}async function uU(t){let e={accountId:t.accountId};await T("license:payment:recovered",e)}var $A={planChanged:rU,activated:nU,checkoutOpened:iU,checkoutSuccess:sU,portalOpened:oU,paymentFailed:aU,paymentRecovered:uU};async function cU(t,e){let r={layoutId:t._id};await T("layout:created",r,e)}async function lU(t){let e={layoutId:t};await T("layout:deleted",e)}var VA={created:cU,deleted:lU};async function dU(t){let e={};await T("org:info:name:updated",e,t)}async function fU(t){let e={};await T("org:info:logo:updated",e,t)}async function pU(t){let e={};await T("org:platformurl:updated",e,t)}async function mU(){let t={};await T("analytics:opt:out",t)}async function hU(){let t={};await T("analytics:opt:out",t)}var GA={nameUpdated:dU,logoUpdated:fU,platformURLUpdated:pU,analyticsOptOut:mU,analyticsOptIn:hU};var gU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:created",n,r)},EU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:updated",r)},yU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:deleted",r)},_U=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await T("query:import",n)},TU=async(t,e)=>{let r={count:t};await T("queries:run",r,e)},AU=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:previewed",r)},qA={created:gU,updated:EU,deleted:yU,imported:_U,run:TU,previewed:AU};async function SU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await T("role:created",r,e)}async function OU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await T("role:updated",e)}async function IU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await T("role:deleted",e)}async function xU(t,e,r){let n={userId:t._id,roleId:e};await T("role:assigned",n,r)}async function wU(t,e){let r={userId:t._id,roleId:e};await T("role:unassigned",r)}var ya={created:SU,updated:OU,deleted:IU,assigned:xU,unassigned:wU};async function bU(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await T("screen:created",r,e)}async function DU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await T("screen:deleted",e)}var WA={created:bU,deleted:DU};var RU=async(t,e)=>{let r={count:t};await T("rows:created",r,e)},vU=async(t,e)=>{let r={tableId:t._id,count:e};await T("rows:imported",r)},QA={created:RU,imported:vU};async function CU(t,e){let r={tableId:t._id,audited:{name:t.name}};await T("table:created",r,e)}async function NU(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 T("table:updated",i)}async function PU(t){let e={tableId:t._id,audited:{name:t.name}};await T("table:deleted",e)}async function UU(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await T("table:exported",r)}async function LU(t){let e={tableId:t._id,audited:{name:t.name}};await T("table:imported",e)}var jA={created:CU,updated:NU,deleted:PU,exported:UU,imported:LU};async function MU(t){let e={timezone:t};await T("served:builder",e)}async function kU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await T("served:app",n)}async function FU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await T("served:app:preview",r)}var KA={servedBuilder:MU,servedApp:kU,servedAppPreview:FU};async function BU(t,e){let r={userId:t._id,viaScim:Rt(),audited:{email:t.email}};await T("user:created",r,e)}async function $U(t){let e={userId:t._id,viaScim:Rt(),audited:{email:t.email}};await T("user:updated",e)}async function VU(t){let e={userId:t._id,viaScim:Rt(),audited:{email:t.email}};await T("user:deleted",e)}async function GU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:onboarding:complete",e)}async function qU(t,e){let r={userId:t._id,audited:{email:t.email}};await T("user:admin:assigned",r,e)}async function WU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:admin:removed",e)}async function QU(t,e){let r={userId:t._id,audited:{email:t.email}};await T("user:builder:assigned",r,e)}async function jU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:builder:removed",e)}async function KU(t){let e={audited:{email:t}};await T("user:invited",e)}async function YU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:invite:accepted",e)}async function HU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:force:reset",e)}async function zU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:updated",e)}async function JU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:reset:requested",e)}async function ZU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:reset",e)}async function XU(t){let e={users:t};await T("user:data:collaboration",e)}var Fe={created:BU,updated:$U,deleted:VU,permissionAdminAssigned:qU,permissionAdminRemoved:WU,permissionBuilderAssigned:QU,permissionBuilderRemoved:jU,onboardingComplete:GU,invited:KU,inviteAccepted:YU,passwordForceReset:HU,passwordUpdated:zU,passwordResetRequested:JU,passwordReset:ZU,dataCollaboration:XU};async function eL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await T("view:created",r,e)}async function tL(t){let e={tableId:t.tableId};await T("view:updated",e)}async function rL(t){let e={tableId:t.tableId};await T("view:deleted",e)}async function nL(t,e){let r={tableId:t._id,format:e};await T("view:exported",r)}async function iL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await T("view:filter:created",n,r)}async function sL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await T("view:filter:updated",r)}async function oL(t){let e={tableId:t.tableId};await T("view:filter:deleted",e)}async function aL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await T("view:calculation:created",n,r)}async function uL(t){let e={tableId:t.tableId,calculation:t.calculation};await T("view:calculation:updated",e)}async function cL(t){let e={tableId:t.tableId,calculation:t.calculation};await T("view:calculation:deleted",e)}async function lL(t,e){let r={tableId:t};await T("view:join:created",r,e)}var YA={created:eL,updated:tL,deleted:rL,exported:nL,filterCreated:iL,filterUpdated:sL,filterDeleted:oL,calculationCreated:aL,calculationUpdated:uL,calculationDeleted:cL,viewJoinCreated:lL};async function dL(t){let e={currentVersion:t};await T("installation:version:checked",e)}async function fL(t,e){let r={from:t,to:e};await T("installation:version:upgraded",r)}async function pL(t,e){let r={from:t,to:e};await T("installation:version:downgraded",r)}async function mL(){let t={};await T("installation:firstStartup",t)}var pa={versionChecked:dL,upgraded:fL,downgraded:pL,firstStartup:mL};var ms=!h.SELF_HOSTED&&!h.isDev();async function hL(t){ms||await T("app:backfill:succeeded",t)}async function gL(t){if(ms)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await T("app:backfill:failed",e)}async function EL(t){ms||await T("tenant:backfill:succeeded",t)}async function yL(t){if(ms)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await T("tenant:backfill:failed",e)}async function _L(){if(ms)return;let t={};await T("installation:backfill:succeeded",t)}async function TL(t){if(ms)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await T("installation:backfill:failed",e)}var HA={appSucceeded:hL,appFailed:gL,tenantSucceeded:EL,tenantFailed:yL,installationSucceeded:_L,installationFailed:TL};async function AL(t,e){let r={groupId:t._id,viaScim:Rt(),audited:{name:t.name}};await T("user_group:created",r,e)}async function SL(t){let e={groupId:t._id,viaScim:Rt(),audited:{name:t.name}};await T("user_group:updated",e)}async function OL(t){let e={groupId:t._id,viaScim:Rt(),audited:{name:t.name}};await T("user_group:deleted",e)}async function IL(t,e){let r={count:t,groupId:e._id,viaScim:Rt(),audited:{name:e.name}};await T("user_group:user_added",r)}async function xL(t,e){let r={count:t,groupId:e._id,viaScim:Rt(),audited:{name:e.name}};await T("user_group:users_deleted",r)}async function wL(t){let e={groupId:t,onboarding:!0};await T("user_group:onboarding_added",e)}async function bL(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await T("user_group:permissions_edited",e)}var zA={created:AL,updated:SL,deleted:OL,usersAdded:IL,usersDeleted:xL,createdOnboarding:wL,permissionsEdited:bL};async function DL(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await T("plugin:init",e)}async function RL(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await T("plugin:imported",e)}async function vL(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await T("plugin:deleted",e)}var JA={init:DL,imported:RL,deleted:vL};async function CL(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await T("app:backup:restored",e)}async function NL(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await T("app:backup:triggered",s)}var ZA={appBackupRestored:CL,appBackupTriggered:NL};async function PL(t,e){let r={name:t,environments:e};await T("environment_variable:created",r)}async function UL(t){let e={name:t};await T("environment_variable:deleted",e)}async function LL(t){let e={userId:t};await T("environment_variable:upgrade_panel_opened",e)}var XA={created:PL,deleted:UL,upgradePanelOpened:LL};async function ML(t){let e={filters:t};await T("audit_log:filtered",e)}async function kL(t){let e={filters:t};await T("audit_log:downloaded",e)}var eS={filtered:ML,downloaded:kL};async function FL(t,e){await T("row_action:created",t,e)}var tS={created:FL};function BL(){}var $L=()=>{ur.shutdown(),console.log("Events shutdown")};var dm=async t=>{await Fe.deleted(t),ht(t)&&await Fe.permissionBuilderRemoved(t),Hr(t)&&await Fe.permissionAdminRemoved(t)},VL=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await ya.assigned(t,i)},GL=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await ya.unassigned(t,i)},qL=async(t,e)=>{let r=t.roles,n=e?.roles;await VL(t,r,n),await GL(t,r,n)},fm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ss(r)),await Ct.identifyUser(t,n),e?(await Fe.updated(t),QL(t,e)&&await Fe.permissionBuilderRemoved(t),KL(t,e)&&await Fe.permissionAdminRemoved(t),YL(t,e)&&await Fe.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Fe.passwordForceReset(t),t.password!==e.password&&await Fe.passwordUpdated(t)):await Fe.created(t),WL(t,e)&&await Fe.permissionBuilderAssigned(t),jL(t,e)&&await Fe.permissionAdminAssigned(t),await qL(t,e)},WL=(t,e)=>rS(t,e,ht),QL=(t,e)=>nS(t,e,ht),jL=(t,e)=>rS(t,e,Hr),KL=(t,e)=>nS(t,e,Hr),YL=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",rS=(t,e,r)=>!(!r(t)||e&&r(e)),nS=(t,e,r)=>!(r(t)||!e||!r(e));var Lc={};v(Lc,{createASession:()=>zL,endSession:()=>JL,getSession:()=>mm,getSessionsForUser:()=>Uc,invalidateSessions:()=>si,updateSessionTTL:()=>pm});var iS=require("uuid");var sS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):we.fromDays(7).toSeconds();function hs(t,e){return`${t}/${e}`}async function Uc(t){return t?(await(await kr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function si(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Uc(t)).map(o=>({key:hs(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:hs(t,s)}))),i&&i.length>0){let s=await kr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||Wi(`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 zL(t,e){await si(t,{reason:"creation"});let r=await kr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,iS.v4)(),s=hs(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,sS),o}async function pm(t){let e=await kr(),r=hs(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,sS)}async function JL(t,e){await(await kr()).delete(hs(t,e))}async function mm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await kr()).get(hs(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var ym={};v(ym,{PASSWORD_MAX_LENGTH:()=>gm,PASSWORD_MIN_LENGTH:()=>hm,validatePassword:()=>Em});var hm=+(h.PASSWORD_MIN_LENGTH||12),gm=+(h.PASSWORD_MAX_LENGTH||512);function Em(t){return!t||t.length<hm?{valid:!1,error:`Password invalid. Minimum ${hm} characters.`}:t.length>gm?{valid:!1,error:`Password invalid. Maximum ${gm} characters.`}:{valid:!0}}var ZL=async t=>{let e=t._id;await vt.removeUser(t),await dm(t),await Jr.invalidateUser(e),await si(e,{reason:"bulk-deletion"})},Gt=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&&Yr(e)?!1:await t.features.isSSOEnforced()||Ma(e)?!0:(r||(r=await ss(Q())),!!(r&&r.email===e.email&&La(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 it("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Em(o);if(!d.valid)throw new it(d.error,400)}u=r.hashPassword?await Dp(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||Qi();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ie().allDocs(jn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await kc(e,{})).length}}static async getUsersByAppAccess(e){return await _m(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Nt(e)}static async getUser(e){let r=await oi(e);return r&&delete r.password,r}static async bulkGet(e){return await Mc(e)}static async bulkUpdate(e){return await _a(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ie(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await oi(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 Nt(s),c&&c._id!==o))throw new ar(s);let l=c?0:1,d=await Vt(c)!==await Vt(e)?1:0;return t.quotas.addUsers(l,d,async()=>{await Sc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=Tm(m,c)),!c&&u?.length&&(m.roles={...u});let f=[];if(!o&&a.length>0)for(let p of a)f.push(t.groups.addUsers(p,[m._id]));try{let p=await i.put(m);return m._rev=p.rev,await fm(m,c),c&&m.email!==c.email&&await vt.removeUser({email:c.email}),await vt.addUser(n,m._id,m.email,m.ssoId),await Jr.invalidateUser(p.id),await Promise.all(f),i.get(m._id)}catch(p){throw p.status===409?"User exists already":p}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await $p(a),c=[];for(let d of e){if(s.find(m=>m.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await Vt(d)&&o.push(d)}let l=await ss(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(f=>{i.push(t.buildUser(f,{hashPassword:!0,requirePassword:f.requirePassword},n,void 0,l))});let d=await Promise.all(i);await _a(d);for(let f of d)await vt.addUser(n,f._id,f.email),await fm(f,void 0);let m=d.map(f=>({_id:f._id,email:f.email}));if(Array.isArray(m)&&r){let f=[],p=m.map(g=>g._id);for(let g of r)f.push(t.groups.addUsers(g,p));await Promise.all(f)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Oc(e);i&&(e=e.filter(f=>f.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(f=>f.userId)})).rows.map(f=>f.doc),a=o.map(f=>({...f,_deleted:!0})),u=await _a(a),l=(await Promise.all(o.map(Vt))).filter(f=>!!f).length,d=[];for(let f of o){let g=(await ia(f._id)).ssoId;g&&(await fc(g)).filter(E=>E.ssoId==null).forEach(E=>{d.push({...E,_deleted:!0})}),await ZL(f)}await nt().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((f,p)=>(f[p._id]=p,f),m),u.forEach(f=>{let p=m[f.id].email;f.ok?n.successful.push({_id:f.id,email:p}):n.unsuccessful.push({_id:f.id,email:p,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Qr(o))throw n.userId===tr()._id?new it('Please visit "Account" to delete this user',400):new it("Account holder cannot be deleted",400)}await vt.removeUser(n),await r.remove(i,n._rev);let s=await Vt(n)?1:0;await t.quotas.removeUsers(1,s),await dm(n),await Jr.invalidateUser(i),await si(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 es("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 Aa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Mc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Aa(n)),n}async function e0(){let t=ie(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Le}`})).rows.map(n=>n.id)}async function t0(){let t=ie(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Le}`,include_docs:!0})).rows.map(n=>n.doc)}async function _a(t){return await ie().bulkDocs(t)}async function oi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Aa(n)),n}async function Nt(t,e){if(t==null)throw"Must supply an email address to view";let r=await nr("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=Aa(n)),n}async function r0(t){try{let e=await Nt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function kc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=ic(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await nr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Aa(s)),s}async function _m(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 lp(Dt(),i)).rows}function oS(t,e){if(e)return nc(tt(t),e._id)}async function aS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await nr("by_email2",{...e,startkey:i,endkey:`${n}${Le}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Aa(o)),o}var n0=8;async function uS({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??n0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await oi(e.equal._id)]:r?(u=await kc(r,a),l=d=>oS(r,d)):e?.string?.email?(u=await aS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Mc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(jn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Dr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(jn(null,a))).rows.map(m=>m.doc),np(u,s,{paginate:!0,property:c,getKey:l})}async function i0(){return(await ap("by_email2",{limit:0,include_docs:!1})).total_rows}async function s0(){let t=0;async function e(r){let n=await uS({bookmark:r}),i=await Promise.all(n.data.map(Vt));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function o0(t){return delete t.admin,delete t.builder,t}function Tm(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 a0(t,e){let r=tt(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Gt.save(t,{hashPassword:!1})}async function u0(t,e){let r=tt(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Gt.save(t,{hashPassword:!1})}var cS=3600;async function c0(t,e){let n=await xp(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Qr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function l0(t){let e=await Gt.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 Qr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Sa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=c0),!e)try{e=Q()}catch{e=await vt.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,cS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!et.users.isGlobalBuilder(s)&&await ve(e,async()=>{let o=await Gt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function d0(t){let e=await Go(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await l0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,cS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Oa(t){await(await Go()).delete(t)}var Im={};v(Im,{Writethrough:()=>Sm});var lS=1e4,Am=null;async function Om(){if(!Am){let t=await Hf();Am=new Hn(t)}return Am}function Fc(t,e){return t.name+e}function dS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function f0(t,e,r=lS){let n=await Om(),i=e._id,s;i&&(s=await n.get(Fc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ns({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;Wi("Ignoring conflict in write-through cache")}})).executed||Wi("Ignoring redlock conflict in write-through cache")),s=dS(a,o?null:s?.lastWrite),a._id&&await n.store(Fc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function p0(t,e){let r=await Om(),n=Fc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=dS(s),await r.store(n,i)}return i.doc}async function m0(t,e,r){let n=await Om();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(Fc(t,i))}finally{await t.remove(i,r)}}var Sm=class{constructor(e,r=lS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return f0(this.db,e,r)}async get(e){return p0(this.db,e)}async remove(e,r){return m0(this.db,e,r)}};var xm={};v(xm,{createCode:()=>g0,getCode:()=>E0,invalidateCode:()=>y0});var h0=we.fromHours(1).toSeconds();async function g0(t,e){let r=_e();return await(await qo()).store(r,{userId:t,info:e},h0),r}async function E0(t){let r=await(await qo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function y0(t){await(await qo()).delete(t)}var bm={};v(bm,{DocWritethrough:()=>wm,DocWritethroughProcessor:()=>Ia,getProcessor:()=>T0,init:()=>fS});var _0=100,Bc,Ia=class t{static get queue(){return t._queue||(t._queue=ni("docWritethroughQueue",{jobOptions:{attempts:_0}})),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=Ue(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},wm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ia.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function fS(){return Bc=new Ia().init(),Bc}function T0(){return Bc||fS()}function vm(t){return`config${C}${t}`}async function Pt(t){let e=ie();try{return await e.get(vm(t))}catch(r){if(r.status===404)return;throw r}}async function A0(t){return ie().put(t)}async function vc(){let t=await Pt("settings");return t||(t={_id:vm("settings"),type:"settings",config:{}}),t.config.platformUrl=await xa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await wc({config:t.config}),t}async function Cm(){return(await vc()).config}async function xa(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 Pt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var wc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await qr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await Pt("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 S0(){return await Pt("google")}async function $c(){return(await S0())?.config}async function Nm(){if(!h.SELF_HOSTED)return Dm();let t=await $c();return(!t||!t.activated)&&(t=Dm()),t}function Dm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function O0(){return Pt("logos_oidc")}async function I0(){return Pt("oidc")}async function x0(){let t=(await I0())?.config;return t?.configs&&t.configs[0]}async function Pm(t){let e=(await Pt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function pS(){return Pt("smtp")}async function w0(t){let e=await pS();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 b0(){return(await Pt("scim"))?.config}async function D0(){return Pt("ai")}var Lm={};v(Lm,{DEFINITIONS:()=>Um,backPopulateMigrations:()=>v0,getMigrationsDoc:()=>mS,runMigration:()=>hS,runMigrations:()=>gS});var mS=async t=>{try{return await t.get("migrations")}catch(e){if(e.status&&e.status===404)return{_id:"migrations"};throw e}},v0=async t=>{let e=Um.filter(r=>r.type===t.type).map(r=>({...r,fn:async()=>{}}));await gS(e,{noOp:t})},hS=async(t,e={})=>{let r=t.type,n=t.name,i=t.silent,s=c=>{i||console.log(c)},o;if(r==="global")o=[Dt()];else if(r==="app")if(e.noOp){if(!e.noOp.appId)throw new Error("appId is required for noOp app migration");o=[e.noOp.appId]}else o=(await Kn(t.appOpts)).map(l=>l.appId);else if(r==="installation")o=[pe.PLATFORM_INFO.name];else throw new Error(`Unrecognised migration type [${r}]`);let a=o.length,u=0;for(let c of o){u++;let l=a>1?`[${u}/${a}]`:"",d=Ue(c);try{let m=await mS(d);if(m[n])if(e.force&&e.force[r]&&e.force[r].includes(n))s(`[Migration: ${n}] [DB: ${c}] Forcing`);else return;if(!e.noOp){if(s(`[Migration: ${n}] [DB: ${c}] Running ${l}`),t.preventRetry){m[n]=Date.now();let f=await d.put(m);m._rev=f.rev}r==="app"?await Tp(d.name,async()=>{await t.fn(d)}):await t.fn(d),s(`[Migration: ${n}] [DB: ${c}] Complete`)}m[n]=Date.now(),await d.put(m)}catch(m){throw console.error(`[Migration: ${n}] [DB: ${c}] Error: `,m),m}}},gS=async(t,e={})=>{let r;h.MULTI_TENANCY?e.noOp?r=[e.noOp.tenantId]:!e.tenantIds||!e.tenantIds.length?r=await ra.getTenantIds():r=e.tenantIds:r=[le],r.length>1?console.log(`Checking migrations for ${r.length} tenants`):console.log("Checking migrations");let n=0;for(let i of r){n++,r.length>1&&console.log(`Progress [${n}/${r.length}]`);for(let s of t)await ve(i,async()=>await hS(s,e))}console.log("Migrations complete")};var Um=[{type:"global",name:"user_email_view_casing"},{type:"global",name:"sync_quotas_2"},{type:"app",name:"app_urls"},{type:"app",name:"event_app_backfill"},{type:"app",name:"table_settings_links_to_actions"},{type:"global",name:"event_global_backfill"},{type:"installation",name:"event_installation_backfill"},{type:"global",name:"global_info_sync_users"}];var Mm={};v(Mm,{BUILDER:()=>L0,BUILTIN_PERMISSIONS:()=>Vc,CREATOR:()=>M0,GLOBAL_BUILDER:()=>k0,PermissionImpl:()=>fe,PermissionLevel:()=>Ts,PermissionType:()=>Pa,doesHaveBasePermission:()=>P0,getAllowedLevels:()=>TS,getBuiltinPermissionByID:()=>N0,getBuiltinPermissions:()=>C0,isPermissionLevelHigherThanRead:()=>U0,levelToNumber:()=>_S});var ES=j(require("lodash/flatten")),yS=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 TS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Vc={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 C0(){return(0,yS.default)(Vc)}function N0(t){return Object.values(Vc).find(r=>r._id===t)}function P0(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Vc),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&&TS(o.level).indexOf(e)!==-1)return!0;return!1}function U0(t){return _S(t)>1}var L0="builder",M0="creator",k0="globalBuilder";var Bm={};v(Bm,{FlagSet:()=>qc,all:()=>V0,flags:()=>km,init:()=>F0,isEnabled:()=>$0,parseEnvFlags:()=>Qc,shutdown:()=>B0,testutils:()=>Fm});var Wc=j(require("crypto"));var AS=require("posthog-node"),SS=j(require("dd-trace"));var OS=require("lodash");var Gc;function F0(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Gc=new AS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:we.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function B0(){Gc?.shutdown()}function Qc(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 qc=class{constructor(e){this.flagSchema=e;this.setId=Wc.randomUUID()}defaults(){return(0,OS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await SS.default.trace("features.fetch",async e=>{let r=Op(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:l,key:d,value:m}of Qc(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(d),!!this.isFlagName(d))){if(typeof i[d]!="boolean")throw new Error(`Feature: ${d} is not a boolean`);i[d]=m,n[`flags.${d}.source`]="environment"}let a=tr(),u=a?._id;if(!u){let l=Ap();l&&(u=Wc.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,Gc&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await Gc.getAllFlags(u,{personProperties:l});for(let[m,f]of Object.entries(d)){if(!this.isFlagName(m)){console.warn(`Unexpected posthog flag "${m}": ${f}`);continue}if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${f}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=f,n[`flags.${m}.source`]="posthog"}catch(p){console.warn(`Error parsing posthog flag "${m}": ${f}`,p)}}}Ip(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},km=new qc(_h);async function $0(t){return await km.isEnabled(t)}async function V0(){return await km.fetch()}var Fm={};v(Fm,{setFeatureFlags:()=>IS,withFeatureFlags:()=>W0});function G0(){let t={};for(let{tenantId:e,key:r,value:n}of Qc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function q0(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function IS(t,e){let r=G0();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=q0(r);return Ao({TENANT_FEATURE_FLAGS:n})}function W0(t,e,r){let n=IS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Jm={};v(Jm,{adminOnly:()=>rl,auditLog:()=>Zc,authError:()=>Ce,buildAuthMiddleware:()=>CM,buildCsrfMiddleware:()=>PM,buildTenancyMiddleware:()=>NM,builderOnly:()=>il,builderOrAdmin:()=>nl,google:()=>lr,internalApi:()=>el,joiValidator:()=>ba,oidc:()=>dr,passport:()=>UM,platformLogout:()=>BM,refreshOAuthToken:()=>kM,ssoCallbackUrl:()=>Zr,updateUserOAuth:()=>FM});var zm={};v(zm,{adminOnly:()=>rl,auditLog:()=>Zc,authError:()=>Ce,authenticated:()=>Jc,builderOnly:()=>il,builderOrAdmin:()=>nl,correlation:()=>FS,csp:()=>WS,csrf:()=>tl,datasource:()=>RM,errorHandling:()=>$S,google:()=>lr,internalApi:()=>el,ip:()=>jS,joiValidator:()=>ba,local:()=>gs,oidc:()=>dr,pino:()=>MS,querystringToBody:()=>VS,ssoCallbackUrl:()=>Zr,tenancy:()=>Xc});var gs={};v(gs,{authenticate:()=>K0,options:()=>j0});function Ce(t,e,r){return t(r,null,{message:e})}async function Zr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Cm(),n="/api/global/auth";return Vr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var $m="Invalid credentials",Q0="This account has expired. Please reset your password",j0={passReqToCallback:!0};async function K0(t,e,r,n){if(!e)return Ce(n,"Email Required");if(!r)return Ce(n,"Password Required");let i=await Nt(e);return i==null?(console.info(`user=${e} could not be found`),Ce(n,$m)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ce(n,$m)):i.password?await Rp(r,i.password)?(delete i.password,n(null,i)):Ce(n,$m):(console.info(`user=${e} has no password set`,i),Ce(n,Q0))}var lr={};v(lr,{buildVerifyFn:()=>bS,getCallbackUrl:()=>z0,strategyFactory:()=>Vm});var wa=t=>Promise.resolve(t);async function jc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ce(r,"sso user id required");if(!t.email)return Ce(r,"sso user email required");let i=Qi(t.userId),s;try{s=await oi(i)}catch(a){if(!a.status||a.status!==404)return Ce(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Nt(t.email)),!s&&e)return Ce(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 Y0(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ce(r,"Error saving user",a)}return r(null,o)}async function Y0(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 H0=require("passport-google-oauth").OAuth2Strategy;function bS(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return jc(s,!0,i,t)}}async function Vm(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 H0({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function z0(t){return Zr("google",t)}var dr={};v(dr,{buildVerifyFn:()=>RS,fetchStrategyConfig:()=>eM,getCallbackUrl:()=>tM,strategyFactory:()=>X0});var DS=j(require("node-fetch"));var J0=require("@techpass/passport-openidconnect").Strategy;function RS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:Z0(n,i),oauth2:{accessToken:s,refreshToken:o}};return jc(l,!1,c,t)}}function Z0(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Np(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function X0(t,e){try{let r=RS(e),n=new J0(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function eM(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 tM(){return Zr("oidc")}var Gm={};v(Gm,{postAuth:()=>iM,preAuth:()=>nM});var rM=require("passport-google-oauth").OAuth2Strategy;async function vS(){let t=await Nm();if(!t)throw new Error("No google configuration found");return t}async function nM(t,e,r){let n=await vS(),s=`${await xa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Vm(n,s,wa);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 iM(t,e,r){let n=await vS(),s=`${await xa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=Zn(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new rM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Wr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=_e();await or(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var sM=/\/:(.*?)(\/.*)?$/g,ai=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(sM);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}}):[],ui=(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 Ym={};v(Ym,{SecretOption:()=>PS,decrypt:()=>Km,decryptFile:()=>dM,encrypt:()=>uM,encryptFile:()=>cM,getSecret:()=>jm});var fr=j(require("crypto")),Xr=j(require("fs")),Wm=j(require("zlib"));var qm=require("path"),Kc="aes-256-ctr",NS="-",oM=1e4,aM=32,Yc=16,Qm=16,PS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(PS||{});function jm(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 Hc(t,e){return fr.default.pbkdf2Sync(t,e,oM,aM,"sha512")}function uM(t,e="api"){let r=fr.default.randomBytes(Yc),n=Hc(jm(e),r),i=fr.default.createCipheriv(Kc,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${NS}${a}`}function Km(t,e="api"){let[r,n]=t.split(NS),i=Buffer.from(r,"hex"),s=Hc(jm(e),i),o=fr.default.createDecipheriv(Kc,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function cM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,qm.join)(t,e);if(Xr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=Xr.default.createReadStream(i),o=Xr.default.createWriteStream((0,qm.join)(t,n)),a=fr.default.randomBytes(Yc),u=fr.default.randomBytes(Qm),c=Hc(r,a),l=fr.default.createCipheriv(Kc,c,u);return o.write(a),o.write(u),s.pipe(Wm.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function lM(t){let e=Xr.default.createReadStream(t),r=await CS(e,Yc),n=await CS(e,Qm);return e.close(),{salt:r,iv:n}}async function dM(t,e,r){if(Xr.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await lM(t),s=Xr.default.createReadStream(t,{start:Yc+Qm}),o=Xr.default.createWriteStream(e),a=Hc(r,n),u=fr.default.createDecipheriv(Kc,a,i),c=Wm.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),d(m)}),u.on("error",m=>{o.close(),d(m)}),c.on("error",m=>{o.close(),d(m)}),o.on("error",m=>{o.close(),d(m)})})}function CS(t,e){return new Promise((r,n)=>{let i=0,s=[];t.on("readable",()=>{let o;for(;(o=t.read(e-i))!==null;)s.push(o),i+=o.length;r(Buffer.concat(s))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var LS=j(require("dd-trace")),fM=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function pM(){return new Date(Date.now()-fM).toISOString()}function US(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}async function mM(t,e){if(ta(t))return{valid:!0,user:void 0};let n=Km(t).split(C)[0];return ve(n,async()=>{let i;try{let s=ie();i=await nr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Sa({userId:i,tenantId:n,populateUser:e})};throw new us})}function zc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function Jc(t=[],e={publicAllowed:!1}){let r=t?ai(t):[];return async(n,i)=>{let s=!1,o=zc(n,"x-budibase-api-version");ui(n,r)&&(s=!0);try{let u=zc(n,"x-budibase-token"),c=Zn(n,"budibase:auth")||lc(u),l=zc(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=zc(n,"x-budibase-tenant-id"),m=!1,f,p=!1,g;if(c&&!l){let E=c.sessionId,O=c.userId,S;try{S=await mm(O,E),e&&e.populateUser?f=await Sa({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):f=await Sa({userId:O,tenantId:S.tenantId,email:S.email}),f.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<pM()&&await pm(S),m=!0}catch(L){m=!1,console.error(`Auth Error: ${L.message}`),Wr(n,"budibase:auth")}}if(!m&&l){let E=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await mM(l,E);O&&(m=!0,g="api_key",f=S,p=!S)}!f&&d?f={tenantId:d}:f&&"password"in f&&delete f.password,m||(m=!1);let _=E=>E&&E.email;return _(f)&&LS.default.setUser({id:f._id,tenantId:f.tenantId,budibaseAccess:f.budibaseAccess,status:f.status}),US(n,{authenticated:m,user:f,internal:p,version:o,publicEndpoint:s,loginMethod:g}),_(f)?gf(f,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Wr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return US(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var hM=async(t,e)=>e(),Zc=hM;function Xc(t,e,r={noTenancyRequired:!1}){let n=ai(t),i=ai(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!ui(s,i)};!!ui(s,n)||(u.excludeStrategies=["query"]);let l=Zo(s,u);return s.set("x-budibase-tenant-id",l),ve(l,o)}}var el=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"),ta(r)||t.throw(403,"Unauthorized"),e()};var gM=["GET","HEAD","OPTIONS"],EM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function tl(t={noCsrfPatterns:[]}){let e=ai(t.noCsrfPatterns);return async(r,n)=>{if(ui(r,e)||gM.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!EM.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 rl=async(t,e)=>(!t.internal&&!Yr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var nl=async(t,e)=>{let r=Re(),n=h.isWorker()||!r?ht:h.isApps()?cs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Yr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var il=async(t,e)=>{let r=Re(),n=h.isWorker()||!r?ht:h.isApps()?cs: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 yM=require("koa-pino-logger"),_M=require("correlation-id");function TM(){return{logger:Xu,genReqId:_M.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 AM(){return h.HTTP_LOGGING?yM(TM()):(t,e)=>e()}var SM=AM(),MS=SM;var kS=require("uuid"),OM=require("correlation-id"),IM=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,kS.v4)()),OM.withId(r,()=>e())},FS=IM;function BS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of g_){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function xM(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:yc(r)};if(BS(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var $S=xM;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 qS=j(require("crypto")),GS={"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 wM(t,e){try{let r=qS.default.randomBytes(16).toString("base64"),n={...GS};n["script-src"]=[...GS["script-src"],`'nonce-${r}'`],t.state.nonce=r;let i=Object.entries(n).map(([s,o])=>`${s} ${o.join(" ")}`).join("; ");t.set("Content-Security-Policy",i),await e()}catch(r){console.error(`Error occurred in Content-Security-Policy middleware: ${r}`)}}var WS=wM;var ba={};v(ba,{body:()=>bM,params:()=>DM});var Hm=j(require("joi"));function QS(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:Hm.default.any().optional(),updatedAt:Hm.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 bM(t,e){return QS(t,"body",e)}function DM(t,e){return QS(t,"params",e)}var jS=async(t,e)=>t.ip?await Sp(t.ip,()=>e()):e();var RM={google:Gm};var KS=require("koa-passport"),vM=require("passport-local").Strategy,sl=require("passport-oauth2-refresh"),CM=Jc,NM=Xc,PM=tl,UM=KS;KS.use(new vM(gs.options,gs.authenticate));async function LM(t,e){let r=await dr.getCallbackUrl(),n,i;try{if(n=await dr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await dr.strategyFactory(n,wa)}catch{throw new Error("Could not refresh OAuth Token")}return sl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{sl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function MM(t,e){let r=await lr.getCallbackUrl(t),n;try{n=await lr.strategyFactory(t,r,wa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return sl.use(n),new Promise(i=>{sl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function kM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Pm(r);return n?LM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await $c();return n?MM(n,t):{err:{data:"Google configuration not found"}}}}}async function FM(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Oa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function BM(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=Zn(e,"budibase:auth"),s=await Uc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Wr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await si(r,{sessionIds:o,reason:"logout"}),await Pc.logout(e.user?.email),await Oa(r)}var Xm={};v(Xm,{validate:()=>WM});var D=j(require("joi")),$M=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Zm(t,e){let{error:r}=t.validate(e);if(r)throw r}function VM(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});Zm(e,t)}function GM(t){let e=D.default.object({type:D.default.string().allow(...Object.values(ll)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(cl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(dl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...$M),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});Zm(n,t)}function qM(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(pl)).required(),customType:D.default.string().allow(...Object.values(ml)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...Ah).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});Zm(n,t)}function WM(t){switch(t?.type){case"component":VM(t);break;case"datasource":GM(t);break;case"automation":qM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var eh={};v(eh,{Client:()=>ke,clients:()=>Fr,locks:()=>ei,utils:()=>Ku});var th={};v(th,{isBlacklisted:()=>jM,refreshBlacklist:()=>JS});var YS=j(require("dns")),al=j(require("net"));var HS=require("util"),ol,QM=(0,HS.promisify)(YS.default.lookup);async function zS(t){return al.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await QM(t,{all:!0})).map(r=>r.address)}async function JS(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(al.default.isIP(i))r.push(i);else{let s=await zS(i);r=r.concat(s)}}ol=r}async function jM(t){if(ol||await JS(),ol?.length===0)return!1;let e;return al.default.isIP(t)?e=[t]:e=await zS(t),!!ol?.find(r=>e.includes(r))}var nh={};v(nh,{init:()=>YM});var KM={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId};function ZS(t,e){let r=KM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Da=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=ZS(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await ve(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return NA()}};var XS,rh;function YM(t){cr||Nc(),rh||(rh=new Da(t)),XS||(XS=cr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await rh.processEvent(r,n,i)}))}var fh={};v(fh,{COUNT_FIELD_NAME:()=>lh,Sql:()=>aO,SqlTable:()=>ul,designDoc:()=>dh,utils:()=>Ep});var nO=require("knex");var HM=require("knex");function ih(t){return["link","formula","ai"].indexOf(t)!==-1}function eO(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,f]of Object.entries(e.schema)){let p=n?.schema[m];if(p&&p.type||c.includes(m)||i?.updated===m)continue;let g=f.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(f.meta&&f.meta.toKey&&f.meta.toTable){let{toKey:_,toTable:E}=f.meta;t.integer(m).unsigned(),t.foreign(m).references(`${E}.${_}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":f.timeOnly?t.time(m):t.datetime(m,{useTz:!f.ignoreTimezones});break;case"array":case"bb_reference":br.schema.isDeprecatedSingleUserColumn(f)?t.text(m):t.json(m);break;case"link":if(f.relationshipType!=="many-to-one"&&f.relationshipType!=="many-to-many"){if(!f.foreignKey||!f.tableId)throw new Error("Invalid relationship schema");let{tableName:_}=pp(f.tableId),E=r[_];if(!E||!E.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let O=E.primary[0],S=E.schema[O].externalType;S?t.specificType(f.foreignKey,S):t.integer(f.foreignKey).unsigned(),t.foreign(f.foreignKey).references(`${_}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${f.type} is not a valid SQL type`;default:Ai.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!ih(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([f,p])=>!ih(p.type)&&e.schema[f]==null).forEach(([f,p])=>{i?.old===f||ih(p.type)||(n.constrained&&n.constrained.indexOf(f)!==-1&&t.dropForeign(f),t.dropColumn(f))}),t}function JM(t,e,r){return t.createTable(e.name,n=>{eO(n,e,r)})}function ZM(t,e,r,n,i){return t.alterTable(e.name,s=>{eO(s,e,r,n,i)})}function XM(t,e){return t.dropTable(e.name)}var sh=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,HM.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=JM(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=ZM(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=Hi(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=XM(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Hi(n)}},ul=sh;var iO=require("lodash"),lh="__bb_total";function tO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function oh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function ek(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function sO(t){return Array.isArray(t)?t.map(e=>sO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function rO(t){return t.sourceType==="internal"||t.sourceId===gl}function tk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function oO(t,e='"'){return`${e}${tk(t,e)}${e}`}function ah(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=oO(t[r],e));return`[${t.join(",")}]`}var rk={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},uh=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 Dr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"){if(mp(e))return null;if(hp(e))return new Date(e.trim())}return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),s=this.table.schema[i];s&&(e[r]=this.parse(n,s))}return e}parseFilters(e){e=(0,iO.cloneDeep)(e);for(let r of Object.values(mr)){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(qt)){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(nn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,f=a?.[m]||m,p=l(m)||l(f),g=l(d.column);if((p||g)&&d.to&&d.tableName){let _=this.knex.select(this.knex.raw(1)).from({[f]:m}),E=_.clone(),O=gp(d),S;if(p?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),O){let L=a?.[O.through]||d.through,y=this.tableNameWithSchema(O.through,{alias:L,schema:o});E=E.innerJoin(y,function(){this.on(`${f}.${O.toPrimary}`,"=",`${L}.${O.to}`)}).where(`${L}.${O.from}`,"=",this.rawQuotedIdentifier(`${c}.${O.fromPrimary}`)),this.client==="sqlite3"&&(E=this.addJoinFieldCheck(E,O)),e=e.where(A=>{A.whereExists(i(S,E)),r&&A.orWhereNotExists(_.clone().innerJoin(y,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${f}.${d.to}`,y=`${c}.${d.from}`;E=E.where(L,"=",this.rawQuotedIdentifier(y)),e=e.where(A=>{A.whereExists(i(S,E.clone())),r&&A.orWhereNotExists(E)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(p){return s?.[p]||p}function l(p,g,_,E){let O=(S,L,y)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ue=>_(ue,F?`${F}.${w}`:w,y))};for(let S in p){let L=p[S],y=Ko(S),A=y.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=p[S])&&E){let F=c(u);e=E(e,w.id.map(ue=>F?`${F}.${ue}`:ue),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,rk[g],y,(F,ue)=>O(ue,F,L)));else{let F=c(u);e=_(e,F?`${F}.${y}`:y,L)}}}let d=(p,g,_)=>((r?.fuzzyOr||o)&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${_.toLowerCase()}%`]):p.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${_}%`]))),m=(p,g=!1)=>{function _(E){return(o||p===r?.containsAny)&&(E=E.or),p===r?.notContains&&(E=E.not),E}this.client==="pg"?l(p,"contains",(E,O,S)=>(E=_(E),g?E.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ah(S,"'"))]):E.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ah(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(p,"contains",(E,O,S)=>_(E).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(oO(ah(S)))])):l(p,"contains",(E,O,S)=>(S.length===0||(E=E.where(L=>(p===r?.notContains&&(L=L.not),L=L.where(y=>{for(let A of S){p===r?.containsAny?y=y.or:y=y.and;let B=typeof A=="string"?`"${A.toLowerCase()}"`:A;y=y.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(O)]),`%${B}%`)}}),p===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),E))};if(r.$and){let{$and:p}=r;for(let g of p.conditions)e=e.where(_=>{this.addFilters(_,g,n)})}if(r.$or){let{$or:p}=r;e=e.where(g=>{for(let _ of p.conditions)g.orWhere(E=>this.addFilters(E,{..._,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(p,g,_)=>{let E=this.getFieldSchema(g),O=Array.isArray(_)?_:[_];if(o&&(p=p.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&E?.type==="datetime"&&E.dateOnly){for(let S of O)S!=null?p=p.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):p=p.or.whereNull(g);return p}return p.whereIn(g,O)},(p,g,_)=>(o&&(p=p.or),this.client==="oracledb"&&(g=g.map(E=>this.convertClobs(E))),p.whereIn(g,Array.isArray(_)?_:[_]))),r.string&&l(r.string,"string",(p,g,_)=>(o&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${_.toLowerCase()}%`]):p.whereILike(g,`${_}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(p,g,_)=>{let E=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;E(_.low)&&(_.low=""),E(_.high)&&(_.high="");let O=ac(_.low),S=ac(_.high),L=this.getFieldSchema(g),y=g,A=_.high,B=_.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"?y=this.convertClobs(g):this.client==="sqlite3"&&L?.type==="bigint"&&(y=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),A=this.knex.raw("CAST(? AS INTEGER)",[_.high]),B=this.knex.raw("CAST(? AS INTEGER)",[_.low])),o&&(p=p.or),O&&S?p.whereBetween(y,[B,A]):O?p.where(y,">=",B):S?p.where(y,"<=",A):p}),r.equal&&l(r.equal,"equal",(p,g,_)=>{let E=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),_]);if(this.client==="oracledb"){let O=this.convertClobs(g);return p.where(S=>S.whereNotNull(O).andWhere(O,_))}else return this.client==="sqlite3"&&E?.type==="datetime"&&E.dateOnly?_!=null?p.whereLike(g,`${_.toISOString().slice(0,10)}%`):p.whereNull(g):p.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),_])}),r.notEqual&&l(r.notEqual,"notEqual",(p,g,_)=>{let E=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),_]);if(this.client==="oracledb"){let O=this.convertClobs(g);return p.where(S=>S.not.whereNull(O).and.where(O,"!=",_)).or.whereNull(O)}else return this.client==="sqlite3"&&E?.type==="datetime"&&E.dateOnly?_!=null?p.not.whereLike(g,`${_.toISOString().slice(0,10)}%`).or.whereNull(g):p.not.whereNull(g):p.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),_])}),r.empty&&l(r.empty,"empty",(p,g)=>(o&&(p=p.or),p.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(p,g)=>(o&&(p=p.or),p.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let f=s?.[this.table._id]||this.table._id;return r.documentType&&!fp(this.table)&&f&&e.andWhereLike(`${f}._id`,`${hr(r.documentType)}%`),e}isSqs(){return rO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;rO(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${lh}`)}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;if((this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last"),this.isAggregateField(a))e=e.orderBy(a,c,l);else{let d=`${s}.${a}`;this.client==="oracledb"?e=e.orderByRaw("?? ?? nulls ??",[this.convertClobs(d),this.knex.raw(c),this.knex.raw(l)]):e=e.orderBy(d,c,l)}}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:f,to:p,from:g,fromPrimary:_,toPrimary:E}=d;if(!m||!r)continue;let O=c[m];if(!O)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,L=a?.[r]||r,y=f&&a?.[f]||f,A=this.tableNameWithSchema(m,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=ek(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ue=F.map(q=>{let se=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${se}??`,[q[0],q[1]]).toString()}).join(","),en=`${S}.${E||p}`,G=s.from(A).orderBy(en),k=f&&E&&_,R=k?`${y}.${g}`:`${S}.${p}`,W=k?`${L}.${_}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(f,{alias:y,schema:u});G=G.join(q,function(){this.on(`${S}.${E}`,"=",`${y}.${p}`)})}G=G.where(R,"=",this.rawQuotedIdentifier(W));let U=q=>(G=G.select(w).limit(oh()),s.select(q).from({[S]:G})),H;switch(i){case"sqlite3":G=this.addJoinFieldCheck(G,d),H=U(this.knex.raw(`json_group_array(json_object(${ue}))`));break;case"pg":H=U(this.knex.raw(`json_agg(json_build_object(${ue}))`));break;case"mariadb":H=G.select(s.raw(`json_arrayagg(json_object(${ue}) LIMIT ${oh()})`));break;case"mysql2":case"oracledb":H=U(this.knex.raw(`json_arrayagg(json_object(${ue}))`));break;case"mssql":{let q=s.select("*").from({[L]:G.select(F.map(se=>s.ref(se[1]).as(se[0]))).limit(oh())});H=s.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:H})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),f=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(f,function(){for(let p of n){let g=p.fromPrimary,_=p.from;this.orOn(`${d}.${g}`,"=",`${l}.${_}`)}}).leftJoin(m,function(){for(let p of n){let g=p.toPrimary,_=p.to;this.orOn(`${c}.${g}`,`${l}.${_}`)}}):e=e.leftJoin(m,function(){for(let p of n){let g=p.from,_=p.to;this.orOn(`${d}.${g}`,"=",`${c}.${_}`)}}),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 f=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=f}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,f=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(f,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())}},ch=class extends ul{constructor(r,n=tO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Hi(r);return i==="sqlite3"&&(s=sO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,nO.knex)(s),a,u=new uh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:tO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let m of a)d.push(await n(m,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===gl){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 Sh.includes(r.type)&&!br.schema.isDeprecatedSingleUserColumn(r)}log(r,n){Ho(this.getSqlClient(),r,n)}},aO=ch;var dh={};v(dh,{base:()=>nk});function nk(t){return{_id:er,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var ik={...Xo,...me},sk=(t={})=>{Wu(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,migrations,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
37
|
+
}`,"platform_users_lowercase_2")},jo=async(t,e)=>{let r={account_by_email:DT,platform_users_lowercase_2:RT};return rt(pe.PLATFORM_INFO.name,async n=>{let i=r[t];return op(t,e,n,i,{arrayResponse:!0})})},vT={by_email2:IT,by_api_key:wT,by_app:xT},nr=async(t,e,r,n)=>{r||(r=se());let i=vT[t];return op(t,e,r,i,n)};async function ap(t,e,r){let n=se(),i=vT[t];return Qo(t,e,n,i,r)}var up=class{constructor({source:e,target:r}){this.source=pt(e),this.target=pt(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([Io(this.source),Io(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=pt(this.target.name),await this.replicate()}},CT=up;var PT=j(require("node-fetch"));var Ko=Dr.removeKeyNumbering;function Yn(t){return t==null||t===""}var ir=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#f;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#f=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#f,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Ko(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=(m,g)=>Yn(g)?null:`${m}:${e.preprocess(g,s)}`,u=(m,g,_="AND")=>{if(Yn(g))return null;if(!Array.isArray(g))return`${m}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let O=1;O<g.length;O++)y+=` ${_} ${e.preprocess(g[O],{escape:!0})}`;return`${m}:(${y})`},c=(m,g)=>Yn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${m}:/.*${g}.*/`),l=(m,g)=>{let _=r?"*:* AND ":"",y=r?"AND":void 0;return _+"NOT "+u(m,g,y)},d=(m,g)=>u(m,g,"OR"),p=(m,g)=>{if(Yn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let _=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)_+=` OR ${e.preprocess(g[y],s)}`;return`${m}:(${_})`};function f(m,g,_){let y="";for(let[O,S]of Object.entries(m)){O=Ko(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=_?.mode?_.mode:r?"OR":"AND";y+=` ${E} `}y+=L,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(_?.returnBuilt)return y;n+=y}if(this.#e.string&&f(this.#e.string,(m,g)=>Yn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${m}:${g}*`)),this.#e.range&&f(this.#e.range,(m,g)=>{if(Yn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let _=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${m}:[${_} TO ${y}]`}),this.#e.fuzzy&&f(this.#e.fuzzy,c),this.#e.equal&&f(this.#e.equal,a),this.#e.notEqual&&f(this.#e.notEqual,(m,g)=>Yn(g)?null:typeof g=="boolean"?`(*:* AND !${m}:${g})`:`!${m}:${e.preprocess(g,s)}`),this.#e.empty&&f(this.#e.empty,m=>(i=!1,`(*:* -${m}:["" TO *])`)),this.#e.notEmpty&&f(this.#e.notEmpty,m=>(i=!1,`${m}:["" TO *]`)),this.#e.oneOf&&f(this.#e.oneOf,p),this.#e.contains&&f(this.#e.contains,u),this.#e.notContains&&f(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&f(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,f({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#p()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#p();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#p(){let{url:e,cookie:r}=xt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await NT(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await NT(n,i,r);throw s}}};async function NT(t,e,r){let n=await(0,PT.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 UT(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=ir.maxLimit;n.limit&&s.length>n.limit-ir.maxLimit&&(o=n.limit-s.length);let a=new ir(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<ir.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await UT(t,e,r,c)}async function gC(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,ir.maxLimit);let s=new ir(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 yC(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 UT(t,e,r,n)}}var cp={};v(cp,{createUserIndex:()=>EC});async function EC(){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 LT(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 _C(t){return LT(t,409)}var dp=`${C}${C}`,kT=/^\[.*]$/g,AC=encodeURIComponent(" "),FT=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}.\d{3}Z)?$/,SC=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function oc(t){return t.startsWith("datasource"+C)}function OC(t){return!oc(t)}function Hi(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 fp(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==Ti||t?.sourceType==="external"?!0:!!(t?._id&&oc(t._id))}function IC(t,e){return`${t}${dp}${encodeURIComponent(e)}`}function xC(t){return oc(t)?encodeURIComponent(t):t}function wC(t){return encodeURIComponent(t)}function pp(t){let e=t.split(dp),r=e.shift(),n=e.join(dp);if(n.includes(AC)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function bC(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 DC(t){return Array.isArray(t)||typeof t=="string"&&t.match(kT)!=null}function RC(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(kT)!=null?t.substring(1,t.length-1):t}function vC(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function mp(t){let e=t.trim();if(!FT.test(e))return!1;let r=new Date(e);return isNaN(r.getTime())}function hp(t){return FT.test(t.trim())}function ac(t){return t!=null&&t!==""}function CC(t){return SC.test(t)}function Ho(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 NC(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function gp(t){if(NC(t))return t}var BT="Database does not exist.";function $T(t){return(0,GT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var $r=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 TC(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Yi(t,r,e);return new $i(n)}var Yi=class t{constructor(e,r,n){this.couchInfo=xt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=xt(n),this.instanceNano=$T(this.couchInfo)),t.nano||t.init()}static init(){let e=xt();t.nano=$T(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Oo({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 $r(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===BT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new $r(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new $r(`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(Eh(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 $r(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=_e()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===BT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Gu(`${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 Oo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new $r("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}/${er}`;return Ho("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(er)){let e=await this.get(er);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 $r(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return pt(this.name).dump(e,r)}async load(e){return pt(this.name).load(e)}async createIndex(e){return pt(this.name).createIndex(e)}async deleteIndex(e){return pt(this.name).deleteIndex(e)}async getIndexes(){return pt(this.name).getIndexes()}};function Ue(t,e){return new $i(new Yi(t,e))}async function rt(t,e,r){let n=Ue(t,r);return await e(n)}async function ip(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await qu(e)}async function lp(t,e){let r=await qu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var qT=null;function Dt(t){return t||(t=Q()),Yo(t)}function WT(t){return t||(t=Q()),t===le?pe.AUDIT_LOGS.name:`${t}${C}${pe.AUDIT_LOGS.name}`}function PC(t){return t||(t=Q()),t===le?pe.SCIM_LOGS.name:`${t}${C}${pe.SCIM_LOGS.name}`}function Yo(t){return!t||t===le?pe.GLOBAL.name:`${t}${C}${pe.GLOBAL.name}`}function Ep(){return h.PLATFORM_URL}function Vr(){return!!h.MULTI_TENANCY}function UC(){return!!be.get()?.tenantId}function LC(){return h.MULTI_TENANCY}function zi(t){if(!t)return;if(!Vr())return le;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function MC(t){let e;try{e=be.get()}catch{e={}}return e={...e,...t},e}async function Gr(t,e){FC();let r=MC(t);return be.run(r,e)}async function kC(t){return await jT(),Gr({tenantId:zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function _p(t,e){let r=zi(t);return Gr({tenantId:r,appId:t},e)}async function ve(t,e){return h.MULTI_TENANCY||(t=t||le),Gr(t?{tenantId:t}:{},e)}async function Tp(t,e){return QT(t,e)}async function QT(t,e,r){if(!t)throw new Error("appId is required");let n=zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Gr(i,e)}async function To(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Gr(r,e)}function FC(){if(be.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function BC(t,e){return QT(t,e,{isMigrating:!0})}function tr(){try{return be.get()?.identity}catch{}}function Q(){if(!Vr())return le;let e=be.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Bf(){return be.get()?.automationId}function Re(){let e=be.get()?.appId;return!e&&h.isTest()&&qT?qT:e}function Ap(){return be.get()?.ip}var $C=()=>{let t=Re();if(!t)throw new Error("Could not get appId");return tt(t)};function VC(t,e){if(!t)throw new Error("Must supply environment variables.");return Gr({environmentVariables:t},e)}function GC(t){return Gr({isScim:!0},t)}function Sp(t,e){return Gr({ip:t},e)}async function jT(t=!h.isTest()){let e=Zi();if(!e||e.snippets)return;let r,n=Ji();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function qC(){let t=be.get();return t.environmentVariables?t.environmentVariables:null}function se(){let t=be.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");return Ue(Yo(t?.tenantId))}function WC(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return Ue(WT())}function Ji(t){let e=Re();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");return Ue(e,t)}function QC(t){let e=Re();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ue(tt(e),t)}function jC(t){let e=Re();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ue(Vu(e),t)}function Rt(){return!!be.get()?.isScim}function Zi(){try{return be.get()}catch{return}}function Op(t){let e=Zi();if(e)return e.featureFlagCache?.[t]}function Ip(t,e){let r=Zi();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function KC(t){let e=Zi();if(e)return e.viewToTableCache?.[t]}function YC(t,e){let r=Zi();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}function $t(t){let e=Q();return`${t}:${e}`}var Hn=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Yf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>$t(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?$t(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[$t(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?$t(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>$t(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($t(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?$t(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var Xi=new Hn,sr=(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))(sr||{}),zn=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(zn||{}),uc=(...t)=>Xi.keys(...t),Jn=(...t)=>Xi.get(...t),or=(...t)=>Xi.store(...t),zo=(...t)=>Xi.delete(...t),qr=(...t)=>Xi.withCache(...t),es=(...t)=>Xi.bustCache(...t);var Jr={};v(Jr,{getUser:()=>Sa,getUsers:()=>d0,invalidateUser:()=>Oa});var Xo={};v(Xo,{addTenantToUrl:()=>HC,getTenantDB:()=>xp,getTenantIDFromCtx:()=>Zo,isUserInAppTenant:()=>zC});function xp(t){return Ue(Dt(t))}function HC(t){let e=Q();if(Vr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var zC=(t,e)=>{let r;return e?r=e.tenantId||le:r=Q(),(zi(t)||le)===r},JC=Object.values(_s),Zo=(t,e)=>{if(!Vr())return le;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=JC),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(Ep()).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 is={};v(is,{getPlatformDB:()=>nt,tenants:()=>ra,users:()=>vt});var vt={};v(vt,{addSsoUser:()=>YT,addUser:()=>nN,getUserDoc:()=>KT,lookupTenantId:()=>ZC,removeUser:()=>iN,updateUserDoc:()=>XC});function nt(){return Ue(pe.PLATFORM_INFO.name)}async function ZC(t){return h.MULTI_TENANCY?(await KT(t)).tenantId:le}async function KT(t){return nt().get(t)}async function XC(t){await nt().put(t)}function eN(t,e){return{_id:t,tenantId:e}}function tN(t,e,r){return{_id:e,userId:t,tenantId:r}}function rN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function wp(t,e){let r=nt(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function YT(t,e,r,n){return wp(t,()=>rN(t,e,r,n))}async function nN(t,e,r,n){let i=[wp(e,()=>eN(e,t)),wp(r,()=>tN(e,r,t))];n&&i.push(YT(n,r,e,t)),await Promise.all(i)}async function iN(t){let e=nt(),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 ra={};v(ra,{addTenant:()=>ON,exists:()=>TN,getTenantIds:()=>_N,removeTenant:()=>IN,tenacyLockOptions:()=>Lp});var ei={};v(ei,{AUTO_EXTEND_POLLING_MS:()=>iA,doWithLock:()=>ns,newRedlock:()=>Xn});var nA=j(require("redlock"));var ts={};v(ts,{Duration:()=>we,DurationType:()=>Pp,clearCookie:()=>Wr,compare:()=>Rp,getAppIdFromCtx:()=>fN,getCookie:()=>Zn,hasCircularStructure:()=>hN,hash:()=>Dp,isAudited:()=>Cp,isClient:()=>pN,isPublicApiRequest:()=>dN,isServingApp:()=>uN,isServingBuilder:()=>cN,isServingBuilderPreview:()=>lN,isValidInternalAPIKey:()=>ta,newid:()=>_e,openJwt:()=>lc,resolveAppUrl:()=>XT,setCookie:()=>eA,timeout:()=>mN,validEmail:()=>Np});var bp=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),sN=h.SALT_ROUNDS||10;async function Dp(t){let e=await bp.genSalt(sN);return bp.hash(t,e)}async function Rp(t,e){return bp.compare(t,e)}var cc=j(require("jsonwebtoken")),vp="app"+C,zT="/app/",JT="/app/preview",oN="/builder",ZT=`${oN}/app/`,aN="/api/public/v";function ea(t){return t&&t.startsWith(vp)?t:void 0}async function XT(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Zo(t,{includeStrategies:["subdomain"]}));let s=(await ve(n,()=>Kn({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function uN(t){return t.path.startsWith(`/${vp}`)?!0:t.path.startsWith(zT)}function cN(t){return t.path.startsWith(ZT)}function lN(t){return t.path.startsWith(JT)}function dN(t){return t.path.startsWith(aN)}async function fN(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=ea(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=ea(t.request.body.appId));let n=HT(t.path);!r&&n&&(r=ea(n));let i=t.path.startsWith(JT),s=t.path.startsWith(zT)&&!i;!r&&s&&(r=ea(await XT(t)));let o=t.request.headers.referer;if(!r&&o?.includes(ZT)){let a=HT(t.request.headers.referer);r=ea(a)}return r}function HT(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(vp))}function lc(t){if(t)try{return cc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return cc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function ta(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function Zn(t,e){let r=t.cookies.get(e);if(r)return lc(r)}function eA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=cc.default.sign(e,h.JWT_SECRET));let i={expires:ku,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Wr(t,e){eA(t,null,e)}function pN(t){return t.headers["x-budibase-type"]==="client"}function mN(t){return new Promise(e=>setTimeout(e,t))}function Cp(t){return!!hh[t]}function hN(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 Np(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 Pp=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Pp||{}),tA={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},we=class t{static convert(e,r,n){return n*tA[e]/tA[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 gN(t,e){if(t==="custom")return Xn(e);switch(t){case"try_once":return Xn(rs.TRY_ONCE);case"try_twice":return Xn(rs.TRY_TWICE);case"default":return Xn(rs.DEFAULT);case"delay_500":return Xn(rs.DELAY_500);case"auto_extend":return Xn(rs.AUTO_EXTEND);default:throw Ai.unreachable(t)}}var rs={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 Xn(t={}){let e={...rs.DEFAULT,...t},n=(await zf()).getClient();return new nA.default([n],e)}function yN(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var iA=we.fromSeconds(10).toMs();async function ns(t,e){let r=await gN(t.type,t.customOptions),n,i;try{let s=yN(t),o=t.type==="auto_extend"?iA: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 Up=pe.PLATFORM_INFO.docs.tenants,Lp={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function _N(){return(await dc()).tenantIds}async function dc(){let t=nt(),e;try{e=await t.get(Up)}catch(r){if(r.status===404)e=await SN();else throw r}return e}async function TN(t){return(await dc()).tenantIds.indexOf(t)!==-1}function AN(){return{_id:Up,tenantIds:[]}}async function SN(){let t=nt(),e=AN();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Up);throw r}return e}async function ON(t){let e=nt();await ns(Lp,async()=>{let r=await dc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function IN(t){try{await ns(Lp,async()=>{let e=nt(),r=await dc();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 ti={};v(ti,{getAccount:()=>Qr,getAccountByTenantId:()=>ss,getStatus:()=>xN});var sA=j(require("node-fetch"));var na=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";xo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,sA.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 Mp=new na(h.ACCOUNT_PORTAL_URL),kp=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Qr=async t=>{if(kp)return;let e={email:t},r=await Mp.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]},ss=async t=>{if(kp)return;let e={tenantId:t},r=await Mp.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]},xN=async()=>{if(kp)return;let t=await Mp.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 ps={};v(ps,{UserDB:()=>Gt,addAppBuilder:()=>a0,bulkGetGlobalUsersById:()=>Mc,bulkUpdateGlobalUsers:()=>_a,cleanseUserObject:()=>Tm,doesUserExist:()=>r0,getAccountHolderFromUsers:()=>Oc,getAllUserIds:()=>e0,getAllUsers:()=>t0,getById:()=>oi,getCreatorCount:()=>s0,getExistingAccounts:()=>os,getExistingPlatformUsers:()=>cA,getExistingTenantUsers:()=>uA,getFirstPlatformUser:()=>ia,getGlobalUserByAppPage:()=>oS,getGlobalUserByEmail:()=>Nt,getPlatformUsers:()=>fc,getUserCount:()=>i0,hasAdminPermissions:()=>Hr,hasAppBuilderPermissions:()=>EA,hasBuilderPermissions:()=>ht,isAdmin:()=>Yr,isAdminOrBuilder:()=>yA,isBuilder:()=>cs,isCreator:()=>Vt,isGlobalBuilder:()=>gA,paginatedUsers:()=>uS,removeAppBuilder:()=>u0,removePortalUserPermissions:()=>o0,searchExistingEmails:()=>$p,searchGlobalUsersByApp:()=>kc,searchGlobalUsersByAppAccess:()=>_m,searchGlobalUsersByEmail:()=>aS,validateUniqueUser:()=>Sc});var zp={};v(zp,{getAccountHolderFromUsers:()=>Oc,hasAdminPermissions:()=>Hr,hasAppBuilderPermissions:()=>EA,hasBuilderPermissions:()=>ht,isAdmin:()=>Yr,isAdminOrBuilder:()=>yA,isBuilder:()=>cs,isCreator:()=>Vt,isGlobalBuilder:()=>gA,validateUniqueUser:()=>Sc});var Bp={};v(Bp,{createCode:()=>bN,deleteCode:()=>RN,getCode:()=>DN,getExistingInvites:()=>Fp,getInviteCodes:()=>aA,updateCode:()=>wN});var oA=we.fromDays(7).toSeconds();async function wN(t,e){await(await Qn()).store(t,e,oA)}async function bN(t,e){let r=_e();return await(await Qn()).store(r,{email:t,info:e},oA),r}async function DN(t){let r=await(await Qn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function RN(t){await(await Qn()).delete(t)}async function aA(){let r=(await(await Qn()).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 Fp(t){return(await aA()).filter(e=>t.includes(e.email))}async function $p(t){let e=[],r=await uA(t);e.push(...r.map(o=>o.email));let n=await cA(t);e.push(...n.map(o=>o._id));let i=await os(t);e.push(...i.map(o=>o.email));let s=await Fp(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function fc(t){return await jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ia(t){return(await fc(t))[0]??null}async function uA(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await nr("by_email2",r,void 0,n)}async function cA(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await jo("platform_users_lowercase_2",r)}async function os(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await jo("account_by_email",r)}var _c={};v(_c,{BadRequestError:()=>mc,BudibaseError:()=>as,EmailUnavailableError:()=>ar,ErrorCode:()=>yc,FeatureDisabledError:()=>gc,HTTPError:()=>it,InvalidAPIKeyError:()=>us,NotFoundError:()=>pc,UsageLimitError:()=>hc,getPublicError:()=>Ec});var as=class extends Error{constructor(r,n){super(r);this.code=n}},yc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(yc||{}),Ec=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},it=class extends as{constructor(r,n,i="http"){super(r,i);this.status=n}},pc=class extends it{constructor(e){super(e,404)}},mc=class extends it{constructor(e){super(e,400)}},hc=class extends it{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},gc=class extends it{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},us=class extends as{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},ar=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var Hp={};v(Hp,{AccessController:()=>qp,BUILTIN_ROLE_IDS:()=>aa,Role:()=>jr,RoleHierarchyTraversal:()=>Tc,RoleIDVersion:()=>Wp,builtinRoleToNumber:()=>sa,checkForRoleResourceArray:()=>pA,externalRole:()=>LN,findRole:()=>oa,getAllRoleIds:()=>BN,getAllRoles:()=>Yp,getBuiltinRole:()=>dA,getBuiltinRoles:()=>jp,getDBRoleID:()=>mA,getExternalRoleID:()=>Kr,getExternalRoleIDs:()=>hA,getRole:()=>MN,getUserRoleHierarchy:()=>Kp,getUserRoleIdHierarchy:()=>fA,isBuiltin:()=>ri,lowerBuiltinRoleID:()=>UN,prefixRoleIDNoBuiltin:()=>Gp,roleIDsAreEqual:()=>mt,roleToNumber:()=>PN,saveRoles:()=>kN,validInherits:()=>NN});var Vp=j(require("semver"));var Ac=j(require("lodash/fp/cloneDeep"));var lA=require("lodash");var aa={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},de={...aa,BUILDER:"BUILDER"},Wp={UUID:void 0,NAME:"name"};function CN(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var jr=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Wp.NAME}addInheritance(e){return e&&typeof e=="string"?e=Gp(e):e&&Array.isArray(e)&&(e=e.map(Gp)),this.inherits=e,this}},Tc=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=oa(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!CN(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=oa(o.inherits,n,r),o&&i.push(o),br.roles.checkForRoleInheritanceLoops(i))break}}return(0,lA.uniqBy)(i,s=>s._id)}},Qp={ADMIN:new jr(de.ADMIN,de.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(de.POWER),POWER:new jr(de.POWER,de.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(de.BASIC),BASIC:new jr(de.BASIC,de.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(de.PUBLIC),PUBLIC:new jr(de.PUBLIC,de.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new jr(de.BUILDER,de.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function jp(){return(0,Ac.default)(Qp)}function ri(t){return Object.values(aa).includes(t)}function Gp(t){return ri(t)?t:rr(t)}function dA(t){let e=Object.values(Qp).find(r=>t.includes(r._id));if(e)return(0,Ac.default)(e)}function NN(t,e){if(!e)return!1;let r=n=>t.find(i=>mt(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 sa(t){let e=jp(),r=Object.values(e).length+1;if(mt(t,de.ADMIN)||mt(t,de.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function PN(t){if(ri(t))return sa(t);let e=await Kp(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=>mt(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(ri(n.inherits))return sa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function UN(t,e){return t?e&&sa(t)>sa(e)?e:t:e}function mt(t,e){return rr(t)===rr(e)}function LN(t){let e;return t._id&&(e=Kr(t._id)),{...t,_id:e,inherits:hA(t.inherits,t.version)}}function oa(t,e,r){let n=dA(t);n||(t=rr(t));let i=e.find(s=>s._id&&mt(s._id,t));return!i&&!ri(t)&&r?.defaultPublic?(0,Ac.default)(Qp.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=Kr(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function MN(t,e){let r=Ji(),n=[];if(!ri(t)){let i=await r.tryGet(mA(t));i&&n.push(i)}return oa(t,n,e)}async function kN(t){await Ji().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:rr(r._id)})))}async function FN(t,e){let r=await Yp();if(mt(t,de.ADMIN))return r;let n=oa(t,r,e),i=[];return n&&(i=new Tc(r,e).walk(n)),i}async function fA(t){return(await Kp(t)).map(r=>r._id)}async function Kp(t,e){return FN(t,e)}function pA(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 BN(t){return(await Yp(t)).map(r=>r._id)}async function Yp(t){if(t)return rt(t,e);{let r;try{r=Ji()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(sc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=Kr(a._id,a.version)));let i=jp(),s=[];!r||await $N(r)?s=[de.ADMIN,de.POWER,de.BASIC,de.PUBLIC]:s=[de.ADMIN,de.BASIC,de.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>mt(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=Kr(a._id,u.version),n.push({...a,...u,name:a.name,_id:Kr(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=pA(o.permissions,a);return n}}async function $N(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Vp.default.valid(r)?!0:!Vp.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var qp=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||mt(e,de.BUILDER)||mt(r,e)||mt(r,de.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await fA(r),this.userHierarchies[r]=n),n?.find(i=>mt(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 mA(t){return t?.startsWith("role")?t:rr(t)}function Kr(t,e){if(t.startsWith(`role${C}`)&&(ri(t)||e===Wp.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function hA(t,e){return t&&(typeof t=="string"?Kr(t,e):t.map(r=>Kr(r,e)))}var cs=et.users.isBuilder,Yr=et.users.isAdmin,gA=et.users.isGlobalBuilder,yA=et.users.isAdminOrBuilder,Hr=et.users.hasAdminPermissions,ht=et.users.hasBuilderPermissions,EA=et.users.hasAppBuilderPermissions;async function Vt(t){let e=et.users.isCreator(t);return!e&&t?await VN(t):e}async function VN(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(aa.ADMIN))}return!1}async function Sc(t,e){if(h.MULTI_TENANCY){let r=await ia(t);if(r!=null&&r.tenantId!==e)throw new ar(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Qr(t);if(r&&r.verified&&r.tenantId!==e)throw new ar(t)}}async function Oc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await os(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var fs={};v(fs,{account:()=>UA,ai:()=>BA,analytics:()=>xc,app:()=>LA,auditLog:()=>eS,auth:()=>Pc,automation:()=>MA,backfill:()=>HA,backfillCache:()=>Cc,backup:()=>ZA,datasource:()=>kA,email:()=>FA,environmentVariable:()=>XA,group:()=>zA,identification:()=>Ct,initAsyncEvents:()=>BL,installation:()=>pa,layout:()=>VA,license:()=>$A,org:()=>GA,plugin:()=>JA,processors:()=>rm,publishEvent:()=>T,query:()=>qA,role:()=>Ea,rowAction:()=>tS,rows:()=>QA,screen:()=>WA,serve:()=>KA,shutdown:()=>$L,table:()=>jA,user:()=>Fe,view:()=>YA});var rm={};v(rm,{analyticsProcessor:()=>RA,init:()=>iP,processors:()=>ur});var xc={};v(xc,{enabled:()=>Ic});var Ic=async()=>wc();var OA=require("posthog-node");var GN=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",qN=t=>t==="served:app:preview"||t==="served:app";var TA={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},AA=async t=>{if(!GN(t))return!1;let e=await WN(t);if(e){let r=new Date(e.timestamp);switch(TA[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await _A(t,{timestamp:Date.now()}),!1):!0}}else return await _A(t,{timestamp:Date.now()}),!1},SA=t=>{let e=`eventsRateLimit:${t}`;return qN(t)&&(e=e+":"+Re()),e},WN=async t=>{let e=SA(t);return await Jn(e)},_A=async(t,e)=>{let r=SA(t),n=TA[t],i;switch(n){case"calendarDay":i=86400}await or(r,e,i)};var jN=["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"],ua=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new OA.PostHog(e)}async processEvent(e,r,n,i){if(jN.includes(e)||await AA(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Re();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 IA=ua;var KN=["installation:version:upgraded","installation:version:downgraded"],YN=["installation","tenant"],ca=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new IA(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!KN.includes(e)&&!await Ic()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!YN.includes(e.type)&&!await Ic()||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 Jp=h.SELF_HOSTED&&!h.isDev(),la=class{async processEvent(e,r,n){Jp||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Jp||console.log("[audit] identified",e)}async identifyGroup(e){Jp||console.log("[audit] group identified",e)}shutdown(){}};var tm={};v(tm,{JobQueue:()=>ls,createQueue:()=>ni,shutdown:()=>tP});var xA=j(require("events"));function HN(t,e,r){return{id:_e(),timestamp:Date.now(),queue:t,data:e,opts:r}}var Zp=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new xA.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(HN(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}},wA=Zp;var Xp=j(require("bull"));var ls=(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))(ls||{});function bA(t,e,r){ZN(t,e),r&&zN(t,r)}function zN(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 gt(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 JN={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function ZN(t,e){let r=JN[e];function n(i,s){let o=i.data.event?.appId;if(o)return _p(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...gt(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...gt(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...gt(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...gt(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...gt(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...gt(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...gt(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...gt(r,"paused"))}).on("resumed",()=>{console.info(...gt(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...gt(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...gt(r,"drained"))}).on("removed",i=>{console.info(...gt(r,"removed",{job:i}))})}var XN=we.fromMinutes(5).toMs(),eP=we.fromSeconds(30).toMs(),em=we.fromSeconds(60).toMs(),da=[],bc;async function DA(){for(let t of da)await t.clean(em,"completed"),await t.clean(em,"failed")}function ni(t,e={}){let n={redis:Gi(),settings:{maxStalledCount:e.maxStalledCount?e.maxStalledCount:0,lockDuration:XN,lockRenewTime:eP}};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 Xp.default(t,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):i=new wA(t,n):i=new Xp.default(t,n),bA(i,t,e?.removeStalledCb),da.push(i),!bc&&!h.isTest()&&(bc=vo(DA,em),DA().catch(s=>{console.error(`Unable to cleanup ${t} initially - ${s}`)})),i}async function tP(){if(bc&&Co(bc),da.length){for(let t of da)await t.close();da=[]}console.log("Queues shutdown")}var ds=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=ni("auditLogQueue"),t.auditLogQueue.process(async n=>ve(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&&Cp(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Re(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var fa=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 RA=new ca,rP=new la,nP=new ds;function iP(t){return ds.init(t)}var ur=new fa([RA,rP,nP]);var Dc={};v(Dc,{checkInstallVersion:()=>aP,getInstall:()=>ma,getInstallFromDB:()=>im});var nm=j(require("semver"));var ma=async()=>qr("installation",86400,im,{useTenancy:!1});async function sP(t){let e={_id:pe.PLATFORM_INFO.docs.install,installId:_e(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return im();throw r}}var im=async()=>rt(pe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(pe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await sP(t);else throw r}return e}),oP=async t=>{try{await rt(pe.PLATFORM_INFO.name,async e=>{let r=await ma();r.version=t,await e.put(r),await es("installation")})}catch(e){if(e.status===409)return!1;throw e}return!0},aP=async()=>{let t=await ma(),e=t.version,r=h.VERSION;try{if(e!==r){let n=nm.default.gt(r,e),i=nm.default.lt(r,e);await oP(r)&&(await To({_id:t.installId,type:"installation"},async()=>{n?await pa.upgraded(e,r):i&&await pa.downgraded(e,r)}),await Ct.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Gn(`Invalid version "${r}" - is it semver?`):Gn("Failed to retrieve version",n)}};var uP=async()=>{let t=mf(),e=ya(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await ii(),i=ha();return{id:vA(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await ii(),i=await Rc(Q()),s=ha();return{id:vA(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await Rc(Q()),s=await ii(),o=n.account,a;return o?a=o.hosting:a=ha(),{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")},cP=async(t,e)=>{let r=t,n="installation",i=ha(),s=h.VERSION,o=ya(),a={id:r,type:n,hosting:i,version:s,environment:o};await sm(a,e),await ga({...a,id:`$${n}_${r}`},e)},lP=async(t,e,r)=>{let n=await Rc(t),i="tenant",s=await ii(),o=ya(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await sm(a,r),await ga({...a,id:`$${i}_${n}`},r)},dP=async(t,e,r)=>{let n=t._id,i=await Rc(t.tenantId),s="user",o=ht(t),a=Hr(t),u;Ma(t)&&(u=t.providerType);let l=(await os([t.email])).length>0,d=!!e&&l&&e.verified,p=await ii(),f=e?e.hosting:ha(),m=ya();await ga({id:n,type:s,hosting:f,installationId:p,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:m},r)},fP=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=La(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await ii(),c=ya();if(Ua(t)){let d=await Nt(t.email);d?._id&&(e=d._id)}await ga({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},ga=async(t,e)=>{await ur.identify(t,e)},sm=async(t,e)=>{await ur.identifyGroup(t,e)},ya=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,ha=()=>h.SELF_HOSTED?"self":"cloud",ii=async()=>pP()?"account-portal":(await ma()).installId,Rc=async t=>h.SELF_HOSTED?CA(t):t,CA=async t=>ve(t,()=>qr("uniqueTenantId",86400,async()=>{let e=se(),r=await vc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${_e()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),pP=()=>h.SERVICE==="account-portal",vA=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ct={getCurrentIdentity:uP,identifyInstallationGroup:cP,identifyTenantGroup:lP,identifyUser:dP,identifyAccount:fP,identify:ga,identifyGroup:sm,getInstallationId:ii,getUniqueTenantId:CA};var Cc={};v(Cc,{end:()=>hP,isAlreadySent:()=>um,isBackfillingEvent:()=>am,recordEvent:()=>om,start:()=>mP});var mP=async t=>yP({eventWhitelist:t}),om=async(t,e)=>{let r=cm(t,e);await or(r,e,void 0,{useTenancy:!1})},hP=async()=>{await EP(),await _P()},gP=async()=>Jn("backfillMetadata"),yP=async t=>or("backfillMetadata",t),EP=async()=>{await zo("backfillMetadata")},_P=async()=>{let t=cm(),e=await uc(t);for(let r of e)await zo(r,{useTenancy:!1})},am=async t=>{let r=(await gP())?.eventWhitelist;return!!(r&&r.includes(t))},um=async(t,e)=>{let r=cm(t,e);return!!await Jn(r,{useTenancy:!1})},TP={"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}`},cm=(t,e)=>{let r,n=Q();if(t){r=`events:${n}:${t}`;let i=TP[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`events:${n}:*`;return r};var cr;function Nc(){cr=ni("systemEventQueue")}async function NA(){cr&&await cr.close()}async function PA(t){cr||Nc();let{event:e,identity:r}=t;mh.indexOf(e)!==-1&&r.tenantId&&await cr.add(t)}var T=async(t,e,r,n)=>{let i=n||await Ct.getCurrentIdentity();if(!(n?!1:await am(t))){await PA({event:t,identity:i,properties:e,timestamp:r}),await ur.processEvent(t,i,e,r);return}await um(t,e)||(await ur.processEvent(t,i,e,r),await om(t,e))};async function AP(t,e){let r={tenantId:t.tenantId};await T("account:created",r,void 0,e)}async function SP(t){let e={tenantId:t.tenantId};await T("account:deleted",e)}async function OP(t){let e={tenantId:t.tenantId};await T("account:verified",e)}var UA={created:AP,deleted:SP,verified:OP};var IP=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await T("app:created",r,e)};async function xP(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await T("app:updated",e)}async function wP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:deleted",e)}async function bP(t,e){let r={appId:t.appId,audited:{name:t.name}};await T("app:published",r,e)}async function DP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:unpublished",e)}async function RP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:file:imported",e)}async function vP(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await T("app:duplicated",r)}async function CP(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await T("app:template:imported",r)}async function NP(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await T("app:version:updated",n)}async function PP(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await T("app:version:reverted",n)}async function UP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:reverted",e)}async function LP(t){let e={appId:t.appId,audited:{name:t.name}};await T("app:exported",e)}var LA={created:IP,updated:xP,deleted:wP,published:bP,unpublished:DP,fileImported:RP,duplicated:vP,templateImported:CP,versionUpdated:NP,versionReverted:PP,reverted:UP,exported:LP};async function MP(t,e){let n={userId:(await Ct.getCurrentIdentity()).id,source:t,audited:{email:e}};await T("auth:login",n)}async function kP(t){let r={userId:(await Ct.getCurrentIdentity()).id,audited:{email:t}};await T("auth:logout",r)}async function FP(t,e){let r={type:t};await T("auth:sso:created",r,e)}async function BP(t){let e={type:t};await T("auth:sso:updated",e)}async function $P(t,e){let r={type:t};await T("auth:sso:activated",r,e)}async function VP(t){let e={type:t};await T("auth:sso:deactivated",e)}var Pc={login:MP,logout:kP,SSOCreated:FP,SSOUpdated:BP,SSOActivated:$P,SSODeactivated:VP};async function GP(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 T("automation:created",r,e)}async function qP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await T("automation:trigger:updated",e)}async function WP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await T("automation:deleted",e)}async function QP(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await T("automation:tested",e)}var jP=async(t,e)=>{let r={count:t};await T("automations:run",r,e)};async function KP(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 T("automation:step:created",n,r)}async function YP(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 T("automation:step:deleted",r)}var MA={created:GP,triggerUpdated:qP,deleted:WP,tested:QP,run:jP,stepCreated:KP,stepDeleted:YP};function lm(t){return!Object.values(Ca).includes(t.source)}async function HP(t,e){let r={datasourceId:t._id,source:t.source,custom:lm(t)};await T("datasource:created",r,e)}async function zP(t){let e={datasourceId:t._id,source:t.source,custom:lm(t)};await T("datasource:updated",e)}async function JP(t){let e={datasourceId:t._id,source:t.source,custom:lm(t)};await T("datasource:deleted",e)}var kA={created:HP,updated:zP,deleted:JP};async function ZP(t){let e={};await T("email:smtp:created",e,t)}async function XP(){let t={};await T("email:smtp:updated",t)}var FA={SMTPCreated:ZP,SMTPUpdated:XP};async function eU(t){let e={};await T("ai:config:created",e,t)}async function tU(){let t={};await T("ai:config:updated",t)}var BA={AIConfigCreated:eU,AIConfigUpdated:tU};async function rU(t,e){let r={accountId:t.accountId,...e};await T("license:plan:changed",r)}async function nU(t){let e={accountId:t.accountId};await T("license:activated",e)}async function iU(t){let e={accountId:t.accountId};await T("license:checkout:opened",e)}async function sU(t){let e={accountId:t.accountId};await T("license:checkout:success",e)}async function oU(t){let e={accountId:t.accountId};await T("license:portal:opened",e)}async function aU(t){let e={accountId:t.accountId};await T("license:payment:failed",e)}async function uU(t){let e={accountId:t.accountId};await T("license:payment:recovered",e)}var $A={planChanged:rU,activated:nU,checkoutOpened:iU,checkoutSuccess:sU,portalOpened:oU,paymentFailed:aU,paymentRecovered:uU};async function cU(t,e){let r={layoutId:t._id};await T("layout:created",r,e)}async function lU(t){let e={layoutId:t};await T("layout:deleted",e)}var VA={created:cU,deleted:lU};async function dU(t){let e={};await T("org:info:name:updated",e,t)}async function fU(t){let e={};await T("org:info:logo:updated",e,t)}async function pU(t){let e={};await T("org:platformurl:updated",e,t)}async function mU(){let t={};await T("analytics:opt:out",t)}async function hU(){let t={};await T("analytics:opt:out",t)}var GA={nameUpdated:dU,logoUpdated:fU,platformURLUpdated:pU,analyticsOptOut:mU,analyticsOptIn:hU};var gU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:created",n,r)},yU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:updated",r)},EU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:deleted",r)},_U=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await T("query:import",n)},TU=async(t,e)=>{let r={count:t};await T("queries:run",r,e)},AU=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await T("query:previewed",r)},qA={created:gU,updated:yU,deleted:EU,imported:_U,run:TU,previewed:AU};async function SU(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await T("role:created",r,e)}async function OU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await T("role:updated",e)}async function IU(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await T("role:deleted",e)}async function xU(t,e,r){let n={userId:t._id,roleId:e};await T("role:assigned",n,r)}async function wU(t,e){let r={userId:t._id,roleId:e};await T("role:unassigned",r)}var Ea={created:SU,updated:OU,deleted:IU,assigned:xU,unassigned:wU};async function bU(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await T("screen:created",r,e)}async function DU(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await T("screen:deleted",e)}var WA={created:bU,deleted:DU};var RU=async(t,e)=>{let r={count:t};await T("rows:created",r,e)},vU=async(t,e)=>{let r={tableId:t._id,count:e};await T("rows:imported",r)},QA={created:RU,imported:vU};async function CU(t,e){let r={tableId:t._id,audited:{name:t.name}};await T("table:created",r,e)}async function NU(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 T("table:updated",i)}async function PU(t){let e={tableId:t._id,audited:{name:t.name}};await T("table:deleted",e)}async function UU(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await T("table:exported",r)}async function LU(t){let e={tableId:t._id,audited:{name:t.name}};await T("table:imported",e)}var jA={created:CU,updated:NU,deleted:PU,exported:UU,imported:LU};async function MU(t){let e={timezone:t};await T("served:builder",e)}async function kU(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await T("served:app",n)}async function FU(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await T("served:app:preview",r)}var KA={servedBuilder:MU,servedApp:kU,servedAppPreview:FU};async function BU(t,e){let r={userId:t._id,viaScim:Rt(),audited:{email:t.email}};await T("user:created",r,e)}async function $U(t){let e={userId:t._id,viaScim:Rt(),audited:{email:t.email}};await T("user:updated",e)}async function VU(t){let e={userId:t._id,viaScim:Rt(),audited:{email:t.email}};await T("user:deleted",e)}async function GU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:onboarding:complete",e)}async function qU(t,e){let r={userId:t._id,audited:{email:t.email}};await T("user:admin:assigned",r,e)}async function WU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:admin:removed",e)}async function QU(t,e){let r={userId:t._id,audited:{email:t.email}};await T("user:builder:assigned",r,e)}async function jU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:builder:removed",e)}async function KU(t){let e={audited:{email:t}};await T("user:invited",e)}async function YU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:invite:accepted",e)}async function HU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:force:reset",e)}async function zU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:updated",e)}async function JU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:reset:requested",e)}async function ZU(t){let e={userId:t._id,audited:{email:t.email}};await T("user:password:reset",e)}async function XU(t){let e={users:t};await T("user:data:collaboration",e)}var Fe={created:BU,updated:$U,deleted:VU,permissionAdminAssigned:qU,permissionAdminRemoved:WU,permissionBuilderAssigned:QU,permissionBuilderRemoved:jU,onboardingComplete:GU,invited:KU,inviteAccepted:YU,passwordForceReset:HU,passwordUpdated:zU,passwordResetRequested:JU,passwordReset:ZU,dataCollaboration:XU};async function eL(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await T("view:created",r,e)}async function tL(t){let e={tableId:t.tableId};await T("view:updated",e)}async function rL(t){let e={tableId:t.tableId};await T("view:deleted",e)}async function nL(t,e){let r={tableId:t._id,format:e};await T("view:exported",r)}async function iL({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await T("view:filter:created",n,r)}async function sL({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await T("view:filter:updated",r)}async function oL(t){let e={tableId:t.tableId};await T("view:filter:deleted",e)}async function aL({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await T("view:calculation:created",n,r)}async function uL(t){let e={tableId:t.tableId,calculation:t.calculation};await T("view:calculation:updated",e)}async function cL(t){let e={tableId:t.tableId,calculation:t.calculation};await T("view:calculation:deleted",e)}async function lL(t,e){let r={tableId:t};await T("view:join:created",r,e)}var YA={created:eL,updated:tL,deleted:rL,exported:nL,filterCreated:iL,filterUpdated:sL,filterDeleted:oL,calculationCreated:aL,calculationUpdated:uL,calculationDeleted:cL,viewJoinCreated:lL};async function dL(t){let e={currentVersion:t};await T("installation:version:checked",e)}async function fL(t,e){let r={from:t,to:e};await T("installation:version:upgraded",r)}async function pL(t,e){let r={from:t,to:e};await T("installation:version:downgraded",r)}async function mL(){let t={};await T("installation:firstStartup",t)}var pa={versionChecked:dL,upgraded:fL,downgraded:pL,firstStartup:mL};var ms=!h.SELF_HOSTED&&!h.isDev();async function hL(t){ms||await T("app:backfill:succeeded",t)}async function gL(t){if(ms)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await T("app:backfill:failed",e)}async function yL(t){ms||await T("tenant:backfill:succeeded",t)}async function EL(t){if(ms)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await T("tenant:backfill:failed",e)}async function _L(){if(ms)return;let t={};await T("installation:backfill:succeeded",t)}async function TL(t){if(ms)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await T("installation:backfill:failed",e)}var HA={appSucceeded:hL,appFailed:gL,tenantSucceeded:yL,tenantFailed:EL,installationSucceeded:_L,installationFailed:TL};async function AL(t,e){let r={groupId:t._id,viaScim:Rt(),audited:{name:t.name}};await T("user_group:created",r,e)}async function SL(t){let e={groupId:t._id,viaScim:Rt(),audited:{name:t.name}};await T("user_group:updated",e)}async function OL(t){let e={groupId:t._id,viaScim:Rt(),audited:{name:t.name}};await T("user_group:deleted",e)}async function IL(t,e){let r={count:t,groupId:e._id,viaScim:Rt(),audited:{name:e.name}};await T("user_group:user_added",r)}async function xL(t,e){let r={count:t,groupId:e._id,viaScim:Rt(),audited:{name:e.name}};await T("user_group:users_deleted",r)}async function wL(t){let e={groupId:t,onboarding:!0};await T("user_group:onboarding_added",e)}async function bL(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await T("user_group:permissions_edited",e)}var zA={created:AL,updated:SL,deleted:OL,usersAdded:IL,usersDeleted:xL,createdOnboarding:wL,permissionsEdited:bL};async function DL(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await T("plugin:init",e)}async function RL(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await T("plugin:imported",e)}async function vL(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await T("plugin:deleted",e)}var JA={init:DL,imported:RL,deleted:vL};async function CL(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await T("app:backup:restored",e)}async function NL(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await T("app:backup:triggered",s)}var ZA={appBackupRestored:CL,appBackupTriggered:NL};async function PL(t,e){let r={name:t,environments:e};await T("environment_variable:created",r)}async function UL(t){let e={name:t};await T("environment_variable:deleted",e)}async function LL(t){let e={userId:t};await T("environment_variable:upgrade_panel_opened",e)}var XA={created:PL,deleted:UL,upgradePanelOpened:LL};async function ML(t){let e={filters:t};await T("audit_log:filtered",e)}async function kL(t){let e={filters:t};await T("audit_log:downloaded",e)}var eS={filtered:ML,downloaded:kL};async function FL(t,e){await T("row_action:created",t,e)}var tS={created:FL};function BL(){}var $L=()=>{ur.shutdown(),console.log("Events shutdown")};var dm=async t=>{await Fe.deleted(t),ht(t)&&await Fe.permissionBuilderRemoved(t),Hr(t)&&await Fe.permissionAdminRemoved(t)},VL=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ea.assigned(t,i)},GL=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ea.unassigned(t,i)},qL=async(t,e)=>{let r=t.roles,n=e?.roles;await VL(t,r,n),await GL(t,r,n)},fm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ss(r)),await Ct.identifyUser(t,n),e?(await Fe.updated(t),QL(t,e)&&await Fe.permissionBuilderRemoved(t),KL(t,e)&&await Fe.permissionAdminRemoved(t),YL(t,e)&&await Fe.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Fe.passwordForceReset(t),t.password!==e.password&&await Fe.passwordUpdated(t)):await Fe.created(t),WL(t,e)&&await Fe.permissionBuilderAssigned(t),jL(t,e)&&await Fe.permissionAdminAssigned(t),await qL(t,e)},WL=(t,e)=>rS(t,e,ht),QL=(t,e)=>nS(t,e,ht),jL=(t,e)=>rS(t,e,Hr),KL=(t,e)=>nS(t,e,Hr),YL=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",rS=(t,e,r)=>!(!r(t)||e&&r(e)),nS=(t,e,r)=>!(r(t)||!e||!r(e));var Lc={};v(Lc,{createASession:()=>zL,endSession:()=>JL,getSession:()=>mm,getSessionsForUser:()=>Uc,invalidateSessions:()=>si,updateSessionTTL:()=>pm});var iS=require("uuid");var sS=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):we.fromDays(7).toSeconds();function hs(t,e){return`${t}/${e}`}async function Uc(t){return t?(await(await kr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function si(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Uc(t)).map(o=>({key:hs(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:hs(t,s)}))),i&&i.length>0){let s=await kr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||Wi(`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 zL(t,e){await si(t,{reason:"creation"});let r=await kr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,iS.v4)(),s=hs(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,sS),o}async function pm(t){let e=await kr(),r=hs(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,sS)}async function JL(t,e){await(await kr()).delete(hs(t,e))}async function mm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await kr()).get(hs(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Em={};v(Em,{PASSWORD_MAX_LENGTH:()=>gm,PASSWORD_MIN_LENGTH:()=>hm,validatePassword:()=>ym});var hm=+(h.PASSWORD_MIN_LENGTH||12),gm=+(h.PASSWORD_MAX_LENGTH||512);function ym(t){return!t||t.length<hm?{valid:!1,error:`Password invalid. Minimum ${hm} characters.`}:t.length>gm?{valid:!1,error:`Password invalid. Maximum ${gm} characters.`}:{valid:!0}}var ZL=async t=>{let e=t._id;await vt.removeUser(t),await dm(t),await Jr.invalidateUser(e),await si(e,{reason:"bulk-deletion"})},Gt=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&&Yr(e)?!1:await t.features.isSSOEnforced()||Ma(e)?!0:(r||(r=await ss(Q())),!!(r&&r.email===e.email&&La(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 it("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=ym(o);if(!d.valid)throw new it(d.error,400)}u=r.hashPassword?await Dp(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||Qi();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(jn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await kc(e,{})).length}}static async getUsersByAppAccess(e){return await _m(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Nt(e)}static async getUser(e){let r=await oi(e);return r&&delete r.password,r}static async bulkGet(e){return await Mc(e)}static async bulkUpdate(e){return await _a(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 oi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!c&&s&&(c=await Nt(s),c&&c._id!==o))throw new ar(s);let l=c?0:1,d=await Vt(c)!==await Vt(e)?1:0;return t.quotas.addUsers(l,d,async()=>{await Sc(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=Tm(p,c)),!c&&u?.length&&(p.roles={...u});let f=[];if(!o&&a.length>0)for(let m of a)f.push(t.groups.addUsers(m,[p._id]));try{let m=await i.put(p);return p._rev=m.rev,await fm(p,c),c&&p.email!==c.email&&await vt.removeUser({email:c.email}),await vt.addUser(n,p._id,p.email,p.ssoId),await Jr.invalidateUser(m.id),await Promise.all(f),i.get(p._id)}catch(m){throw m.status===409?"User exists already":m}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await $p(a),c=[];for(let d of e){if(s.find(p=>p.email.toLowerCase()===d.email.toLowerCase())||u.includes(d.email.toLowerCase())){c.push({email:d.email,reason:"Unavailable"});continue}d.userGroups=r||[],s.push(d),await Vt(d)&&o.push(d)}let l=await ss(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(f=>{i.push(t.buildUser(f,{hashPassword:!0,requirePassword:f.requirePassword},n,void 0,l))});let d=await Promise.all(i);await _a(d);for(let f of d)await vt.addUser(n,f._id,f.email),await fm(f,void 0);let p=d.map(f=>({_id:f._id,email:f.email}));if(Array.isArray(p)&&r){let f=[],m=p.map(g=>g._id);for(let g of r)f.push(t.groups.addUsers(g,m));await Promise.all(f)}return{successful:p,unsuccessful:c}})}static async bulkDelete(e){let r=se(),n={successful:[],unsuccessful:[]},i=await Oc(e);i&&(e=e.filter(f=>f.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(f=>f.userId)})).rows.map(f=>f.doc),a=o.map(f=>({...f,_deleted:!0})),u=await _a(a),l=(await Promise.all(o.map(Vt))).filter(f=>!!f).length,d=[];for(let f of o){let g=(await ia(f._id)).ssoId;g&&(await fc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await ZL(f)}await nt().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let p={};return o.reduce((f,m)=>(f[m._id]=m,f),p),u.forEach(f=>{let m=p[f.id].email;f.ok?n.successful.push({_id:f.id,email:m}):n.unsuccessful.push({_id:f.id,email:m,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 Qr(o))throw n.userId===tr()._id?new it('Please visit "Account" to delete this user',400):new it("Account holder cannot be deleted",400)}await vt.removeUser(n),await r.remove(i,n._rev);let s=await Vt(n)?1:0;await t.quotas.removeUsers(1,s),await dm(n),await Jr.invalidateUser(i),await si(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 es("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 Aa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Mc(t,e){let n=(await se().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Aa(n)),n}async function e0(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Le}`})).rows.map(n=>n.id)}async function t0(){let t=se(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Le}`,include_docs:!0})).rows.map(n=>n.doc)}async function _a(t){return await se().bulkDocs(t)}async function oi(t,e){let n=await se().get(t);return e?.cleanup&&(n=Aa(n)),n}async function Nt(t,e){if(t==null)throw"Must supply an email address to view";let r=await nr("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=Aa(n)),n}async function r0(t){try{let e=await Nt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function kc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=ic(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await nr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Aa(s)),s}async function _m(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 lp(Dt(),i)).rows}function oS(t,e){if(e)return nc(tt(t),e._id)}async function aS(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await nr("by_email2",{...e,startkey:i,endkey:`${n}${Le}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Aa(o)),o}var n0=8;async function uS({bookmark:t,query:e,appId:r,limit:n}={}){let i=se(),s=n??n0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await oi(e.equal._id)]:r?(u=await kc(r,a),l=d=>oS(r,d)):e?.string?.email?(u=await aS(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Mc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(jn(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=Dr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(jn(null,a))).rows.map(p=>p.doc),np(u,s,{paginate:!0,property:c,getKey:l})}async function i0(){return(await ap("by_email2",{limit:0,include_docs:!1})).total_rows}async function s0(){let t=0;async function e(r){let n=await uS({bookmark:r}),i=await Promise.all(n.data.map(Vt));t+=i.filter(s=>!!s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function o0(t){return delete t.admin,delete t.builder,t}function Tm(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 a0(t,e){let r=tt(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Gt.save(t,{hashPassword:!1})}async function u0(t,e){let r=tt(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Gt.save(t,{hashPassword:!1})}var cS=3600;async function c0(t,e){let n=await xp(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Qr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function l0(t){let e=await Gt.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 Qr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Sa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=c0),!e)try{e=Q()}catch{e=await vt.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,cS)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!et.users.isGlobalBuilder(s)&&await ve(e,async()=>{let o=await Gt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function d0(t){let e=await Go(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await l0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,cS);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Oa(t){await(await Go()).delete(t)}var Im={};v(Im,{Writethrough:()=>Sm});var lS=1e4,Am=null;async function Om(){if(!Am){let t=await Hf();Am=new Hn(t)}return Am}function Fc(t,e){return t.name+e}function dS(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function f0(t,e,r=lS){let n=await Om(),i=e._id,s;i&&(s=await n.get(Fc(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ns({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;Wi("Ignoring conflict in write-through cache")}})).executed||Wi("Ignoring redlock conflict in write-through cache")),s=dS(a,o?null:s?.lastWrite),a._id&&await n.store(Fc(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function p0(t,e){let r=await Om(),n=Fc(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=dS(s),await r.store(n,i)}return i.doc}async function m0(t,e,r){let n=await Om();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(Fc(t,i))}finally{await t.remove(i,r)}}var Sm=class{constructor(e,r=lS){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return f0(this.db,e,r)}async get(e){return p0(this.db,e)}async remove(e,r){return m0(this.db,e,r)}};var xm={};v(xm,{createCode:()=>g0,getCode:()=>y0,invalidateCode:()=>E0});var h0=we.fromHours(1).toSeconds();async function g0(t,e){let r=_e();return await(await qo()).store(r,{userId:t,info:e},h0),r}async function y0(t){let r=await(await qo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function E0(t){await(await qo()).delete(t)}var bm={};v(bm,{DocWritethrough:()=>wm,DocWritethroughProcessor:()=>Ia,getProcessor:()=>T0,init:()=>fS});var _0=100,Bc,Ia=class t{static get queue(){return t._queue||(t._queue=ni("docWritethroughQueue",{jobOptions:{attempts:_0}})),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=Ue(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},wm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ia.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function fS(){return Bc=new Ia().init(),Bc}function T0(){return Bc||fS()}function vm(t){return`config${C}${t}`}async function Pt(t){let e=se();try{return await e.get(vm(t))}catch(r){if(r.status===404)return;throw r}}async function A0(t){return se().put(t)}async function vc(){let t=await Pt("settings");return t||(t={_id:vm("settings"),type:"settings",config:{}}),t.config.platformUrl=await xa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await wc({config:t.config}),t}async function Cm(){return(await vc()).config}async function xa(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 Pt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var wc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await qr("analyticsEnabled",86400,async()=>{let n=t?.config?t.config:(await Pt("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 S0(){return await Pt("google")}async function $c(){return(await S0())?.config}async function Nm(){if(!h.SELF_HOSTED)return Dm();let t=await $c();return(!t||!t.activated)&&(t=Dm()),t}function Dm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function O0(){return Pt("logos_oidc")}async function I0(){return Pt("oidc")}async function x0(){let t=(await I0())?.config;return t?.configs&&t.configs[0]}async function Pm(t){let e=(await Pt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function pS(){return Pt("smtp")}async function w0(t){let e=await pS();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 b0(){return(await Pt("scim"))?.config}async function D0(){return Pt("ai")}var Lm={};v(Lm,{DEFINITIONS:()=>Um,backPopulateMigrations:()=>v0,getMigrationsDoc:()=>mS,runMigration:()=>hS,runMigrations:()=>gS});var mS=async t=>{try{return await t.get("migrations")}catch(e){if(e.status&&e.status===404)return{_id:"migrations"};throw e}},v0=async t=>{let e=Um.filter(r=>r.type===t.type).map(r=>({...r,fn:async()=>{}}));await gS(e,{noOp:t})},hS=async(t,e={})=>{let r=t.type,n=t.name,i=t.silent,s=c=>{i||console.log(c)},o;if(r==="global")o=[Dt()];else if(r==="app")if(e.noOp){if(!e.noOp.appId)throw new Error("appId is required for noOp app migration");o=[e.noOp.appId]}else o=(await Kn(t.appOpts)).map(l=>l.appId);else if(r==="installation")o=[pe.PLATFORM_INFO.name];else throw new Error(`Unrecognised migration type [${r}]`);let a=o.length,u=0;for(let c of o){u++;let l=a>1?`[${u}/${a}]`:"",d=Ue(c);try{let p=await mS(d);if(p[n])if(e.force&&e.force[r]&&e.force[r].includes(n))s(`[Migration: ${n}] [DB: ${c}] Forcing`);else return;if(!e.noOp){if(s(`[Migration: ${n}] [DB: ${c}] Running ${l}`),t.preventRetry){p[n]=Date.now();let f=await d.put(p);p._rev=f.rev}r==="app"?await Tp(d.name,async()=>{await t.fn(d)}):await t.fn(d),s(`[Migration: ${n}] [DB: ${c}] Complete`)}p[n]=Date.now(),await d.put(p)}catch(p){throw console.error(`[Migration: ${n}] [DB: ${c}] Error: `,p),p}}},gS=async(t,e={})=>{let r;h.MULTI_TENANCY?e.noOp?r=[e.noOp.tenantId]:!e.tenantIds||!e.tenantIds.length?r=await ra.getTenantIds():r=e.tenantIds:r=[le],r.length>1?console.log(`Checking migrations for ${r.length} tenants`):console.log("Checking migrations");let n=0;for(let i of r){n++,r.length>1&&console.log(`Progress [${n}/${r.length}]`);for(let s of t)await ve(i,async()=>await hS(s,e))}console.log("Migrations complete")};var Um=[{type:"global",name:"user_email_view_casing"},{type:"global",name:"sync_quotas_2"},{type:"app",name:"app_urls"},{type:"app",name:"event_app_backfill"},{type:"app",name:"table_settings_links_to_actions"},{type:"global",name:"event_global_backfill"},{type:"installation",name:"event_installation_backfill"},{type:"global",name:"global_info_sync_users"}];var Mm={};v(Mm,{BUILDER:()=>L0,BUILTIN_PERMISSIONS:()=>Vc,CREATOR:()=>M0,GLOBAL_BUILDER:()=>k0,PermissionImpl:()=>fe,PermissionLevel:()=>Ts,PermissionType:()=>Pa,doesHaveBasePermission:()=>P0,getAllowedLevels:()=>TS,getBuiltinPermissionByID:()=>N0,getBuiltinPermissions:()=>C0,isPermissionLevelHigherThanRead:()=>U0,levelToNumber:()=>_S});var yS=j(require("lodash/flatten")),ES=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 TS(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var Vc={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 C0(){return(0,ES.default)(Vc)}function N0(t){return Object.values(Vc).find(r=>r._id===t)}function P0(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(Vc),s=(0,yS.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&TS(o.level).indexOf(e)!==-1)return!0;return!1}function U0(t){return _S(t)>1}var L0="builder",M0="creator",k0="globalBuilder";var Bm={};v(Bm,{FlagSet:()=>qc,all:()=>V0,flags:()=>km,init:()=>F0,isEnabled:()=>$0,parseEnvFlags:()=>Qc,shutdown:()=>B0,testutils:()=>Fm});var Wc=j(require("crypto"));var AS=require("posthog-node"),SS=j(require("dd-trace"));var OS=require("lodash");var Gc;function F0(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),Gc=new AS.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:we.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function B0(){Gc?.shutdown()}function Qc(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 qc=class{constructor(e){this.flagSchema=e;this.setId=Wc.randomUUID()}defaults(){return(0,OS.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await SS.default.trace("features.fetch",async e=>{let r=Op(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;for(let{tenantId:l,key:d,value:p}of Qc(h.TENANT_FEATURE_FLAGS||""))if(!(!l||l!=="*"&&l!==s)&&(n.readFromEnvironmentVars=!0,p===!1&&o.add(d),!!this.isFlagName(d))){if(typeof i[d]!="boolean")throw new Error(`Feature: ${d} is not a boolean`);i[d]=p,n[`flags.${d}.source`]="environment"}let a=tr(),u=a?._id;if(!u){let l=Ap();l&&(u=Wc.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,Gc&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await Gc.getAllFlags(u,{personProperties:l});for(let[p,f]of Object.entries(d)){if(!this.isFlagName(p)){console.warn(`Unexpected posthog flag "${p}": ${f}`);continue}if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${f}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=f,n[`flags.${p}.source`]="posthog"}catch(m){console.warn(`Error parsing posthog flag "${p}": ${f}`,m)}}}Ip(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},km=new qc(_h);async function $0(t){return await km.isEnabled(t)}async function V0(){return await km.fetch()}var Fm={};v(Fm,{setFeatureFlags:()=>IS,withFeatureFlags:()=>W0});function G0(){let t={};for(let{tenantId:e,key:r,value:n}of Qc(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function q0(t){let e=[];for(let[r,n]of Object.entries(t))for(let[i,s]of Object.entries(n))s===!1?e.push(`${r}:!${i}`):e.push(`${r}:${i}`);return e.join(",")}function IS(t,e){let r=G0();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=q0(r);return Ao({TENANT_FEATURE_FLAGS:n})}function W0(t,e,r){let n=IS(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Jm={};v(Jm,{adminOnly:()=>rl,auditLog:()=>Zc,authError:()=>Ce,buildAuthMiddleware:()=>CM,buildCsrfMiddleware:()=>PM,buildTenancyMiddleware:()=>NM,builderOnly:()=>il,builderOrAdmin:()=>nl,google:()=>lr,internalApi:()=>el,joiValidator:()=>ba,oidc:()=>dr,passport:()=>UM,platformLogout:()=>BM,refreshOAuthToken:()=>kM,ssoCallbackUrl:()=>Zr,updateUserOAuth:()=>FM});var zm={};v(zm,{adminOnly:()=>rl,auditLog:()=>Zc,authError:()=>Ce,authenticated:()=>Jc,builderOnly:()=>il,builderOrAdmin:()=>nl,correlation:()=>FS,csp:()=>WS,csrf:()=>tl,datasource:()=>RM,errorHandling:()=>$S,google:()=>lr,internalApi:()=>el,ip:()=>jS,joiValidator:()=>ba,local:()=>gs,oidc:()=>dr,pino:()=>MS,querystringToBody:()=>VS,ssoCallbackUrl:()=>Zr,tenancy:()=>Xc});var gs={};v(gs,{authenticate:()=>K0,options:()=>j0});function Ce(t,e,r){return t(r,null,{message:e})}async function Zr(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Cm(),n="/api/global/auth";return Vr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var $m="Invalid credentials",Q0="This account has expired. Please reset your password",j0={passReqToCallback:!0};async function K0(t,e,r,n){if(!e)return Ce(n,"Email Required");if(!r)return Ce(n,"Password Required");let i=await Nt(e);return i==null?(console.info(`user=${e} could not be found`),Ce(n,$m)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Ce(n,$m)):i.password?await Rp(r,i.password)?(delete i.password,n(null,i)):Ce(n,$m):(console.info(`user=${e} has no password set`,i),Ce(n,Q0))}var lr={};v(lr,{buildVerifyFn:()=>bS,getCallbackUrl:()=>z0,strategyFactory:()=>Vm});var wa=t=>Promise.resolve(t);async function jc(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Ce(r,"sso user id required");if(!t.email)return Ce(r,"sso user email required");let i=Qi(t.userId),s;try{s=await oi(i)}catch(a){if(!a.status||a.status!==404)return Ce(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Nt(t.email)),!s&&e)return Ce(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 Y0(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Ce(r,"Error saving user",a)}return r(null,o)}async function Y0(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 H0=require("passport-google-oauth").OAuth2Strategy;function bS(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return jc(s,!0,i,t)}}async function Vm(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 H0({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function z0(t){return Zr("google",t)}var dr={};v(dr,{buildVerifyFn:()=>RS,fetchStrategyConfig:()=>eM,getCallbackUrl:()=>tM,strategyFactory:()=>X0});var DS=j(require("node-fetch"));var J0=require("@techpass/passport-openidconnect").Strategy;function RS(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:Z0(n,i),oauth2:{accessToken:s,refreshToken:o}};return jc(l,!1,c,t)}}function Z0(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Np(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function X0(t,e){try{let r=RS(e),n=new J0(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function eM(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 tM(){return Zr("oidc")}var Gm={};v(Gm,{postAuth:()=>iM,preAuth:()=>nM});var rM=require("passport-google-oauth").OAuth2Strategy;async function vS(){let t=await Nm();if(!t)throw new Error("No google configuration found");return t}async function nM(t,e,r){let n=await vS(),s=`${await xa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Vm(n,s,wa);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 iM(t,e,r){let n=await vS(),s=`${await xa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=Zn(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new rM({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Wr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=_e();await or(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var sM=/\/:(.*?)(\/.*)?$/g,ai=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(sM);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}}):[],ui=(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 Ym={};v(Ym,{SecretOption:()=>PS,decrypt:()=>Km,decryptFile:()=>dM,encrypt:()=>uM,encryptFile:()=>cM,getSecret:()=>jm});var fr=j(require("crypto")),Xr=j(require("fs")),Wm=j(require("zlib"));var qm=require("path"),Kc="aes-256-ctr",NS="-",oM=1e4,aM=32,Yc=16,Qm=16,PS=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(PS||{});function jm(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 Hc(t,e){return fr.default.pbkdf2Sync(t,e,oM,aM,"sha512")}function uM(t,e="api"){let r=fr.default.randomBytes(Yc),n=Hc(jm(e),r),i=fr.default.createCipheriv(Kc,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${NS}${a}`}function Km(t,e="api"){let[r,n]=t.split(NS),i=Buffer.from(r,"hex"),s=Hc(jm(e),i),o=fr.default.createDecipheriv(Kc,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function cM({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,qm.join)(t,e);if(Xr.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=Xr.default.createReadStream(i),o=Xr.default.createWriteStream((0,qm.join)(t,n)),a=fr.default.randomBytes(Yc),u=fr.default.randomBytes(Qm),c=Hc(r,a),l=fr.default.createCipheriv(Kc,c,u);return o.write(a),o.write(u),s.pipe(Wm.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function lM(t){let e=Xr.default.createReadStream(t),r=await CS(e,Yc),n=await CS(e,Qm);return e.close(),{salt:r,iv:n}}async function dM(t,e,r){if(Xr.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await lM(t),s=Xr.default.createReadStream(t,{start:Yc+Qm}),o=Xr.default.createWriteStream(e),a=Hc(r,n),u=fr.default.createDecipheriv(Kc,a,i),c=Wm.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",p=>{o.close(),d(p)}),u.on("error",p=>{o.close(),d(p)}),c.on("error",p=>{o.close(),d(p)}),o.on("error",p=>{o.close(),d(p)})})}function CS(t,e){return new Promise((r,n)=>{let i=0,s=[];t.on("readable",()=>{let o;for(;(o=t.read(e-i))!==null;)s.push(o),i+=o.length;r(Buffer.concat(s))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var LS=j(require("dd-trace")),fM=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function pM(){return new Date(Date.now()-fM).toISOString()}function US(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}async function mM(t,e){if(ta(t))return{valid:!0,user:void 0};let n=Km(t).split(C)[0];return ve(n,async()=>{let i;try{let s=se();i=await nr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Sa({userId:i,tenantId:n,populateUser:e})};throw new us})}function zc(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function Jc(t=[],e={publicAllowed:!1}){let r=t?ai(t):[];return async(n,i)=>{let s=!1,o=zc(n,"x-budibase-api-version");ui(n,r)&&(s=!0);try{let u=zc(n,"x-budibase-token"),c=Zn(n,"budibase:auth")||lc(u),l=zc(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=zc(n,"x-budibase-tenant-id"),p=!1,f,m=!1,g;if(c&&!l){let y=c.sessionId,O=c.userId,S;try{S=await mm(O,y),e&&e.populateUser?f=await Sa({userId:O,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):f=await Sa({userId:O,tenantId:S.tenantId,email:S.email}),f.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<pM()&&await pm(S),p=!0}catch(L){p=!1,console.error(`Auth Error: ${L.message}`),Wr(n,"budibase:auth")}}if(!p&&l){let y=e.populateUser?e.populateUser(n):null,{valid:O,user:S}=await mM(l,y);O&&(p=!0,g="api_key",f=S,m=!S)}!f&&d?f={tenantId:d}:f&&"password"in f&&delete f.password,p||(p=!1);let _=y=>y&&y.email;return _(f)&&LS.default.setUser({id:f._id,tenantId:f.tenantId,budibaseAccess:f.budibaseAccess,status:f.status}),US(n,{authenticated:p,user:f,internal:m,version:o,publicEndpoint:s,loginMethod:g}),_(f)?gf(f,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Wr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return US(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var hM=async(t,e)=>e(),Zc=hM;function Xc(t,e,r={noTenancyRequired:!1}){let n=ai(t),i=ai(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!ui(s,i)};!!ui(s,n)||(u.excludeStrategies=["query"]);let l=Zo(s,u);return s.set("x-budibase-tenant-id",l),ve(l,o)}}var el=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"),ta(r)||t.throw(403,"Unauthorized"),e()};var gM=["GET","HEAD","OPTIONS"],yM=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function tl(t={noCsrfPatterns:[]}){let e=ai(t.noCsrfPatterns);return async(r,n)=>{if(ui(r,e)||gM.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!yM.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 rl=async(t,e)=>(!t.internal&&!Yr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var nl=async(t,e)=>{let r=Re(),n=h.isWorker()||!r?ht:h.isApps()?cs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Yr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var il=async(t,e)=>{let r=Re(),n=h.isWorker()||!r?ht:h.isApps()?cs: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 EM=require("koa-pino-logger"),_M=require("correlation-id");function TM(){return{logger:Xu,genReqId:_M.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 AM(){return h.HTTP_LOGGING?EM(TM()):(t,e)=>e()}var SM=AM(),MS=SM;var kS=require("uuid"),OM=require("correlation-id"),IM=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,kS.v4)()),OM.withId(r,()=>e())},FS=IM;function BS(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of g_){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function xM(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:Ec(r)};if(BS(JSON.stringify(i))&&(i={message:"Unexpected error",status:n,error:"Unexpected error"}),h.isTest()&&t.headers["x-budibase-include-stacktrace"]){let s=r;for(;s.cause;)s=s.cause;i.stack=s.stack}t.body=i}}var $S=xM;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 qS=j(require("crypto")),GS={"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 wM(t,e){try{let r=qS.default.randomBytes(16).toString("base64"),n={...GS};n["script-src"]=[...GS["script-src"],`'nonce-${r}'`],t.state.nonce=r;let i=Object.entries(n).map(([s,o])=>`${s} ${o.join(" ")}`).join("; ");t.set("Content-Security-Policy",i),await e()}catch(r){console.error(`Error occurred in Content-Security-Policy middleware: ${r}`)}}var WS=wM;var ba={};v(ba,{body:()=>bM,params:()=>DM});var Hm=j(require("joi"));function QS(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:Hm.default.any().optional(),updatedAt:Hm.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 bM(t,e){return QS(t,"body",e)}function DM(t,e){return QS(t,"params",e)}var jS=async(t,e)=>t.ip?await Sp(t.ip,()=>e()):e();var RM={google:Gm};var KS=require("koa-passport"),vM=require("passport-local").Strategy,sl=require("passport-oauth2-refresh"),CM=Jc,NM=Xc,PM=tl,UM=KS;KS.use(new vM(gs.options,gs.authenticate));async function LM(t,e){let r=await dr.getCallbackUrl(),n,i;try{if(n=await dr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await dr.strategyFactory(n,wa)}catch{throw new Error("Could not refresh OAuth Token")}return sl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{sl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function MM(t,e){let r=await lr.getCallbackUrl(t),n;try{n=await lr.strategyFactory(t,r,wa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return sl.use(n),new Promise(i=>{sl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function kM(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Pm(r);return n?LM(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await $c();return n?MM(n,t):{err:{data:"Google configuration not found"}}}}}async function FM(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 Oa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function BM(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=Zn(e,"budibase:auth"),s=await Uc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Wr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await si(r,{sessionIds:o,reason:"logout"}),await Pc.logout(e.user?.email),await Oa(r)}var Xm={};v(Xm,{validate:()=>WM});var D=j(require("joi")),$M=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Zm(t,e){let{error:r}=t.validate(e);if(r)throw r}function VM(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});Zm(e,t)}function GM(t){let e=D.default.object({type:D.default.string().allow(...Object.values(ll)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(cl)),readable:D.default.boolean(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(dl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...$M),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});Zm(n,t)}function qM(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(pl)).required(),customType:D.default.string().allow(...Object.values(ml)),title:D.default.string(),description:D.default.string(),enum:D.default.array().items(D.default.string()),pretty:D.default.array().items(D.default.string())}),r=D.default.object({properties:e,required:D.default.array().items(D.default.string())}).concat(e).required(),n=D.default.object({type:D.default.string().allow("automation").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),tagline:D.default.string().required(),icon:D.default.string().required(),description:D.default.string().required(),type:D.default.string().allow("ACTION","LOGIC").required(),stepId:D.default.string().disallow(...Ah).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});Zm(n,t)}function WM(t){switch(t?.type){case"component":VM(t);break;case"datasource":GM(t);break;case"automation":qM(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var eh={};v(eh,{Client:()=>ke,clients:()=>Fr,locks:()=>ei,utils:()=>Ku});var th={};v(th,{isBlacklisted:()=>jM,refreshBlacklist:()=>JS});var YS=j(require("dns")),al=j(require("net"));var HS=require("util"),ol,QM=(0,HS.promisify)(YS.default.lookup);async function zS(t){return al.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await QM(t,{all:!0})).map(r=>r.address)}async function JS(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(al.default.isIP(i))r.push(i);else{let s=await zS(i);r=r.concat(s)}}ol=r}async function jM(t){if(ol||await JS(),ol?.length===0)return!1;let e;return al.default.isIP(t)?e=[t]:e=await zS(t),!!ol?.find(r=>e.includes(r))}var nh={};v(nh,{init:()=>YM});var KM={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId};function ZS(t,e){let r=KM[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Da=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=ZS(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await ve(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return NA()}};var XS,rh;function YM(t){cr||Nc(),rh||(rh=new Da(t)),XS||(XS=cr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await rh.processEvent(r,n,i)}))}var fh={};v(fh,{COUNT_FIELD_NAME:()=>lh,Sql:()=>aO,SqlTable:()=>ul,designDoc:()=>dh,utils:()=>yp});var nO=require("knex");var HM=require("knex");function ih(t){return["link","formula","ai"].indexOf(t)!==-1}function eO(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(p=>p.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(p=>p.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,f]of Object.entries(e.schema)){let m=n?.schema[p];if(m&&m.type||c.includes(p)||i?.updated===p)continue;let g=f.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(p)?t.string(p,255):t.text(p);break;case"number":if(f.meta&&f.meta.toKey&&f.meta.toTable){let{toKey:_,toTable:y}=f.meta;t.integer(p).unsigned(),t.foreign(p).references(`${y}.${_}`)}else l.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":f.timeOnly?t.time(p):t.datetime(p,{useTz:!f.ignoreTimezones});break;case"array":case"bb_reference":br.schema.isDeprecatedSingleUserColumn(f)?t.text(p):t.json(p);break;case"link":if(f.relationshipType!=="many-to-one"&&f.relationshipType!=="many-to-many"){if(!f.foreignKey||!f.tableId)throw new Error("Invalid relationship schema");let{tableName:_}=pp(f.tableId),y=r[_];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(f.foreignKey,S):t.integer(f.foreignKey).unsigned(),t.foreign(f.foreignKey).references(`${_}.${O}`)}break;case"formula":break;case"ai":break;case"attachment":case"attachment_single":case"signature_single":case"auto":case"json":case"internal":throw`${f.type} is not a valid SQL type`;default:Ai.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!ih(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([f,m])=>!ih(m.type)&&e.schema[f]==null).forEach(([f,m])=>{i?.old===f||ih(m.type)||(n.constrained&&n.constrained.indexOf(f)!==-1&&t.dropForeign(f),t.dropColumn(f))}),t}function JM(t,e,r){return t.createTable(e.name,n=>{eO(n,e,r)})}function ZM(t,e,r,n,i){return t.alterTable(e.name,s=>{eO(s,e,r,n,i)})}function XM(t,e){return t.dropTable(e.name)}var sh=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,HM.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=JM(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=ZM(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=Hi(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=XM(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Hi(n)}},ul=sh;var iO=require("lodash"),lh="__bb_total";function tO(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function oh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function ek(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function sO(t){return Array.isArray(t)?t.map(e=>sO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function rO(t){return t.sourceType==="internal"||t.sourceId===gl}function tk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function oO(t,e='"'){return`${e}${tk(t,e)}${e}`}function ah(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=oO(t[r],e));return`[${t.join(",")}]`}var rk={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},uh=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 Dr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}quotedValue(e){return this.knexClient.formatter(this.knexClient.queryBuilder()).wrap(e,!1)}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"){if(mp(e))return null;if(hp(e))return new Date(e.trim())}return e}parseBody(e){for(let[r,n]of Object.entries(e)){let{column:i}=this.splitter.run(r),s=this.table.schema[i];s&&(e[r]=this.parse(n,s))}return e}parseFilters(e){e=(0,iO.cloneDeep)(e);for(let r of Object.values(mr)){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(qt)){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(nn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let p=d.tableName,f=a?.[p]||p,m=l(p)||l(f),g=l(d.column);if((m||g)&&d.to&&d.tableName){let _=this.knex.select(this.knex.raw(1)).from({[f]:p}),y=_.clone(),O=gp(d),S;if(m?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),O){let L=a?.[O.through]||d.through,E=this.tableNameWithSchema(O.through,{alias:L,schema:o});y=y.innerJoin(E,function(){this.on(`${f}.${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(_.clone().innerJoin(E,function(){this.on(`${c}.${O.fromPrimary}`,"=",`${L}.${O.from}`)}))})}else{let L=`${f}.${d.to}`,E=`${c}.${d.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(m){return s?.[m]||m}function l(m,g,_,y){let O=(S,L,E)=>{let[A,...B]=L.split("."),w=B.join("."),F=c(A);return S.andWhere(ue=>_(ue,F?`${F}.${w}`:w,E))};for(let S in m){let L=m[S],E=Ko(S),A=E.includes("."),B=n?.relationship&&A,w;if(S==="_complexIdOperator"&&(w=m[S])&&y){let F=c(u);e=y(e,w.id.map(ue=>F?`${F}.${ue}`:ue),w.values)}else if(A)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,rk[g],E,(F,ue)=>O(ue,F,L)));else{let F=c(u);e=_(e,F?`${F}.${E}`:E,L)}}}let d=(m,g,_)=>((r?.fuzzyOr||o)&&(m=m.or),this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${_.toLowerCase()}%`]):m.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${_}%`]))),p=(m,g=!1)=>{function _(y){return(o||m===r?.containsAny)&&(y=y.or),m===r?.notContains&&(y=y.not),y}this.client==="pg"?l(m,"contains",(y,O,S)=>(y=_(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ah(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(O),this.knex.raw(ah(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(m,"contains",(y,O,S)=>_(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(O),this.knex.raw(oO(ah(S)))])):l(m,"contains",(y,O,S)=>(S.length===0||(y=y.where(L=>(m===r?.notContains&&(L=L.not),L=L.where(E=>{for(let A of S){m===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}%`)}}),m===r?.notContains&&(L=L.or.whereNull(this.rawQuotedIdentifier(O))),L))),y))};if(r.$and){let{$and:m}=r;for(let g of m.conditions)e=e.where(_=>{this.addFilters(_,g,n)})}if(r.$or){let{$or:m}=r;e=e.where(g=>{for(let _ of m.conditions)g.orWhere(y=>this.addFilters(y,{..._,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(m,g,_)=>{let y=this.getFieldSchema(g),O=Array.isArray(_)?_:[_];if(o&&(m=m.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?m=m.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):m=m.or.whereNull(g);return m}return m.whereIn(g,O)},(m,g,_)=>(o&&(m=m.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),m.whereIn(g,Array.isArray(_)?_:[_]))),r.string&&l(r.string,"string",(m,g,_)=>(o&&(m=m.or),this.client==="oracledb"||this.client==="sqlite3"?m.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${_.toLowerCase()}%`]):m.whereILike(g,`${_}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(m,g,_)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(_.low)&&(_.low=""),y(_.high)&&(_.high="");let O=ac(_.low),S=ac(_.high),L=this.getFieldSchema(g),E=g,A=_.high,B=_.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)",[_.high]),B=this.knex.raw("CAST(? AS INTEGER)",[_.low])),o&&(m=m.or),O&&S?m.whereBetween(E,[B,A]):O?m.where(E,">=",B):S?m.where(E,"<=",A):m}),r.equal&&l(r.equal,"equal",(m,g,_)=>{let y=this.getFieldSchema(g);if(o&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),_]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(S=>S.whereNotNull(O).andWhere(O,_))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?_!=null?m.whereLike(g,`${_.toISOString().slice(0,10)}%`):m.whereNull(g):m.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),_])}),r.notEqual&&l(r.notEqual,"notEqual",(m,g,_)=>{let y=this.getFieldSchema(g);if(o&&(m=m.or),this.client==="mssql")return m.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),_]);if(this.client==="oracledb"){let O=this.convertClobs(g);return m.where(S=>S.not.whereNull(O).and.where(O,"!=",_)).or.whereNull(O)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?_!=null?m.not.whereLike(g,`${_.toISOString().slice(0,10)}%`).or.whereNull(g):m.not.whereNull(g):m.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),_])}),r.empty&&l(r.empty,"empty",(m,g)=>(o&&(m=m.or),m.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(m,g)=>(o&&(m=m.or),m.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let f=s?.[this.table._id]||this.table._id;return r.documentType&&!fp(this.table)&&f&&e.andWhereLike(`${f}._id`,`${hr(r.documentType)}%`),e}isSqs(){return rO(this.table)}getTableName(e){e||(e=this.table);let r=e.name;rO(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${lh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,p;this.isAggregateField(a)?p=this.rawQuotedIdentifier(a):this.client==="oracledb"?p=this.convertClobs(d):p=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[p,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:p,through:f,to:m,from:g,fromPrimary:_,toPrimary:y}=d;if(!p||!r)continue;let O=c[p];if(!O)throw new Error(`related table "${p}" not found in datasource`);let S=a?.[p]||p,L=a?.[r]||r,E=f&&a?.[f]||f,A=this.tableNameWithSchema(p,{alias:S,schema:u}),B=[...O?.primary||[],O?.primaryDisplay].filter(q=>q),w=ek(l.filter(q=>q.split(".")[0]===S),B);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=w.map(q=>this.buildJsonField(O,q));if(!F.length)continue;let ue=F.map(q=>{let ie=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ie}??`,[q[0],q[1]]).toString()}).join(","),en=`${S}.${y||m}`,G=s.from(A).orderBy(en),k=f&&y&&_,R=k?`${E}.${g}`:`${S}.${m}`,W=k?`${L}.${_}`:`${L}.${g}`;if(k){let q=this.tableNameWithSchema(f,{alias:E,schema:u});G=G.join(q,function(){this.on(`${S}.${y}`,"=",`${E}.${m}`)})}G=G.where(this.rawQuotedIdentifier(R),"=",this.rawQuotedIdentifier(W));let U=q=>(G=G.select(w.map(ie=>this.rawQuotedIdentifier(ie))).limit(oh()),s.select(q).from({[S]:G})),H;switch(i){case"sqlite3":G=this.addJoinFieldCheck(G,d),H=U(this.knex.raw(`json_group_array(json_object(${ue}))`));break;case"pg":H=U(this.knex.raw(`json_agg(json_build_object(${ue}))`));break;case"mariadb":H=G.select(s.raw(`json_arrayagg(json_object(${ue}) LIMIT ${oh()})`));break;case"mysql2":case"oracledb":H=U(this.knex.raw(`json_arrayagg(json_object(${ue}))`));break;case"mssql":{let q=s.select("*").from({[L]:G.select(F.map(ie=>s.ref(ie[1]).as(ie[0]))).limit(oh())});H=s.raw(`(SELECT ?? = (${q} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:H})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,p=this.tableNameWithSchema(o,{alias:c,schema:s}),f=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(f,function(){for(let m of n){let g=m.fromPrimary,_=m.from;this.orOn(`${d}.${g}`,"=",`${l}.${_}`)}}).leftJoin(p,function(){for(let m of n){let g=m.toPrimary,_=m.to;this.orOn(`${c}.${g}`,`${l}.${_}`)}}):e=e.leftJoin(p,function(){for(let m of n){let g=m.from,_=m.to;this.orOn(`${d}.${g}`,"=",`${c}.${_}`)}}),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 f=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=f}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let p=this.query.tableAliases?.[o.name]||o.name,f=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"paginated"}));return this.addJsonRelationships(f,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())}},ch=class extends ul{constructor(r,n=tO()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Hi(r);return i==="sqlite3"&&(s=sO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,nO.knex)(s),a,u=new uh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:tO()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let p of a)d.push(await n(p,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===gl){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 Sh.includes(r.type)&&!br.schema.isDeprecatedSingleUserColumn(r)}log(r,n){Ho(this.getSqlClient(),r,n)}},aO=ch;var dh={};v(dh,{base:()=>nk});function nk(t){return{_id:er,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var ik={...Xo,...me},sk=(t={})=>{Wu(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,migrations,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
38
38
|
//# sourceMappingURL=index.js.map
|