@budibase/backend-core 3.9.2 → 3.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +8 -8
- package/dist/index.js.map +4 -4
- package/dist/package.json +2 -2
- package/dist/plugins.js +1 -1
- package/dist/src/accounts/accounts.d.ts +2 -2
- package/dist/src/accounts/accounts.js +5 -1
- package/dist/src/accounts/accounts.js.map +1 -1
- package/dist/src/cache/user.js +4 -4
- package/dist/src/cache/user.js.map +1 -1
- package/dist/src/users/db.js +2 -2
- package/dist/src/users/db.js.map +1 -1
- package/dist/src/users/utils.js +1 -1
- package/dist/src/users/utils.js.map +1 -1
- package/dist/tests/core/utilities/structures/accounts.d.ts +1 -2
- package/dist/tests/core/utilities/structures/accounts.js +1 -14
- package/dist/tests/core/utilities/structures/accounts.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var DI=Object.create;var Ga=Object.defineProperty;var CI=Object.getOwnPropertyDescriptor;var vI=Object.getOwnPropertyNames;var NI=Object.getPrototypeOf,PI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)Ga(t,r,{get:e[r],enumerable:!0})},vh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vI(e))!PI.call(t,i)&&i!==r&&Ga(t,i,{get:()=>e[i],enumerable:!(n=CI(e,i))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?DI(NI(t)):{},vh(e||!t||!t.__esModule?Ga(r,"default",{value:t,enumerable:!0}):r,t)),UI=t=>vh(Ga({},"__esModule",{value:!0}),t);var rg=H((Gl,$l)=>{"use strict";(function(t,e){typeof Gl=="object"&&typeof $l<"u"?$l.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Gl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",m="date",p="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function($){var F=["th","st","nd","rd"],C=$%100;return"["+$+(F[(C-20)%10]||F[C]||F[0])+"]"}},y=function($,F,C){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(C)+$},_={s:y,z:function($){var F=-$.utcOffset(),C=Math.abs(F),q=Math.floor(C/60),L=C%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(L,2,"0")},m:function $(F,C){if(F.date()<C.date())return-$(C,F);var q=12*(C.year()-F.year())+(C.month()-F.month()),L=F.clone().add(q,c),K=C-L<0,V=F.clone().add(q+(K?-1:1),c);return+(-(q+(C-L)/(K?L-V:V-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},S="en",M={};M[S]=E;var T="$isDayjsObject",I=function($){return $ instanceof le||!(!$||!$[T])},x=function $(F,C,q){var L;if(!F)return S;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),C&&(M[K]=C,L=K);var V=F.split("-");if(!L&&V.length>1)return $(V[0])}else{var se=F.name;M[se]=F,L=se}return!q&&L&&(S=L),L||!q&&S},w=function($,F){if(I($))return $.clone();var C=typeof F=="object"?F:{};return C.date=$,C.args=arguments,new le(C)},B=_;B.l=x,B.i=I,B.w=function($,F){return w($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var le=function(){function $(C){this.$L=x(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(C){this.$d=function(q){var L=q.date,K=q.utc;if(L===null)return new Date(NaN);if(B.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var V=L.match(f);if(V){var se=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return K?new Date(Date.UTC(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(L)}(C),this.init()},F.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(C,q){var L=w(C);return this.startOf(q)<=L&&L<=this.endOf(q)},F.isAfter=function(C,q){return w(C)<this.startOf(q)},F.isBefore=function(C,q){return this.endOf(q)<w(C)},F.$g=function(C,q,L){return B.u(C)?this[q]:this.set(L,C)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(C,q){var L=this,K=!!B.u(q)||q,V=B.p(C),se=function(ln,Qe){var Or=B.w(L.$u?Date.UTC(L.$y,Qe,ln):new Date(L.$y,Qe,ln),L);return K?Or:Or.endOf(a)},Oe=function(ln,Qe){return B.w(L.toDate()[ln].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Qe)),L)},ve=this.$W,W=this.$M,dt=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case d:return K?se(1,0):se(31,11);case c:return K?se(1,W):se(0,W+1);case u:var cn=this.$locale().weekStart||0,Os=(ve<cn?ve+7:ve)-cn;return se(K?dt-Os:dt+(6-Os),W);case a:case m:return Oe(Ei+"Hours",0);case o:return Oe(Ei+"Minutes",1);case s:return Oe(Ei+"Seconds",2);case i:return Oe(Ei+"Milliseconds",3);default:return this.clone()}},F.endOf=function(C){return this.startOf(C,!1)},F.$set=function(C,q){var L,K=B.p(C),V="set"+(this.$u?"UTC":""),se=(L={},L[a]=V+"Date",L[m]=V+"Date",L[c]=V+"Month",L[d]=V+"FullYear",L[o]=V+"Hours",L[s]=V+"Minutes",L[i]=V+"Seconds",L[n]=V+"Milliseconds",L)[K],Oe=K===a?this.$D+(q-this.$W):q;if(K===c||K===d){var ve=this.clone().set(m,1);ve.$d[se](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else se&&this.$d[se](Oe);return this.init(),this},F.set=function(C,q){return this.clone().$set(C,q)},F.get=function(C){return this[B.p(C)]()},F.add=function(C,q){var L,K=this;C=Number(C);var V=B.p(q),se=function(W){var dt=w(K);return B.w(dt.date(dt.date()+Math.round(W*C)),K)};if(V===c)return this.set(c,this.$M+C);if(V===d)return this.set(d,this.$y+C);if(V===a)return se(1);if(V===u)return se(7);var Oe=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,ve=this.$d.getTime()+C*Oe;return B.w(ve,this)},F.subtract=function(C,q){return this.add(-1*C,q)},F.format=function(C){var q=this,L=this.$locale();if(!this.isValid())return L.invalidDate||p;var K=C||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Oe=this.$m,ve=this.$M,W=L.weekdays,dt=L.months,Ei=L.meridiem,cn=function(Qe,Or,xs,Ba){return Qe&&(Qe[Or]||Qe(q,K))||xs[Or].slice(0,Ba)},Os=function(Qe){return B.s(se%12||12,Qe,"0")},ln=Ei||function(Qe,Or,xs){var Ba=Qe<12?"AM":"PM";return xs?Ba.toLowerCase():Ba};return K.replace(g,function(Qe,Or){return Or||function(xs){switch(xs){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return ve+1;case"MM":return B.s(ve+1,2,"0");case"MMM":return cn(L.monthsShort,ve,dt,3);case"MMMM":return cn(dt,ve);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return cn(L.weekdaysMin,q.$W,W,2);case"ddd":return cn(L.weekdaysShort,q.$W,W,3);case"dddd":return W[q.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return Os(1);case"hh":return Os(2);case"a":return ln(se,Oe,!0);case"A":return ln(se,Oe,!1);case"m":return String(Oe);case"mm":return B.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return B.s(q.$s,2,"0");case"SSS":return B.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(C,q,L){var K,V=this,se=B.p(q),Oe=w(C),ve=(Oe.utcOffset()-this.utcOffset())*e,W=this-Oe,dt=function(){return B.m(V,Oe)};switch(se){case d:K=dt()/12;break;case c:K=dt();break;case l:K=dt()/3;break;case u:K=(W-ve)/6048e5;break;case a:K=(W-ve)/864e5;break;case o:K=W/r;break;case s:K=W/e;break;case i:K=W/t;break;default:K=W}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(C,q){if(!C)return this.$L;var L=this.clone(),K=x(C,q,!0);return K&&(L.$L=K),L},F.clone=function(){return B.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},$}(),un=le.prototype;return w.prototype=un,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){un[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),w.extend=function($,F){return $.$i||($(F,le,w),$.$i=!0),w},w.locale=x,w.isDayjs=I,w.unix=function($){return w(1e3*$)},w.en=M[S],w.Ls=M,w.p={},w})});var xt=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var ox=t=>new ou(t);He.valid=ox;var ax=t=>new au(t);He.err=ax;var ou=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,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=ou;var au=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,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=au});var Rt=H(og=>{"use strict";Object.defineProperty(og,"__esModule",{value:!0})});var Nr=H(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Vt();var re=xt();Rt();var ux=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],cx=["sun","mon","tue","wed","thu","fri","sat"],lx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Us=(t,e,r)=>{if(e==="months"&&r.useAliases&&ux.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&cx.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)},dx=(t,e,r)=>{if(t==="*")return lx(e,r)?(0,re.valid)(!0):(0,re.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,re.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,re.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,re.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,re.valid)(!0):Us(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,re.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,re.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,re.err)("Number of occurrence of the day of the week cannot be greater than 5."):Us(n,e,r)}return Us(t,e,r)},ag=(t,e,r,n)=>t==="*"?(0,re.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,re.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,re.valid)(!0):Us(t,e,r),px=(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 dx(n[0],e,r);if(n.length===2){let i=ag(n[0],e,r,0),s=ag(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)")},fx=(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=px(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)},mx=(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(fx(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)};Ql.default=mx});var ug=H(Ls=>{"use strict";var hx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Vt();var gx=xt(),yx=hx(Nr());Rt();var Ex=(t,e)=>{if(!t.seconds)return(0,gx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,yx.default)(r,"seconds",e)};Ls.default=Ex});var cg=H(Ms=>{"use strict";var Tx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Vt();var Ax=xt(),Sx=Tx(Nr());Rt();var _x=(t,e)=>{if(!t.minutes)return(0,Ax.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Sx.default)(r,"minutes",e)};Ms.default=_x});var lg=H(ks=>{"use strict";var Ix=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var Ox=xt(),xx=Ix(Nr());Rt();var Rx=(t,e)=>{if(!t.hours)return(0,Ox.err)(["hours field is undefined."]);let{hours:r}=t;return(0,xx.default)(r,"hours",e)};ks.default=Rx});var dg=H(Bs=>{"use strict";var wx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});Vt();var Fs=xt(),bx=wx(Nr());Rt();var Dx=(t,e)=>{if(!t.daysOfMonth)return(0,Fs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Fs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Fs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Fs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Fs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,bx.default)(r,"daysOfMonth",e)};Bs.default=Dx});var pg=H(Gs=>{"use strict";var Cx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var vx=xt(),Nx=Cx(Nr());Rt();var Px=(t,e)=>{if(!t.months)return(0,vx.err)(["months field is undefined."]);let{months:r}=t;return(0,Nx.default)(r,"months",e)};Gs.default=Px});var fg=H(Vs=>{"use strict";var Ux=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});Vt();var $s=xt(),Lx=Ux(Nr());Rt();var Mx=(t,e)=>{if(!t.daysOfWeek)return(0,$s.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$s.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$s.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Lx.default)(r,"daysOfWeek",e)};Vs.default=Mx});var mg=H(qs=>{"use strict";var kx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});Vt();var Fx=xt(),Bx=kx(Nr());Rt();var Gx=(t,e)=>{if(!t.years)return(0,Fx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Bx.default)(r,"years",e)};qs.default=Gx});var Eg=H((PW,yg)=>{"use strict";var jl;try{jl=Map}catch{}var Hl;try{Hl=Set}catch{}function hg(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(gg);if(jl&&t instanceof jl)return new Map(Array.from(t.entries()));if(Hl&&t instanceof Hl)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]:hg(t[i],e,r)}return n}return t}function gg(t){return hg(t,[],[])}yg.exports=gg});var Ws=H(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});Yl.default=Hx;var $x=Object.prototype.toString,Vx=Error.prototype.toString,qx=RegExp.prototype.toString,Wx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Qx=/^Symbol\((.*)\)(.*)$/;function jx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Tg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return jx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Wx.call(t).replace(Qx,"Symbol($1)");let n=$x.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Vx.call(t)+"]":n==="RegExp"?qx.call(t):null}function Hx(t,e){let r=Tg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Tg(this[n],e);return s!==null?s:i},2)}});var tr=H(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=Ne.array=Ne.object=Ne.boolean=Ne.date=Ne.number=Ne.string=Ne.mixed=void 0;var Ag=Yx(Ws());function Yx(t){return t&&t.__esModule?t:{default:t}}var Sg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,Ag.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Ag.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"};Ne.mixed=Sg;var _g={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"};Ne.string=_g;var Ig={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"};Ne.number=Ig;var Og={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Og;var xg={isValue:"${path} field must be ${value}"};Ne.boolean=xg;var Rg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=Rg;var wg={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"};Ne.array=wg;var Kx=Object.assign(Object.create(null),{mixed:Sg,string:_g,number:Ig,date:Og,object:Rg,array:wg,boolean:xg});Ne.default=Kx});var vi=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var Jx=t=>t&&t.__isYupSchema__;uu.default=Jx});var Dg=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.default=void 0;var zx=bg(require("lodash/has")),Zx=bg(vi());function bg(t){return t&&t.__esModule?t:{default:t}}var Kl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,zx.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,Zx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Xx=Kl;cu.default=Xx});var zl=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.default=eR;function eR(t){return t==null?[]:[].concat(t)}});var Dn=H(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var tR=Cg(Ws()),rR=Cg(zl());function Cg(t){return t&&t.__esModule?t:{default:t}}function Zl(){return Zl=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},Zl.apply(this,arguments)}var nR=/\$\{\s*(\w+)\s*\}/g,Xl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Zl({},r,{path:n})),typeof e=="string"?e.replace(nR,(i,s)=>(0,tR.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,rR.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)}};lu.default=Xl});var du=H(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.default=oR;var ed=iR(Dn());function iR(t){return t&&t.__esModule?t:{default:t}}var sR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function oR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=sR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new ed.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let p=n[m];p(i,function(g){if(g){if(!ed.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 ed.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H(($W,Lg)=>{"use strict";function Cn(t){this._maxSize=t,this.clear()}Cn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Cn.prototype.get=function(t){return this._values[t]};Cn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var aR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Ug=/^\d+$/,uR=/^\d/,cR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,lR=/^\s*(['"]?)(.*?)(\1)\s*$/,id=512,vg=new Cn(id),Ng=new Cn(id),Pg=new Cn(id);Lg.exports={Cache:Cn,split:nd,normalizePath:rd,setter:function(t){var e=rd(t);return Ng.get(t)||Ng.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=rd(t);return Pg.get(t)||Pg.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+(sd(r)||Ug.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){dR(Array.isArray(t)?t:nd(t),e,r)}};function rd(t){return vg.get(t)||vg.set(t,nd(t).map(function(e){return e.replace(lR,"$2")}))}function nd(t){return t.match(aR)||[""]}function dR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(mR(i)&&(i='"'+i+'"'),a=sd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function sd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function pR(t){return t.match(uR)&&!t.match(Ug)}function fR(t){return cR.test(t)}function mR(t){return!sd(t)&&(pR(t)||fR(t))}});var vn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=gR;Hs.default=void 0;var hR=Qs(),pu={context:"$",value:"."};function gR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===pu.context,this.isValue=this.key[0]===pu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?pu.context:this.isValue?pu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,hR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var Mg=H(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=AR;var yR=od(require("lodash/mapValues")),fu=od(Dn()),ER=od(vn());function od(t){return t&&t.__esModule?t:{default:t}}function mu(){return mu=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},mu.apply(this,arguments)}function TR(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 AR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=TR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(I){return ER.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let x=(0,yR.default)(mu({value:i,originalValue:u,label:o,path:I.path||s},p,I.params),y),w=new fu.default(fu.default.formatError(I.message||f,x),i,x.path,I.type||d);return w.params=x,w}let S=mu({path:s,parent:g,type:d,createError:_,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(I=>{fu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let M;try{var T;if(M=m.call(S,i,S),typeof((T=M)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}fu.default.isError(M)?n(M):M?n(null,M):n(_())}return e.OPTIONS=t,e}});var ud=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=kg;Ys.default=void 0;var SR=Qs(),_R=t=>t.substr(0,t.length-1).substr(1);function kg(t,e,r,n=r){let i,s,o;return e?((0,SR.forEach)(e,(a,u,c)=>{let l=u?_R(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 IR=(t,e,r,n)=>kg(t,e,r,n).schema,OR=IR;Ys.default=OR});var Bg=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var Fg=xR(vn());function xR(t){return t&&t.__esModule?t:{default:t}}var cd=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){Fg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Fg.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}};hu.default=cd});var nr=H(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.default=void 0;var Gg=rr(Eg()),Ni=tr(),RR=rr(Dg()),$g=rr(du()),gu=rr(Mg()),Vg=rr(Ws()),wR=rr(vn()),bR=ud(),DR=rr(zl()),qg=rr(Dn()),Wg=rr(Bg());function rr(t){return t&&t.__esModule?t:{default:t}}function mt(){return mt=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},mt.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Wg.default,this._blacklist=new Wg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.mixed.notType)}),this.type=e?.type||"mixed",this.spec=mt({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=mt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Gg.default)(mt({},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=mt({},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(mt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Vg.default)(e),o=(0,Vg.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 DI=Object.create;var $a=Object.defineProperty;var CI=Object.getOwnPropertyDescriptor;var vI=Object.getOwnPropertyNames;var NI=Object.getPrototypeOf,PI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),v=(t,e)=>{for(var r in e)$a(t,r,{get:e[r],enumerable:!0})},vh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vI(e))!PI.call(t,i)&&i!==r&&$a(t,i,{get:()=>e[i],enumerable:!(n=CI(e,i))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?DI(NI(t)):{},vh(e||!t||!t.__esModule?$a(r,"default",{value:t,enumerable:!0}):r,t)),UI=t=>vh($a({},"__esModule",{value:!0}),t);var rg=H(($l,Vl)=>{"use strict";(function(t,e){typeof $l=="object"&&typeof Vl<"u"?Vl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})($l,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",m="date",p="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function($){var F=["th","st","nd","rd"],C=$%100;return"["+$+(F[(C-20)%10]||F[C]||F[0])+"]"}},y=function($,F,C){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(C)+$},_={s:y,z:function($){var F=-$.utcOffset(),C=Math.abs(F),q=Math.floor(C/60),L=C%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(L,2,"0")},m:function $(F,C){if(F.date()<C.date())return-$(C,F);var q=12*(C.year()-F.year())+(C.month()-F.month()),L=F.clone().add(q,c),K=C-L<0,V=F.clone().add(q+(K?-1:1),c);return+(-(q+(C-L)/(K?L-V:V-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:m,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},S="en",M={};M[S]=E;var T="$isDayjsObject",I=function($){return $ instanceof le||!(!$||!$[T])},x=function $(F,C,q){var L;if(!F)return S;if(typeof F=="string"){var K=F.toLowerCase();M[K]&&(L=K),C&&(M[K]=C,L=K);var V=F.split("-");if(!L&&V.length>1)return $(V[0])}else{var se=F.name;M[se]=F,L=se}return!q&&L&&(S=L),L||!q&&S},w=function($,F){if(I($))return $.clone();var C=typeof F=="object"?F:{};return C.date=$,C.args=arguments,new le(C)},B=_;B.l=x,B.i=I,B.w=function($,F){return w($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var le=function(){function $(C){this.$L=x(C.locale,null,!0),this.parse(C),this.$x=this.$x||C.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(C){this.$d=function(q){var L=q.date,K=q.utc;if(L===null)return new Date(NaN);if(B.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var V=L.match(f);if(V){var se=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return K?new Date(Date.UTC(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],se,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(L)}(C),this.init()},F.init=function(){var C=this.$d;this.$y=C.getFullYear(),this.$M=C.getMonth(),this.$D=C.getDate(),this.$W=C.getDay(),this.$H=C.getHours(),this.$m=C.getMinutes(),this.$s=C.getSeconds(),this.$ms=C.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(C,q){var L=w(C);return this.startOf(q)<=L&&L<=this.endOf(q)},F.isAfter=function(C,q){return w(C)<this.startOf(q)},F.isBefore=function(C,q){return this.endOf(q)<w(C)},F.$g=function(C,q,L){return B.u(C)?this[q]:this.set(L,C)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(C,q){var L=this,K=!!B.u(q)||q,V=B.p(C),se=function(ln,Qe){var Ir=B.w(L.$u?Date.UTC(L.$y,Qe,ln):new Date(L.$y,Qe,ln),L);return K?Ir:Ir.endOf(a)},Oe=function(ln,Qe){return B.w(L.toDate()[ln].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(Qe)),L)},ve=this.$W,W=this.$M,dt=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case d:return K?se(1,0):se(31,11);case c:return K?se(1,W):se(0,W+1);case u:var cn=this.$locale().weekStart||0,xs=(ve<cn?ve+7:ve)-cn;return se(K?dt-xs:dt+(6-xs),W);case a:case m:return Oe(Ei+"Hours",0);case o:return Oe(Ei+"Minutes",1);case s:return Oe(Ei+"Seconds",2);case i:return Oe(Ei+"Milliseconds",3);default:return this.clone()}},F.endOf=function(C){return this.startOf(C,!1)},F.$set=function(C,q){var L,K=B.p(C),V="set"+(this.$u?"UTC":""),se=(L={},L[a]=V+"Date",L[m]=V+"Date",L[c]=V+"Month",L[d]=V+"FullYear",L[o]=V+"Hours",L[s]=V+"Minutes",L[i]=V+"Seconds",L[n]=V+"Milliseconds",L)[K],Oe=K===a?this.$D+(q-this.$W):q;if(K===c||K===d){var ve=this.clone().set(m,1);ve.$d[se](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else se&&this.$d[se](Oe);return this.init(),this},F.set=function(C,q){return this.clone().$set(C,q)},F.get=function(C){return this[B.p(C)]()},F.add=function(C,q){var L,K=this;C=Number(C);var V=B.p(q),se=function(W){var dt=w(K);return B.w(dt.date(dt.date()+Math.round(W*C)),K)};if(V===c)return this.set(c,this.$M+C);if(V===d)return this.set(d,this.$y+C);if(V===a)return se(1);if(V===u)return se(7);var Oe=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,ve=this.$d.getTime()+C*Oe;return B.w(ve,this)},F.subtract=function(C,q){return this.add(-1*C,q)},F.format=function(C){var q=this,L=this.$locale();if(!this.isValid())return L.invalidDate||p;var K=C||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Oe=this.$m,ve=this.$M,W=L.weekdays,dt=L.months,Ei=L.meridiem,cn=function(Qe,Ir,Rs,Ga){return Qe&&(Qe[Ir]||Qe(q,K))||Rs[Ir].slice(0,Ga)},xs=function(Qe){return B.s(se%12||12,Qe,"0")},ln=Ei||function(Qe,Ir,Rs){var Ga=Qe<12?"AM":"PM";return Rs?Ga.toLowerCase():Ga};return K.replace(g,function(Qe,Ir){return Ir||function(Rs){switch(Rs){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return ve+1;case"MM":return B.s(ve+1,2,"0");case"MMM":return cn(L.monthsShort,ve,dt,3);case"MMMM":return cn(dt,ve);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return cn(L.weekdaysMin,q.$W,W,2);case"ddd":return cn(L.weekdaysShort,q.$W,W,3);case"dddd":return W[q.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return xs(1);case"hh":return xs(2);case"a":return ln(se,Oe,!0);case"A":return ln(se,Oe,!1);case"m":return String(Oe);case"mm":return B.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return B.s(q.$s,2,"0");case"SSS":return B.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(C,q,L){var K,V=this,se=B.p(q),Oe=w(C),ve=(Oe.utcOffset()-this.utcOffset())*e,W=this-Oe,dt=function(){return B.m(V,Oe)};switch(se){case d:K=dt()/12;break;case c:K=dt();break;case l:K=dt()/3;break;case u:K=(W-ve)/6048e5;break;case a:K=(W-ve)/864e5;break;case o:K=W/r;break;case s:K=W/e;break;case i:K=W/t;break;default:K=W}return L?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return M[this.$L]},F.locale=function(C,q){if(!C)return this.$L;var L=this.clone(),K=x(C,q,!0);return K&&(L.$L=K),L},F.clone=function(){return B.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},$}(),un=le.prototype;return w.prototype=un,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){un[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),w.extend=function($,F){return $.$i||($(F,le,w),$.$i=!0),w},w.locale=x,w.isDayjs=I,w.unix=function($){return w(1e3*$)},w.en=M[S],w.Ls=M,w.p={},w})});var xt=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var ox=t=>new au(t);He.valid=ox;var ax=t=>new uu(t);He.err=ax;var au=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,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=au;var uu=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,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=uu});var Rt=H(og=>{"use strict";Object.defineProperty(og,"__esModule",{value:!0})});var vr=H(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});Vt();var re=xt();Rt();var ux=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],cx=["sun","mon","tue","wed","thu","fri","sat"],lx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ls=(t,e,r)=>{if(e==="months"&&r.useAliases&&ux.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&cx.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)},dx=(t,e,r)=>{if(t==="*")return lx(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):Ls(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):Ls(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."):Ls(n,e,r)}return Ls(t,e,r)},ag=(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):Ls(t,e,r),px=(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 dx(n[0],e,r);if(n.length===2){let i=ag(n[0],e,r,0),s=ag(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)")},fx=(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=px(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)},mx=(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(fx(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)};jl.default=mx});var ug=H(Ms=>{"use strict";var hx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});Vt();var gx=xt(),yx=hx(vr());Rt();var Ex=(t,e)=>{if(!t.seconds)return(0,gx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,yx.default)(r,"seconds",e)};Ms.default=Ex});var cg=H(ks=>{"use strict";var Tx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var Ax=xt(),Sx=Tx(vr());Rt();var _x=(t,e)=>{if(!t.minutes)return(0,Ax.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Sx.default)(r,"minutes",e)};ks.default=_x});var lg=H(Fs=>{"use strict";var Ix=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Ox=xt(),xx=Ix(vr());Rt();var Rx=(t,e)=>{if(!t.hours)return(0,Ox.err)(["hours field is undefined."]);let{hours:r}=t;return(0,xx.default)(r,"hours",e)};Fs.default=Rx});var dg=H(Gs=>{"use strict";var wx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=xt(),bx=wx(vr());Rt();var Dx=(t,e)=>{if(!t.daysOfMonth)return(0,Bs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Bs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Bs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Bs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Bs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,bx.default)(r,"daysOfMonth",e)};Gs.default=Dx});var pg=H($s=>{"use strict";var Cx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var vx=xt(),Nx=Cx(vr());Rt();var Px=(t,e)=>{if(!t.months)return(0,vx.err)(["months field is undefined."]);let{months:r}=t;return(0,Nx.default)(r,"months",e)};$s.default=Px});var fg=H(qs=>{"use strict";var Ux=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});Vt();var Vs=xt(),Lx=Ux(vr());Rt();var Mx=(t,e)=>{if(!t.daysOfWeek)return(0,Vs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Vs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Vs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Lx.default)(r,"daysOfWeek",e)};qs.default=Mx});var mg=H(Ws=>{"use strict";var kx=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});Vt();var Fx=xt(),Bx=kx(vr());Rt();var Gx=(t,e)=>{if(!t.years)return(0,Fx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Bx.default)(r,"years",e)};Ws.default=Gx});var Eg=H((LW,yg)=>{"use strict";var Hl;try{Hl=Map}catch{}var Yl;try{Yl=Set}catch{}function hg(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(gg);if(Hl&&t instanceof Hl)return new Map(Array.from(t.entries()));if(Yl&&t instanceof Yl)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]:hg(t[i],e,r)}return n}return t}function gg(t){return hg(t,[],[])}yg.exports=gg});var Qs=H(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.default=Hx;var $x=Object.prototype.toString,Vx=Error.prototype.toString,qx=RegExp.prototype.toString,Wx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Qx=/^Symbol\((.*)\)(.*)$/;function jx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Tg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return jx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Wx.call(t).replace(Qx,"Symbol($1)");let n=$x.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Vx.call(t)+"]":n==="RegExp"?qx.call(t):null}function Hx(t,e){let r=Tg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Tg(this[n],e);return s!==null?s:i},2)}});var er=H(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});Ne.default=Ne.array=Ne.object=Ne.boolean=Ne.date=Ne.number=Ne.string=Ne.mixed=void 0;var Ag=Yx(Qs());function Yx(t){return t&&t.__esModule?t:{default:t}}var Sg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,Ag.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Ag.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"};Ne.mixed=Sg;var _g={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"};Ne.string=_g;var Ig={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"};Ne.number=Ig;var Og={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Og;var xg={isValue:"${path} field must be ${value}"};Ne.boolean=xg;var Rg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=Rg;var wg={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"};Ne.array=wg;var Kx=Object.assign(Object.create(null),{mixed:Sg,string:_g,number:Ig,date:Og,object:Rg,array:wg,boolean:xg});Ne.default=Kx});var vi=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.default=void 0;var Jx=t=>t&&t.__isYupSchema__;cu.default=Jx});var Dg=H(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var zx=bg(require("lodash/has")),Zx=bg(vi());function bg(t){return t&&t.__esModule?t:{default:t}}var Jl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,zx.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,Zx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},Xx=Jl;lu.default=Xx});var Zl=H(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.default=eR;function eR(t){return t==null?[]:[].concat(t)}});var Dn=H(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var tR=Cg(Qs()),rR=Cg(Zl());function Cg(t){return t&&t.__esModule?t:{default:t}}function Xl(){return Xl=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},Xl.apply(this,arguments)}var nR=/\$\{\s*(\w+)\s*\}/g,ed=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Xl({},r,{path:n})),typeof e=="string"?e.replace(nR,(i,s)=>(0,tR.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,rR.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)}};du.default=ed});var pu=H(rd=>{"use strict";Object.defineProperty(rd,"__esModule",{value:!0});rd.default=oR;var td=iR(Dn());function iR(t){return t&&t.__esModule?t:{default:t}}var sR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function oR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=sR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new td.default(o,s,u)):c(null,s);for(let m=0;m<n.length;m++){let p=n[m];p(i,function(g){if(g){if(!td.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 td.default(o,s,u),s);return}c(null,s)}})}}});var js=H((qW,Lg)=>{"use strict";function Cn(t){this._maxSize=t,this.clear()}Cn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Cn.prototype.get=function(t){return this._values[t]};Cn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var aR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Ug=/^\d+$/,uR=/^\d/,cR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,lR=/^\s*(['"]?)(.*?)(\1)\s*$/,sd=512,vg=new Cn(sd),Ng=new Cn(sd),Pg=new Cn(sd);Lg.exports={Cache:Cn,split:id,normalizePath:nd,setter:function(t){var e=nd(t);return Ng.get(t)||Ng.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=nd(t);return Pg.get(t)||Pg.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+(od(r)||Ug.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){dR(Array.isArray(t)?t:id(t),e,r)}};function nd(t){return vg.get(t)||vg.set(t,id(t).map(function(e){return e.replace(lR,"$2")}))}function id(t){return t.match(aR)||[""]}function dR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(mR(i)&&(i='"'+i+'"'),a=od(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function od(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function pR(t){return t.match(uR)&&!t.match(Ug)}function fR(t){return cR.test(t)}function mR(t){return!od(t)&&(pR(t)||fR(t))}});var vn=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=gR;Ys.default=void 0;var hR=js(),fu={context:"$",value:"."};function gR(t,e){return new Hs(t,e)}var Hs=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]===fu.context,this.isValue=this.key[0]===fu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?fu.context:this.isValue?fu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,hR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Ys.default=Hs;Hs.prototype.__isYupRef=!0});var Mg=H(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=AR;var yR=ad(require("lodash/mapValues")),mu=ad(Dn()),ER=ad(vn());function ad(t){return t&&t.__esModule?t:{default:t}}function hu(){return hu=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},hu.apply(this,arguments)}function TR(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 AR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=TR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:m,params:p,message:f}=t,{parent:g,context:E}=a;function y(I){return ER.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let x=(0,yR.default)(hu({value:i,originalValue:u,label:o,path:I.path||s},p,I.params),y),w=new mu.default(mu.default.formatError(I.message||f,x),i,x.path,I.type||d);return w.params=x,w}let S=hu({path:s,parent:g,type:d,createError:_,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(S,i,S)).then(I=>{mu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let M;try{var T;if(M=m.call(S,i,S),typeof((T=M)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}mu.default.isError(M)?n(M):M?n(null,M):n(_())}return e.OPTIONS=t,e}});var cd=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=kg;Ks.default=void 0;var SR=js(),_R=t=>t.substr(0,t.length-1).substr(1);function kg(t,e,r,n=r){let i,s,o;return e?((0,SR.forEach)(e,(a,u,c)=>{let l=u?_R(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 IR=(t,e,r,n)=>kg(t,e,r,n).schema,OR=IR;Ks.default=OR});var Bg=H(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var Fg=xR(vn());function xR(t){return t&&t.__esModule?t:{default:t}}var ld=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){Fg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Fg.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}};gu.default=ld});var rr=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var Gg=tr(Eg()),Ni=er(),RR=tr(Dg()),$g=tr(pu()),yu=tr(Mg()),Vg=tr(Qs()),wR=tr(vn()),bR=cd(),DR=tr(Zl()),qg=tr(Dn()),Wg=tr(Bg());function tr(t){return t&&t.__esModule?t:{default:t}}function mt(){return mt=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},mt.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Wg.default,this._blacklist=new Wg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.mixed.notType)}),this.type=e?.type||"mixed",this.spec=mt({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=mt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Gg.default)(mt({},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=mt({},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(mt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Vg.default)(e),o=(0,Vg.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,mt({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,$g.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,$g.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(mt({},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(mt({},r,{value:e})),i;return n._validate(e,mt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(qg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(qg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Gg.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=Ni.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ni.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=Ni.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,gu.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,DR.default)(e).map(s=>new wR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new RR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,gu.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=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,gu.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=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,gu.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)}}};yu.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,bR.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},n,{parent:i,path:e}))};for(let t of["equals","is"])wt.prototype[t]=wt.prototype.oneOf;for(let t of["not","nope"])wt.prototype[t]=wt.prototype.notOneOf;wt.prototype.optional=wt.prototype.notRequired});var jg=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=Qg;Ks.default=void 0;var CR=vR(nr());function vR(t){return t&&t.__esModule?t:{default:t}}var ld=CR.default,NR=ld;Ks.default=NR;function Qg(){return new ld}Qg.prototype=ld.prototype});var Pi=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var PR=t=>t==null;Eu.default=PR});var zg=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Jg;zs.default=void 0;var UR=Kg(nr()),Hg=tr(),Yg=Kg(Pi());function Kg(t){return t&&t.__esModule?t:{default:t}}function Jg(){return new Js}var Js=class extends UR.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=Hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Yg.default)(r)||r===!0}})}isFalse(e=Hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Yg.default)(r)||r===!1}})}};zs.default=Js;Jg.prototype=Js.prototype});var ey=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Xg;Xs.default=void 0;var qt=tr(),ir=Zg(Pi()),LR=Zg(nr());function Zg(t){return t&&t.__esModule?t:{default:t}}var MR=/^((([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,kR=/^((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,FR=/^(?:[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,BR=t=>(0,ir.default)(t)||t===t.trim(),GR={}.toString();function Xg(){return new Zs}var Zs=class extends LR.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===GR?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=qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,ir.default)(n)||n.length===this.resolve(e)}})}min(e,r=qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,ir.default)(n)||n.length>=this.resolve(e)}})}max(e,r=qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,ir.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||qt.string.matches,params:{regex:e},test:o=>(0,ir.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(MR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(kR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(FR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:BR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,ir.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,ir.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,ir.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;Xg.prototype=Zs.prototype});var ny=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=ry;to.default=void 0;var Nn=tr(),Pn=ty(Pi()),$R=ty(nr());function ty(t){return t&&t.__esModule?t:{default:t}}var VR=t=>t!=+t;function ry(){return new eo}var eo=class extends $R.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"&&!VR(e)}min(e,r=Nn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Pn.default)(n)||n>=this.resolve(e)}})}max(e,r=Nn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Pn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Nn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Pn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Nn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Pn.default)(n)||n>this.resolve(e)}})}positive(e=Nn.number.positive){return this.moreThan(0,e)}negative(e=Nn.number.negative){return this.lessThan(0,e)}integer(e=Nn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Pn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Pn.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,Pn.default)(i)?i:Math[e](i))}};to.default=eo;ry.prototype=eo.prototype});var iy=H(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=WR;var qR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function WR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=qR.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 ay=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=fd;ro.default=void 0;var QR=Tu(iy()),sy=tr(),oy=Tu(Pi()),jR=Tu(vn()),HR=Tu(nr());function Tu(t){return t&&t.__esModule?t:{default:t}}var pd=new Date(""),YR=t=>Object.prototype.toString.call(t)==="[object Date]";function fd(){return new Ui}var Ui=class extends HR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,QR.default)(e),isNaN(e)?pd:new Date(e))})})}_typeCheck(e){return YR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(jR.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=sy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,oy.default)(i)||i>=this.resolve(n)}})}max(e,r=sy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,oy.default)(i)||i<=this.resolve(n)}})}};ro.default=Ui;Ui.INVALID_DATE=pd;fd.prototype=Ui.prototype;fd.INVALID_DATE=pd});var cy=H((eQ,md)=>{"use strict";md.exports=function(t){return uy(KR(t),t)};md.exports.array=uy;function uy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=JR(e),a=zR(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),l=p.length){d.add(c);do{var f=p[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function KR(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}function JR(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 zR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ly=H(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=nw;var ZR=Au(require("lodash/has")),XR=Au(cy()),ew=Qs(),tw=Au(vn()),rw=Au(vi());function Au(t){return t&&t.__esModule?t:{default:t}}function nw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,ew.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,ZR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),tw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,rw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return XR.default.array(n,r).reverse()}});var py=H(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.default=iw;function dy(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 iw(t){return(e,r)=>dy(t,e)-dy(t,r)}});var Ty=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Ey;io.default=void 0;var fy=Wt(require("lodash/has")),my=Wt(require("lodash/snakeCase")),sw=Wt(require("lodash/camelCase")),ow=Wt(require("lodash/mapKeys")),aw=Wt(require("lodash/mapValues")),uw=Qs(),hy=tr(),cw=Wt(ly()),yy=Wt(py()),lw=Wt(du()),dw=Wt(Dn()),yd=Wt(nr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Li(){return Li=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},Li.apply(this,arguments)}var gy=t=>Object.prototype.toString.call(t)==="[object Object]";function pw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var fw=(0,yy.default)([]),no=class extends yd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=fw,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 gy(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=Li({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,fy.default)(i,d);if(m){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||d in i;continue}f=!r.__validating||!y?m.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else p&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!dw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!gy(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Li({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,lw.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=Li({},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 yd.default&&s instanceof yd.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,yy.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,cw.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,uw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,fy.default)(s,e)&&(o=Li({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=hy.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=pw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=hy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,ow.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(sw.default)}snakeCase(){return this.transformKeys(my.default)}constantCase(){return this.transformKeys(e=>(0,my.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,aw.default)(this.fields,r=>r.describe()),e}};io.default=no;function Ey(t){return new no(t)}Ey.prototype=no.prototype});var Sy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=Ay;oo.default=void 0;var Ed=Mi(Pi()),mw=Mi(vi()),hw=Mi(Ws()),Td=tr(),gw=Mi(du()),yw=Mi(Dn()),Ew=Mi(nr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Su(){return Su=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},Su.apply(this,arguments)}function Ay(t){return new so(t)}var so=class extends Ew.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,Su({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!yw.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],_=`${r.path||""}[${E}]`,S=Su({},r,{path:_,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,S,T)}(0,gw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,mw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,hw.default)(e));return r.innerType=e,r}length(e,r=Td.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Ed.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Td.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ed.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Td.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ed.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};oo.default=so;Ay.prototype=so.prototype});var _y=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Sw;ao.default=void 0;var Tw=Aw(vi());function Aw(t){return t&&t.__esModule?t:{default:t}}function Sw(t){return new _u(t)}var _u=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Tw.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)}},_w=_u;ao.default=_w});var Iy=H(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});Ad.default=xw;var Iw=Ow(tr());function Ow(t){return t&&t.__esModule?t:{default:t}}function xw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Iw.default[e][r]=t[e][r]})})}});var _d=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Nw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return Sd.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return Sd.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return Sd.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return Rw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return ww.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return bw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return Dw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return Cw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return vw.default}});var Oy=Un(jg()),Sd=Un(zg()),xy=Un(ey()),Ry=Un(ny()),wy=Un(ay()),by=Un(Ty()),Dy=Un(Sy()),Rw=vn(),ww=_y(),bw=uo(Dn()),Dw=uo(ud()),Cy=uo(vi()),Cw=uo(Iy()),vw=uo(nr());function uo(t){return t&&t.__esModule?t:{default:t}}function vy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return vy=function(){return t},t}function Un(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=vy();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 Nw(t,e,r){if(!t||!(0,Cy.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 Ny=H(Od=>{"use strict";Object.defineProperty(Od,"__esModule",{value:!0});var Id=xd();Od.default=()=>{(0,Id.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,Id.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,Id.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 xd=H(Pe=>{"use strict";var Pw=Pe&&Pe.__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]}),Uw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Lw=Pe&&Pe.__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)&&Pw(e,t,r);return Uw(e,t),e},Mw=Pe&&Pe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateOptions=Pe.registerOptionPreset=Pe.getOptionPresets=Pe.getOptionPreset=void 0;var R=Lw(_d());_d();var co=xt(),kw=Mw(Ny());Rt();var Ln={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}}},Py=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),Fw=t=>Ln[t]?(0,co.valid)(Ln[t]):(0,co.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Fw;var Bw=()=>Ln;Pe.getOptionPresets=Bw;var Gw=(t,e)=>{Ln[t]=Py.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Gw;var $w=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,_,S,M;try{(0,kw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Ln[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);T=Ln[t.preset]}else T=t.preset;else T=Ln.default;let I=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(_=T.daysOfWeek.upperLimit)!==null&&_!==void 0?_:T.daysOfWeek.maxValue},years:{lowerLimit:(S=T.years.lowerLimit)!==null&&S!==void 0?S:T.years.minValue,upperLimit:(M=T.years.upperLimit)!==null&&M!==void 0?M:T.years.maxValue}}),t.override),w=R.object({presetId:R.string().required(),preset:Py.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(T){return(0,co.err)(T.errors)}};Pe.validateOptions=$w});var Vt=H((lo,wd)=>{"use strict";var kn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Mn=xt(),Vw=kn(ug()),qw=kn(cg()),Ww=kn(lg()),Qw=kn(dg()),jw=kn(pg()),Hw=kn(fg()),Yw=kn(mg()),Kw=xd();Rt();var Jw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Mn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Mn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Mn.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,Mn.valid)(n)},Rd=(t,e={})=>{let r=(0,Kw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Jw(t,n);if(i.isError())return(0,Mn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Vw.default)(s,n)),o.push((0,qw.default)(s,n)),o.push((0,Ww.default)(s,n)),o.push((0,Qw.default)(s,n)),o.push((0,jw.default)(s,n)),o.push((0,Hw.default)(s,n)),n.useYears&&o.push((0,Yw.default)(s,n)),o.every(u=>u.isValid()))return(0,Mn.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,Mn.err)(a)};lo.default=Rd;wd.exports=Rd;wd.exports.default=Rd});var nT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var or=class extends Error{},Md=class extends or{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},kd=class extends or{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Fd=class extends or{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends or{},Du=class extends or{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends or{},Qt=class extends or{constructor(){super("Zone is an abstract class")}},b="numeric",Ct="short",nt="long",Cu={year:b,month:b,day:b},sE={year:b,month:Ct,day:b},zw={year:b,month:Ct,day:b,weekday:Ct},oE={year:b,month:nt,day:b},aE={year:b,month:nt,day:b,weekday:nt},uE={hour:b,minute:b},cE={hour:b,minute:b,second:b},lE={hour:b,minute:b,second:b,timeZoneName:Ct},dE={hour:b,minute:b,second:b,timeZoneName:nt},pE={hour:b,minute:b,hourCycle:"h23"},fE={hour:b,minute:b,second:b,hourCycle:"h23"},mE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ct},hE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:nt},gE={year:b,month:b,day:b,hour:b,minute:b},yE={year:b,month:b,day:b,hour:b,minute:b,second:b},EE={year:b,month:Ct,day:b,hour:b,minute:b},TE={year:b,month:Ct,day:b,hour:b,minute:b,second:b},Zw={year:b,month:Ct,day:b,weekday:Ct,hour:b,minute:b},AE={year:b,month:nt,day:b,hour:b,minute:b,timeZoneName:Ct},SE={year:b,month:nt,day:b,hour:b,minute:b,second:b,timeZoneName:Ct},_E={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,timeZoneName:nt},IE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,second:b,timeZoneName:nt},Mr=class{get type(){throw new Qt}get name(){throw new Qt}get ianaName(){return this.name}get isUniversal(){throw new Qt}offsetName(e,r){throw new Qt}formatOffset(e,r){throw new Qt}offset(e){throw new Qt}equals(e){throw new Qt}get isValid(){throw new Qt}},bd=null,Eo=class t extends Mr{static get instance(){return bd===null&&(bd=new t),bd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return xE(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},wu={};function Xw(t){return wu[t]||(wu[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"})),wu[t]}var eb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function tb(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 rb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=eb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Iu={},ar=class t extends Mr{static create(e){return Iu[e]||(Iu[e]=new t(e)),Iu[e]}static resetCache(){Iu={},wu={}}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 xE(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=Xw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?rb(n,r):tb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Jd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,f=p%1e3;return p-=f>=0?f:1e3+f,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Uy={};function nb(t,e={}){let r=JSON.stringify([t,e]),n=Uy[r];return n||(n=new Intl.ListFormat(t,e),Uy[r]=n),n}var Bd={};function Gd(t,e={}){let r=JSON.stringify([t,e]),n=Bd[r];return n||(n=new Intl.DateTimeFormat(t,e),Bd[r]=n),n}var $d={};function ib(t,e={}){let r=JSON.stringify([t,e]),n=$d[r];return n||(n=new Intl.NumberFormat(t,e),$d[r]=n),n}var Vd={};function sb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Vd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Vd[i]=s),s}var ho=null;function ob(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function ab(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=Gd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Gd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function ub(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function cb(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function lb(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function Ou(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function db(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 qd=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=ib(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):Kd(e,3);return Re(r,this.padTo)}}},Wd=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&&ar.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Gd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Qd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&OE()&&(this.rtf=sb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):wb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Se=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||ye.defaultLocale,o=s||(i?"en-US":ob()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Bd={},$d={},Vd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=ab(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=ub(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=db(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 Ou(this,e,n,bE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=cb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Ou(this,e,n,vE,()=>{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]=lb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Ou(this,void 0,e,()=>NE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Ou(this,e,r,PE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new qd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Wd(e,this.intl,r)}relFormatter(e={}){return new Qd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return nb(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}},Dd=null,it=class t extends Mr{static get utcInstance(){return Dd===null&&(Dd=new t(0)),Dd}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(Mu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},vu=class extends Mr{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 Lr(t,e){if(ne(t)||t===null)return e;if(t instanceof Mr)return t;if(pb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||ar.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new vu(t)}var Ly=()=>Date.now(),My="system",ky=null,Fy=null,By=null,Gy=60,$y,ye=class{static get now(){return Ly}static set now(e){Ly=e}static set defaultZone(e){My=e}static get defaultZone(){return Lr(My,Eo.instance)}static get defaultLocale(){return ky}static set defaultLocale(e){ky=e}static get defaultNumberingSystem(){return Fy}static set defaultNumberingSystem(e){Fy=e}static get defaultOutputCalendar(){return By}static set defaultOutputCalendar(e){By=e}static get twoDigitCutoffYear(){return Gy}static set twoDigitCutoffYear(e){Gy=e%100}static get throwOnInvalid(){return $y}static set throwOnInvalid(e){$y=e}static resetCaches(){Se.resetCache(),ar.resetCache()}};function ne(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Lu(t){return typeof t=="number"&&t%1===0}function pb(t){return typeof t=="string"}function fb(t){return Object.prototype.toString.call(t)==="[object Date]"}function OE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function mb(t){return Array.isArray(t)?t:[t]}function Vy(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 hb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function sr(t,e,r){return Lu(t)&&t>=e&&t<=r}function gb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Ur(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Fn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Yd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Kd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Nu(t,e){let r=gb(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Jd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function Pu(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 jd(t){return t>99?t:t>ye.twoDigitCutoffYear?1900+t:2e3+t}function xE(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 Mu(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 RE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function Uu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=RE(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function ku(t){return hb(t,["hour","minute","second","millisecond"])}var yb=["January","February","March","April","May","June","July","August","September","October","November","December"],wE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Eb=["J","F","M","A","M","J","J","A","S","O","N","D"];function bE(t){switch(t){case"narrow":return[...Eb];case"short":return[...wE];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 DE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],CE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Tb=["M","T","W","T","F","S","S"];function vE(t){switch(t){case"narrow":return[...Tb];case"short":return[...CE];case"long":return[...DE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var NE=["AM","PM"],Ab=["Before Christ","Anno Domini"],Sb=["BC","AD"],_b=["B","A"];function PE(t){switch(t){case"narrow":return[..._b];case"short":return[...Sb];case"long":return[...Ab];default:return null}}function Ib(t){return NE[t.hour<12?0:1]}function Ob(t,e){return vE(e)[t.weekday-1]}function xb(t,e){return bE(e)[t.month-1]}function Rb(t,e){return PE(e)[t.year<0?0:1]}function wb(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 qy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var bb={D:Cu,DD:sE,DDD:oE,DDDD:aE,t:uE,tt:cE,ttt:lE,tttt:dE,T:pE,TT:fE,TTT:mE,TTTT:hE,f:gE,ff:EE,fff:AE,ffff:_E,F:yE,FF:TE,FFF:SE,FFFF:IE},tt=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 bb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?Ib(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?xb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?Ob(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?Rb(e,p):s({era:p},"era"),m=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(p)}};return qy(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 qy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},UE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Vi(...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 qi(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 LE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Ur(e[r+i]);return[n,null,r+i]}}var ME=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Db=`(?:${ME.source}?(?:\\[(${UE.source})\\])?)?`,zd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,kE=RegExp(`${zd.source}${Db}`),Zd=RegExp(`(?:T${kE.source})?`),Cb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,vb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Nb=/(\d{4})-?(\d{3})/,Pb=LE("weekYear","weekNumber","weekDay"),Ub=LE("year","ordinal"),Lb=/(\d{4})-(\d\d)-(\d\d)/,FE=RegExp(`${zd.source} ?(?:${ME.source}|(${UE.source}))?`),Mb=RegExp(`(?: ${FE.source})?`);function Bi(t,e,r){let n=t[e];return ne(n)?r:Ur(n)}function kb(t,e){return[{year:Bi(t,e),month:Bi(t,e+1,1),day:Bi(t,e+2,1)},null,e+3]}function Wi(t,e){return[{hours:Bi(t,e,0),minutes:Bi(t,e+1,0),seconds:Bi(t,e+2,0),milliseconds:Yd(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Mu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function So(t,e){let r=t[e]?ar.create(t[e]):null;return[{},r,e+1]}var Fb=RegExp(`^T?${zd.source}$`),Bb=/^-?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 Gb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(Fn(r)),months:m(Fn(n)),weeks:m(Fn(i)),days:m(Fn(s)),hours:m(Fn(o)),minutes:m(Fn(a)),seconds:m(Fn(u),u==="-0"),milliseconds:m(Yd(c),d)}]}var $b={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 Xd(t,e,r,n,i,s,o){let a={year:e.length===2?jd(Ur(e)):Ur(e),month:wE.indexOf(r)+1,day:Ur(n),hour:Ur(i),minute:Ur(s)};return o&&(a.second=Ur(o)),t&&(a.weekday=t.length>3?DE.indexOf(t)+1:CE.indexOf(t)+1),a}var Vb=/^(?:(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 qb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Xd(e,i,n,r,s,o,a),p;return u?p=$b[u]:c?p=0:p=Mu(l,d),[m,new it(p)]}function Wb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Qb=/^(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$/,jb=/^(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$/,Hb=/^(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 Wy(t){let[,e,r,n,i,s,o,a]=t;return[Xd(e,i,n,r,s,o,a),it.utcInstance]}function Yb(t){let[,e,r,n,i,s,o,a]=t;return[Xd(e,a,r,n,i,s,o),it.utcInstance]}var Kb=$i(Cb,Zd),Jb=$i(vb,Zd),zb=$i(Nb,Zd),Zb=$i(kE),BE=Vi(kb,Wi,Ao,So),Xb=Vi(Pb,Wi,Ao,So),eD=Vi(Ub,Wi,Ao,So),tD=Vi(Wi,Ao,So);function rD(t){return qi(t,[Kb,BE],[Jb,Xb],[zb,eD],[Zb,tD])}function nD(t){return qi(Wb(t),[Vb,qb])}function iD(t){return qi(t,[Qb,Wy],[jb,Wy],[Hb,Yb])}function sD(t){return qi(t,[Bb,Gb])}var oD=Vi(Wi);function aD(t){return qi(t,[Fb,oD])}var uD=$i(Lb,Mb),cD=$i(FE),lD=Vi(Wi,Ao,So);function dD(t){return qi(t,[uD,BE],[cD,lD])}var pD="Invalid Duration",GE={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}},fD={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},...GE},ht=146097/400,ki=146097/4800,mD={years:{quarters:4,months:12,weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},quarters:{months:3,weeks:ht/28,days:ht/4,hours:ht*24/4,minutes:ht*24*60/4,seconds:ht*24*60*60/4,milliseconds:ht*24*60*60*1e3/4},months:{weeks:ki/7,days:ki,hours:ki*24,minutes:ki*24*60,seconds:ki*24*60*60,milliseconds:ki*24*60*60*1e3},...GE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],hD=Bn.slice(0).reverse();function Pr(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 De(n)}function gD(t){return t<0?Math.floor(t):Math.ceil(t)}function $E(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?gD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function yD(t,e){hD.reduce((r,n)=>ne(e[n])?r:(r&&$E(t,e,r,e,n),n),null)}function ED(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var De=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?mD:fD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.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 Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Uu(e,t.normalizeUnit),loc:Se.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=sD(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]=aD(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 Ye("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Fd(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 Du(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?tt.create(this.loc,n).formatDurationFromString(this,e):pD}toHuman(e={}){let r=Bn.map(n=>{let i=this.values[n];return ne(i)?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:n.slice(0,-1)}).format(i)}).filter(n=>n);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(r)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=Kd(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Bn)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Pr(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]=RE(e(this.values[n],n));return Pr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Uu(e,t.normalizeUnit)};return Pr(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 Pr(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),Pr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=ED(this.normalize().shiftToAll().toObject());return Pr(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 Bn)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;Vn(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)Bn.indexOf(c)>Bn.indexOf(o)&&$E(this.matrix,i,c,r,o)}else Vn(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 Pr(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 Pr(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 Bn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Fi="Invalid Interval";function TD(t,e){return!t||!t.isValid?qn.invalid("missing or invalid start"):!e||!e.isValid?qn.invalid("missing or invalid end"):e<t?qn.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 qn=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 Ye("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=TD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=De.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()})`:Fi}toLocaleString(e=Cu,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):Fi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Fi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Fi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Fi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Fi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):De.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},$n=class{static hasDST(e=ye.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ar.isValidZone(e)}static normalizeZone(e){return Lr(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:OE()}}};function Qy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(De.fromMillis(n).as("days"))}function AD(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=Qy(u,c);return(l-l%7)/7}],["days",Qy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function SD(t,e,r,n){let[i,s,o,a]=AD(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=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var ep={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"},jy={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]},_D=ep.hanidec.replace(/[\[|\]]/g,"").split("");function ID(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(ep.hanidec)!==-1)e+=_D.indexOf(t[r]);else for(let i in jy){let[s,o]=jy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${ep[t||"latn"]}${e}`)}var OD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(ID(r))}}var xD=String.fromCharCode(160),VE=`[ ${xD}]`,qE=new RegExp(VE,"g");function RD(t){return t.replace(/\./g,"\\.?").replace(qE,VE)}function Hy(t){return t.replace(/\./g,"").replace(qE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(RD).join("|")),deser:([r])=>t.findIndex(n=>Hy(r)===Hy(n))+e}}function Yy(t,e){return{regex:t,deser:([,r,n])=>Mu(r,n),groups:e}}function Cd(t){return{regex:t,deser:([e])=>e}}function wD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function bD(t,e){let r=bt(e),n=bt(e,"{2}"),i=bt(e,"{3}"),s=bt(e,"{4}"),o=bt(e,"{6}"),a=bt(e,"{1,2}"),u=bt(e,"{1,3}"),c=bt(e,"{1,6}"),l=bt(e,"{1,9}"),d=bt(e,"{2,4}"),m=bt(e,"{4,6}"),p=E=>({regex:RegExp(wD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return Dt(e.eras("short",!1),0);case"GG":return Dt(e.eras("long",!1),0);case"y":return ce(c);case"yy":return ce(d,jd);case"yyyy":return ce(s);case"yyyyy":return ce(m);case"yyyyyy":return ce(o);case"M":return ce(a);case"MM":return ce(n);case"MMM":return Dt(e.months("short",!0,!1),1);case"MMMM":return Dt(e.months("long",!0,!1),1);case"L":return ce(a);case"LL":return ce(n);case"LLL":return Dt(e.months("short",!1,!1),1);case"LLLL":return Dt(e.months("long",!1,!1),1);case"d":return ce(a);case"dd":return ce(n);case"o":return ce(u);case"ooo":return ce(i);case"HH":return ce(n);case"H":return ce(a);case"hh":return ce(n);case"h":return ce(a);case"mm":return ce(n);case"m":return ce(a);case"q":return ce(a);case"qq":return ce(n);case"s":return ce(a);case"ss":return ce(n);case"S":return ce(u);case"SSS":return ce(i);case"u":return Cd(l);case"uu":return Cd(a);case"uuu":return ce(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(d,jd);case"W":return ce(a);case"WW":return ce(n);case"E":case"c":return ce(r);case"EEE":return Dt(e.weekdays("short",!1,!1),1);case"EEEE":return Dt(e.weekdays("long",!1,!1),1);case"ccc":return Dt(e.weekdays("short",!0,!1),1);case"cccc":return Dt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Yy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Yy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Cd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:OD};return g.token=t,g}var DD={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 CD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=DD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function vD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function ND(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Gi(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 PD(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=ar.create(t.z)),ne(t.Z)||(r||(r=new it(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=Yd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var vd=null;function UD(){return vd||(vd=_e.fromMillis(1555555555555)),vd}function LD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=jE(r,e);return n==null||n.includes(void 0)?t:n}function WE(t,e){return Array.prototype.concat(...t.map(r=>LD(r,e)))}function QE(t,e,r){let n=WE(tt.parseFormat(r),t),i=n.map(o=>bD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=vD(i),u=RegExp(o,"i"),[c,l]=ND(e,u,a),[d,m,p]=l?PD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new Gn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function MD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=QE(t,e,r);return[n,i,s,o]}function jE(t,e){return t?tt.create(e,t).formatDateTimeParts(UD()).map(i=>CD(i,t)):null}var HE=[0,31,59,90,120,151,181,212,243,273,304,334],YE=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function KE(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 JE(t,e,r){return r+(To(t)?YE:HE)[e-1]}function zE(t,e){let r=To(t)?YE:HE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Hd(t){let{year:e,month:r,day:n}=t,i=JE(e,r,n),s=KE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Pu(a)):o>Pu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...ku(t)}}function Ky(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=KE(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=zE(a,o);return{year:a,month:u,day:c,...ku(t)}}function Nd(t){let{year:e,month:r,day:n}=t,i=JE(e,r,n);return{year:e,ordinal:i,...ku(t)}}function Jy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=zE(e,r);return{year:e,month:n,day:i,...ku(t)}}function kD(t){let e=Lu(t.weekYear),r=sr(t.weekNumber,1,Pu(t.weekYear)),n=sr(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function FD(t){let e=Lu(t.year),r=sr(t.ordinal,1,go(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function ZE(t){let e=Lu(t.year),r=sr(t.month,1,12),n=sr(t.day,1,Nu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function XE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=sr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=sr(r,0,59),a=sr(n,0,59),u=sr(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var Pd="Invalid DateTime",zy=864e13;function xu(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Ud(t){return t.weekData===null&&(t.weekData=Hd(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function eT(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 Zy(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 bu(t,e,r){return eT(Jd(t),e,r)}function Xy(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,Nu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=Jd(s),[u,c]=eT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Ru(t,e,r=!0){return t.isValid?tt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Ld(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function eE(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var tT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},BD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},GD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},rT=["year","month","day","hour","minute","second","millisecond"],$D=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],VD=["year","ordinal","hour","minute","second","millisecond"];function tE(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 Du(t);return e}function rE(t,e){let r=Lr(e.zone,ye.defaultZone),n=Se.fromObject(e),i=ye.now(),s,o;if(ne(t.year))s=i;else{for(let c of rT)ne(t[c])&&(t[c]=tT[c]);let a=ZE(t)||XE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=bu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function nE(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Kd(o,n||r.calendary?0:2,!0),e.loc.clone(r).relFormatter(r).format(o,a)),s=o=>r.calendary?e.hasSame(t,o)?0:e.startOf(o).diff(t.startOf(o),o).get(o):e.diff(t,o).get(o);if(r.unit)return i(s(r.unit),r.unit);for(let o of r.units){let a=s(o);if(Math.abs(a)>=1)return i(a,o)}return i(t>e?-0:0,r.units[r.units.length-1])}function iE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||ye.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:xu(r));this.ts=ne(e.ts)?ye.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=Zy(this.ts,a),n=Number.isNaN(i.year)?new rt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Se.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]=iE(arguments),[n,i,s,o,a,u,c]=r;return rE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=iE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,rE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=fb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Lr(r.zone,ye.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(xu(i))}static fromMillis(e,r={}){if(Vn(e))return e<-zy||e>zy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Lr(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Vn(e))return new t({ts:e*1e3,zone:Lr(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Lr(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(xu(n));let i=ye.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Uu(e,tE),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Se.fromObject(r);if((l||a)&&d)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Gn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=Zy(i,s);p?(f=$D,g=BD,E=Hd(E)):a?(f=VD,g=GD,E=Nd(E)):(f=rT,g=tT);let y=!1;for(let w of f){let B=o[w];ne(B)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let _=p?kD(o):a?FD(o):ZE(o),S=_||XE(o);if(S)return t.invalid(S);let M=p?Ky(o):a?Jy(o):o,[T,I]=bu(M,s,n),x=new t({ts:T,zone:n,o:I,loc:m});return o.weekday&&l&&e.weekday!==x.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${x.toISO()}`):x}static fromISO(e,r={}){let[n,i]=rD(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=nD(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=iD(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=MD(o,e,r);return l?t.invalid(l):fo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=dD(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Md(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=jE(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return WE(tt.parseFormat(e),Se.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?Ud(this).weekYear:NaN}get weekNumber(){return this.isValid?Ud(this).weekNumber:NaN}get weekday(){return this.isValid?Ud(this).weekday:NaN}get ordinal(){return this.isValid?Nd(this.c).ordinal:NaN}get monthShort(){return this.isValid?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return To(this.year)}get daysInMonth(){return Nu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?Pu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(ye.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Lr(e,ye.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]=bu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(xu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Uu(e,tE),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 Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Gn("Can't mix ordinal dates with month/day");let c;n?c=Ky({...Hd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Nu(c.year,c.month),c.day))):c=Jy({...Nd(this.c),...r});let[l,d]=bu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return po(this,Xy(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return po(this,Xy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=De.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?tt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Pd}toLocaleString(e=Cu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Pd}toLocaleParts(e={}){return this.isValid?tt.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=Ld(this,o);return a+="T",a+=eE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Ld(this,e==="extended"):null}toISOWeekDate(){return Ru(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":"")+eE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ru(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ru(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Ld(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")),Ru(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Pd}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 De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=mb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=SD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?qn.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),nE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?nE(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 Ye("min requires all arguments be DateTimes");return Vy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return Vy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return QE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Cu}static get DATE_MED(){return sE}static get DATE_MED_WITH_WEEKDAY(){return zw}static get DATE_FULL(){return oE}static get DATE_HUGE(){return aE}static get TIME_SIMPLE(){return uE}static get TIME_WITH_SECONDS(){return cE}static get TIME_WITH_SHORT_OFFSET(){return lE}static get TIME_WITH_LONG_OFFSET(){return dE}static get TIME_24_SIMPLE(){return pE}static get TIME_24_WITH_SECONDS(){return fE}static get TIME_24_WITH_SHORT_OFFSET(){return mE}static get TIME_24_WITH_LONG_OFFSET(){return hE}static get DATETIME_SHORT(){return gE}static get DATETIME_SHORT_WITH_SECONDS(){return yE}static get DATETIME_MED(){return EE}static get DATETIME_MED_WITH_SECONDS(){return TE}static get DATETIME_MED_WITH_WEEKDAY(){return Zw}static get DATETIME_FULL(){return AE}static get DATETIME_FULL_WITH_SECONDS(){return SE}static get DATETIME_HUGE(){return _E}static get DATETIME_HUGE_WITH_SECONDS(){return IE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&Vn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var qD="3.2.1";st.DateTime=_e;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=ar;st.Info=$n;st.Interval=qn;st.InvalidZone=vu;st.Settings=ye;st.SystemZone=Eo;st.VERSION=qD;st.Zone=Mr});var sT=H((dQ,iT)=>{"use strict";var Wn=nT();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};z.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=Wn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Wn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Wn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Wn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Wn.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))}iT.exports=z});var uT=H((pQ,aT)=>{"use strict";function Qn(t){return{start:t,count:1}}function oT(t,e){t.end=e,t.step=e-t.start,t.count=2}function tp(t,e,r){e&&(e.count===2?(t.push(Qn(e.start)),t.push(Qn(e.end))):t.push(e)),r&&t.push(r)}function WD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(tp(e,r,Qn(i)),r=void 0):r?r.count===1?oT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Qn(r.start)),r=Qn(r.end),oT(r,i)):(tp(e,r),r=Qn(i)):r=Qn(i)}return tp(e,r),e}aT.exports=WD});var lT=H((fQ,cT)=>{"use strict";var QD=uT();function jD(t,e,r){var n=QD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,p){var f=c.start+p;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}cT.exports=jD});var fT=H((mQ,pT)=>{"use strict";var jn=sT(),HD=lT(),dT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new jn(e.currentDate,this._tz),this._startDate=e.startDate?new jn(e.startDate,this._tz):null,this._endDate=e.endDate?new jn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(U._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(U._isValidConstraintChar(n,f)){c.push(f);return}var _=+f;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(y,_){for(var S=0,M=_.length;S<M;S++)if(_[S]>=y)return _[S]===y;return _[0]===y}function n(y,_){if(_<6){if(y.getDate()<8&&_===1)return!0;var S=y.getDate()%7?1:0,M=y.getDate()-y.getDate()%7,T=Math.floor(M/7)+S;return T===_}return!1}function i(y){return y.length>0&&y.some(function(_){return typeof _=="string"&&_.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new jn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(_){if(!i([_]))return!1;var S=Number.parseInt(_[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+_);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<dT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=dT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new jn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new jn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(HD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new jn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,d=U.map.length;l<d;++l){var m=U.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?_(p):p;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var E=U.map[l];g[E]=a[l]}var y=U._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new U(g,o);function _(S){var M=S.split("#");if(M.length>1){var T=+M[M.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(M.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,M[0]}return S}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};pT.exports=U});var hT=H((hQ,mT)=>{"use strict";var Fu=fT();function kr(){}kr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Fu.parse(e)};if(r.length>6)return{interval:Fu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};kr.parseExpression=function(e,r){return Fu.parse(e,r)};kr.fieldsToExpression=function(e,r){return Fu.fieldsToExpression(e,r)};kr.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=kr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};kr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,kr.parseString(i.toString()))})};mT.exports=kr});var DF={};v(DF,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,BadRequestError:()=>bc,BudibaseError:()=>ms,Config:()=>Dp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>wp,DEFAULT_EXPENSES_TABLE_ID:()=>Rp,DEFAULT_INVENTORY_TABLE_ID:()=>xp,DEFAULT_JOBS_TABLE_ID:()=>Op,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,Duration:()=>be,DurationType:()=>Zf,EmailUnavailableError:()=>gr,ErrorCode:()=>vc,FeatureDisabledError:()=>Cc,GlobalRole:()=>bp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>wr,InvalidAPIKeyError:()=>hs,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>DT,NotFoundError:()=>wc,RedisClient:()=>qe,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ur,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UsageLimitError:()=>Dc,UserStatus:()=>Hu,ViewName:()=>Gr,accounts:()=>li,auth:()=>hh,blacklist:()=>Th,cache:()=>wa,configs:()=>tn,constants:()=>Cp,context:()=>Ae,db:()=>Wr,docIds:()=>df,docUpdates:()=>Sh,encryption:()=>ph,env:()=>h,errors:()=>Pc,events:()=>Ts,features:()=>nh,getPublicError:()=>Nc,init:()=>bF,installation:()=>Vc,locks:()=>ci,logging:()=>Ac,middleware:()=>mh,objectStore:()=>wf,permissions:()=>eh,platform:()=>la,plugins:()=>yh,queue:()=>pm,redis:()=>Eh,roles:()=>Xm,security:()=>Dm,sessions:()=>Kc,setEnv:()=>wo,sql:()=>Ch,tenancy:()=>wF,timers:()=>Ho,userUtils:()=>um,users:()=>As,utils:()=>ls,withEnv:()=>LT});module.exports=UI(DF);var tn={};v(tn,{analyticsEnabled:()=>Bc,generateConfigID:()=>el,getAIConfig:()=>$0,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Bm,getGoogleConfig:()=>tl,getGoogleDatasourceConfig:()=>Vm,getOIDCConfig:()=>F0,getOIDCConfigById:()=>qm,getOIDCLogosDoc:()=>M0,getPlatformUrl:()=>Pa,getSCIMConfig:()=>G0,getSMTPConfig:()=>B0,getSMTPConfigDoc:()=>C_,getSettingsConfig:()=>$m,getSettingsConfigDoc:()=>Wc,save:()=>U0});var LI=["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"],Nh=[...LI],Ph={"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 Rl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Rl||{}),wl=(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))(wl||{}),$a=(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))($a||{});var bl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(bl||{});var MI=Q(require("lodash")),xr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(xr||{}),zt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(zt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function Va(t){return Object.values(Ti).includes(t)}function Uh(t){return Object.values(xr).includes(t)}function Lh(t){return Object.values(zt).includes(t)}function Dl(t){return Object.values(dn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Mh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var kh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,AI_TABLE_GENERATION:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var CB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var qa=(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))(qa||{});var Wa=t=>t.hosting==="cloud";var Qa=t=>t.authType==="sso";var N="_",Fe="\uFFF0",Rr=t=>`${t}${N}`,he=(W=>(W.USER="us",W.GROUP="gr",W.WORKSPACE="workspace",W.CONFIG="config",W.TEMPLATE="template",W.APP="app",W.DEV="dev",W.APP_DEV="app_dev",W.APP_METADATA="app_metadata",W.ROLE="role",W.MIGRATIONS="migrations",W.DEV_INFO="devinfo",W.AUTOMATION_LOG="log_au",W.ACCOUNT_METADATA="acc_metadata",W.PLUGIN="plg",W.DATASOURCE="datasource",W.DATASOURCE_PLUS="datasource_plus",W.APP_BACKUP="backup",W.TABLE="ta",W.ROW="ro",W.AUTOMATION="au",W.LINK="li",W.WEBHOOK="wh",W.INSTANCE="inst",W.LAYOUT="layout",W.SCREEN="screen",W.QUERY="query",W.DEPLOYMENTS="deployments",W.METADATA="metadata",W.MEM_VIEW="view",W.USER_FLAG="flag",W.AUTOMATION_METADATA="meta_au",W.AUDIT_LOG="al",W.APP_MIGRATION_METADATA="_design/migrations",W.SCIM_LOG="scimlog",W.ROW_ACTIONS="ra",W.OAUTH2_CONFIG="oauth2",W.OAUTH2_CONFIG_LOG="oauth2log",W))(he||{}),yG=Object.values(he).sort((t,e)=>e.length-t.length);var wr=(e=>(e.USER_METADATA="ta_users",e))(wr||{}),Cl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Cl||{}),EG=Object.values(Cl).sort((t,e)=>e.length-t.length);var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),ge=(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))(ge||{}),It=(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))(It||{});var de=(x=>(x.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",x.CREATE_ROW="CREATE_ROW",x.UPDATE_ROW="UPDATE_ROW",x.DELETE_ROW="DELETE_ROW",x.EXECUTE_BASH="EXECUTE_BASH",x.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",x.EXECUTE_SCRIPT="EXECUTE_SCRIPT",x.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",x.EXECUTE_QUERY="EXECUTE_QUERY",x.SERVER_LOG="SERVER_LOG",x.DELAY="DELAY",x.FILTER="FILTER",x.QUERY_ROWS="QUERY_ROWS",x.LOOP="LOOP",x.COLLECT="COLLECT",x.OPENAI="OPENAI",x.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",x.BRANCH="BRANCH",x.discord="discord",x.slack="slack",x.zapier="zapier",x.integromat="integromat",x.n8n="n8n",x))(de||{}),Fh=[...Object.values(de),...Object.values(It)];var vl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(vl||{});var Nl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Nl||{});var Pl="bb_internal";var Bh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function ja(t){return!!t.providerType}var Ul=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ul||{});var U$=Object.values(Ul);var B$=["rows","queries","automations"],G$=["queries","automations"];var fn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(fn||{}),Ha=(r=>(r.STRING="string",r.NUMBER="number",r))(Ha||{});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 Ml;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Ml||(Ml={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),br=t=>{switch(typeof t){case"undefined":return k.undefined;case"string":return k.string;case"number":return isNaN(t)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(t)?k.array:t===null?k.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?k.promise:typeof Map<"u"&&t instanceof Map?k.map:typeof Set<"u"&&t instanceof Set?k.set:typeof Date<"u"&&t instanceof Date?k.date:k.object;default:return k.unknown}},O=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),GI=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Ii=(t,e)=>{let r;switch(t.code){case O.invalid_type:t.received===k.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case O.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case O.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case O.invalid_union:r="Invalid input";break;case O.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case O.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case O.invalid_arguments:r="Invalid function arguments";break;case O.invalid_return_type:r="Invalid function return type";break;case O.invalid_date:r="Invalid date";break;case O.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case O.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case O.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case O.custom:r="Invalid input";break;case O.invalid_intersection_types:r="Intersection results could not be merged";break;case O.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case O.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Vh=Ii;function $I(t){Vh=t}function Ya(){return Vh}var Ka=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}},VI=[];function P(t,e){let r=Ya(),n=Ka({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),kl=t=>t.status==="aborted",Fl=t=>t.status==="dirty",Cs=t=>t.status==="valid",vs=t=>typeof Promise<"u"&&t instanceof Promise;function Ja(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 qh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var bs,Ds,ft=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Gh=(t,e)=>{if(Cs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return br(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:br(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:br(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(vs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:br(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Gh(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:br(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(vs(i)?i:Promise.resolve(i));return Gh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:O.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Ze({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return $t.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return er.create(this,this._def)}promise(){return vr.create(this,this._def)}or(e){return An.create([this,e],this._def)}and(e){return Sn.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return bn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},qI=/^c[^\s-]{8,}$/i,WI=/^[0-9a-z]+$/,QI=/^[0-9A-HJKMNP-TV-Z]{26}$/,jI=/^[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,HI=/^[a-z0-9_-]{21}$/i,YI=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,KI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,JI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ll,zI=/^(?:(?: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])$/,ZI=/^(([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})))$/,XI=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Wh="((\\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])))",eO=new RegExp(`^${Wh}$`);function Qh(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 tO(t){return new RegExp(`^${Qh(t)}$`)}function jh(t){let e=`${Wh}T${Qh(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 rO(t,e){return!!((e==="v4"||!e)&&zI.test(t)||(e==="v6"||!e)&&ZI.test(t))}var Dr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.string,received:s.parsedType}),J}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:O.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:O.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")KI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ll||(Ll=new RegExp(JI,"u")),Ll.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")jI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")HI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")qI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")WI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")QI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:O.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:O.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?jh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?eO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?tO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?YI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?rO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:O.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:O.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};Dr.create=t=>{var e;return new Dr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function nO(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 mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==k.number){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?nO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};mn.create=t=>new mn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var hn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==k.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.bigint,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};hn.create=t=>{var e;return new hn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var gn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.boolean,received:n.parsedType}),J}return Be(e.data)}};gn.create=t=>new gn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var yn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_date}),J}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};yn.create=t=>new yn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==k.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.symbol,received:n.parsedType}),J}return Be(e.data)}};Oi.create=t=>new Oi({typeName:Y.ZodSymbol,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.undefined,received:n.parsedType}),J}return Be(e.data)}};En.create=t=>new En({typeName:Y.ZodUndefined,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==k.null){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.null,received:n.parsedType}),J}return Be(e.data)}};Tn.create=t=>new Tn({typeName:Y.ZodNull,...Z(t)});var Cr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Be(e.data)}};Cr.create=t=>new Cr({typeName:Y.ZodAny,...Z(t)});var Xt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Be(e.data)}};Xt.create=t=>new Xt({typeName:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:O.invalid_type,expected:k.never,received:r.parsedType}),J}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.void,received:n.parsedType}),J}return Be(e.data)}};xi.create=t=>new xi({typeName:Y.ZodVoid,...Z(t)});var er=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==k.array)return P(r,{code:O.invalid_type,expected:k.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?O.too_big:O.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:O.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:O.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new ft(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};er.create=(t,e)=>new er({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Si(t){if(t instanceof je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(Si(n))}return new je({...t._def,shape:()=>e})}else return t instanceof er?new er({...t._def,type:Si(t.element)}):t instanceof pt?pt.create(Si(t.unwrap())):t instanceof $t?$t.create(Si(t.unwrap())):t instanceof Gt?Gt.create(t.items.map(e=>Si(e))):t}var je=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==k.object){let c=this._getOrReturnCtx(e);return P(c,{code:O.invalid_type,expected:k.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ft(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:O.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new ft(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=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Si(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 pt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Hh(te.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var An=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return P(r,{code:O.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return P(r,{code:O.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};An.create=(t,e)=>new An({options:t,typeName:Y.ZodUnion,...Z(e)});var Zt=t=>t instanceof _n?Zt(t.schema):t instanceof Ze?Zt(t.innerType()):t instanceof In?[t.value]:t instanceof On?t.options:t instanceof xn?te.objectValues(t.enum):t instanceof Rn?Zt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof pt?[void 0,...Zt(t.unwrap())]:t instanceof $t?[null,...Zt(t.unwrap())]:t instanceof Ns||t instanceof bn?Zt(t.unwrap()):t instanceof wn?Zt(t._def.innerType):[],za=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.object)return P(r,{code:O.invalid_type,expected:k.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:O.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=Zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Bl(t,e){let r=br(t),n=br(e);if(t===e)return{valid:!0,data:t};if(r===k.object&&n===k.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Bl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===k.array&&n===k.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Bl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===k.date&&n===k.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var Sn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(kl(s)||kl(o))return J;let a=Bl(s.value,o.value);return a.valid?((Fl(s)||Fl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:O.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Sn.create=(t,e,r)=>new Sn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Gt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.array)return P(n,{code:O.invalid_type,expected:k.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:O.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:O.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new ft(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Gt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Gt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Za=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.object)return P(n,{code:O.invalid_type,expected:k.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new ft(n,a,n.path,a)),value:o._parse(new ft(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.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:Dr.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},Ri=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.map)return P(n,{code:O.invalid_type,expected:k.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new ft(n,a,n.path,[c,"key"])),value:s._parse(new ft(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var wi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.set)return P(n,{code:O.invalid_type,expected:k.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:O.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:O.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new ft(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};wi.create=(t,e)=>new wi({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var Xa=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.function)return P(r,{code:O.invalid_type,expected:k.function,received:r.parsedType}),J;function n(a,u){return Ka({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ya(),Ii].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return Ka({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ya(),Ii].filter(c=>!!c),issueData:{code:O.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof vr){let a=this;return Be(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),c})})}else{let a=this;return Be(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Gt.create(e).rest(Xt.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||Gt.create([]).rest(Xt.create()),returns:r||Xt.create(),typeName:Y.ZodFunction,...Z(n)})}},_n=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:Y.ZodLazy,...Z(e)});var In=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:O.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};In.create=(t,e)=>new In({value:t,typeName:Y.ZodLiteral,...Z(e)});function Hh(t,e){return new On({values:t,typeName:Y.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:te.joinValues(n),received:r.parsedType,code:O.invalid_type}),J}if(Ja(this,bs,"f")||qh(this,bs,new Set(this._def.values),"f"),!Ja(this,bs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:O.invalid_enum_value,options:n}),J}return Be(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};bs=new WeakMap;On.create=Hh;var xn=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==k.string&&n.parsedType!==k.number){let i=te.objectValues(r);return P(n,{expected:te.joinValues(i),received:n.parsedType,code:O.invalid_type}),J}if(Ja(this,Ds,"f")||qh(this,Ds,new Set(te.getValidEnumValues(this._def.values)),"f"),!Ja(this,Ds,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:O.invalid_enum_value,options:i}),J}return Be(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;xn.create=(t,e)=>new xn({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var vr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:O.invalid_type,expected:k.promise,received:r.parsedType}),J;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Be(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};vr.create=(t,e)=>new vr({type:t,typeName:Y.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?_i(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Cs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Cs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:Y.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var pt=class extends X{_parse(e){return this._getType(e)===k.undefined?Be(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var $t=class extends X{_parse(e){return this._getType(e)===k.null?Be(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$t.create=(t,e)=>new $t({innerType:t,typeName:Y.ZodNullable,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===k.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return vs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var bi=class extends X{_parse(e){if(this._getType(e)!==k.nan){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:Y.ZodNaN,...Z(t)});var iO=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),_i(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},bn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Cs(i)&&(i.value=Object.freeze(i.value)),i);return vs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Yh(t,e={},r){return t?Cr.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})}}):Cr.create()}var sO={object:je.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 oO=(t,e={message:`Input not instance of ${t.name}`})=>Yh(r=>r instanceof t,e),Kh=Dr.create,Jh=mn.create,aO=bi.create,uO=hn.create,zh=gn.create,cO=yn.create,lO=Oi.create,dO=En.create,pO=Tn.create,fO=Cr.create,mO=Xt.create,hO=Ot.create,gO=xi.create,yO=er.create,EO=je.create,TO=je.strictCreate,AO=An.create,SO=za.create,_O=Sn.create,IO=Gt.create,OO=Za.create,xO=Ri.create,RO=wi.create,wO=Xa.create,bO=_n.create,DO=In.create,CO=On.create,vO=xn.create,NO=vr.create,$h=Ze.create,PO=pt.create,UO=$t.create,LO=Ze.createWithPreprocess,MO=Ps.create,kO=()=>Kh().optional(),FO=()=>Jh().optional(),BO=()=>zh().optional(),GO={string:t=>Dr.create({...t,coerce:!0}),number:t=>mn.create({...t,coerce:!0}),boolean:t=>gn.create({...t,coerce:!0}),bigint:t=>hn.create({...t,coerce:!0}),date:t=>yn.create({...t,coerce:!0})},$O=J,ee=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:$I,getErrorMap:Ya,makeIssue:Ka,EMPTY_PATH:VI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:Be,isAborted:kl,isDirty:Fl,isValid:Cs,isAsync:vs,get util(){return te},get objectUtil(){return Ml},ZodParsedType:k,getParsedType:br,ZodType:X,datetimeRegex:jh,ZodString:Dr,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Oi,ZodUndefined:En,ZodNull:Tn,ZodAny:Cr,ZodUnknown:Xt,ZodNever:Ot,ZodVoid:xi,ZodArray:er,ZodObject:je,ZodUnion:An,ZodDiscriminatedUnion:za,ZodIntersection:Sn,ZodTuple:Gt,ZodRecord:Za,ZodMap:Ri,ZodSet:wi,ZodFunction:Xa,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:vr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:wn,ZodNaN:bi,BRAND:iO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:bn,custom:Yh,Schema:X,ZodSchema:X,late:sO,get ZodFirstPartyTypeKind(){return Y},coerce:GO,any:fO,array:yO,bigint:uO,boolean:zh,date:cO,discriminatedUnion:SO,effect:$h,enum:CO,function:wO,instanceof:oO,intersection:_O,lazy:bO,literal:DO,map:xO,nan:aO,nativeEnum:vO,never:hO,null:pO,nullable:UO,number:Jh,object:EO,oboolean:BO,onumber:FO,optional:PO,ostring:kO,pipeline:MO,preprocess:LO,promise:NO,record:OO,set:RO,strictObject:TO,string:Kh,symbol:lO,transformer:$h,tuple:IO,undefined:dO,union:AO,unknown:mO,void:gO,NEVER:$O,ZodIssueCode:O,quotelessJson:GI,ZodError:ze});var nu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Zh=ee.record(nu,ee.string()),eu=ee.record(nu,ee.any()),tu=ee.record(nu,ee.union([ee.any().array(),ee.string()])),Xh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(eg))})),ru=ee.union([ee.string(),ee.number()]),eg={string:Zh.optional(),fuzzy:Zh.optional(),range:ee.record(nu,ee.union([ee.object({high:ru,low:ru}),ee.object({high:ru}),ee.object({low:ru})])).optional(),equal:eu.optional(),notEqual:eu.optional(),empty:eu.optional(),notEmpty:eu.optional(),oneOf:tu.optional(),contains:tu.optional(),notContains:tu.optional(),containsAny:tu.optional(),$and:Xh.optional(),$or:Xh.optional()},PV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ai).optional(),...eg}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(fn).optional(),sortType:ee.nativeEnum(Ha).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Cp={};v(Cp,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,Config:()=>Dp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>wp,DEFAULT_EXPENSES_TABLE_ID:()=>Rp,DEFAULT_INVENTORY_TABLE_ID:()=>xp,DEFAULT_JOBS_TABLE_ID:()=>Op,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,GlobalRole:()=>bp,Header:()=>Xe,InternalTable:()=>wr,MAX_VALID_DATE:()=>Yu,MIN_VALID_DATE:()=>DT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ur,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UserStatus:()=>Hu,ViewName:()=>Gr});var Qq={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 Xe=(_=>(_.API_KEY="x-budibase-api-key",_.LICENSE_KEY="x-budibase-license-key",_.API_VER="x-budibase-api-version",_.APP_ID="x-budibase-app-id",_.SESSION_ID="x-budibase-session-id",_.TYPE="x-budibase-type",_.PREVIEW_ROLE="x-budibase-role",_.TENANT_ID="x-budibase-tenant-id",_.VERIFICATION_CODE="x-budibase-verification-code",_.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",_.RESET_PASSWORD_CODE="x-budibase-reset-password-code",_.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",_.TOKEN="x-budibase-token",_.CSRF_TOKEN="x-csrf-token",_.CORRELATION_ID="x-budibase-correlation-id",_.AUTHORIZATION="authorization",_.MIGRATING_APP="x-budibase-migrating-app",_.COOKIE="cookie",_))(Xe||{});var Kq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"],json:["json","array","attachment","attachment_single","bb_reference","signature_single"]};var tW="darkest",rW="light",WO=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var et={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"}},tg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Di="datasource_internal_bb_default";var Fr={};v(Fr,{ColumnSplitter:()=>up,NoEmptyFilterStrings:()=>_T,buildQuery:()=>IT,cleanupQuery:()=>dp,fixupFilterArrays:()=>fp,getKeyNumbering:()=>pp,getValidOperatorsForType:()=>fC,hasFilters:()=>cp,limit:()=>xT,recurseLogicalOperators:()=>lp,removeKeyNumbering:()=>iu,runQuery:()=>Bu,search:()=>gC,sort:()=>OT,splitFiltersArray:()=>su});var Qi=Q(rg());var Ci={};v(Ci,{filterValueToLabel:()=>JO,hasSchema:()=>zO,isSupportedUserSearch:()=>ig,parallelForeach:()=>KO,processSearchFilters:()=>Vl,trimOtherProps:()=>ZO,unreachable:()=>YO});var ng=Q(require("lodash")),HO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function YO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function KO(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function JO(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function zO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ZO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function ig(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(Va(s)){for(let c of t[s].conditions)if(!ig(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function Vl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=su(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=ng.default.pick(i,HO);return s.field=iu(s.field),s})}]}}var jt={};v(jt,{cancelableTimeout:()=>sg,cron:()=>rp,deepGet:()=>ql,getUserColor:()=>ex,getUserInitials:()=>XO,getUserLabel:()=>tx,isGoogleSheets:()=>nx,isSQL:()=>ix,lists:()=>ap,retry:()=>sx,roles:()=>op,schema:()=>_o,views:()=>sp,wait:()=>Wl,withTimeout:()=>rx});var ql=(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},XO=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"},ex=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%)`},tx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function sg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function rx(t,e){let[r,n]=sg(t),i=await Promise.race([e(),r]);return n(),i}function nx(t){return t==="GOOGLE_SHEETS"}function ix(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Wl(t){return new Promise(e=>setTimeout(e,t))}async function sx(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 Wl(s);try{return await t()}catch(o){n=o}}throw n}var rp={};v(rp,{getNextExecutionDates:()=>JD,validate:()=>zD});var yT=Q(Vt()),ET=Q(hT()),gT="(Input cron: ",YD={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function KD(t){let e=[];for(let r of t){r.includes(gT)&&(r=r.split(gT)[0].trim());for(let[n,i]of Object.entries(YD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function JD(t,e=4){let r=ET.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function zD(t){let e=(0,yT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:KD(e.getError())}}var _o={};v(_o,{decodeNonAscii:()=>np,encodeNonAscii:()=>eC,isDeprecatedSingleUserColumn:()=>ZD,isNumeric:()=>tC,isRequired:()=>XD});function ZD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function XD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function eC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function np(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function tC(t){return t.type==="number"||t.type==="bigint"}var sp={};v(sp,{basicFields:()=>oC,calculationFields:()=>sC,hasCalculationFields:()=>iC,isBasicViewField:()=>rC,isCalculationField:()=>Io,isCalculationView:()=>nC,isV2:()=>aC,isVisible:()=>TT});var ip=require("lodash");function Io(t){return"calculationType"in t}function rC(t){return!Io(t)}function nC(t){return t.type==="calculation"}function iC(t){return Object.values(t.schema||{}).some(Io)}function sC(t){return(0,ip.pickBy)(t.schema||{},Io)}function TT(t){return t.visible!==!1}function oC(t,e){let{visible:r=!0}=e||{};return(0,ip.pickBy)(t.schema||{},n=>!Io(n)&&(!r||TT(n)))}function aC(t){return t.version===2}var op={};v(op,{checkForRoleInheritanceLoops:()=>cC});function uC(t){return`role${N}${t}`}function cC(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=uC(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 ap={};v(ap,{punctuateList:()=>lC});function lC(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}var Hn=require("lodash");var dC=/{{([^{].*?)}}/g,ST=Object.values(Ti),pC=[...Object.values(xr),...Object.values(zt),...Object.values(dn)],fC=(t,e,r)=>{let n=et,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||_o.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"&&(o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},_T=[et.StartsWith.value,et.Like.value,et.Equals.value,et.NotEquals.value,et.Contains.value,et.NotContains.value,et.ContainsAny.value,et.In.value];function lp(t,e){for(let r of ST)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var dp=t=>{for(let e of _T)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===""||mC(s))&&delete t[e][i]}return t=lp(t,dp),t};function mC(t){return Array.isArray(t)&&t.length===0}var iu=t=>pp(t).key,pp=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}},up=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}=pp(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=np(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function hC(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(dC)||[]).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(Dl(r)){let c=tg[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(Uh(r)||Lh(r)||Dl(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 su(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 IT(t){if(!t)return{};if(Array.isArray(t)&&(t=Vl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=AT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=IT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=su(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=AT(n.logicalOperator)),{[a]:{conditions:o.map(hC).filter(u=>u)}}})},e}function AT(t){return t==="all"?"$and":"$or"}function fp(t){if(!t)return t;for(let e of Object.values(zt)){let r=t[e];if(!(r==null||!(0,Hn.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 lp(t,fp),t}function gC(t,e){let r=Bu(t,e.query);e.sort&&(r=OT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=xT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Bu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=dp(e),e=fp(e),!cp(e)&&e.onEmptyFilter==="none")return[];let r=(T,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Va(T)?x:ql(x,iu(w)),un=I(le,B);if(e.allOr&&un)return!0;if(!e.allOr&&!un)return!1}return!e.allOr},n=r("string",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().includes(I.toLowerCase())),s=r("range",(T,I)=>{if(T==null||T===""||((0,Hn.isPlainObject)(I.low)&&(0,Hn.isEmpty)(I.low)&&(I.low=void 0),(0,Hn.isPlainObject)(I.high)&&(0,Hn.isEmpty)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let x=+T;if(!isNaN(x)){let B=+I.low,le=+I.high;if(!isNaN(B)&&!isNaN(le))return x>=B&&x<=le;if(isNaN(B)){if(!isNaN(le))return x<=le}else return x>=B}let w=(0,Qi.default)(T);if(w.isValid()){let B=(0,Qi.default)(I.low||"0000-00-00T00:00:00.000Z"),le=(0,Qi.default)(I.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&le.isValid())return w.isAfter(B)&&w.isBefore(le)||w.isSame(B)||w.isSame(le);if(B.isValid())return w.isAfter(B)||w.isSame(B);if(le.isValid())return w.isBefore(le)||w.isSame(le)}return I.low!=null&&I.high!=null?T>=I.low&&T<=I.high:I.low!=null?T>=I.low:I.high!=null?T<=I.high:!1}),o=(T,I)=>{if(Array.isArray(T)){for(let w of T)if(o(w,I))return!0;return!1}if(T&&typeof T=="object"&&typeof I=="string")return T._id===I;if(T===I)return!0;if(T==null&&I!=null||T!=null&&I==null)return!1;let x=(0,Qi.default)(T);if(x.isValid()){let w=(0,Qi.default)(I);if(w.isValid())return x.isSame(w)}return!1},a=T=>(...I)=>!T(...I),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,I)=>(typeof I=="string"&&(I=I.split(",")),typeof T=="number"&&(I=I.map(x=>parseFloat(x))),Array.isArray(I)?I.some(x=>o(T,x)):!1)),f=T=>(I,x)=>!Array.isArray(I)||(typeof x=="string"&&(x=x.split(","),typeof I[0]=="number"&&(x=x.map(w=>parseFloat(w)))),!Array.isArray(x))?!1:x.length===0?!0:x[T](w=>o(I,w)),g=r("contains",(T,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(T,I)),E=r("notContains",(T,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(T,I)),y=r("containsAny",f("some")),_=r("$and",(T,I)=>{if(!I.length)return!1;for(let x of I)if(!Bu([T],x).length)return!1;return!0}),S=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if(Bu([T],{...x,allOr:!0}).length)return!0;return!1}),M=T=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:_,$or:S},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>I[w]?.(T)??!1);return cp(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function OT(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 xT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var cp=t=>{if(!t)return!1;let e=r=>{for(let n of ST)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of pC){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 ot={};v(ot,{applications:()=>hp,automations:()=>gp,screens:()=>Sp,users:()=>Ap});var hp={};v(hp,{getDevAppID:()=>yC,getProdAppID:()=>Gu});var mp=Rr("app"),Oo=Rr("app_dev");function yC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Oo))return t;let e=t.split(mp);e.shift();let r=e.join(mp);return`${Oo}${r}`}function Gu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Oo))return t;let e=t.split(Oo);e.shift();let r=e.join(Oo);return`${mp}${r}`}var gp={};v(gp,{isAppAction:()=>AC,isRowAction:()=>EC,isWebhookAction:()=>TC});function EC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function TC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function AC(t){return t.definition.trigger?.stepId==="APP"}var Ap={};v(Ap,{canCreateApps:()=>SC,containsUserID:()=>wC,getGlobalUserID:()=>RC,getUserAppGroups:()=>bC,getUserGroups:()=>Tp,hasAdminPermissions:()=>Ep,hasAppBuilderPermissions:()=>qu,hasAppCreatorPermissions:()=>RT,hasBuilderPermissions:()=>OC,hasCreatorPermissions:()=>Wu,isAdmin:()=>Vu,isAdminOrBuilder:()=>_C,isAdminOrGlobalBuilder:()=>IC,isBuilder:()=>yp,isCreator:()=>xC,isGlobalBuilder:()=>$u,userAppAccessList:()=>DC});var Br=Q(require("lodash/fp"));function yp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Gu(e))):!1}function $u(t){return yp(t)&&!qu(t)||Vu(t)}function SC(t){return $u(t)||Wu(t)}function Vu(t){return t?Ep(t):!1}function _C(t,e){return yp(t,e)||Vu(t)}function IC(t){return $u(t)||Vu(t)}function qu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function RT(t){return t?Br.flow(Br.get("roles"),Br.values,Br.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function OC(t){return t?t.builder?.global||qu(t)||Wu(t):!1}function Ep(t){return t?!!t.admin?.global:!1}function Wu(t){return t?!!t.builder?.creator:!1}function xC(t){return t?$u(t)||Ep(t)||Wu(t)||qu(t)||RT(t):!1}function RC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function wC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function Tp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function bC(t,e,r){let n=Gu(t);return Tp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function DC(t,e){let n=Tp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var Sp={};v(Sp,{findInSettings:()=>CC});function CC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var lj={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},dj={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},pj={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 Aj={name:"Bash Scripting",tagline:"Execute a bash command",icon:"JourneyEvent",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var Ij={name:"Branch",icon:"Branch3",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var Rj={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var Dj={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var Nj={name:"Delay",icon:"Clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var Lj={description:"Delete a row from your database",icon:"TableRowRemoveCenter",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var Fj={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var $j={name:"External Data Connector",tagline:"Execute Data Connector",icon:"Data",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var Wj={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var Hj={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!0,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var $C={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},Jj={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(vl),pretty:Object.values($C)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var Xj={name:"Looping",icon:"Reuse",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var rH={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var sH={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Nl)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var wT=(i=>(i.GPT_4O_MINI="gpt-4o-mini",i.GPT_4O="gpt-4o",i.GPT_4="gpt-4",i.GPT_35_TURBO="gpt-3.5-turbo",i))(wT||{}),uH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(wT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var bT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(bT||{}),dH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(bT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var YC={ascending:"Ascending",descending:"Descending"},mH={description:"Query rows from the database",icon:"Search",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(fn),pretty:Object.values(YC)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var yH={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"Email",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"string",title:"HTML Contents"},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var AH={name:"Backend log",tagline:"Console log a value in the backend",icon:"Monitoring",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var IH={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var RH={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var DH={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var NH={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var nv={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var sv={name:"Cron Trigger",event:"cron:trigger",icon:"Clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var av={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var cv={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var dv={name:"Row Updated",event:"row:update",icon:"Refresh",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var fv={name:"Webhook",event:"web:trigger",icon:"Send",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var hv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var Qu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Qu||{}),Gr=(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))(Gr||{}),Hi={by_email2:["by_email"]},Ee={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"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},yt=Rr("app"),ju=Rr("app_dev"),Et=ju,_p="internal",Ip="budibase",ur="_design/sqlite",Op="ta_bb_jobs",xp="ta_bb_inventory",Rp="ta_bb_expenses",wp="ta_bb_employee";var Hu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Hu||{}),Yi=(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))(Yi||{}),bp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(bp||{}),Dp=(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))(Dp||{}),DT=new Date(-2147483647e3),Yu=new Date(2147483647e3),Te="default";var wa={};v(wa,{CacheKey:()=>Ce,TTL:()=>si,app:()=>Lo,bustCache:()=>us,destroy:()=>sa,docWritethrough:()=>Fm,generic:()=>oa,get:()=>oi,invite:()=>om,keys:()=>Sc,passwordReset:()=>Mm,store:()=>hr,user:()=>rn,withCache:()=>zr,withCacheWithDynamicTTL:()=>gS,writethrough:()=>Lm});var oa={};v(oa,{CacheKey:()=>Ce,TTL:()=>si,bustCache:()=>us,destroy:()=>sa,get:()=>oi,keys:()=>Sc,store:()=>hr,withCache:()=>zr,withCacheWithDynamicTTL:()=>gS});var Ae={};v(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>No,doInAppContext:()=>eN,doInAppMigrationContext:()=>rN,doInAutomationContext:()=>Kv,doInContext:()=>Kp,doInEnvironmentContext:()=>iN,doInIPContext:()=>Zp,doInIdentityContext:()=>Ro,doInLicenseContext:()=>zv,doInScimContext:()=>sN,doInSelfHostTenantUsingCloud:()=>Jv,doInTenant:()=>Ve,ensureSnippetContext:()=>XT,getAppDB:()=>es,getAppId:()=>Ue,getAuditLogDBName:()=>JT,getAuditLogsDB:()=>aN,getAutomationId:()=>Jp,getCurrentContext:()=>ts,getDevAppDB:()=>cN,getEnvironmentVariables:()=>oN,getFeatureFlags:()=>Xp,getGlobalDB:()=>ie,getGlobalDBName:()=>lr,getIP:()=>zp,getIdentity:()=>cr,getLicense:()=>Zv,getPlatformURL:()=>Yp,getProdAppDB:()=>uN,getProdAppId:()=>nN,getScimDBName:()=>Qv,getSelfHostCloudDB:()=>Xv,getTableForView:()=>lN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>xo,isMultiTenant:()=>qr,isScim:()=>Pt,isSelfHostUsingCloud:()=>zT,isTenancyEnabled:()=>Hv,isTenantIdSet:()=>jv,setFeatureFlags:()=>ef,setTableForView:()=>dN});var xo={};v(xo,{doInAccountContext:()=>Tv,doInIdentityContext:()=>Np,doInUserContext:()=>Pp,getAccountUserId:()=>CT,getIdentity:()=>vp});function vp(){return cr()}function Np(t,e){return Ro(t,e)}function Pp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Np(n,r)}function Tv(t,e){let r=CT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Np(i,e)}function CT(t){let e;return Wa(t)?e=t.budibaseUserId:e=t.accountId,e}var zu=require("fs");var PT=require("lodash"),Up=require("crypto");function Lp(){return UT()}function UT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Ju(){return process.env.NODE_ENV!=="production"}function Av(t){if(t)return parseInt(t)}var vT=!1;!vT&&Ju()&&!Lp()&&(require("dotenv").config(),vT=!0);var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},NT=!!parseInt(process.env.SELF_HOSTED||"");function Sv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function _v(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function Iv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,zu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,zu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Ju()&&!Lp())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 Ov(){return vt.SERVICE_TYPE==="worker"}function xv(){return vt.SERVICE_TYPE==="apps"}function Rv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Lp,isJest:UT,isDev:Ju,isWorker:Ov,isApps:xv,isQA:Rv,isProd:()=>!Ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Up.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Up.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Sv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:NT,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||Ki.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Ki.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Ki.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Ki.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Ki.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Ki.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:_v(),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:NT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Iv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Av(process.env.BSON_BUFFER_SIZE)};function wo(t){let e=(0,PT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function LT(t,e){let r=wo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var MT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var kT=require("async_hooks"),we=class t{static{this.storage=new kT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Mp="No app provided";function $r(t){if(!t)throw Mp;return t.startsWith(Et)}function wv(t){if(!t)throw Mp;return t.startsWith(yt)&&!$r(t)}function bo(t){if(!t)throw Mp;return $r(t.appId)}function Zu(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var bv=Zu;function at(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function Dv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=kp(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:kp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},kp=(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 YT=Q(require("@budibase/nano"));var FT=Q(require("node-fetch"));function Xu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function BT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await Do({url:s,cookie:i,method:e,body:r})}async function Do({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,FT.default)(Xu(encodeURI(t)),i)}async function ec(t,e="GET",r){let n=await BT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=Q(require("pouchdb"));var GT,$T=!1,Fp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function tc(t){GT=Fp(t),$T=!0}var vv=()=>{if(!$T)throw new Error("init has not been called")};function Tt(t,e){vv();let r=new GT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Co(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var VT=require("uuid");function Ie(){return(0,VT.v4)().replace(/-/g,"")}var xe=Q(require("dd-trace")),Ji=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return xe.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return xe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return xe.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return xe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return xe.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return xe.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return xe.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return xe.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return xe.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Qp={};v(Qp,{breakExternalTableId:()=>$p,breakRowIdField:()=>Vv,buildExternalTableId:()=>Mv,convertRowId:()=>$v,encodeTableId:()=>kv,encodeViewId:()=>Fv,generateRowIdField:()=>Bv,getNativeSql:()=>zi,isExternalTable:()=>Gp,isExternalTableID:()=>rc,isInternalTableID:()=>Lv,isInvalidISODateString:()=>Vp,isRowId:()=>Gv,isValidFilter:()=>ic,isValidISODateString:()=>nc,isValidTime:()=>qp,sqlLog:()=>vo,validateManyToMany:()=>Wp});var Bp=`${N}${N}`,WT=/^\[.*]$/g,Nv=encodeURIComponent(" "),Pv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Uv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function rc(t){return t.startsWith("datasource"+N)}function Lv(t){return!rc(t)}function zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function Gp(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&rc(t._id))}function Mv(t,e){return`${t}${Bp}${encodeURIComponent(e)}`}function kv(t){return rc(t)?encodeURIComponent(t):t}function Fv(t){return encodeURIComponent(t)}function $p(t){let e=t.split(Bp),r=e.shift(),n=e.join(Bp);if(n.includes(Nv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Bv(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}function Gv(t){return Array.isArray(t)||typeof t=="string"&&t.match(WT)!=null}function $v(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(WT)!=null?t.substring(1,t.length-1):t}function Vv(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function nc(t){let e=t.trim();if(!Pv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Vp(t){return!nc(t)}function ic(t){return t!=null&&t!==""}function qp(t){return Uv.test(t)}function vo(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function qv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Wp(t){if(qv(t))return t}var QT="Database does not exist.";function jT(t){return(0,YT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Vr=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 Wv(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zi(t,r,e);return new Ji(n)}var Zi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=jT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=jT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Do({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Vr(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===QT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Vr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Vr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Mh(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 Vr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=Ie()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===QT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Xu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await Do(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Vr("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}/${ur}`;return vo("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(ur)){let e=await this.get(ur);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 Vr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function $e(t,e){return new Ji(new Zi(t,e))}async function ut(t,e,r){let n=$e(t,r);return await e(n)}async function jp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await ec(e)}async function Hp(t,e){let r=await ec(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var KT=null;function lr(t){return t||(t=j()),No(t)}function JT(t){return t||(t=j()),t===Te?Ee.AUDIT_LOGS.name:`${t}${N}${Ee.AUDIT_LOGS.name}`}function Qv(t){return t||(t=j()),t===Te?Ee.SCIM_LOGS.name:`${t}${N}${Ee.SCIM_LOGS.name}`}function No(t){return!t||t===Te?Ee.GLOBAL.name:`${t}${N}${Ee.GLOBAL.name}`}function Yp(){return h.PLATFORM_URL}function qr(){return!!h.MULTI_TENANCY}function jv(){return!!we.get()?.tenantId}function Hv(){return h.MULTI_TENANCY}function Xi(t){if(!t)return;if(!qr())return Te;let e=t.split(N),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Yv(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Ht(t,e){tN();let r=Yv(t);return we.run(r,e)}async function Kv(t){return await XT(),await Ht({tenantId:Xi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Kp(t,e){let r=Xi(t);return Ht({tenantId:r,appId:t},e)}async function Ve(t,e){return h.MULTI_TENANCY||(t=t||Te),Ht(t?{tenantId:t}:{},e)}async function Jv(t,e){return Ht({tenantId:t,isSelfHostUsingCloud:!0},e)}async function zv(t,e){return Ht({license:t},e)}function Zv(){return we.get()?.license}function zT(){return!!we.get()?.isSelfHostUsingCloud}function Xv(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return $e(Ee.SELF_HOST_CLOUD.name)}async function eN(t,e){return ZT(t,e)}async function ZT(t,e,r){if(!t)throw new Error("appId is required");let n=Xi(t),i={appId:t,...r};return n&&(i.tenantId=n),Ht(i,e)}async function Ro(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Ht(r,e)}function tN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function rN(t,e){return ZT(t,e,{isMigrating:!0})}function cr(){try{return we.get()?.identity}catch{}}function j(){if(!qr())return Te;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Jp(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&KT?KT:e}function zp(){return we.get()?.ip}var nN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function iN(t,e){if(!t)throw new Error("Must supply environment variables.");return Ht({environmentVariables:t},e)}function sN(t){return Ht({isScim:!0},t)}function Zp(t,e){return Ht({ip:t},e)}async function XT(t=!h.isTest()){let e=ts();if(!e||e.snippets)return;let r,n=es();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function oN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=we.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return $e(No(t?.tenantId))}function aN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return $e(JT())}function es(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(zT())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return $e(e,t)}function uN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return $e(at(e),t)}function cN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return $e(Zu(e),t)}function Pt(){return!!we.get()?.isScim}function ts(){try{return we.get()}catch{return}}function Xp(t){let e=ts();if(e)return e.featureFlagCache?.[t]}function ef(t,e){let r=ts();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function lN(t){let e=ts();if(e)return e.viewToTableCache?.[t]}function dN(t,e){let r=ts();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Jr={};v(Jr,{getAppClient:()=>pc,getCacheClient:()=>Gf,getDocWritethroughClient:()=>mP,getInviteClient:()=>ri,getLockClient:()=>Vf,getPasswordResetClient:()=>ia,getSessionClient:()=>Kr,getSocketClient:()=>fP,getUserClient:()=>na,getWritethroughClient:()=>$f,init:()=>Lt,shutdown:()=>hS});var fS=Q(require("ioredis"));var ac={};v(ac,{Databases:()=>tf,SEPARATOR:()=>rs,SelectableDatabase:()=>sc,addDbPrefix:()=>Ke,getRedisConnectionDetails:()=>oc,getRedisOptions:()=>ns,removeDbPrefix:()=>rf});var pN=2e3,eA=1e4,rs="-",tf=(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))(tf||{}),sc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(sc||{});function oc(){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 ns(){let{host:t,password:e,port:r}=oc(),n={connectTimeout:eA,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:eA,redisOptions:{...n,tls:{}},slotsRefreshTimeout:pN,dnsLookup:(s,o)=>o(null,s)}),i}function Ke(t,e){return e.includes(t)?e:`${t}${rs}${e}`}function rf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var Ac={};v(Ac,{correlation:()=>Po,logAlert:()=>Xn,logAlertWithInfo:()=>aP,logWarn:()=>as,logger:()=>Tc,system:()=>Cf});var Po={};v(Po,{getId:()=>nf,setHeader:()=>fN});var tA=require("correlation-id"),fN=t=>{let e=tA.getId();e&&(t["x-budibase-correlation-id"]=e)};function nf(){return tA.getId()}var Ec=Q(require("pino")),dS=Q(require("pino-pretty"));var vf=Q(require("dd-trace")),pS=require("dd-trace/ext");var Cf={};v(Cf,{getLogReadStream:()=>tP,getSingleFileMaxSizeInfo:()=>lS,localFileDestination:()=>Df});var qo=Q(require("fs")),bf=Q(require("path")),oS=Q(require("rotating-file-stream"));var wf={};v(wf,{ObjectStore:()=>Ut,ObjectStoreBuckets:()=>hN,SIGNED_FILE_PREFIX:()=>If,bucketTTLConfig:()=>uc,budibaseTempDir:()=>Kn,clientLibraryCDNUrl:()=>YN,clientLibraryPath:()=>zA,clientLibraryUrl:()=>KN,createBucketIfNotExists:()=>Vo,deleteFile:()=>$N,deleteFiles:()=>VN,deleteFolder:()=>YA,downloadTarball:()=>WN,downloadTarballDirect:()=>qN,enrichPWAImages:()=>JN,enrichPluginURLs:()=>ZN,extractBucketAndPath:()=>sf,getAppFileUrl:()=>ZA,getGlobalFileS3Key:()=>XA,getGlobalFileUrl:()=>zN,getObjectMetadata:()=>QN,getPluginIconKey:()=>rS,getPluginJSKey:()=>tS,getPluginS3Dir:()=>iS,getPresignedUrl:()=>Hr,getReadStream:()=>cc,listAllObjects:()=>HA,processAutomationAttachment:()=>yN,processObjectStoreAttachment:()=>oA,retrieve:()=>jA,retrieveDirectory:()=>GN,retrieveToTmp:()=>BN,sanitizeBucket:()=>Je,sanitizeKey:()=>Le,streamUpload:()=>QA,upload:()=>FN,uploadDirectory:()=>Of});var gc=require("@aws-sdk/client-s3"),Ef=require("@aws-sdk/lib-storage"),$A=require("@aws-sdk/s3-request-presigner"),$o=Q(require("stream")),Tf=Q(require("node-fetch")),Af=Q(require("tar-fs")),Sf=Q(require("zlib")),VA=require("util"),jr=require("path"),mr=Q(require("fs"));var Uo=Q(require("path")),rA=require("os"),nA=Q(require("fs"));var iA=Q(require("stream")),hN={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},sA=(0,Uo.join)((0,rA.tmpdir)(),".budibase");try{nA.default.mkdirSync(sA)}catch(t){if(t.code!=="EEXIST")throw t}function Kn(){return sA}var uc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function gN(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Uo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:iA.default.Readable.fromWeb(e.body)}}async function oA(t){let e=sf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await cc(r,n),s=Uo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function yN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await gN(t):await oA(t)}var _f=require("uuid");var Wr={};v(Wr,{APP_DEV:()=>ju,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Qu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>wp,DEFAULT_EXPENSES_TABLE_ID:()=>Rp,DEFAULT_INVENTORY_TABLE_ID:()=>xp,DEFAULT_JOBS_TABLE_ID:()=>Op,DatabaseImpl:()=>Zi,DatabaseWithConnection:()=>Wv,DeprecatedViews:()=>Hi,DocumentType:()=>he,InternalTable:()=>wr,QueryBuilder:()=>fr,Replication:()=>MA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ur,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,ViewName:()=>Gr,baseGlobalDBName:()=>No,checkErrorCode:()=>GA,closePouchDB:()=>Co,createApiKeyView:()=>vA,createNewUserEmailView:()=>DA,createPlatformAccountEmailView:()=>PA,createPlatformUserView:()=>UA,createUserAppView:()=>CA,createView:()=>ss,dbExists:()=>bN,directCouchAllDbs:()=>jp,directCouchCall:()=>BT,directCouchFind:()=>Hp,directCouchQuery:()=>ec,directCouchUrlCall:()=>Do,doWithDB:()=>ut,extractAppUUID:()=>Dv,fullSearch:()=>NN,generateAppID:()=>uA,generateAppUserID:()=>fc,generateDevInfoID:()=>hA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>yA,generatePluginID:()=>gA,generateRoleID:()=>uf,generateRowID:()=>af,generateTableID:()=>cA,generateTemplateID:()=>mA,generateUserMetadataID:()=>pA,generateWorkspaceID:()=>lA,getAllApps:()=>ko,getAllDbs:()=>bA,getAppsByIDs:()=>ON,getCouchInfo:()=>Nt,getDB:()=>$e,getDevAppID:()=>bv,getDevAppIDs:()=>RN,getDevelopmentAppID:()=>Zu,getDocParams:()=>Jn,getGlobalDBName:()=>lr,getGlobalIDFromUserMetadataID:()=>fA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getPouch:()=>Fp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>xN,getQueryIndex:()=>EA,getRoleParams:()=>hc,getRowParams:()=>cf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>xA,getUrlInfo:()=>kp,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>IA,init:()=>tc,isDatasourceId:()=>SA,isDevApp:()=>bo,isDevAppID:()=>$r,isDocumentConflictError:()=>UN,isExternalTableId:()=>lf,isGlobalUserID:()=>dA,isProdAppID:()=>wv,isQueryId:()=>_A,isSameAppID:()=>wN,isTableId:()=>TA,isViewId:()=>AA,paginatedSearch:()=>vN,pagination:()=>pf,prefixRoleID:()=>dr,queryGlobalView:()=>pr,queryGlobalViewRaw:()=>hf,queryPlatformView:()=>Bo,queryView:()=>mf,queryViewRaw:()=>Fo,removeKeyNumbering:()=>Go,searchIndexes:()=>yf});var Lo={};v(Lo,{AppState:()=>of,getAppMetadata:()=>dc,invalidateAppMetadata:()=>SN});var of=(e=>(e.INVALID="invalid",e))(of||{}),aA=3600,EN=60;async function TN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function AN(t){return!t||t.state==="invalid"}async function dc(t){let e=await pc(),r=await e.get(t);if(!r){let n=aA;try{r=await TN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=EN;else throw i}if(AN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function SN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await pc();await r.delete(t),e&&await r.store(t,e,aA)}var df={};v(df,{generateAppID:()=>uA,generateAppUserID:()=>fc,generateDevInfoID:()=>hA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>yA,generatePluginID:()=>gA,generateRoleID:()=>uf,generateRowID:()=>af,generateTableID:()=>cA,generateTemplateID:()=>mA,generateUserMetadataID:()=>pA,generateWorkspaceID:()=>lA,getDocParams:()=>Jn,getGlobalIDFromUserMetadataID:()=>fA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getQueryIndex:()=>EA,getRoleParams:()=>hc,getRowParams:()=>cf,getStartEndKeyURL:()=>Mo,getTemplateParams:()=>xA,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>mc,getWorkspaceParams:()=>IA,isDatasourceId:()=>SA,isExternalTableId:()=>lf,isGlobalUserID:()=>dA,isQueryId:()=>_A,isTableId:()=>TA,isViewId:()=>AA,prefixRoleID:()=>dr});var uA=t=>{let e=yt;return t&&(e+=`${t}${N}`),`${e}${Ie()}`};function cA(){return`ta${N}${Ie()}`}function af(t,e){return e=e||Ie(),`ro${N}${t}${N}${e}`}function lA(){return`workspace${N}${Ie()}`}function is(t){return`us${N}${t||Ie()}`}var _N=new RegExp(`^us${N}.+`);function dA(t){return _N.test(t)}function pA(t){return af("ta_users",t)}function fA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function mA(t){return`template${N}${t}${N}${Ie()}`}function fc(t,e){return`${t}${N}${e}`}function uf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function dr(t){return uf(t)}var hA=t=>`devinfo${N}${t}`,gA=t=>`plg${N}${t}`,yA=t=>`oauth2log${N}${t}`;var IN=new RegExp("^datasource_plus_(.+)__(.+)$");function Jn(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${Fe}`}}function cf(t,e,r={}){if(t==null)return Jn("ro",null,r);let n=e??`${t}${N}`;return Jn("ro",n,r)}function EA(t){return`database/${t}`}var lf=t=>{let e=t.match(IN);return!!t&&e!==null},TA=t=>!!t&&(t.startsWith(`ta${N}`)||lf(t));function AA(t){return!!t&&t.startsWith(`view${N}`)}function SA(t){return!!t&&t.startsWith(`datasource${N}`)}function _A(t){return!!t&&t.startsWith(`query${N}`)}function IA(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${Fe}`}}function zn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${Fe}`}}function OA(t,e={}){return cf("ta_users",t,e)}function mc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Fe}`}}function xA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${Fe}`}}function hc(t,e={}){return Jn("role",t,e)}function Mo(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Fe}"`}var RA=(t,e={})=>Jn("plg",t,e),wA=(t,e={})=>Jn("oauth2",t,e);async function bA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await jp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(Mo("app",i)),await n(Mo("app_dev",i)),r.push(lr(i))),r}async function ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await bA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(N);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Te&&d||l===i}return!1});if(r){let u=o.filter(l=>$r(l)),c=o.filter(l=>!$r(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>dc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:bo(l)?"development":"published"})):c.filter(l=>t?bo(l):!bo(l))}}async function ON(t){return(await Promise.allSettled(t.map(r=>dc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function xN(){return(await ko({idsOnly:!0})).filter(e=>!$r(e))}async function RN(){return(await ko({idsOnly:!0})).filter(e=>$r(e))}function wN(t,e){return t==null||e==null?!1:at(t)===at(e)}async function bN(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function pf(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 ff="_design/database";function DN(){return{_id:ff,views:{}}}async function CN(t,e){if(Hi[e])try{let r=await t.get(ff);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(ff)}catch{n=DN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ss(t,e,r);throw s}}var DA=async()=>{let t=ie(),e=`function(doc) {
|
|
4
|
+
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,mt({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,$g.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,$g.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(mt({},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(mt({},r,{value:e})),i;return n._validate(e,mt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(qg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(qg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Gg.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=Ni.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ni.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=Ni.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,yu.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,DR.default)(e).map(s=>new wR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new RR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,yu.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=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,yu.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=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,yu.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)}}};Eu.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,bR.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},n,{parent:i,path:e}))};for(let t of["equals","is"])wt.prototype[t]=wt.prototype.oneOf;for(let t of["not","nope"])wt.prototype[t]=wt.prototype.notOneOf;wt.prototype.optional=wt.prototype.notRequired});var jg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=Qg;Js.default=void 0;var CR=vR(rr());function vR(t){return t&&t.__esModule?t:{default:t}}var dd=CR.default,NR=dd;Js.default=NR;function Qg(){return new dd}Qg.prototype=dd.prototype});var Pi=H(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.default=void 0;var PR=t=>t==null;Tu.default=PR});var zg=H(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=Jg;Zs.default=void 0;var UR=Kg(rr()),Hg=er(),Yg=Kg(Pi());function Kg(t){return t&&t.__esModule?t:{default:t}}function Jg(){return new zs}var zs=class extends UR.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=Hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Yg.default)(r)||r===!0}})}isFalse(e=Hg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Yg.default)(r)||r===!1}})}};Zs.default=zs;Jg.prototype=zs.prototype});var ey=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=Xg;eo.default=void 0;var qt=er(),nr=Zg(Pi()),LR=Zg(rr());function Zg(t){return t&&t.__esModule?t:{default:t}}var MR=/^((([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,kR=/^((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,FR=/^(?:[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,BR=t=>(0,nr.default)(t)||t===t.trim(),GR={}.toString();function Xg(){return new Xs}var Xs=class extends LR.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===GR?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=qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nr.default)(n)||n.length===this.resolve(e)}})}min(e,r=qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,nr.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||qt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(MR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(kR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(FR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:BR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};eo.default=Xs;Xg.prototype=Xs.prototype});var ny=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ry;ro.default=void 0;var Nn=er(),Pn=ty(Pi()),$R=ty(rr());function ty(t){return t&&t.__esModule?t:{default:t}}var VR=t=>t!=+t;function ry(){return new to}var to=class extends $R.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"&&!VR(e)}min(e,r=Nn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Pn.default)(n)||n>=this.resolve(e)}})}max(e,r=Nn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Pn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Nn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Pn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Nn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Pn.default)(n)||n>this.resolve(e)}})}positive(e=Nn.number.positive){return this.moreThan(0,e)}negative(e=Nn.number.negative){return this.lessThan(0,e)}integer(e=Nn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Pn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Pn.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,Pn.default)(i)?i:Math[e](i))}};ro.default=to;ry.prototype=to.prototype});var iy=H(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=WR;var qR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function WR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=qR.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 ay=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=md;no.default=void 0;var QR=Au(iy()),sy=er(),oy=Au(Pi()),jR=Au(vn()),HR=Au(rr());function Au(t){return t&&t.__esModule?t:{default:t}}var fd=new Date(""),YR=t=>Object.prototype.toString.call(t)==="[object Date]";function md(){return new Ui}var Ui=class extends HR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,QR.default)(e),isNaN(e)?fd:new Date(e))})})}_typeCheck(e){return YR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(jR.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=sy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,oy.default)(i)||i>=this.resolve(n)}})}max(e,r=sy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,oy.default)(i)||i<=this.resolve(n)}})}};no.default=Ui;Ui.INVALID_DATE=fd;md.prototype=Ui.prototype;md.INVALID_DATE=fd});var cy=H((rQ,hd)=>{"use strict";hd.exports=function(t){return uy(KR(t),t)};hd.exports.array=uy;function uy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=JR(e),a=zR(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var m;try{m=", node was:"+JSON.stringify(c)}catch{m=""}throw new Error("Cyclic dependency"+m)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),l=p.length){d.add(c);do{var f=p[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function KR(t){for(var e=new Set,r=0,n=t.length;r<n;r++){var i=t[r];e.add(i[0]),e.add(i[1])}return Array.from(e)}function JR(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 zR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var ly=H(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.default=nw;var ZR=Su(require("lodash/has")),XR=Su(cy()),ew=js(),tw=Su(vn()),rw=Su(vi());function Su(t){return t&&t.__esModule?t:{default:t}}function nw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,ew.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,ZR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),tw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,rw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return XR.default.array(n,r).reverse()}});var py=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=iw;function dy(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 iw(t){return(e,r)=>dy(t,e)-dy(t,r)}});var Ty=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Ey;so.default=void 0;var fy=Wt(require("lodash/has")),my=Wt(require("lodash/snakeCase")),sw=Wt(require("lodash/camelCase")),ow=Wt(require("lodash/mapKeys")),aw=Wt(require("lodash/mapValues")),uw=js(),hy=er(),cw=Wt(ly()),yy=Wt(py()),lw=Wt(pu()),dw=Wt(Dn()),Ed=Wt(rr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Li(){return Li=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},Li.apply(this,arguments)}var gy=t=>Object.prototype.toString.call(t)==="[object Object]";function pw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var fw=(0,yy.default)([]),io=class extends Ed.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=fw,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 gy(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=Li({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,fy.default)(i,d);if(m){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,m=m.resolve({value:g,context:r.context,parent:u});let E="spec"in m?m.spec:void 0,y=E?.strict;if(E?.strip){l=l||d in i;continue}f=!r.__validating||!y?m.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}else p&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!dw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!gy(d)){n(i[0]||null,d);return}a=a||d;let m=this._nodes.map(p=>(f,g)=>{let E=p.indexOf(".")===-1?(r.path?`${r.path}.`:"")+p:`${r.path||""}["${p}"]`,y=this.fields[p];if(y&&"validate"in y){y.validate(d[p],Li({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,lw.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=Li({},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 Ed.default&&s instanceof Ed.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,yy.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,cw.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,uw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,fy.default)(s,e)&&(o=Li({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=hy.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=pw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=hy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,ow.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(sw.default)}snakeCase(){return this.transformKeys(my.default)}constantCase(){return this.transformKeys(e=>(0,my.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,aw.default)(this.fields,r=>r.describe()),e}};so.default=io;function Ey(t){return new io(t)}Ey.prototype=io.prototype});var Sy=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Ay;ao.default=void 0;var Td=Mi(Pi()),mw=Mi(vi()),hw=Mi(Qs()),Ad=er(),gw=Mi(pu()),yw=Mi(Dn()),Ew=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function _u(){return _u=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},_u.apply(this,arguments)}function Ay(t){return new oo(t)}var oo=class extends Ew.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,_u({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!yw.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],_=`${r.path||""}[${E}]`,S=_u({},r,{path:_,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,S,T)}(0,gw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,mw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,hw.default)(e));return r.innerType=e,r}length(e,r=Ad.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Td.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Ad.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Td.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Ad.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Td.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)}};ao.default=oo;Ay.prototype=oo.prototype});var _y=H(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=Sw;uo.default=void 0;var Tw=Aw(vi());function Aw(t){return t&&t.__esModule?t:{default:t}}function Sw(t){return new Iu(t)}var Iu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Tw.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)}},_w=Iu;uo.default=_w});var Iy=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=xw;var Iw=Ow(er());function Ow(t){return t&&t.__esModule?t:{default:t}}function xw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Iw.default[e][r]=t[e][r]})})}});var Id=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Nw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return _d.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return _d.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return _d.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return Rw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return ww.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return bw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return Dw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return Cw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return vw.default}});var Oy=Un(jg()),_d=Un(zg()),xy=Un(ey()),Ry=Un(ny()),wy=Un(ay()),by=Un(Ty()),Dy=Un(Sy()),Rw=vn(),ww=_y(),bw=co(Dn()),Dw=co(cd()),Cy=co(vi()),Cw=co(Iy()),vw=co(rr());function co(t){return t&&t.__esModule?t:{default:t}}function vy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return vy=function(){return t},t}function Un(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=vy();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 Nw(t,e,r){if(!t||!(0,Cy.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 Ny=H(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});var Od=Rd();xd.default=()=>{(0,Od.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,Od.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,Od.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 Rd=H(Pe=>{"use strict";var Pw=Pe&&Pe.__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]}),Uw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Lw=Pe&&Pe.__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)&&Pw(e,t,r);return Uw(e,t),e},Mw=Pe&&Pe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.validateOptions=Pe.registerOptionPreset=Pe.getOptionPresets=Pe.getOptionPreset=void 0;var R=Lw(Id());Id();var lo=xt(),kw=Mw(Ny());Rt();var Ln={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}}},Py=R.object({presetId:R.string().required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),minutes:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),hours:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfMonth:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),months:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),daysOfWeek:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required(),years:R.object({minValue:R.number().min(0).required(),maxValue:R.number().min(0).required(),lowerLimit:R.number().min(0),upperLimit:R.number().min(0)}).required()}).required(),Fw=t=>Ln[t]?(0,lo.valid)(Ln[t]):(0,lo.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Fw;var Bw=()=>Ln;Pe.getOptionPresets=Bw;var Gw=(t,e)=>{Ln[t]=Py.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Gw;var $w=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,_,S,M;try{(0,kw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Ln[t.preset])return(0,lo.err)([`Option preset ${t.preset} does not exist.`]);T=Ln[t.preset]}else T=t.preset;else T=Ln.default;let I=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(d=T.hours.lowerLimit)!==null&&d!==void 0?d:T.hours.minValue,upperLimit:(m=T.hours.upperLimit)!==null&&m!==void 0?m:T.hours.maxValue},daysOfMonth:{lowerLimit:(p=T.daysOfMonth.lowerLimit)!==null&&p!==void 0?p:T.daysOfMonth.minValue,upperLimit:(f=T.daysOfMonth.upperLimit)!==null&&f!==void 0?f:T.daysOfMonth.maxValue},months:{lowerLimit:(g=T.months.lowerLimit)!==null&&g!==void 0?g:T.months.minValue,upperLimit:(E=T.months.upperLimit)!==null&&E!==void 0?E:T.months.maxValue},daysOfWeek:{lowerLimit:(y=T.daysOfWeek.lowerLimit)!==null&&y!==void 0?y:T.daysOfWeek.minValue,upperLimit:(_=T.daysOfWeek.upperLimit)!==null&&_!==void 0?_:T.daysOfWeek.maxValue},years:{lowerLimit:(S=T.years.lowerLimit)!==null&&S!==void 0?S:T.years.minValue,upperLimit:(M=T.years.upperLimit)!==null&&M!==void 0?M:T.years.maxValue}}),t.override),w=R.object({presetId:R.string().required(),preset:Py.required(),useSeconds:R.boolean().required(),useYears:R.boolean().required(),useAliases:R.boolean(),useBlankDay:R.boolean().required(),allowOnlyOneBlankDayField:R.boolean().required(),mustHaveBlankDayField:R.boolean(),useLastDayOfMonth:R.boolean(),useLastDayOfWeek:R.boolean(),useNearestWeekday:R.boolean(),useNthWeekdayOfMonth:R.boolean(),seconds:R.object({lowerLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:R.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:R.object({lowerLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:R.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:R.object({lowerLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:R.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:R.object({lowerLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:R.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:R.object({lowerLimit:R.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:R.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:R.object({lowerLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:R.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:R.object({lowerLimit:R.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:R.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,lo.valid)(w)}catch(T){return(0,lo.err)(T.errors)}};Pe.validateOptions=$w});var Vt=H((po,bd)=>{"use strict";var kn=po&&po.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(po,"__esModule",{value:!0});var Mn=xt(),Vw=kn(ug()),qw=kn(cg()),Ww=kn(lg()),Qw=kn(dg()),jw=kn(pg()),Hw=kn(fg()),Yw=kn(mg()),Kw=Rd();Rt();var Jw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Mn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Mn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Mn.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,Mn.valid)(n)},wd=(t,e={})=>{let r=(0,Kw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Jw(t,n);if(i.isError())return(0,Mn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Vw.default)(s,n)),o.push((0,qw.default)(s,n)),o.push((0,Ww.default)(s,n)),o.push((0,Qw.default)(s,n)),o.push((0,jw.default)(s,n)),o.push((0,Hw.default)(s,n)),n.useYears&&o.push((0,Yw.default)(s,n)),o.every(u=>u.isValid()))return(0,Mn.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,Mn.err)(a)};po.default=wd;bd.exports=wd;bd.exports.default=wd});var nT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},kd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Fd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Bd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends sr{},Cu=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends sr{},Qt=class extends sr{constructor(){super("Zone is an abstract class")}},b="numeric",Ct="short",nt="long",vu={year:b,month:b,day:b},sE={year:b,month:Ct,day:b},zw={year:b,month:Ct,day:b,weekday:Ct},oE={year:b,month:nt,day:b},aE={year:b,month:nt,day:b,weekday:nt},uE={hour:b,minute:b},cE={hour:b,minute:b,second:b},lE={hour:b,minute:b,second:b,timeZoneName:Ct},dE={hour:b,minute:b,second:b,timeZoneName:nt},pE={hour:b,minute:b,hourCycle:"h23"},fE={hour:b,minute:b,second:b,hourCycle:"h23"},mE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ct},hE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:nt},gE={year:b,month:b,day:b,hour:b,minute:b},yE={year:b,month:b,day:b,hour:b,minute:b,second:b},EE={year:b,month:Ct,day:b,hour:b,minute:b},TE={year:b,month:Ct,day:b,hour:b,minute:b,second:b},Zw={year:b,month:Ct,day:b,weekday:Ct,hour:b,minute:b},AE={year:b,month:nt,day:b,hour:b,minute:b,timeZoneName:Ct},SE={year:b,month:nt,day:b,hour:b,minute:b,second:b,timeZoneName:Ct},_E={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,timeZoneName:nt},IE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,second:b,timeZoneName:nt},Lr=class{get type(){throw new Qt}get name(){throw new Qt}get ianaName(){return this.name}get isUniversal(){throw new Qt}offsetName(e,r){throw new Qt}formatOffset(e,r){throw new Qt}offset(e){throw new Qt}equals(e){throw new Qt}get isValid(){throw new Qt}},Dd=null,To=class t extends Lr{static get instance(){return Dd===null&&(Dd=new t),Dd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return xE(e,r,n)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},bu={};function Xw(t){return bu[t]||(bu[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"})),bu[t]}var eb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function tb(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 rb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=eb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Ou={},or=class t extends Lr{static create(e){return Ou[e]||(Ou[e]=new t(e)),Ou[e]}static resetCache(){Ou={},bu={}}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 xE(e,r,n,this.name)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=Xw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?rb(n,r):tb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=zd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,f=p%1e3;return p-=f>=0?f:1e3+f,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Uy={};function nb(t,e={}){let r=JSON.stringify([t,e]),n=Uy[r];return n||(n=new Intl.ListFormat(t,e),Uy[r]=n),n}var Gd={};function $d(t,e={}){let r=JSON.stringify([t,e]),n=Gd[r];return n||(n=new Intl.DateTimeFormat(t,e),Gd[r]=n),n}var Vd={};function ib(t,e={}){let r=JSON.stringify([t,e]),n=Vd[r];return n||(n=new Intl.NumberFormat(t,e),Vd[r]=n),n}var qd={};function sb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=qd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),qd[i]=s),s}var go=null;function ob(){return go||(go=new Intl.DateTimeFormat().resolvedOptions().locale,go)}function ab(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=$d(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=$d(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function ub(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function cb(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function lb(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function xu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function db(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 Wd=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=ib(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):Jd(e,3);return Re(r,this.padTo)}}},Qd=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&&or.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=$d(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},jd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&OE()&&(this.rtf=sb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):wb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Se=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||ye.defaultLocale,o=s||(i?"en-US":ob()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){go=null,Gd={},Vd={},qd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=ab(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=ub(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=db(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 xu(this,e,n,bE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=cb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return xu(this,e,n,vE,()=>{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]=lb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return xu(this,void 0,e,()=>NE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return xu(this,e,r,PE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Wd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new Qd(e,this.intl,r)}relFormatter(e={}){return new jd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return nb(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}},Cd=null,it=class t extends Lr{static get utcInstance(){return Cd===null&&(Cd=new t(0)),Cd}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(ku(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Eo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Eo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Eo(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}},Nu=class extends Lr{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 Ur(t,e){if(ne(t)||t===null)return e;if(t instanceof Lr)return t;if(pb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?To.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||or.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Nu(t)}var Ly=()=>Date.now(),My="system",ky=null,Fy=null,By=null,Gy=60,$y,ye=class{static get now(){return Ly}static set now(e){Ly=e}static set defaultZone(e){My=e}static get defaultZone(){return Ur(My,To.instance)}static get defaultLocale(){return ky}static set defaultLocale(e){ky=e}static get defaultNumberingSystem(){return Fy}static set defaultNumberingSystem(e){Fy=e}static get defaultOutputCalendar(){return By}static set defaultOutputCalendar(e){By=e}static get twoDigitCutoffYear(){return Gy}static set twoDigitCutoffYear(e){Gy=e%100}static get throwOnInvalid(){return $y}static set throwOnInvalid(e){$y=e}static resetCaches(){Se.resetCache(),or.resetCache()}};function ne(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Mu(t){return typeof t=="number"&&t%1===0}function pb(t){return typeof t=="string"}function fb(t){return Object.prototype.toString.call(t)==="[object Date]"}function OE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function mb(t){return Array.isArray(t)?t:[t]}function Vy(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 hb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return Mu(t)&&t>=e&&t<=r}function gb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Pr(t){if(!(ne(t)||t===null||t===""))return parseInt(t,10)}function Fn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Kd(t){if(!(ne(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Jd(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function Ao(t){return t%4===0&&(t%100!==0||t%400===0)}function yo(t){return Ao(t)?366:365}function Pu(t,e){let r=gb(e-1,12)+1,n=t+(e-r)/12;return r===2?Ao(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function zd(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 Uu(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 Hd(t){return t>99?t:t>ye.twoDigitCutoffYear?1900+t:2e3+t}function xE(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 ku(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 RE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function Lu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=RE(i)}return r}function Eo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Fu(t){return hb(t,["hour","minute","second","millisecond"])}var yb=["January","February","March","April","May","June","July","August","September","October","November","December"],wE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Eb=["J","F","M","A","M","J","J","A","S","O","N","D"];function bE(t){switch(t){case"narrow":return[...Eb];case"short":return[...wE];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 DE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],CE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Tb=["M","T","W","T","F","S","S"];function vE(t){switch(t){case"narrow":return[...Tb];case"short":return[...CE];case"long":return[...DE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var NE=["AM","PM"],Ab=["Before Christ","Anno Domini"],Sb=["BC","AD"],_b=["B","A"];function PE(t){switch(t){case"narrow":return[..._b];case"short":return[...Sb];case"long":return[...Ab];default:return null}}function Ib(t){return NE[t.hour<12?0:1]}function Ob(t,e){return vE(e)[t.weekday-1]}function xb(t,e){return bE(e)[t.month-1]}function Rb(t,e){return PE(e)[t.year<0?0:1]}function wb(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 qy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var bb={D:vu,DD:sE,DDD:oE,DDDD:aE,t:uE,tt:cE,ttt:lE,tttt:dE,T:pE,TT:fE,TTT:mE,TTTT:hE,f:gE,ff:EE,fff:AE,ffff:_E,F:yE,FF:TE,FFF:SE,FFFF:IE},tt=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 bb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return Re(e,r);let n={...this.opts};return r>0&&(n.padTo=r),this.loc.numberFormatter(n).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(p,f)=>this.loc.extract(e,p,f),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?Ib(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?xb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?Ob(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?Rb(e,p):s({era:p},"era"),m=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(p)}};return qy(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 qy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},UE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Vi(...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 qi(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 LE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Pr(e[r+i]);return[n,null,r+i]}}var ME=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Db=`(?:${ME.source}?(?:\\[(${UE.source})\\])?)?`,Zd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,kE=RegExp(`${Zd.source}${Db}`),Xd=RegExp(`(?:T${kE.source})?`),Cb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,vb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Nb=/(\d{4})-?(\d{3})/,Pb=LE("weekYear","weekNumber","weekDay"),Ub=LE("year","ordinal"),Lb=/(\d{4})-(\d\d)-(\d\d)/,FE=RegExp(`${Zd.source} ?(?:${ME.source}|(${UE.source}))?`),Mb=RegExp(`(?: ${FE.source})?`);function Bi(t,e,r){let n=t[e];return ne(n)?r:Pr(n)}function kb(t,e){return[{year:Bi(t,e),month:Bi(t,e+1,1),day:Bi(t,e+2,1)},null,e+3]}function Wi(t,e){return[{hours:Bi(t,e,0),minutes:Bi(t,e+1,0),seconds:Bi(t,e+2,0),milliseconds:Kd(t[e+3])},null,e+4]}function So(t,e){let r=!t[e]&&!t[e+1],n=ku(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var Fb=RegExp(`^T?${Zd.source}$`),Bb=/^-?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 Gb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(Fn(r)),months:m(Fn(n)),weeks:m(Fn(i)),days:m(Fn(s)),hours:m(Fn(o)),minutes:m(Fn(a)),seconds:m(Fn(u),u==="-0"),milliseconds:m(Kd(c),d)}]}var $b={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 ep(t,e,r,n,i,s,o){let a={year:e.length===2?Hd(Pr(e)):Pr(e),month:wE.indexOf(r)+1,day:Pr(n),hour:Pr(i),minute:Pr(s)};return o&&(a.second=Pr(o)),t&&(a.weekday=t.length>3?DE.indexOf(t)+1:CE.indexOf(t)+1),a}var Vb=/^(?:(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 qb(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=ep(e,i,n,r,s,o,a),p;return u?p=$b[u]:c?p=0:p=ku(l,d),[m,new it(p)]}function Wb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Qb=/^(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$/,jb=/^(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$/,Hb=/^(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 Wy(t){let[,e,r,n,i,s,o,a]=t;return[ep(e,i,n,r,s,o,a),it.utcInstance]}function Yb(t){let[,e,r,n,i,s,o,a]=t;return[ep(e,a,r,n,i,s,o),it.utcInstance]}var Kb=$i(Cb,Xd),Jb=$i(vb,Xd),zb=$i(Nb,Xd),Zb=$i(kE),BE=Vi(kb,Wi,So,_o),Xb=Vi(Pb,Wi,So,_o),eD=Vi(Ub,Wi,So,_o),tD=Vi(Wi,So,_o);function rD(t){return qi(t,[Kb,BE],[Jb,Xb],[zb,eD],[Zb,tD])}function nD(t){return qi(Wb(t),[Vb,qb])}function iD(t){return qi(t,[Qb,Wy],[jb,Wy],[Hb,Yb])}function sD(t){return qi(t,[Bb,Gb])}var oD=Vi(Wi);function aD(t){return qi(t,[Fb,oD])}var uD=$i(Lb,Mb),cD=$i(FE),lD=Vi(Wi,So,_o);function dD(t){return qi(t,[uD,BE],[cD,lD])}var pD="Invalid Duration",GE={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}},fD={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},...GE},ht=146097/400,ki=146097/4800,mD={years:{quarters:4,months:12,weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},quarters:{months:3,weeks:ht/28,days:ht/4,hours:ht*24/4,minutes:ht*24*60/4,seconds:ht*24*60*60/4,milliseconds:ht*24*60*60*1e3/4},months:{weeks:ki/7,days:ki,hours:ki*24,minutes:ki*24*60,seconds:ki*24*60*60,milliseconds:ki*24*60*60*1e3},...GE},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],hD=Bn.slice(0).reverse();function Nr(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 De(n)}function gD(t){return t<0?Math.floor(t):Math.ceil(t)}function $E(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?gD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function yD(t,e){hD.reduce((r,n)=>ne(e[n])?r:(r&&$E(t,e,r,e,n),n),null)}function ED(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var De=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?mD:fD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.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 Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Lu(e,t.normalizeUnit),loc:Se.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=sD(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]=aD(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 Ye("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Bd(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 Cu(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?tt.create(this.loc,n).formatDurationFromString(this,e):pD}toHuman(e={}){let r=Bn.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+=Jd(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 Bn)(Gi(r.values,i)||Gi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Nr(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]=RE(e(this.values[n],n));return Nr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Lu(e,t.normalizeUnit)};return Nr(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 Nr(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),Nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=ED(this.normalize().shiftToAll().toObject());return Nr(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 Bn)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;Vn(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)Bn.indexOf(c)>Bn.indexOf(o)&&$E(this.matrix,i,c,r,o)}else Vn(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 Nr(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 Nr(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 Bn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Fi="Invalid Interval";function TD(t,e){return!t||!t.isValid?qn.invalid("missing or invalid start"):!e||!e.isValid?qn.invalid("missing or invalid end"):e<t?qn.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 qn=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 Ye("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Fd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ho(e),i=ho(r),s=TD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=ho(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=ho(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.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(ho).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=De.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()})`:Fi}toLocaleString(e=vu,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):Fi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Fi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Fi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Fi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Fi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):De.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},$n=class{static hasDST(e=ye.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return or.isValidZone(e)}static normalizeZone(e){return Ur(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:OE()}}};function Qy(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(De.fromMillis(n).as("days"))}function AD(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=Qy(u,c);return(l-l%7)/7}],["days",Qy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function SD(t,e,r,n){let[i,s,o,a]=AD(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=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var tp={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"},jy={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]},_D=tp.hanidec.replace(/[\[|\]]/g,"").split("");function ID(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(tp.hanidec)!==-1)e+=_D.indexOf(t[r]);else for(let i in jy){let[s,o]=jy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${tp[t||"latn"]}${e}`)}var OD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(ID(r))}}var xD=String.fromCharCode(160),VE=`[ ${xD}]`,qE=new RegExp(VE,"g");function RD(t){return t.replace(/\./g,"\\.?").replace(qE,VE)}function Hy(t){return t.replace(/\./g,"").replace(qE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(RD).join("|")),deser:([r])=>t.findIndex(n=>Hy(r)===Hy(n))+e}}function Yy(t,e){return{regex:t,deser:([,r,n])=>ku(r,n),groups:e}}function vd(t){return{regex:t,deser:([e])=>e}}function wD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function bD(t,e){let r=bt(e),n=bt(e,"{2}"),i=bt(e,"{3}"),s=bt(e,"{4}"),o=bt(e,"{6}"),a=bt(e,"{1,2}"),u=bt(e,"{1,3}"),c=bt(e,"{1,6}"),l=bt(e,"{1,9}"),d=bt(e,"{2,4}"),m=bt(e,"{4,6}"),p=E=>({regex:RegExp(wD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return Dt(e.eras("short",!1),0);case"GG":return Dt(e.eras("long",!1),0);case"y":return ce(c);case"yy":return ce(d,Hd);case"yyyy":return ce(s);case"yyyyy":return ce(m);case"yyyyyy":return ce(o);case"M":return ce(a);case"MM":return ce(n);case"MMM":return Dt(e.months("short",!0,!1),1);case"MMMM":return Dt(e.months("long",!0,!1),1);case"L":return ce(a);case"LL":return ce(n);case"LLL":return Dt(e.months("short",!1,!1),1);case"LLLL":return Dt(e.months("long",!1,!1),1);case"d":return ce(a);case"dd":return ce(n);case"o":return ce(u);case"ooo":return ce(i);case"HH":return ce(n);case"H":return ce(a);case"hh":return ce(n);case"h":return ce(a);case"mm":return ce(n);case"m":return ce(a);case"q":return ce(a);case"qq":return ce(n);case"s":return ce(a);case"ss":return ce(n);case"S":return ce(u);case"SSS":return ce(i);case"u":return vd(l);case"uu":return vd(a);case"uuu":return ce(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(d,Hd);case"W":return ce(a);case"WW":return ce(n);case"E":case"c":return ce(r);case"EEE":return Dt(e.weekdays("short",!1,!1),1);case"EEEE":return Dt(e.weekdays("long",!1,!1),1);case"ccc":return Dt(e.weekdays("short",!0,!1),1);case"cccc":return Dt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Yy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Yy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return vd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:OD};return g.token=t,g}var DD={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 CD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=DD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function vD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function ND(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Gi(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 PD(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=or.create(t.z)),ne(t.Z)||(r||(r=new it(t.Z)),n=t.Z),ne(t.q)||(t.M=(t.q-1)*3+1),ne(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),ne(t.u)||(t.S=Kd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Nd=null;function UD(){return Nd||(Nd=_e.fromMillis(1555555555555)),Nd}function LD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=jE(r,e);return n==null||n.includes(void 0)?t:n}function WE(t,e){return Array.prototype.concat(...t.map(r=>LD(r,e)))}function QE(t,e,r){let n=WE(tt.parseFormat(r),t),i=n.map(o=>bD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=vD(i),u=RegExp(o,"i"),[c,l]=ND(e,u,a),[d,m,p]=l?PD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(l,"H"))throw new Gn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:m,specificOffset:p}}}function MD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=QE(t,e,r);return[n,i,s,o]}function jE(t,e){return t?tt.create(e,t).formatDateTimeParts(UD()).map(i=>CD(i,t)):null}var HE=[0,31,59,90,120,151,181,212,243,273,304,334],YE=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function KE(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 JE(t,e,r){return r+(Ao(t)?YE:HE)[e-1]}function zE(t,e){let r=Ao(t)?YE:HE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Yd(t){let{year:e,month:r,day:n}=t,i=JE(e,r,n),s=KE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Uu(a)):o>Uu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Fu(t)}}function Ky(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=KE(e,1,4),s=yo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=yo(a)):o>s?(a=e+1,o-=yo(e)):a=e;let{month:u,day:c}=zE(a,o);return{year:a,month:u,day:c,...Fu(t)}}function Pd(t){let{year:e,month:r,day:n}=t,i=JE(e,r,n);return{year:e,ordinal:i,...Fu(t)}}function Jy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=zE(e,r);return{year:e,month:n,day:i,...Fu(t)}}function kD(t){let e=Mu(t.weekYear),r=ir(t.weekNumber,1,Uu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function FD(t){let e=Mu(t.year),r=ir(t.ordinal,1,yo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function ZE(t){let e=Mu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Pu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function XE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=ir(e,0,23)||e===24&&r===0&&n===0&&i===0,o=ir(r,0,59),a=ir(n,0,59),u=ir(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var Ud="Invalid DateTime",zy=864e13;function Ru(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Ld(t){return t.weekData===null&&(t.weekData=Yd(t.c)),t.weekData}function fo(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function eT(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 Zy(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 Du(t,e,r){return eT(zd(t),e,r)}function Xy(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,Pu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.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=zd(s),[u,c]=eT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function mo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function wu(t,e,r=!0){return t.isValid?tt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Md(t,e){let r=t.c.year>9999||t.c.year<0,n="";return r&&t.c.year>=0&&(n+="+"),n+=Re(t.c.year,r?6:4),e?(n+="-",n+=Re(t.c.month),n+="-",n+=Re(t.c.day)):(n+=Re(t.c.month),n+=Re(t.c.day)),n}function eE(t,e,r,n,i,s){let o=Re(t.c.hour);return e?(o+=":",o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=":")):o+=Re(t.c.minute),(t.c.second!==0||!r)&&(o+=Re(t.c.second),(t.c.millisecond!==0||!n)&&(o+=".",o+=Re(t.c.millisecond,3))),i&&(t.isOffsetFixed&&t.offset===0&&!s?o+="Z":t.o<0?(o+="-",o+=Re(Math.trunc(-t.o/60)),o+=":",o+=Re(Math.trunc(-t.o%60))):(o+="+",o+=Re(Math.trunc(t.o/60)),o+=":",o+=Re(Math.trunc(t.o%60)))),s&&(o+="["+t.zone.ianaName+"]"),o}var tT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},BD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},GD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},rT=["year","month","day","hour","minute","second","millisecond"],$D=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],VD=["year","ordinal","hour","minute","second","millisecond"];function tE(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 Cu(t);return e}function rE(t,e){let r=Ur(e.zone,ye.defaultZone),n=Se.fromObject(e),i=ye.now(),s,o;if(ne(t.year))s=i;else{for(let c of rT)ne(t[c])&&(t[c]=tT[c]);let a=ZE(t)||XE(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=Du(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function nE(t,e,r){let n=ne(r.round)?!0:r.round,i=(o,a)=>(o=Jd(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 iE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||ye.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:Ru(r));this.ts=ne(e.ts)?ye.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=Zy(this.ts,a),n=Number.isNaN(i.year)?new rt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Se.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]=iE(arguments),[n,i,s,o,a,u,c]=r;return rE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=iE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,rE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=fb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Ur(r.zone,ye.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(Ru(i))}static fromMillis(e,r={}){if(Vn(e))return e<-zy||e>zy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Vn(e))return new t({ts:e*1e3,zone:Ur(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ur(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(Ru(n));let i=ye.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Lu(e,tE),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=Se.fromObject(r);if((l||a)&&d)throw new Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Gn("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=Zy(i,s);p?(f=$D,g=BD,E=Yd(E)):a?(f=VD,g=GD,E=Pd(E)):(f=rT,g=tT);let y=!1;for(let w of f){let B=o[w];ne(B)?y?o[w]=g[w]:o[w]=E[w]:y=!0}let _=p?kD(o):a?FD(o):ZE(o),S=_||XE(o);if(S)return t.invalid(S);let M=p?Ky(o):a?Jy(o):o,[T,I]=Du(M,s,n),x=new t({ts:T,zone:n,o:I,loc:m});return o.weekday&&l&&e.weekday!==x.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${x.toISO()}`):x}static fromISO(e,r={}){let[n,i]=rD(e);return mo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=nD(e);return mo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=iD(e);return mo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=MD(o,e,r);return l?t.invalid(l):mo(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]=dD(e);return mo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=jE(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return WE(tt.parseFormat(e),Se.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?Ld(this).weekYear:NaN}get weekNumber(){return this.isValid?Ld(this).weekNumber:NaN}get weekday(){return this.isValid?Ld(this).weekday:NaN}get ordinal(){return this.isValid?Pd(this.c).ordinal:NaN}get monthShort(){return this.isValid?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.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 Ao(this.year)}get daysInMonth(){return Pu(this.year,this.month)}get daysInYear(){return this.isValid?yo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Uu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=tt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(it.instance(e),r)}toLocal(){return this.setZone(ye.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Ur(e,ye.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]=Du(o,s,e)}return fo(this,{ts:i,zone:e})}else return t.invalid(Ru(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return fo(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Lu(e,tE),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 Gn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Gn("Can't mix ordinal dates with month/day");let c;n?c=Ky({...Yd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Pu(c.year,c.month),c.day))):c=Jy({...Pd(this.c),...r});let[l,d]=Du(c,this.o,this.zone);return fo(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return fo(this,Xy(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return fo(this,Xy(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=De.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?tt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Ud}toLocaleString(e=vu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Ud}toLocaleParts(e={}){return this.isValid?tt.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=Md(this,o);return a+="T",a+=eE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Md(this,e==="extended"):null}toISOWeekDate(){return wu(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":"")+eE(this,o==="extended",r,e,n,s):null}toRFC2822(){return wu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return wu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Md(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")),wu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ud}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 De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=mb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=SD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?qn.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),nE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?nE(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 Ye("min requires all arguments be DateTimes");return Vy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return Vy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return QE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return vu}static get DATE_MED(){return sE}static get DATE_MED_WITH_WEEKDAY(){return zw}static get DATE_FULL(){return oE}static get DATE_HUGE(){return aE}static get TIME_SIMPLE(){return uE}static get TIME_WITH_SECONDS(){return cE}static get TIME_WITH_SHORT_OFFSET(){return lE}static get TIME_WITH_LONG_OFFSET(){return dE}static get TIME_24_SIMPLE(){return pE}static get TIME_24_WITH_SECONDS(){return fE}static get TIME_24_WITH_SHORT_OFFSET(){return mE}static get TIME_24_WITH_LONG_OFFSET(){return hE}static get DATETIME_SHORT(){return gE}static get DATETIME_SHORT_WITH_SECONDS(){return yE}static get DATETIME_MED(){return EE}static get DATETIME_MED_WITH_SECONDS(){return TE}static get DATETIME_MED_WITH_WEEKDAY(){return Zw}static get DATETIME_FULL(){return AE}static get DATETIME_FULL_WITH_SECONDS(){return SE}static get DATETIME_HUGE(){return _E}static get DATETIME_HUGE_WITH_SECONDS(){return IE}};function ho(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&Vn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var qD="3.2.1";st.DateTime=_e;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=$n;st.Interval=qn;st.InvalidZone=Nu;st.Settings=ye;st.SystemZone=To;st.VERSION=qD;st.Zone=Lr});var sT=H((fQ,iT)=>{"use strict";var Wn=nT();z.prototype.addYear=function(){this._date=this._date.plus({years:1})};z.prototype.addMonth=function(){this._date=this._date.plus({months:1}).startOf("month")};z.prototype.addDay=function(){this._date=this._date.plus({days:1}).startOf("day")};z.prototype.addHour=function(){var t=this._date;this._date=this._date.plus({hours:1}).startOf("hour"),this._date<=t&&(this._date=this._date.plus({hours:1}))};z.prototype.addMinute=function(){var t=this._date;this._date=this._date.plus({minutes:1}).startOf("minute"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.addSecond=function(){var t=this._date;this._date=this._date.plus({seconds:1}).startOf("second"),this._date<t&&(this._date=this._date.plus({hours:1}))};z.prototype.subtractYear=function(){this._date=this._date.minus({years:1})};z.prototype.subtractMonth=function(){this._date=this._date.minus({months:1}).endOf("month").startOf("second")};z.prototype.subtractDay=function(){this._date=this._date.minus({days:1}).endOf("day").startOf("second")};z.prototype.subtractHour=function(){var t=this._date;this._date=this._date.minus({hours:1}).endOf("hour").startOf("second"),this._date>=t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractMinute=function(){var t=this._date;this._date=this._date.minus({minutes:1}).endOf("minute").startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.subtractSecond=function(){var t=this._date;this._date=this._date.minus({seconds:1}).startOf("second"),this._date>t&&(this._date=this._date.minus({hours:1}))};z.prototype.getDate=function(){return this._date.day};z.prototype.getFullYear=function(){return this._date.year};z.prototype.getDay=function(){var t=this._date.weekday;return t==7?0:t};z.prototype.getMonth=function(){return this._date.month-1};z.prototype.getHours=function(){return this._date.hour};z.prototype.getMinutes=function(){return this._date.minute};z.prototype.getSeconds=function(){return this._date.second};z.prototype.getMilliseconds=function(){return this._date.millisecond};z.prototype.getTime=function(){return this._date.valueOf()};z.prototype.getUTCDate=function(){return this._getUTC().day};z.prototype.getUTCFullYear=function(){return this._getUTC().year};z.prototype.getUTCDay=function(){var t=this._getUTC().weekday;return t==7?0:t};z.prototype.getUTCMonth=function(){return this._getUTC().month-1};z.prototype.getUTCHours=function(){return this._getUTC().hour};z.prototype.getUTCMinutes=function(){return this._getUTC().minute};z.prototype.getUTCSeconds=function(){return this._getUTC().second};z.prototype.toISOString=function(){return this._date.toUTC().toISO()};z.prototype.toJSON=function(){return this._date.toJSON()};z.prototype.setDate=function(t){this._date=this._date.set({day:t})};z.prototype.setFullYear=function(t){this._date=this._date.set({year:t})};z.prototype.setDay=function(t){this._date=this._date.set({weekday:t})};z.prototype.setMonth=function(t){this._date=this._date.set({month:t+1})};z.prototype.setHours=function(t){this._date=this._date.set({hour:t})};z.prototype.setMinutes=function(t){this._date=this._date.set({minute:t})};z.prototype.setSeconds=function(t){this._date=this._date.set({second:t})};z.prototype.setMilliseconds=function(t){this._date=this._date.set({millisecond:t})};z.prototype._getUTC=function(){return this._date.toUTC()};z.prototype.toString=function(){return this.toDate().toString()};z.prototype.toDate=function(){return this._date.toJSDate()};z.prototype.isLastDayOfMonth=function(){var t=this._date.plus({days:1}).startOf("day");return this._date.month!==t.month};z.prototype.isLastWeekdayOfMonth=function(){var t=this._date.plus({days:7}).startOf("day");return this._date.month!==t.month};function z(t,e){var r={zone:e};if(t?t instanceof z?this._date=t._date:t instanceof Date?this._date=Wn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Wn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Wn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Wn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Wn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Wn.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))}iT.exports=z});var uT=H((mQ,aT)=>{"use strict";function Qn(t){return{start:t,count:1}}function oT(t,e){t.end=e,t.step=e-t.start,t.count=2}function rp(t,e,r){e&&(e.count===2?(t.push(Qn(e.start)),t.push(Qn(e.end))):t.push(e)),r&&t.push(r)}function WD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(rp(e,r,Qn(i)),r=void 0):r?r.count===1?oT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Qn(r.start)),r=Qn(r.end),oT(r,i)):(rp(e,r),r=Qn(i)):r=Qn(i)}return rp(e,r),e}aT.exports=WD});var lT=H((hQ,cT)=>{"use strict";var QD=uT();function jD(t,e,r){var n=QD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(m,p){var f=c.start+p;return(f-c.start)%c.step===0?f:null}).filter(function(m){return m!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}cT.exports=jD});var fT=H((gQ,pT)=>{"use strict";var jn=sT(),HD=lT(),dT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new jn(e.currentDate,this._tz),this._startDate=e.startDate?new jn(e.startDate,this._tz):null,this._endDate=e.endDate?new jn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,E=f.length;g<E;g++){var y=f[g];if(U._isValidConstraintChar(n,y)){c.push(y);continue}if(typeof y!="number"||Number.isNaN(y)||y<n.min||y>n.max)throw new Error("Constraint error, got value "+y+" expected range "+n.min+"-"+n.max);c.push(y)}else{if(U._isValidConstraintChar(n,f)){c.push(f);return}var _=+f;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var m=0,p=d.length;m<p;m++)l(o(d[m]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var m=+d[0],p=+d[1];if(Number.isNaN(m)||Number.isNaN(p)||m<n.min||p>n.max)throw new Error("Constraint error, got range "+m+"-"+p+" expected range "+n.min+"-"+n.max);if(m>p)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&p%7===0&&l.push(0);for(var g=m,E=p;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(y,_){for(var S=0,M=_.length;S<M;S++)if(_[S]>=y)return _[S]===y;return _[0]===y}function n(y,_){if(_<6){if(y.getDate()<8&&_===1)return!0;var S=y.getDate()%7?1:0,M=y.getDate()-y.getDate()%7,T=Math.floor(M/7)+S;return T===_}return!1}function i(y){return y.length>0&&y.some(function(_){return typeof _=="string"&&_.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new jn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(y){return y.some(function(_){if(!i([_]))return!1;var S=Number.parseInt(_[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+_);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<dT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var m=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(m=m||o.isLastDayOfMonth());var p=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(p=p||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=dT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new jn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new jn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(HD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new jn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,d=U.map.length;l<d;++l){var m=U.map[l],p=u[u.length>d?l:l-c];if(l<c||!p)a.push(U._parseField(m,U.parseDefaults[l],U.constraints[l]));else{var f=m==="dayOfWeek"?_(p):p;a.push(U._parseField(m,f,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var E=U.map[l];g[E]=a[l]}var y=U._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new U(g,o);function _(S){var M=S.split("#");if(M.length>1){var T=+M[M.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(M.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,M[0]}return S}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(m,p,f){if(!p)throw new Error("Validation error, Field "+m+" is missing");if(p.length===0)throw new Error("Validation error, Field "+m+" contains no values");for(var g=0,E=p.length;g<E;g++){var y=p[g];if(!U._isValidConstraintChar(f,y)&&(typeof y!="number"||Number.isNaN(y)||y<f.min||y>f.max))throw new Error("Constraint error, got value "+y+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(m,p,f){return!p||m!==f[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};pT.exports=U});var hT=H((yQ,mT)=>{"use strict";var Bu=fT();function Mr(){}Mr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Bu.parse(e)};if(r.length>6)return{interval:Bu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Mr.parseExpression=function(e,r){return Bu.parse(e,r)};Mr.fieldsToExpression=function(e,r){return Bu.fieldsToExpression(e,r)};Mr.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=Mr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Mr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Mr.parseString(i.toString()))})};mT.exports=Mr});var vF={};v(vF,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>Op,BadRequestError:()=>Dc,BudibaseError:()=>hs,Config:()=>Cp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>bp,DEFAULT_EXPENSES_TABLE_ID:()=>wp,DEFAULT_INVENTORY_TABLE_ID:()=>Rp,DEFAULT_JOBS_TABLE_ID:()=>xp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,Duration:()=>be,DurationType:()=>Xf,EmailUnavailableError:()=>hr,ErrorCode:()=>Nc,FeatureDisabledError:()=>vc,GlobalRole:()=>Dp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>Rr,InvalidAPIKeyError:()=>gs,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>DT,NotFoundError:()=>bc,RedisClient:()=>qe,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Ip,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UsageLimitError:()=>Cc,UserStatus:()=>Yu,ViewName:()=>Br,accounts:()=>li,auth:()=>hh,blacklist:()=>Th,cache:()=>ba,configs:()=>tn,constants:()=>vp,context:()=>Ae,db:()=>qr,docIds:()=>pf,docUpdates:()=>Sh,encryption:()=>ph,env:()=>h,errors:()=>Uc,events:()=>As,features:()=>nh,getPublicError:()=>Pc,init:()=>CF,installation:()=>qc,locks:()=>ci,logging:()=>Sc,middleware:()=>mh,objectStore:()=>bf,permissions:()=>eh,platform:()=>da,plugins:()=>yh,queue:()=>pm,redis:()=>Eh,roles:()=>Xm,security:()=>Dm,sessions:()=>Jc,setEnv:()=>bo,sql:()=>Ch,tenancy:()=>DF,timers:()=>Yo,userUtils:()=>um,users:()=>Ss,utils:()=>ls,withEnv:()=>LT});module.exports=UI(vF);var tn={};v(tn,{analyticsEnabled:()=>Gc,generateConfigID:()=>tl,getAIConfig:()=>q0,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Bm,getGoogleConfig:()=>rl,getGoogleDatasourceConfig:()=>Vm,getOIDCConfig:()=>G0,getOIDCConfigById:()=>qm,getOIDCLogosDoc:()=>F0,getPlatformUrl:()=>Ua,getSCIMConfig:()=>V0,getSMTPConfig:()=>$0,getSMTPConfigDoc:()=>C_,getSettingsConfig:()=>$m,getSettingsConfigDoc:()=>Qc,save:()=>M0});var LI=["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"],Nh=[...LI],Ph={"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 wl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(wl||{}),bl=(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))(bl||{}),Va=(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))(Va||{});var Dl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Dl||{});var MI=Q(require("lodash")),Or=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Or||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function qa(t){return Object.values(Ti).includes(t)}function Uh(t){return Object.values(Or).includes(t)}function Lh(t){return Object.values(Jt).includes(t)}function Cl(t){return Object.values(dn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Mh=t=>typeof t=="object"&&t._id&&t._rev;var ws=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(ws||{});var kh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,AI_TABLE_GENERATION:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1};var NB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var bs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(bs||{});var Wa=(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))(Wa||{});var Qa=t=>t.hosting==="cloud";var ja=t=>t.authType==="sso";var N="_",Fe="\uFFF0",xr=t=>`${t}${N}`,he=(W=>(W.USER="us",W.GROUP="gr",W.WORKSPACE="workspace",W.CONFIG="config",W.TEMPLATE="template",W.APP="app",W.DEV="dev",W.APP_DEV="app_dev",W.APP_METADATA="app_metadata",W.ROLE="role",W.MIGRATIONS="migrations",W.DEV_INFO="devinfo",W.AUTOMATION_LOG="log_au",W.ACCOUNT_METADATA="acc_metadata",W.PLUGIN="plg",W.DATASOURCE="datasource",W.DATASOURCE_PLUS="datasource_plus",W.APP_BACKUP="backup",W.TABLE="ta",W.ROW="ro",W.AUTOMATION="au",W.LINK="li",W.WEBHOOK="wh",W.INSTANCE="inst",W.LAYOUT="layout",W.SCREEN="screen",W.QUERY="query",W.DEPLOYMENTS="deployments",W.METADATA="metadata",W.MEM_VIEW="view",W.USER_FLAG="flag",W.AUTOMATION_METADATA="meta_au",W.AUDIT_LOG="al",W.APP_MIGRATION_METADATA="_design/migrations",W.SCIM_LOG="scimlog",W.ROW_ACTIONS="ra",W.OAUTH2_CONFIG="oauth2",W.OAUTH2_CONFIG_LOG="oauth2log",W))(he||{}),TG=Object.values(he).sort((t,e)=>e.length-t.length);var Rr=(e=>(e.USER_METADATA="ta_users",e))(Rr||{}),vl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(vl||{}),AG=Object.values(vl).sort((t,e)=>e.length-t.length);var oe=(u=>(u.OBJECT="object",u.STRING="string",u.BOOLEAN="boolean",u.NUMBER="number",u.ARRAY="array",u.JSON="json",u.DATE="date",u.ATTACHMENT="attachment",u))(oe||{}),ge=(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))(ge||{}),It=(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))(It||{});var de=(x=>(x.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",x.CREATE_ROW="CREATE_ROW",x.UPDATE_ROW="UPDATE_ROW",x.DELETE_ROW="DELETE_ROW",x.EXECUTE_BASH="EXECUTE_BASH",x.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",x.EXECUTE_SCRIPT="EXECUTE_SCRIPT",x.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",x.EXECUTE_QUERY="EXECUTE_QUERY",x.SERVER_LOG="SERVER_LOG",x.DELAY="DELAY",x.FILTER="FILTER",x.QUERY_ROWS="QUERY_ROWS",x.LOOP="LOOP",x.COLLECT="COLLECT",x.OPENAI="OPENAI",x.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",x.BRANCH="BRANCH",x.discord="discord",x.slack="slack",x.zapier="zapier",x.integromat="integromat",x.n8n="n8n",x))(de||{}),Fh=[...Object.values(de),...Object.values(It)];var Nl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Nl||{});var Pl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Pl||{});var Ul="bb_internal";var Bh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ha(t){return!!t.providerType}var Ll=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ll||{});var k$=Object.values(Ll);var V$=["rows","queries","automations"],q$=["queries","automations"];var fn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(fn||{}),Ya=(r=>(r.STRING="string",r.NUMBER="number",r))(Ya||{});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 kl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(kl||(kl={}));var k=te.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),wr=t=>{switch(typeof t){case"undefined":return k.undefined;case"string":return k.string;case"number":return isNaN(t)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(t)?k.array:t===null?k.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?k.promise:typeof Map<"u"&&t instanceof Map?k.map:typeof Set<"u"&&t instanceof Set?k.set:typeof Date<"u"&&t instanceof Date?k.date:k.object;default:return k.unknown}},O=te.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),GI=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,te.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};ze.create=t=>new ze(t);var Ii=(t,e)=>{let r;switch(t.code){case O.invalid_type:t.received===k.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case O.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case O.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case O.invalid_union:r="Invalid input";break;case O.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case O.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case O.invalid_arguments:r="Invalid function arguments";break;case O.invalid_return_type:r="Invalid function return type";break;case O.invalid_date:r="Invalid date";break;case O.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case O.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case O.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case O.custom:r="Invalid input";break;case O.invalid_intersection_types:r="Intersection results could not be merged";break;case O.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case O.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},Vh=Ii;function $I(t){Vh=t}function Ka(){return Vh}var Ja=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},VI=[];function P(t,e){let r=Ka(),n=Ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),Fl=t=>t.status==="aborted",Bl=t=>t.status==="dirty",vs=t=>t.status==="valid",Ns=t=>typeof Promise<"u"&&t instanceof Promise;function za(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 qh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var Ds,Cs,ft=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Gh=(t,e)=>{if(vs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return wr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:wr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:wr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ns(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:wr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Gh(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:wr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ns(i)?i:Promise.resolve(i));return Gh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:O.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new Ze({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return $t.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.create(this,this._def)}promise(){return Cr.create(this,this._def)}or(e){return An.create([this,e],this._def)}and(e){return Sn.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ps({typeName:Y.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new wn({...Z(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Us.create(this,e)}readonly(){return bn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},qI=/^c[^\s-]{8,}$/i,WI=/^[0-9a-z]+$/,QI=/^[0-9A-HJKMNP-TV-Z]{26}$/,jI=/^[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,HI=/^[a-z0-9_-]{21}$/i,YI=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,KI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,JI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ml,zI=/^(?:(?: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])$/,ZI=/^(([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})))$/,XI=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Wh="((\\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])))",eO=new RegExp(`^${Wh}$`);function Qh(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 tO(t){return new RegExp(`^${Qh(t)}$`)}function jh(t){let e=`${Wh}T${Qh(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 rO(t,e){return!!((e==="v4"||!e)&&zI.test(t)||(e==="v6"||!e)&&ZI.test(t))}var br=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.string,received:s.parsedType}),J}let n=new ke,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){let o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?P(i,{code:O.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:O.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")KI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ml||(Ml=new RegExp(JI,"u")),Ml.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")jI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")HI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")qI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")WI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")QI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:O.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),P(i,{validation:"url",code:O.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"regex",code:O.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?jh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?eO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?tO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?YI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?rO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:O.invalid_string,message:s.message}),n.dirty()):te.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:O.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}datetime(e){var r,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:(r=e?.offset)!==null&&r!==void 0?r:!1,local:(n=e?.local)!==null&&n!==void 0?n:!1,...G.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...G.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...G.errToObj(e)})}regex(e,r){return this._addCheck({kind:"regex",regex:e,...G.errToObj(r)})}includes(e,r){return this._addCheck({kind:"includes",value:e,position:r?.position,...G.errToObj(r?.message)})}startsWith(e,r){return this._addCheck({kind:"startsWith",value:e,...G.errToObj(r)})}endsWith(e,r){return this._addCheck({kind:"endsWith",value:e,...G.errToObj(r)})}min(e,r){return this._addCheck({kind:"min",value:e,...G.errToObj(r)})}max(e,r){return this._addCheck({kind:"max",value:e,...G.errToObj(r)})}length(e,r){return this._addCheck({kind:"length",value:e,...G.errToObj(r)})}nonempty(e){return this.min(1,G.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get minLength(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxLength(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};br.create=t=>{var e;return new br({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function nO(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 mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==k.number){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?te.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?nO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_finite,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&te.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};mn.create=t=>new mn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var hn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==k.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.bigint,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):te.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};hn.create=t=>{var e;return new hn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var gn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.boolean,received:n.parsedType}),J}return Be(e.data)}};gn.create=t=>new gn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var yn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:k.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_date}),J}let n=new ke,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),P(i,{code:O.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):te.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};yn.create=t=>new yn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==k.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.symbol,received:n.parsedType}),J}return Be(e.data)}};Oi.create=t=>new Oi({typeName:Y.ZodSymbol,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.undefined,received:n.parsedType}),J}return Be(e.data)}};En.create=t=>new En({typeName:Y.ZodUndefined,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==k.null){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.null,received:n.parsedType}),J}return Be(e.data)}};Tn.create=t=>new Tn({typeName:Y.ZodNull,...Z(t)});var Dr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Be(e.data)}};Dr.create=t=>new Dr({typeName:Y.ZodAny,...Z(t)});var Zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Be(e.data)}};Zt.create=t=>new Zt({typeName:Y.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:O.invalid_type,expected:k.never,received:r.parsedType}),J}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==k.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.void,received:n.parsedType}),J}return Be(e.data)}};xi.create=t=>new xi({typeName:Y.ZodVoid,...Z(t)});var Xt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==k.array)return P(r,{code:O.invalid_type,expected:k.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?O.too_big:O.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:O.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:O.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new ft(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};Xt.create=(t,e)=>new Xt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...Z(e)});function Si(t){if(t instanceof je){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(Si(n))}return new je({...t._def,shape:()=>e})}else return t instanceof Xt?new Xt({...t._def,type:Si(t.element)}):t instanceof pt?pt.create(Si(t.unwrap())):t instanceof $t?$t.create(Si(t.unwrap())):t instanceof Gt?Gt.create(t.items.map(e=>Si(e))):t}var je=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==k.object){let c=this._getOrReturnCtx(e);return P(c,{code:O.invalid_type,expected:k.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ft(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:O.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new ft(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=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return te.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}omit(e){let r={};return te.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Si(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 pt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return Hh(te.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var An=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return P(r,{code:O.invalid_union,unionErrors:o}),J}if(r.common.async)return Promise.all(n.map(async s=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await s._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let s,o=[];for(let u of n){let c={...r,common:{...r.common,issues:[]},parent:null},l=u._parseSync({data:r.data,path:r.path,parent:c});if(l.status==="valid")return l;l.status==="dirty"&&!s&&(s={result:l,ctx:c}),c.common.issues.length&&o.push(c.common.issues)}if(s)return r.common.issues.push(...s.ctx.common.issues),s.result;let a=o.map(u=>new ze(u));return P(r,{code:O.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};An.create=(t,e)=>new An({options:t,typeName:Y.ZodUnion,...Z(e)});var zt=t=>t instanceof _n?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof In?[t.value]:t instanceof On?t.options:t instanceof xn?te.objectValues(t.enum):t instanceof Rn?zt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof pt?[void 0,...zt(t.unwrap())]:t instanceof $t?[null,...zt(t.unwrap())]:t instanceof Ps||t instanceof bn?zt(t.unwrap()):t instanceof wn?zt(t._def.innerType):[],Za=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.object)return P(r,{code:O.invalid_type,expected:k.object,received:r.parsedType}),J;let n=this.discriminator,i=r.data[n],s=this.optionsMap.get(i);return s?r.common.async?s._parseAsync({data:r.data,path:r.path,parent:r}):s._parseSync({data:r.data,path:r.path,parent:r}):(P(r,{code:O.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Gl(t,e){let r=wr(t),n=wr(e);if(t===e)return{valid:!0,data:t};if(r===k.object&&n===k.object){let i=te.objectKeys(e),s=te.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Gl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===k.array&&n===k.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=Gl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===k.date&&n===k.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var Sn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Fl(s)||Fl(o))return J;let a=Gl(s.value,o.value);return a.valid?((Bl(s)||Bl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:O.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Sn.create=(t,e,r)=>new Sn({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var Gt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.array)return P(n,{code:O.invalid_type,expected:k.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:O.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:O.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new ft(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Gt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Gt({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var Xa=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.object)return P(n,{code:O.invalid_type,expected:k.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new ft(n,a,n.path,a)),value:o._parse(new ft(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.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:br.create(),valueType:e,typeName:Y.ZodRecord,...Z(r)})}},Ri=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.map)return P(n,{code:O.invalid_type,expected:k.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new ft(n,a,n.path,[c,"key"])),value:s._parse(new ft(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var wi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==k.set)return P(n,{code:O.invalid_type,expected:k.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:O.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:O.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new ft(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};wi.create=(t,e)=>new wi({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var eu=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.function)return P(r,{code:O.invalid_type,expected:k.function,received:r.parsedType}),J;function n(a,u){return Ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ka(),Ii].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return Ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ka(),Ii].filter(c=>!!c),issueData:{code:O.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Cr){let a=this;return Be(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(p=>{throw c.addIssue(i(d,p)),c})})}else{let a=this;return Be(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Gt.create(e).rest(Zt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||Gt.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName:Y.ZodFunction,...Z(n)})}},_n=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:Y.ZodLazy,...Z(e)});var In=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:O.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};In.create=(t,e)=>new In({value:t,typeName:Y.ZodLiteral,...Z(e)});function Hh(t,e){return new On({values:t,typeName:Y.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:te.joinValues(n),received:r.parsedType,code:O.invalid_type}),J}if(za(this,Ds,"f")||qh(this,Ds,new Set(this._def.values),"f"),!za(this,Ds,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:O.invalid_enum_value,options:n}),J}return Be(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})}};Ds=new WeakMap;On.create=Hh;var xn=class extends X{constructor(){super(...arguments),Cs.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==k.string&&n.parsedType!==k.number){let i=te.objectValues(r);return P(n,{expected:te.joinValues(i),received:n.parsedType,code:O.invalid_type}),J}if(za(this,Cs,"f")||qh(this,Cs,new Set(te.getValidEnumValues(this._def.values)),"f"),!za(this,Cs,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:O.invalid_enum_value,options:i}),J}return Be(e.data)}get enum(){return this._def.values}};Cs=new WeakMap;xn.create=(t,e)=>new xn({values:t,typeName:Y.ZodNativeEnum,...Z(e)});var Cr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==k.promise&&r.common.async===!1)return P(r,{code:O.invalid_type,expected:k.promise,received:r.parsedType}),J;let n=r.parsedType===k.promise?r.data:Promise.resolve(r.data);return Be(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Cr.create=(t,e)=>new Cr({type:t,typeName:Y.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{P(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?_i(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?_i(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>vs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);te.assertNever(i)}};Ze.create=(t,e,r)=>new Ze({schema:t,typeName:Y.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...Z(r)});var pt=class extends X{_parse(e){return this._getType(e)===k.undefined?Be(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:Y.ZodOptional,...Z(e)});var $t=class extends X{_parse(e){return this._getType(e)===k.null?Be(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$t.create=(t,e)=>new $t({innerType:t,typeName:Y.ZodNullable,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===k.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Ns(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var bi=class extends X{_parse(e){if(this._getType(e)!==k.nan){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:k.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:Y.ZodNaN,...Z(t)});var iO=Symbol("zod_brand"),Ps=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}},Us=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),_i(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},bn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Ns(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Yh(t,e={},r){return t?Dr.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})}}):Dr.create()}var sO={object:je.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 oO=(t,e={message:`Input not instance of ${t.name}`})=>Yh(r=>r instanceof t,e),Kh=br.create,Jh=mn.create,aO=bi.create,uO=hn.create,zh=gn.create,cO=yn.create,lO=Oi.create,dO=En.create,pO=Tn.create,fO=Dr.create,mO=Zt.create,hO=Ot.create,gO=xi.create,yO=Xt.create,EO=je.create,TO=je.strictCreate,AO=An.create,SO=Za.create,_O=Sn.create,IO=Gt.create,OO=Xa.create,xO=Ri.create,RO=wi.create,wO=eu.create,bO=_n.create,DO=In.create,CO=On.create,vO=xn.create,NO=Cr.create,$h=Ze.create,PO=pt.create,UO=$t.create,LO=Ze.createWithPreprocess,MO=Us.create,kO=()=>Kh().optional(),FO=()=>Jh().optional(),BO=()=>zh().optional(),GO={string:t=>br.create({...t,coerce:!0}),number:t=>mn.create({...t,coerce:!0}),boolean:t=>gn.create({...t,coerce:!0}),bigint:t=>hn.create({...t,coerce:!0}),date:t=>yn.create({...t,coerce:!0})},$O=J,ee=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:$I,getErrorMap:Ka,makeIssue:Ja,EMPTY_PATH:VI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:Be,isAborted:Fl,isDirty:Bl,isValid:vs,isAsync:Ns,get util(){return te},get objectUtil(){return kl},ZodParsedType:k,getParsedType:wr,ZodType:X,datetimeRegex:jh,ZodString:br,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Oi,ZodUndefined:En,ZodNull:Tn,ZodAny:Dr,ZodUnknown:Zt,ZodNever:Ot,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:An,ZodDiscriminatedUnion:Za,ZodIntersection:Sn,ZodTuple:Gt,ZodRecord:Xa,ZodMap:Ri,ZodSet:wi,ZodFunction:eu,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:Cr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:wn,ZodNaN:bi,BRAND:iO,ZodBranded:Ps,ZodPipeline:Us,ZodReadonly:bn,custom:Yh,Schema:X,ZodSchema:X,late:sO,get ZodFirstPartyTypeKind(){return Y},coerce:GO,any:fO,array:yO,bigint:uO,boolean:zh,date:cO,discriminatedUnion:SO,effect:$h,enum:CO,function:wO,instanceof:oO,intersection:_O,lazy:bO,literal:DO,map:xO,nan:aO,nativeEnum:vO,never:hO,null:pO,nullable:UO,number:Jh,object:EO,oboolean:BO,onumber:FO,optional:PO,ostring:kO,pipeline:MO,preprocess:LO,promise:NO,record:OO,set:RO,strictObject:TO,string:Kh,symbol:lO,transformer:$h,tuple:IO,undefined:dO,union:AO,unknown:mO,void:gO,NEVER:$O,ZodIssueCode:O,quotelessJson:GI,ZodError:ze});var iu=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Zh=ee.record(iu,ee.string()),tu=ee.record(iu,ee.any()),ru=ee.record(iu,ee.union([ee.any().array(),ee.string()])),Xh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(eg))})),nu=ee.union([ee.string(),ee.number()]),eg={string:Zh.optional(),fuzzy:Zh.optional(),range:ee.record(iu,ee.union([ee.object({high:nu,low:nu}),ee.object({high:nu}),ee.object({low:nu})])).optional(),equal:tu.optional(),notEqual:tu.optional(),empty:tu.optional(),notEmpty:tu.optional(),oneOf:ru.optional(),contains:ru.optional(),notContains:ru.optional(),containsAny:ru.optional(),$and:Xh.optional(),$or:Xh.optional()},LV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ai).optional(),...eg}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(fn).optional(),sortType:ee.nativeEnum(Ya).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var vp={};v(vp,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>Op,Config:()=>Cp,Cookie:()=>Yi,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>bp,DEFAULT_EXPENSES_TABLE_ID:()=>wp,DEFAULT_INVENTORY_TABLE_ID:()=>Rp,DEFAULT_JOBS_TABLE_ID:()=>xp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,GlobalRole:()=>Dp,Header:()=>Xe,InternalTable:()=>Rr,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>DT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Ip,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UserStatus:()=>Yu,ViewName:()=>Br});var Hq={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 Xe=(_=>(_.API_KEY="x-budibase-api-key",_.LICENSE_KEY="x-budibase-license-key",_.API_VER="x-budibase-api-version",_.APP_ID="x-budibase-app-id",_.SESSION_ID="x-budibase-session-id",_.TYPE="x-budibase-type",_.PREVIEW_ROLE="x-budibase-role",_.TENANT_ID="x-budibase-tenant-id",_.VERIFICATION_CODE="x-budibase-verification-code",_.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",_.RESET_PASSWORD_CODE="x-budibase-reset-password-code",_.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",_.TOKEN="x-budibase-token",_.CSRF_TOKEN="x-csrf-token",_.CORRELATION_ID="x-budibase-correlation-id",_.AUTHORIZATION="authorization",_.MIGRATING_APP="x-budibase-migrating-app",_.COOKIE="cookie",_))(Xe||{});var zq={string:["string","options","longform","barcodeqr"],options:["options","string","longform","barcodeqr"],longform:["longform","string","options","barcodeqr"],barcodeqr:["barcodeqr","string","options","longform"],number:["number","boolean"],json:["json","array","attachment","attachment_single","bb_reference","signature_single"]};var nW="darkest",iW="light",WO=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var et={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"}},tg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Di="datasource_internal_bb_default";var kr={};v(kr,{ColumnSplitter:()=>cp,NoEmptyFilterStrings:()=>_T,buildQuery:()=>IT,cleanupQuery:()=>pp,fixupFilterArrays:()=>mp,getKeyNumbering:()=>fp,getValidOperatorsForType:()=>hC,hasFilters:()=>lp,limit:()=>xT,recurseLogicalOperators:()=>dp,removeKeyNumbering:()=>su,runQuery:()=>Gu,search:()=>EC,sort:()=>OT,splitFiltersArray:()=>ou});var Qi=Q(rg());var Ci={};v(Ci,{filterValueToLabel:()=>JO,hasSchema:()=>zO,isSupportedUserSearch:()=>ig,parallelForeach:()=>KO,processSearchFilters:()=>ql,trimOtherProps:()=>ZO,unreachable:()=>YO});var ng=Q(require("lodash")),HO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function YO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function KO(t,e,r){let n=[],i=0,s=async a=>{try{await e(a)}finally{o()}},o=()=>{if(i>=t.length)return;let a=t[i];i++;let u=s(a);n.push(u),n.length>=r?Promise.race(n).then(o):o()};o(),await Promise.all(n)}function JO(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function zO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ZO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function ig(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(qa(s)){for(let c of t[s].conditions)if(!ig(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function ql(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ou(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=ng.default.pick(i,HO);return s.field=su(s.field),s})}]}}var jt={};v(jt,{cancelableTimeout:()=>sg,cron:()=>np,deepGet:()=>Wl,duplicateName:()=>dC,getSequentialName:()=>pC,getUserColor:()=>ex,getUserInitials:()=>XO,getUserLabel:()=>tx,isGoogleSheets:()=>nx,isSQL:()=>ix,lists:()=>up,retry:()=>sx,roles:()=>ap,schema:()=>Io,views:()=>op,wait:()=>Ql,withTimeout:()=>rx});var Wl=(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},XO=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"},ex=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%)`},tx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function sg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function rx(t,e){let[r,n]=sg(t),i=await Promise.race([e(),r]);return n(),i}function nx(t){return t==="GOOGLE_SHEETS"}function ix(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function Ql(t){return new Promise(e=>setTimeout(e,t))}async function sx(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 Ql(s);try{return await t()}catch(o){n=o}}throw n}var np={};v(np,{getNextExecutionDates:()=>JD,validate:()=>zD});var yT=Q(Vt()),ET=Q(hT()),gT="(Input cron: ",YD={"smaller than lower limit":"less than","bigger than upper limit":"greater than",daysOfMonth:"'days of the month'",daysOfWeek:"'days of the week'",years:"'years'",months:"'months'",hours:"'hours'",minutes:"'minutes'",seconds:"'seconds'"};function KD(t){let e=[];for(let r of t){r.includes(gT)&&(r=r.split(gT)[0].trim());for(let[n,i]of Object.entries(YD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function JD(t,e=4){let r=ET.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function zD(t){let e=(0,yT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:KD(e.getError())}}var Io={};v(Io,{decodeNonAscii:()=>ip,encodeNonAscii:()=>eC,isDeprecatedSingleUserColumn:()=>ZD,isNumeric:()=>tC,isRequired:()=>XD});function ZD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function XD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function eC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function ip(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function tC(t){return t.type==="number"||t.type==="bigint"}var op={};v(op,{basicFields:()=>oC,calculationFields:()=>sC,hasCalculationFields:()=>iC,isBasicViewField:()=>rC,isCalculationField:()=>Oo,isCalculationView:()=>nC,isV2:()=>aC,isVisible:()=>TT});var sp=require("lodash");function Oo(t){return"calculationType"in t}function rC(t){return!Oo(t)}function nC(t){return t.type==="calculation"}function iC(t){return Object.values(t.schema||{}).some(Oo)}function sC(t){return(0,sp.pickBy)(t.schema||{},Oo)}function TT(t){return t.visible!==!1}function oC(t,e){let{visible:r=!0}=e||{};return(0,sp.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||TT(n)))}function aC(t){return t.version===2}var ap={};v(ap,{checkForRoleInheritanceLoops:()=>cC});function uC(t){return`role${N}${t}`}function cC(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=uC(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 up={};v(up,{punctuateList:()=>lC});function lC(t){return t.length===0?"":t.length===1?t[0]:t.length===2?t.join(" and "):t.slice(0,-1).join(", ")+" and "+t[t.length-1]}var dC=(t,e)=>{let r=new RegExp("\\s(\\d+)$"),n=t.split(r)[0],i=new RegExp(`${n}\\s(\\d+)$`),s=[];e.filter(a=>{if(a===n)return!0;let u=a.match(i);return u?(s.push(parseInt(u[1])),!0):!1}),s.sort((a,u)=>a-u);let o;if(s.length===0)o=1;else{for(let a=0;a<s.length;a++)if(s[a]!==a+1){o=a+1;break}o||(o=s.length+1)}return`${n} ${o}`},pC=(t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let s=e.trim(),o=n?`${e}1`:s;if(!t?.length)return o;let a=0;return t.forEach(u=>{let c=r?.(u)??u;if(typeof c!="string"||!c.startsWith(s))return;let l=c.split(s);if(l.length!==2)return;l[1].trim()===""&&(l[1]="1");let d=parseInt(l[1]);d>a&&(a=d)}),a===0?o:`${e}${i}${a+1}`};var Hn=require("lodash");var fC=/{{([^{].*?)}}/g,ST=Object.values(Ti),mC=[...Object.values(Or),...Object.values(Jt),...Object.values(dn)],hC=(t,e,r)=>{let n=et,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"||Io.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},_T=[et.StartsWith.value,et.Like.value,et.Equals.value,et.NotEquals.value,et.Contains.value,et.NotContains.value,et.ContainsAny.value,et.In.value];function dp(t,e){for(let r of ST)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var pp=t=>{for(let e of _T)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===""||gC(s))&&delete t[e][i]}return t=dp(t,pp),t};function gC(t){return Array.isArray(t)&&t.length===0}var su=t=>fp(t).key,fp=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}},cp=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}=fp(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=ip(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function yC(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(fC)||[]).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(Cl(r)){let c=tg[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(Uh(r)||Lh(r)||Cl(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 ou(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 IT(t){if(!t)return{};if(Array.isArray(t)&&(t=ql(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=AT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=IT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=ou(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=AT(n.logicalOperator)),{[a]:{conditions:o.map(yC).filter(u=>u)}}})},e}function AT(t){return t==="all"?"$and":"$or"}function mp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Hn.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 dp(t,mp),t}function EC(t,e){let r=Gu(t,e.query);e.sort&&(r=OT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=xT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Gu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=pp(e),e=mp(e),!lp(e)&&e.onEmptyFilter==="none")return[];let r=(T,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=qa(T)?x:Wl(x,su(w)),un=I(le,B);if(e.allOr&&un)return!0;if(!e.allOr&&!un)return!1}return!e.allOr},n=r("string",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(T,I)=>typeof T!="string"||typeof I!="string"?!1:T.toLowerCase().includes(I.toLowerCase())),s=r("range",(T,I)=>{if(T==null||T===""||((0,Hn.isPlainObject)(I.low)&&(0,Hn.isEmpty)(I.low)&&(I.low=void 0),(0,Hn.isPlainObject)(I.high)&&(0,Hn.isEmpty)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let x=+T;if(!isNaN(x)){let B=+I.low,le=+I.high;if(!isNaN(B)&&!isNaN(le))return x>=B&&x<=le;if(isNaN(B)){if(!isNaN(le))return x<=le}else return x>=B}let w=(0,Qi.default)(T);if(w.isValid()){let B=(0,Qi.default)(I.low||"0000-00-00T00:00:00.000Z"),le=(0,Qi.default)(I.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&le.isValid())return w.isAfter(B)&&w.isBefore(le)||w.isSame(B)||w.isSame(le);if(B.isValid())return w.isAfter(B)||w.isSame(B);if(le.isValid())return w.isBefore(le)||w.isSame(le)}return I.low!=null&&I.high!=null?T>=I.low&&T<=I.high:I.low!=null?T>=I.low:I.high!=null?T<=I.high:!1}),o=(T,I)=>{if(Array.isArray(T)){for(let w of T)if(o(w,I))return!0;return!1}if(T&&typeof T=="object"&&typeof I=="string")return T._id===I;if(T===I)return!0;if(T==null&&I!=null||T!=null&&I==null)return!1;let x=(0,Qi.default)(T);if(x.isValid()){let w=(0,Qi.default)(I);if(w.isValid())return x.isSame(w)}return!1},a=T=>(...I)=>!T(...I),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,d=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,I)=>(typeof I=="string"&&(I=I.split(",")),typeof T=="number"&&(I=I.map(x=>parseFloat(x))),Array.isArray(I)?I.some(x=>o(T,x)):!1)),f=T=>(I,x)=>!Array.isArray(I)||(typeof x=="string"&&(x=x.split(","),typeof I[0]=="number"&&(x=x.map(w=>parseFloat(w)))),!Array.isArray(x))?!1:x.length===0?!0:x[T](w=>o(I,w)),g=r("contains",(T,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(T,I)),E=r("notContains",(T,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(T,I)),y=r("containsAny",f("some")),_=r("$and",(T,I)=>{if(!I.length)return!1;for(let x of I)if(!Gu([T],x).length)return!1;return!0}),S=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if(Gu([T],{...x,allOr:!0}).length)return!0;return!1}),M=T=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:_,$or:S},x=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>I[w]?.(T)??!1);return lp(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function OT(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 xT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var lp=t=>{if(!t)return!1;let e=r=>{for(let n of ST)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of mC){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 ot={};v(ot,{applications:()=>gp,automations:()=>yp,screens:()=>_p,users:()=>Sp});var gp={};v(gp,{getDevAppID:()=>TC,getProdAppID:()=>$u});var hp=xr("app"),xo=xr("app_dev");function TC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(xo))return t;let e=t.split(hp);e.shift();let r=e.join(hp);return`${xo}${r}`}function $u(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(xo))return t;let e=t.split(xo);e.shift();let r=e.join(xo);return`${hp}${r}`}var yp={};v(yp,{isAppAction:()=>_C,isRowAction:()=>AC,isWebhookAction:()=>SC});function AC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function SC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function _C(t){return t.definition.trigger?.stepId==="APP"}var Sp={};v(Sp,{canCreateApps:()=>IC,containsUserID:()=>DC,getGlobalUserID:()=>bC,getUserAppGroups:()=>CC,getUserGroups:()=>Ap,hasAdminPermissions:()=>Tp,hasAppBuilderPermissions:()=>Wu,hasAppCreatorPermissions:()=>RT,hasBuilderPermissions:()=>RC,hasCreatorPermissions:()=>Qu,isAdmin:()=>qu,isAdminOrBuilder:()=>OC,isAdminOrGlobalBuilder:()=>xC,isBuilder:()=>Ep,isCreator:()=>wC,isGlobalBuilder:()=>Vu,userAppAccessList:()=>vC});var Fr=Q(require("lodash/fp"));function Ep(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes($u(e))):!1}function Vu(t){return Ep(t)&&!Wu(t)||qu(t)}function IC(t){return Vu(t)||Qu(t)}function qu(t){return t?Tp(t):!1}function OC(t,e){return Ep(t,e)||qu(t)}function xC(t){return Vu(t)||qu(t)}function Wu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function RT(t){return t?Fr.flow(Fr.get("roles"),Fr.values,Fr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function RC(t){return t?t.builder?.global||Wu(t)||Qu(t):!1}function Tp(t){return t?!!t.admin?.global:!1}function Qu(t){return t?!!t.builder?.creator:!1}function wC(t){return t?Vu(t)||Tp(t)||Qu(t)||Wu(t)||RT(t):!1}function bC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function DC(t){return typeof t!="string"?!1:t.includes(`us${N}`)}function Ap(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function CC(t,e,r){let n=$u(t);return Ap(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function vC(t,e){let n=Ap(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t.roles),...n];return[...new Set(i)]}var _p={};v(_p,{findInSettings:()=>NC});function NC(t,e){let r=[];function n(i,s=""){for(let[o,a]of Object.entries(i))a&&(typeof a=="string"&&a.includes(e)?r.push({setting:s?`${s}.${o}`:o,value:a}):typeof a=="object"&&n(a,o))}return n(t.props),r}var mj={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},hj={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},gj={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 Oj={name:"Bash Scripting",tagline:"Execute a bash command",icon:"JourneyEvent",description:"Run a bash script",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"EXECUTE_BASH",inputs:{},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{stdout:{type:"string",description:"Standard output of your bash command or script"},success:{type:"boolean",description:"Whether the command was successful"}},required:["stdout"]}}};var wj={name:"Branch",icon:"Branch3",tagline:"Branch from this step",description:"Branching",stepId:"BRANCH",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{branches:{properties:{name:{type:"string"},condition:{customType:"filters"}}},children:{type:"array"}},required:["conditions"]},outputs:{properties:{branchName:{type:"string"},status:{type:"string",description:"Branch result"},branchId:{type:"string",description:"Branch ID"},success:{type:"boolean",description:"Branch success"}},required:["output"]}},type:"LOGIC"};var Cj={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"Collection",description:"Collects specified data so it can be provided to the design section",type:"ACTION",internal:!0,features:{},stepId:"COLLECT",inputs:{},schema:{inputs:{properties:{collection:{type:"string",title:"What to Collect"}},required:["collection"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},value:{type:"string",description:"Collected data"}},required:["success","value"]}}};var Pj={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"TableRowAddBottom",description:"Add a row to your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"CREATE_ROW",inputs:{},schema:{inputs:{properties:{row:{type:"object",properties:{tableId:{type:"string",customType:"table"}},customType:"row",title:"Table",required:["tableId"]}},required:["row"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the row creation was successful"},id:{type:"string",description:"The identifier of the new row"},revision:{type:"string",description:"The revision of the new row"}},required:["success","id","revision"]}}};var Mj={name:"Delay",icon:"Clock",tagline:"Delay for {{inputs.time}} milliseconds",description:"Delay the automation until an amount of time has passed",stepId:"DELAY",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{time:{type:"number",title:"Delay in milliseconds"}},required:["time"]},outputs:{properties:{success:{type:"boolean",description:"Whether the delay was successful"}},required:["success"]}},type:"LOGIC"};var Bj={description:"Delete a row from your database",icon:"TableRowRemoveCenter",name:"Delete Row",tagline:"Delete a {{inputs.enriched.table.name}} row",type:"ACTION",stepId:"DELETE_ROW",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},id:{type:"string",title:"Row ID"}},required:["tableId","id"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The deleted row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the deletion was successful"}},required:["row","success"]}}};var Vj={name:"Discord Message",tagline:"Send a message to a Discord server",description:"Send a message to a Discord server",icon:"ri-discord-line",stepId:"discord",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Discord Webhook URL"},username:{type:"string",title:"Bot Name"},avatar_url:{type:"string",title:"Bot Avatar URL"},content:{type:"string",title:"Message"}},required:["url","content"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from the Discord Webhook"},success:{type:"boolean",description:"Whether the message sent successfully"}}}}};var Qj={name:"External Data Connector",tagline:"Execute Data Connector",icon:"Data",description:"Execute a query in an external data connector",type:"ACTION",stepId:"EXECUTE_QUERY",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string",customType:"query"}},customType:"queryParams",title:"Parameters",required:["queryId"]}},required:["query"]},outputs:{properties:{response:{type:"object",description:"The response from the datasource execution"},info:{type:"object",description:"Some query types may return extra data, like headers from a REST query"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var Yj={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var zj={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!0,stepId:"EXECUTE_SCRIPT_V2",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var qC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},eH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"Branch2",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Nl),pretty:Object.values(qC)},value:{type:"string",title:"Comparison Value"}},required:["field","condition","value"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},result:{type:"boolean",description:"Whether the logic block passed"}},required:["success","result"]}}};var nH={name:"Looping",icon:"Reuse",tagline:"Loop the block",description:"Loop",stepId:"LOOP",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{option:{customType:"loopOption",title:"Input type"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}},required:["type","value","iterations","failure"]},outputs:{properties:{items:{customType:"item",description:"The item currently being executed"},success:{type:"boolean",description:"Whether the message loop was successfully"},iterations:{type:"number",description:"The amount of times the block ran"}},required:["success","items","iterations"]}},type:"LOGIC"};var oH={name:"Make Integration",stepTitle:"Make",tagline:"Trigger a Make scenario",description:"Performs a webhook call to Make and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"integromat",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url","body"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var cH={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values(Pl)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var wT=(i=>(i.GPT_4O_MINI="gpt-4o-mini",i.GPT_4O="gpt-4o",i.GPT_4="gpt-4",i.GPT_35_TURBO="gpt-3.5-turbo",i))(wT||{}),pH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(wT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var bT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(bT||{}),hH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(bT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var JC={ascending:"Ascending",descending:"Descending"},EH={description:"Query rows from the database",icon:"Search",name:"Query rows",tagline:"Query rows from {{inputs.enriched.table.name}} table",type:"ACTION",stepId:"QUERY_ROWS",internal:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"filters",title:"Filtering"},sortColumn:{type:"string",title:"Sort Column",customType:"column"},sortOrder:{type:"string",title:"Sort Order",enum:Object.values(fn),pretty:Object.values(JC)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var SH={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"Email",name:"Send Email (SMTP)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SEND_EMAIL_SMTP",inputs:{},schema:{inputs:{properties:{to:{type:"string",title:"Send To"},from:{type:"string",title:"Send From"},cc:{type:"string",title:"CC"},bcc:{type:"string",title:"BCC"},subject:{type:"string",title:"Email Subject"},contents:{type:"string",title:"HTML Contents"},addInvite:{type:"boolean",title:"Add calendar invite"},startTime:{type:"date",title:"Start Time",dependsOn:"addInvite"},endTime:{type:"date",title:"End Time",dependsOn:"addInvite"},summary:{type:"string",title:"Meeting Summary",dependsOn:"addInvite"},location:{type:"string",title:"Location",dependsOn:"addInvite"},attachments:{type:"attachment",customType:"multi_attachments",title:"Attachments"}},required:["to","from","subject","contents"]},outputs:{properties:{success:{type:"boolean",description:"Whether the email was sent"},response:{type:"object",description:"A response from the email client, this may be an error"}},required:["success"]}}};var OH={name:"Backend log",tagline:"Console log a value in the backend",icon:"Monitoring",description:"Logs the given text to the server (using console.log)",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"SERVER_LOG",inputs:{text:""},schema:{inputs:{properties:{text:{type:"string",title:"Log"}},required:["text"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},message:{type:"string",description:"What was output"}},required:["success","message"]}}};var wH={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var CH={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"Sync",description:"Triggers an automation synchronously",type:"ACTION",internal:!0,features:{},stepId:"TRIGGER_AUTOMATION_RUN",inputs:{},schema:{inputs:{properties:{automation:{type:"object",properties:{automationId:{type:"string",customType:"automation"}},customType:"automationFields",title:"Automation Fields",required:["automationId"]},timeout:{type:"number",title:"Timeout (ms)"}},required:["automationId"]},outputs:{properties:{success:{type:"boolean",description:"Whether the automation was successful"},value:{type:"object",description:"Automation Result"}},required:["success","value"]}}};var PH={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"Refresh",description:"Update a row in your database",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"UPDATE_ROW",inputs:{},schema:{inputs:{properties:{meta:{type:"object",title:"Field settings"},row:{type:"object",customType:"row",title:"Table"},rowId:{type:"string",title:"Row ID"}},required:["row","rowId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The updated row"},response:{type:"object",description:"The response from the table"},success:{type:"boolean",description:"Whether the action was successful"},id:{type:"string",description:"The identifier of the updated row"},revision:{type:"string",description:"The revision of the updated row"}},required:["success","id","revision"]}}};var MH={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var sv={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var av={name:"Cron Trigger",event:"cron:trigger",icon:"Clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var cv={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var dv={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var fv={name:"Row Updated",event:"row:update",icon:"Refresh",tagline:"Row is updated in {{inputs.enriched.table.name}}",description:"Fired when a row is updated in your database",stepId:"ROW_UPDATED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{oldRow:{type:"object",customType:"row",description:"The row that was updated",title:"Old Row"},row:{type:"object",customType:"row",description:"The row before it was updated",title:"Row"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var hv={name:"Webhook",event:"web:trigger",icon:"Send",tagline:"Webhook endpoint is hit",description:"Trigger an automation when a HTTP POST webhook is hit",stepId:"WEBHOOK",inputs:{},schema:{inputs:{properties:{schemaUrl:{type:"string",customType:"webhookUrl",title:"Schema URL"},triggerUrl:{type:"string",customType:"webhookUrl",title:"Trigger URL"}},required:["schemaUrl","triggerUrl"]},outputs:{properties:{body:{type:"object",description:"Body of the request which hit the webhook"}},required:["body"]}},type:"TRIGGER"};var yv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"Workflow",tagline:"Row action triggered in {{inputs.enriched.table.name}} by {{inputs.enriched.row._id}}",description:"TODO description",stepId:"ROW_ACTION",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table",readonly:!0}},required:["tableId"]},outputs:{properties:{id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"},table:{type:"object",customType:"table",title:"The table linked to the row action"},row:{type:"object",customType:"row",description:"The row linked to the row action"}}}}};var ju=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(ju||{}),Br=(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))(Br||{}),Hi={by_email2:["by_email"]},Ee={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"},SELF_HOST_CLOUD:{name:"self-host-cloud"}},yt=xr("app"),Hu=xr("app_dev"),Et=Hu,Ip="internal",Op="budibase",ar="_design/sqlite",xp="ta_bb_jobs",Rp="ta_bb_inventory",wp="ta_bb_expenses",bp="ta_bb_employee";var Yu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Yu||{}),Yi=(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))(Yi||{}),Dp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Dp||{}),Cp=(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))(Cp||{}),DT=new Date(-2147483647e3),Ku=new Date(2147483647e3),Te="default";var ba={};v(ba,{CacheKey:()=>Ce,TTL:()=>si,app:()=>Mo,bustCache:()=>us,destroy:()=>oa,docWritethrough:()=>Fm,generic:()=>aa,get:()=>oi,invite:()=>om,keys:()=>_c,passwordReset:()=>Mm,store:()=>mr,user:()=>rn,withCache:()=>Jr,withCacheWithDynamicTTL:()=>gS,writethrough:()=>Lm});var aa={};v(aa,{CacheKey:()=>Ce,TTL:()=>si,bustCache:()=>us,destroy:()=>oa,get:()=>oi,keys:()=>_c,store:()=>mr,withCache:()=>Jr,withCacheWithDynamicTTL:()=>gS});var Ae={};v(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Po,doInAppContext:()=>rN,doInAppMigrationContext:()=>iN,doInAutomationContext:()=>zv,doInContext:()=>Jp,doInEnvironmentContext:()=>oN,doInIPContext:()=>Xp,doInIdentityContext:()=>wo,doInLicenseContext:()=>Xv,doInScimContext:()=>aN,doInSelfHostTenantUsingCloud:()=>Zv,doInTenant:()=>Ve,ensureSnippetContext:()=>XT,getAppDB:()=>es,getAppId:()=>Ue,getAuditLogDBName:()=>JT,getAuditLogsDB:()=>cN,getAutomationId:()=>zp,getCurrentContext:()=>ts,getDevAppDB:()=>dN,getEnvironmentVariables:()=>uN,getFeatureFlags:()=>ef,getGlobalDB:()=>ie,getGlobalDBName:()=>cr,getIP:()=>Zp,getIdentity:()=>ur,getLicense:()=>eN,getPlatformURL:()=>Kp,getProdAppDB:()=>lN,getProdAppId:()=>sN,getScimDBName:()=>Hv,getSelfHostCloudDB:()=>tN,getTableForView:()=>pN,getTenantIDFromAppID:()=>Xi,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>Vr,isScim:()=>Pt,isSelfHostUsingCloud:()=>zT,isTenancyEnabled:()=>Kv,isTenantIdSet:()=>Yv,setFeatureFlags:()=>tf,setTableForView:()=>fN});var Ro={};v(Ro,{doInAccountContext:()=>Sv,doInIdentityContext:()=>Pp,doInUserContext:()=>Up,getAccountUserId:()=>CT,getIdentity:()=>Np});function Np(){return ur()}function Pp(t,e){return wo(t,e)}function Up(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Pp(n,r)}function Sv(t,e){let r=CT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Pp(i,e)}function CT(t){let e;return Qa(t)?e=t.budibaseUserId:e=t.accountId,e}var Zu=require("fs");var PT=require("lodash"),Lp=require("crypto");function Mp(){return UT()}function UT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function zu(){return process.env.NODE_ENV!=="production"}function _v(t){if(t)return parseInt(t)}var vT=!1;!vT&&zu()&&!Mp()&&(require("dotenv").config(),vT=!0);var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},NT=!!parseInt(process.env.SELF_HOSTED||"");function Iv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Ov(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function xv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Zu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Zu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(zu()&&!Mp())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 Rv(){return vt.SERVICE_TYPE==="worker"}function wv(){return vt.SERVICE_TYPE==="apps"}function bv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Mp,isJest:UT,isDev:zu,isWorker:Rv,isApps:wv,isQA:bv,isProd:()=>!zu(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Lp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Lp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Iv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"eu-west-1",MINIO_URL:process.env.MINIO_URL,MINIO_ENABLED:process.env.MINIO_ENABLED||1,INTERNAL_API_KEY:process.env.INTERNAL_API_KEY,INTERNAL_API_KEY_FALLBACK:process.env.INTERNAL_API_KEY_FALLBACK,MULTI_TENANCY:process.env.MULTI_TENANCY,ACCOUNT_PORTAL_URL:process.env.ACCOUNT_PORTAL_URL||"https://account.budibase.app",ACCOUNT_PORTAL_API_KEY:process.env.ACCOUNT_PORTAL_API_KEY||"",BUDICLOUD_URL:process.env.BUDICLOUD_URL||"https://budibase.app",DISABLE_ACCOUNT_PORTAL:process.env.DISABLE_ACCOUNT_PORTAL,SELF_HOSTED:NT,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||Ki.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Ki.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Ki.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Ki.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Ki.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Ki.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:Ov(),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:NT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...xv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:_v(process.env.BSON_BUFFER_SIZE)};function bo(t){let e=(0,PT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function LT(t,e){let r=bo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var MT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var kT=require("async_hooks"),we=class t{static{this.storage=new kT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var kp="No app provided";function Gr(t){if(!t)throw kp;return t.startsWith(Et)}function Dv(t){if(!t)throw kp;return t.startsWith(yt)&&!Gr(t)}function Do(t){if(!t)throw kp;return Gr(t.appId)}function Xu(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var Cv=Xu;function at(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function vv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=Fp(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:Fp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Fp=(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 YT=Q(require("@budibase/nano"));var FT=Q(require("node-fetch"));function ec(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function BT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await Co({url:s,cookie:i,method:e,body:r})}async function Co({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,FT.default)(ec(encodeURI(t)),i)}async function tc(t,e="GET",r){let n=await BT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=Q(require("pouchdb"));var GT,$T=!1,Bp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function rc(t){GT=Bp(t),$T=!0}var Pv=()=>{if(!$T)throw new Error("init has not been called")};function Tt(t,e){Pv();let r=new GT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function vo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var VT=require("uuid");function Ie(){return(0,VT.v4)().replace(/-/g,"")}var xe=Q(require("dd-trace")),Ji=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return xe.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return xe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return xe.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return xe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return xe.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return xe.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return xe.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return xe.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return xe.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var jp={};v(jp,{breakExternalTableId:()=>Vp,breakRowIdField:()=>Wv,buildExternalTableId:()=>Fv,convertRowId:()=>qv,encodeTableId:()=>Bv,encodeViewId:()=>Gv,generateRowIdField:()=>$v,getNativeSql:()=>zi,isExternalTable:()=>$p,isExternalTableID:()=>nc,isInternalTableID:()=>kv,isInvalidISODateString:()=>qp,isRowId:()=>Vv,isValidFilter:()=>sc,isValidISODateString:()=>ic,isValidTime:()=>Wp,sqlLog:()=>No,validateManyToMany:()=>Qp});var Gp=`${N}${N}`,WT=/^\[.*]$/g,Uv=encodeURIComponent(" "),Lv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Mv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function nc(t){return t.startsWith("datasource"+N)}function kv(t){return!nc(t)}function zi(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 $p(t){return t?.sourceId&&t.sourceId.includes("datasource"+N)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&nc(t._id))}function Fv(t,e){return`${t}${Gp}${encodeURIComponent(e)}`}function Bv(t){return nc(t)?encodeURIComponent(t):t}function Gv(t){return encodeURIComponent(t)}function Vp(t){let e=t.split(Gp),r=e.shift(),n=e.join(Gp);if(n.includes(Uv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function $v(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 Vv(t){return Array.isArray(t)||typeof t=="string"&&t.match(WT)!=null}function qv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(WT)!=null?t.substring(1,t.length-1):t}function Wv(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 ic(t){let e=t.trim();if(!Lv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function qp(t){return!ic(t)}function sc(t){return t!=null&&t!==""}function Wp(t){return Mv.test(t)}function No(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 Qv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Qp(t){if(Qv(t))return t}var QT="Database does not exist.";function jT(t){return(0,YT.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 jv(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Zi(t,r,e);return new Ji(n)}var Zi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=jT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=jT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Co({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===QT)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){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Mh(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=Ie()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===QT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=ec(`${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 Co(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}/${ar}`;return No("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(ar)){let e=await this.get(ar);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 Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function $e(t,e){return new Ji(new Zi(t,e))}async function ut(t,e,r){let n=$e(t,r);return await e(n)}async function Hp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await tc(e)}async function Yp(t,e){let r=await tc(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var KT=null;function cr(t){return t||(t=j()),Po(t)}function JT(t){return t||(t=j()),t===Te?Ee.AUDIT_LOGS.name:`${t}${N}${Ee.AUDIT_LOGS.name}`}function Hv(t){return t||(t=j()),t===Te?Ee.SCIM_LOGS.name:`${t}${N}${Ee.SCIM_LOGS.name}`}function Po(t){return!t||t===Te?Ee.GLOBAL.name:`${t}${N}${Ee.GLOBAL.name}`}function Kp(){return h.PLATFORM_URL}function Vr(){return!!h.MULTI_TENANCY}function Yv(){return!!we.get()?.tenantId}function Kv(){return h.MULTI_TENANCY}function Xi(t){if(!t)return;if(!Vr())return Te;let e=t.split(N),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Jv(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Ht(t,e){nN();let r=Jv(t);return we.run(r,e)}async function zv(t){return await XT(),await Ht({tenantId:Xi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Jp(t,e){let r=Xi(t);return Ht({tenantId:r,appId:t},e)}async function Ve(t,e){return h.MULTI_TENANCY||(t=t||Te),Ht(t?{tenantId:t}:{},e)}async function Zv(t,e){return Ht({tenantId:t,isSelfHostUsingCloud:!0},e)}async function Xv(t,e){return Ht({license:t},e)}function eN(){return we.get()?.license}function zT(){return!!we.get()?.isSelfHostUsingCloud}function tN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return $e(Ee.SELF_HOST_CLOUD.name)}async function rN(t,e){return ZT(t,e)}async function ZT(t,e,r){if(!t)throw new Error("appId is required");let n=Xi(t),i={appId:t,...r};return n&&(i.tenantId=n),Ht(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Ht(r,e)}function nN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function iN(t,e){return ZT(t,e,{isMigrating:!0})}function ur(){try{return we.get()?.identity}catch{}}function j(){if(!Vr())return Te;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function zp(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&KT?KT:e}function Zp(){return we.get()?.ip}var sN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function oN(t,e){if(!t)throw new Error("Must supply environment variables.");return Ht({environmentVariables:t},e)}function aN(t){return Ht({isScim:!0},t)}function Xp(t,e){return Ht({ip:t},e)}async function XT(t=!h.isTest()){let e=ts();if(!e||e.snippets)return;let r,n=es();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function uN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=we.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return $e(Po(t?.tenantId))}function cN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return $e(JT())}function es(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(zT())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return $e(e,t)}function lN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return $e(at(e),t)}function dN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return $e(Xu(e),t)}function Pt(){return!!we.get()?.isScim}function ts(){try{return we.get()}catch{return}}function ef(t){let e=ts();if(e)return e.featureFlagCache?.[t]}function tf(t,e){let r=ts();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function pN(t){let e=ts();if(e)return e.viewToTableCache?.[t]}function fN(t,e){let r=ts();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Kr={};v(Kr,{getAppClient:()=>fc,getCacheClient:()=>$f,getDocWritethroughClient:()=>gP,getInviteClient:()=>ri,getLockClient:()=>qf,getPasswordResetClient:()=>sa,getSessionClient:()=>Yr,getSocketClient:()=>hP,getUserClient:()=>ia,getWritethroughClient:()=>Vf,init:()=>Lt,shutdown:()=>hS});var fS=Q(require("ioredis"));var uc={};v(uc,{Databases:()=>rf,SEPARATOR:()=>rs,SelectableDatabase:()=>oc,addDbPrefix:()=>Ke,getRedisConnectionDetails:()=>ac,getRedisOptions:()=>ns,removeDbPrefix:()=>nf});var mN=2e3,eA=1e4,rs="-",rf=(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))(rf||{}),oc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(oc||{});function ac(){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 ns(){let{host:t,password:e,port:r}=ac(),n={connectTimeout:eA,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:eA,redisOptions:{...n,tls:{}},slotsRefreshTimeout:mN,dnsLookup:(s,o)=>o(null,s)}),i}function Ke(t,e){return e.includes(t)?e:`${t}${rs}${e}`}function nf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var Sc={};v(Sc,{correlation:()=>Uo,logAlert:()=>Xn,logAlertWithInfo:()=>cP,logWarn:()=>as,logger:()=>Ac,system:()=>vf});var Uo={};v(Uo,{getId:()=>sf,setHeader:()=>hN});var tA=require("correlation-id"),hN=t=>{let e=tA.getId();e&&(t["x-budibase-correlation-id"]=e)};function sf(){return tA.getId()}var Tc=Q(require("pino")),dS=Q(require("pino-pretty"));var Nf=Q(require("dd-trace")),pS=require("dd-trace/ext");var vf={};v(vf,{getLogReadStream:()=>nP,getSingleFileMaxSizeInfo:()=>lS,localFileDestination:()=>Cf});var Wo=Q(require("fs")),Df=Q(require("path")),oS=Q(require("rotating-file-stream"));var bf={};v(bf,{ObjectStore:()=>Ut,ObjectStoreBuckets:()=>yN,SIGNED_FILE_PREFIX:()=>Of,bucketTTLConfig:()=>cc,budibaseTempDir:()=>Kn,clientLibraryCDNUrl:()=>JN,clientLibraryPath:()=>zA,clientLibraryUrl:()=>zN,createBucketIfNotExists:()=>qo,deleteFile:()=>qN,deleteFiles:()=>WN,deleteFolder:()=>YA,downloadTarball:()=>jN,downloadTarballDirect:()=>QN,enrichPWAImages:()=>ZN,enrichPluginURLs:()=>eP,extractBucketAndPath:()=>of,getAppFileUrl:()=>ZA,getGlobalFileS3Key:()=>XA,getGlobalFileUrl:()=>XN,getObjectMetadata:()=>HN,getPluginIconKey:()=>rS,getPluginJSKey:()=>tS,getPluginS3Dir:()=>iS,getPresignedUrl:()=>jr,getReadStream:()=>lc,listAllObjects:()=>HA,processAutomationAttachment:()=>TN,processObjectStoreAttachment:()=>oA,retrieve:()=>jA,retrieveDirectory:()=>VN,retrieveToTmp:()=>$N,sanitizeBucket:()=>Je,sanitizeKey:()=>Le,streamUpload:()=>QA,upload:()=>GN,uploadDirectory:()=>xf});var yc=require("@aws-sdk/client-s3"),Tf=require("@aws-sdk/lib-storage"),$A=require("@aws-sdk/s3-request-presigner"),Vo=Q(require("stream")),Af=Q(require("node-fetch")),Sf=Q(require("tar-fs")),_f=Q(require("zlib")),VA=require("util"),Qr=require("path"),fr=Q(require("fs"));var Lo=Q(require("path")),rA=require("os"),nA=Q(require("fs"));var iA=Q(require("stream")),yN={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},sA=(0,Lo.join)((0,rA.tmpdir)(),".budibase");try{nA.default.mkdirSync(sA)}catch(t){if(t.code!=="EEXIST")throw t}function Kn(){return sA}var cc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function EN(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Lo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:iA.default.Readable.fromWeb(e.body)}}async function oA(t){let e=of(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await lc(r,n),s=Lo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function TN(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await EN(t):await oA(t)}var If=require("uuid");var qr={};v(qr,{APP_DEV:()=>Hu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>ju,BUDIBASE_DATASOURCE_TYPE:()=>Op,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>bp,DEFAULT_EXPENSES_TABLE_ID:()=>wp,DEFAULT_INVENTORY_TABLE_ID:()=>Rp,DEFAULT_JOBS_TABLE_ID:()=>xp,DatabaseImpl:()=>Zi,DatabaseWithConnection:()=>jv,DeprecatedViews:()=>Hi,DocumentType:()=>he,InternalTable:()=>Rr,QueryBuilder:()=>pr,Replication:()=>MA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>Ip,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,ViewName:()=>Br,baseGlobalDBName:()=>Po,checkErrorCode:()=>GA,closePouchDB:()=>vo,createApiKeyView:()=>vA,createNewUserEmailView:()=>DA,createPlatformAccountEmailView:()=>PA,createPlatformUserView:()=>UA,createUserAppView:()=>CA,createView:()=>ss,dbExists:()=>CN,directCouchAllDbs:()=>Hp,directCouchCall:()=>BT,directCouchFind:()=>Yp,directCouchQuery:()=>tc,directCouchUrlCall:()=>Co,doWithDB:()=>ut,extractAppUUID:()=>vv,fullSearch:()=>UN,generateAppID:()=>uA,generateAppUserID:()=>mc,generateDevInfoID:()=>hA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>yA,generatePluginID:()=>gA,generateRoleID:()=>cf,generateRowID:()=>uf,generateTableID:()=>cA,generateTemplateID:()=>mA,generateUserMetadataID:()=>pA,generateWorkspaceID:()=>lA,getAllApps:()=>Fo,getAllDbs:()=>bA,getAppsByIDs:()=>RN,getCouchInfo:()=>Nt,getDB:()=>$e,getDevAppID:()=>Cv,getDevAppIDs:()=>bN,getDevelopmentAppID:()=>Xu,getDocParams:()=>Jn,getGlobalDBName:()=>cr,getGlobalIDFromUserMetadataID:()=>fA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getPouch:()=>Bp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>wN,getQueryIndex:()=>EA,getRoleParams:()=>gc,getRowParams:()=>lf,getStartEndKeyURL:()=>ko,getTemplateParams:()=>xA,getUrlInfo:()=>Fp,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>hc,getWorkspaceParams:()=>IA,init:()=>rc,isDatasourceId:()=>SA,isDevApp:()=>Do,isDevAppID:()=>Gr,isDocumentConflictError:()=>MN,isExternalTableId:()=>df,isGlobalUserID:()=>dA,isProdAppID:()=>Dv,isQueryId:()=>_A,isSameAppID:()=>DN,isTableId:()=>TA,isViewId:()=>AA,paginatedSearch:()=>PN,pagination:()=>ff,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>gf,queryPlatformView:()=>Go,queryView:()=>hf,queryViewRaw:()=>Bo,removeKeyNumbering:()=>$o,searchIndexes:()=>Ef});var Mo={};v(Mo,{AppState:()=>af,getAppMetadata:()=>pc,invalidateAppMetadata:()=>IN});var af=(e=>(e.INVALID="invalid",e))(af||{}),aA=3600,AN=60;async function SN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function _N(t){return!t||t.state==="invalid"}async function pc(t){let e=await fc(),r=await e.get(t);if(!r){let n=aA;try{r=await SN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=AN;else throw i}if(_N(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function IN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await fc();await r.delete(t),e&&await r.store(t,e,aA)}var pf={};v(pf,{generateAppID:()=>uA,generateAppUserID:()=>mc,generateDevInfoID:()=>hA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>yA,generatePluginID:()=>gA,generateRoleID:()=>cf,generateRowID:()=>uf,generateTableID:()=>cA,generateTemplateID:()=>mA,generateUserMetadataID:()=>pA,generateWorkspaceID:()=>lA,getDocParams:()=>Jn,getGlobalIDFromUserMetadataID:()=>fA,getGlobalUserParams:()=>zn,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getQueryIndex:()=>EA,getRoleParams:()=>gc,getRowParams:()=>lf,getStartEndKeyURL:()=>ko,getTemplateParams:()=>xA,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>hc,getWorkspaceParams:()=>IA,isDatasourceId:()=>SA,isExternalTableId:()=>df,isGlobalUserID:()=>dA,isQueryId:()=>_A,isTableId:()=>TA,isViewId:()=>AA,prefixRoleID:()=>lr});var uA=t=>{let e=yt;return t&&(e+=`${t}${N}`),`${e}${Ie()}`};function cA(){return`ta${N}${Ie()}`}function uf(t,e){return e=e||Ie(),`ro${N}${t}${N}${e}`}function lA(){return`workspace${N}${Ie()}`}function is(t){return`us${N}${t||Ie()}`}var ON=new RegExp(`^us${N}.+`);function dA(t){return ON.test(t)}function pA(t){return uf("ta_users",t)}function fA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function mA(t){return`template${N}${t}${N}${Ie()}`}function mc(t,e){return`${t}${N}${e}`}function cf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return cf(t)}var hA=t=>`devinfo${N}${t}`,gA=t=>`plg${N}${t}`,yA=t=>`oauth2log${N}${t}`;var xN=new RegExp("^datasource_plus_(.+)__(.+)$");function Jn(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${Fe}`}}function lf(t,e,r={}){if(t==null)return Jn("ro",null,r);let n=e??`${t}${N}`;return Jn("ro",n,r)}function EA(t){return`database/${t}`}var df=t=>{let e=t.match(xN);return!!t&&e!==null},TA=t=>!!t&&(t.startsWith(`ta${N}`)||df(t));function AA(t){return!!t&&t.startsWith(`view${N}`)}function SA(t){return!!t&&t.startsWith(`datasource${N}`)}function _A(t){return!!t&&t.startsWith(`query${N}`)}function IA(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${Fe}`}}function zn(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${Fe}`}}function OA(t,e={}){return lf("ta_users",t,e)}function hc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Fe}`}}function xA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${Fe}`}}function gc(t,e={}){return Jn("role",t,e)}function ko(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Fe}"`}var RA=(t,e={})=>Jn("plg",t,e),wA=(t,e={})=>Jn("oauth2",t,e);async function bA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Hp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(ko("app",i)),await n(ko("app_dev",i)),r.push(cr(i))),r}async function Fo({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await bA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(N);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Te&&d||l===i}return!1});if(r){let u=o.filter(l=>Gr(l)),c=o.filter(l=>!Gr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>pc(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:Do(l)?"development":"published"})):c.filter(l=>t?Do(l):!Do(l))}}async function RN(t){return(await Promise.allSettled(t.map(r=>pc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function wN(){return(await Fo({idsOnly:!0})).filter(e=>!Gr(e))}async function bN(){return(await Fo({idsOnly:!0})).filter(e=>Gr(e))}function DN(t,e){return t==null||e==null?!1:at(t)===at(e)}async function CN(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function ff(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 mf="_design/database";function vN(){return{_id:mf,views:{}}}async function NN(t,e){if(Hi[e])try{let r=await t.get(mf);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(mf)}catch{n=vN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ss(t,e,r);throw s}}var DA=async()=>{let t=ie(),e=`function(doc) {
|
|
6
6
|
if (doc._id.startsWith("us${N}")) {
|
|
7
7
|
emit(doc.email.toLowerCase(), doc._id)
|
|
8
8
|
}
|
|
@@ -17,7 +17,7 @@ attempted value: ${s}
|
|
|
17
17
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
18
18
|
emit(doc.apiKey, doc.userId)
|
|
19
19
|
}
|
|
20
|
-
}`;await ss(t,e,"by_api_key")};async function
|
|
20
|
+
}`;await ss(t,e,"by_api_key")};async function Bo(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await NN(r,t),await n(),Bo(t,e,r,n,i);if(s.status===409)return Bo(t,e,r,n,i);throw s}}var hf=async(t,e,r,n,i)=>{let a=(await Bo(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function NA(t,e){try{await ut(Ee.PLATFORM_INFO.name,async r=>{await ss(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var PA=async()=>{let t=`function(doc) {
|
|
21
21
|
if (doc._id.startsWith("acc_metadata${N}")) {
|
|
22
22
|
emit(doc.email.toLowerCase(), doc._id)
|
|
23
23
|
}
|
|
@@ -29,11 +29,11 @@ attempted value: ${s}
|
|
|
29
29
|
if (doc.ssoId) {
|
|
30
30
|
emit(doc.ssoId, doc._id)
|
|
31
31
|
}
|
|
32
|
-
}`,"platform_users_lowercase_2")},Bo=async(t,e)=>{let r={account_by_email:PA,platform_users_lowercase_2:UA};return ut(Ee.PLATFORM_INFO.name,async n=>{let i=r[t];return mf(t,e,n,i,{arrayResponse:!0})})},LA={by_email2:DA,by_api_key:vA,by_app:CA},pr=async(t,e,r,n)=>{r||(r=ie());let i=LA[t];return mf(t,e,r,i,n)};async function hf(t,e,r){let n=ie(),i=LA[t];return Fo(t,e,n,i,r)}var gf=class{constructor({source:e,target:r}){this.source=Tt(e),this.target=Tt(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Co(this.source),Co(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},MA=gf;var FA=Q(require("node-fetch"));var Go=Fr.removeKeyNumbering;function Zn(t){return t==null||t===""}var fr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=Go(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>Zn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(Zn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)y+=` ${E} ${e.preprocess(g[_],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>Zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(Zn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function p(f,g,E){let y="";for(let[_,S]of Object.entries(f)){_=Go(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let M=g(_,S);if(M!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=M,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>Zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(Zn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>Zn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Nt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await kA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await kA(n,i,r);throw s}}};async function kA(t,e,r){let n=await(0,FA.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 BA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=fr.maxLimit;n.limit&&s.length>n.limit-fr.maxLimit&&(o=n.limit-s.length);let a=new fr(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<fr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await BA(t,e,r,c)}async function vN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,fr.maxLimit);let s=new fr(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 NN(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 BA(t,e,r,n)}}var yf={};v(yf,{createUserIndex:()=>PN});async function PN(){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 GA(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 UN(t){return GA(t,409)}var qA=Q(require("fs/promises")),LN=require("sanitize-s3-objectkey"),WA=(0,VA.promisify)($o.default.pipeline),MN={bucketCreationPromises:{}},If="/files/signed",Qr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},kN=[Qr.html,Qr.css,Qr.js,Qr.json];function Le(t){return LN(Je(t)).replace(/\\/g,"/")}function Je(t){return t.replace(new RegExp(Et,"g"),yt)}function Ut(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new gc.S3(e)}async function Vo(t,e){e=Je(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=MN.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}async function FN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await qA.default.open(r)).createReadStream():s,c=Ut(),l=await Vo(c,t);if(o&&l.created){let g=uc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Qr[a.toLowerCase()]:Qr.txt),p={Bucket:Je(t),Key:Le(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new Ef.Upload({client:c,params:p}).done()}async function QA({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=Ut(),u=await Vo(a,t);if(s&&u.created){let E=uc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Qr[o.toLowerCase()]:Qr.txt);let l=Je(t),d=Le(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Ef.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function jA(t,e){let r=Ut(),n={Bucket:Je(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(kN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return $o.default.Readable.fromWeb(s)}}async function HA(t,e){let r=Ut(),n=(a={})=>r.listObjectsV2({...a,Bucket:Je(t),Prefix:Le(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function Hr(t,e,r=3600){let n=Ut({presigning:!0}),i={Bucket:Je(t),Key:Le(e)},s=await(0,$A.getSignedUrl)(n,new gc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${If}${a}${u}`}else return s}async function BN(t,e){t=Je(t),e=Le(e);let r=await jA(t,e),n=(0,jr.join)(Kn(),(0,_f.v4)());return r instanceof $o.default.Readable?r.pipe(mr.default.createWriteStream(n)):mr.default.writeFileSync(n,r),n}async function GN(t,e){let r=(0,jr.join)(Kn(),(0,_f.v4)());mr.default.mkdirSync(r);let n=await HA(t,e),i=await Promise.all(n.map(a=>cc(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,jr.join)(r,...d);l.length>1&&!mr.default.existsSync(m)&&mr.default.mkdirSync(m,{recursive:!0});let p=mr.default.createWriteStream((0,jr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",f),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function $N(t,e){let r=Ut();await Vo(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function VN(t,e){let r=Ut();await Vo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function YA(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return YA(t,e)}async function Of(t,e,r){t=Je(t);let n=[],i=mr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Le((0,jr.join)(r,s.name)),a=(0,jr.join)(e,s.name);s.isDirectory()?n.push(Of(t,a,o)):n.push(QA({bucket:t,filename:o,stream:mr.default.createReadStream(a)}))}return await Promise.all(n),i}async function qN(t,e,r={}){e=Le(e);let n=await(0,Tf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await WA(n.body,Sf.default.createUnzip(),Af.default.extract(e))}async function WN(t,e,r){e=Je(e),r=Le(r);let n=await(0,Tf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,jr.join)(Kn(),r);return await WA(n.body,Sf.default.createUnzip(),Af.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Of(e,i,r),i}async function cc(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof $o.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function QN(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function sf(t){let e=t.split("?")[0],r=new RegExp(`^${If}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var KA=Q(require("aws-cloudfront-sign")),yc;function jN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return yc||(yc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),yc)}var HN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:jN(),expireTime:new Date().getTime()+1e3*60*60*24}),os=t=>{let e=xf(t);return KA.getSignedUrl(e,HN())},xf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var JA=Q(require("querystring"));function zA(t){return`${Le(t)}/budibase-client.js`}async function YN(t,e){let r=zA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),xf(r)):await Hr(h.APPS_BUCKET_NAME,r)}function KN(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${JA.default.encode(n)}`}async function ZA(t){return h.CLOUDFRONT_CDN?os(t):await Hr(h.APPS_BUCKET_NAME,t)}async function JN(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await ZA(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var zN=async(t,e,r)=>{let n=XA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),os(n)):await Hr(h.GLOBAL_BUCKET_NAME,n)},XA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function ZN(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await XN(e),n=await eP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function XN(t){let e=tS(t);return eS(e)}async function eP(t){let e=rS(t);if(e)return eS(e)}async function eS(t){return h.CLOUDFRONT_CDN?os(t):await Hr(h.PLUGIN_BUCKET_NAME,t)}function tS(t){return nS(t,"plugin.min.js")}function rS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return nS(t,e)}function nS(t,e){return`${iS(t.name)}/${e}`}function iS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var aS="budibase.log",uS="budibase-logs-history.txt",cS=bf.default.join(Kn(),"systemlogs");function sS(t){return bf.default.join(cS,t)}function lS(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 Df(){let t=lS(h.ROLLING_LOG_MAX_SIZE);return oS.createStream(aS,{size:t?.size,path:cS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:uS,initialRotation:!1})}function tP(){let t=[],e=sS(uS);if(qo.default.existsSync(e)){let i=qo.default.readFileSync(e,"utf-8").split(`
|
|
33
|
-
`);for(let s of i.filter(o=>o))t.push(
|
|
32
|
+
}`,"platform_users_lowercase_2")},Go=async(t,e)=>{let r={account_by_email:PA,platform_users_lowercase_2:UA};return ut(Ee.PLATFORM_INFO.name,async n=>{let i=r[t];return hf(t,e,n,i,{arrayResponse:!0})})},LA={by_email2:DA,by_api_key:vA,by_app:CA},dr=async(t,e,r,n)=>{r||(r=ie());let i=LA[t];return hf(t,e,r,i,n)};async function gf(t,e,r){let n=ie(),i=LA[t];return Bo(t,e,n,i,r)}var yf=class{constructor({source:e,target:r}){this.source=Tt(e),this.target=Tt(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([vo(this.source),vo(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},MA=yf;var FA=Q(require("node-fetch"));var $o=kr.removeKeyNumbering;function Zn(t){return t==null||t===""}var pr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=$o(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>Zn(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(Zn(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)y+=` ${E} ${e.preprocess(g[_],{escape:!0})}`;return`${f}:(${y})`},c=(f,g)=>Zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(f,g,y)},d=(f,g)=>u(f,g,"OR"),m=(f,g)=>{if(Zn(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let E=`${e.preprocess(g[0],s)}`;for(let y=1;y<g.length;y++)E+=` OR ${e.preprocess(g[y],s)}`;return`${f}:(${E})`};function p(f,g,E){let y="";for(let[_,S]of Object.entries(f)){_=$o(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let M=g(_,S);if(M!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=M,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(f,g)=>Zn(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(Zn(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let E=e.preprocess(g.low,s),y=e.preprocess(g.high,s);return`${f}:[${E} TO ${y}]`}),this.#e.fuzzy&&p(this.#e.fuzzy,c),this.#e.equal&&p(this.#e.equal,a),this.#e.notEqual&&p(this.#e.notEqual,(f,g)=>Zn(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Nt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await kA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await kA(n,i,r);throw s}}};async function kA(t,e,r){let n=await(0,FA.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 BA(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=pr.maxLimit;n.limit&&s.length>n.limit-pr.maxLimit&&(o=n.limit-s.length);let a=new pr(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<pr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await BA(t,e,r,c)}async function PN(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,pr.maxLimit);let s=new pr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function UN(t,e,r,n){let i=n.limit;return(i==null||isNaN(i)||i<0)&&(i=1e3),n.limit=Math.min(i,1e3),{rows:await BA(t,e,r,n)}}var Ef={};v(Ef,{createUserIndex:()=>LN});async function LN(){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 GA(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 MN(t){return GA(t,409)}var qA=Q(require("fs/promises")),kN=require("sanitize-s3-objectkey"),WA=(0,VA.promisify)(Vo.default.pipeline),FN={bucketCreationPromises:{}},Of="/files/signed",Wr={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"},BN=[Wr.html,Wr.css,Wr.js,Wr.json];function Le(t){return kN(Je(t)).replace(/\\/g,"/")}function Je(t){return t.replace(new RegExp(Et,"g"),yt)}function Ut(t={presigning:!1}){let e={forcePathStyle:!0,credentials:{accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY},region:h.AWS_REGION};return!h.MINIO_ENABLED&&h.AWS_SESSION_TOKEN&&(e.credentials={accessKeyId:h.MINIO_ACCESS_KEY,secretAccessKey:h.MINIO_SECRET_KEY,sessionToken:h.AWS_SESSION_TOKEN}),h.MINIO_URL&&(t.presigning&&h.MINIO_ENABLED?e.endpoint="http://minio-service":e.endpoint=h.MINIO_URL),new yc.S3(e)}async function qo(t,e){e=Je(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=FN.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}async function GN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await qA.default.open(r)).createReadStream():s,c=Ut(),l=await qo(c,t);if(o&&l.created){let g=cc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Wr[a.toLowerCase()]:Wr.txt),p={Bucket:Je(t),Key:Le(e),Body:u,ContentType:m};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];p.Metadata=i}return new Tf.Upload({client:c,params:p}).done()}async function QA({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=Ut(),u=await qo(a,t);if(s&&u.created){let E=cc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Wr[o.toLowerCase()]:Wr.txt);let l=Je(t),d=Le(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Tf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function jA(t,e){let r=Ut(),n={Bucket:Je(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(BN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Vo.default.Readable.fromWeb(s)}}async function HA(t,e){let r=Ut(),n=(a={})=>r.listObjectsV2({...a,Bucket:Je(t),Prefix:Le(e)}),i=!1,s,o=[];do{let a={};s&&(a.ContinuationToken=s);let u=await n(a);u.Contents&&(o=o.concat(u.Contents)),i=!!u.IsTruncated,s=u.NextContinuationToken}while(i&&s);return o}async function jr(t,e,r=3600){let n=Ut({presigning:!0}),i={Bucket:Je(t),Key:Le(e)},s=await(0,$A.getSignedUrl)(n,new yc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Of}${a}${u}`}else return s}async function $N(t,e){t=Je(t),e=Le(e);let r=await jA(t,e),n=(0,Qr.join)(Kn(),(0,If.v4)());return r instanceof Vo.default.Readable?r.pipe(fr.default.createWriteStream(n)):fr.default.writeFileSync(n,r),n}async function VN(t,e){let r=(0,Qr.join)(Kn(),(0,If.v4)());fr.default.mkdirSync(r);let n=await HA(t,e),i=await Promise.all(n.map(a=>lc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),d=l.slice(0,l.length-1),m=(0,Qr.join)(r,...d);l.length>1&&!fr.default.existsSync(m)&&fr.default.mkdirSync(m,{recursive:!0});let p=fr.default.createWriteStream((0,Qr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((f,g)=>{p.on("finish",f),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function qN(t,e){let r=Ut();await qo(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function WN(t,e){let r=Ut();await qo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function YA(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Prefix:e},i=await r.listObjects(n);if(i.Contents?.length===0)return;let s={Bucket:t,Delete:{Objects:[]}};if(i.Contents?.forEach(o=>{s.Delete.Objects.push({Key:o.Key})}),s.Delete.Objects.length&&(await r.deleteObjects(s)).Deleted?.length===1e3)return YA(t,e)}async function xf(t,e,r){t=Je(t);let n=[],i=fr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Le((0,Qr.join)(r,s.name)),a=(0,Qr.join)(e,s.name);s.isDirectory()?n.push(xf(t,a,o)):n.push(QA({bucket:t,filename:o,stream:fr.default.createReadStream(a)}))}return await Promise.all(n),i}async function QN(t,e,r={}){e=Le(e);let n=await(0,Af.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await WA(n.body,_f.default.createUnzip(),Sf.default.extract(e))}async function jN(t,e,r){e=Je(e),r=Le(r);let n=await(0,Af.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Qr.join)(Kn(),r);return await WA(n.body,_f.default.createUnzip(),Sf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await xf(e,i,r),i}async function lc(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof Vo.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function HN(t,e){t=Je(t),e=Le(e);let r=Ut(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function of(t){let e=t.split("?")[0],r=new RegExp(`^${Of}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var KA=Q(require("aws-cloudfront-sign")),Ec;function YN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ec||(Ec=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ec)}var KN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:YN(),expireTime:new Date().getTime()+1e3*60*60*24}),os=t=>{let e=Rf(t);return KA.getSignedUrl(e,KN())},Rf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var JA=Q(require("querystring"));function zA(t){return`${Le(t)}/budibase-client.js`}async function JN(t,e){let r=zA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Rf(r)):await jr(h.APPS_BUCKET_NAME,r)}function zN(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${JA.default.encode(n)}`}async function ZA(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.APPS_BUCKET_NAME,t)}async function ZN(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await ZA(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var XN=async(t,e,r)=>{let n=XA(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),os(n)):await jr(h.GLOBAL_BUCKET_NAME,n)},XA=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function eP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await tP(e),n=await rP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function tP(t){let e=tS(t);return eS(e)}async function rP(t){let e=rS(t);if(e)return eS(e)}async function eS(t){return h.CLOUDFRONT_CDN?os(t):await jr(h.PLUGIN_BUCKET_NAME,t)}function tS(t){return nS(t,"plugin.min.js")}function rS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return nS(t,e)}function nS(t,e){return`${iS(t.name)}/${e}`}function iS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var aS="budibase.log",uS="budibase-logs-history.txt",cS=Df.default.join(Kn(),"systemlogs");function sS(t){return Df.default.join(cS,t)}function lS(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 Cf(){let t=lS(h.ROLLING_LOG_MAX_SIZE);return oS.createStream(aS,{size:t?.size,path:cS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:uS,initialRotation:!1})}function nP(){let t=[],e=sS(uS);if(Wo.default.existsSync(e)){let i=Wo.default.readFileSync(e,"utf-8").split(`
|
|
33
|
+
`);for(let s of i.filter(o=>o))t.push(Wo.default.readFileSync(s))}return t.push(Wo.default.readFileSync(sS(aS))),Buffer.concat(t)}function iP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function sP(t){return t instanceof Error}function oP(t){return typeof t=="string"}var Hr;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,dS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Cf(),level:t}),Hr=r.length?(0,Tc.default)(e,Tc.default.multistream(r)):(0,Tc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{oP(E)&&(d=`${d} ${E}`.trimStart()),iP(E)&&l.push(E),sP(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:sf()};let f=Nf.default.scope().active();f&&Nf.default.inject(f.context(),pS.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let _=0;_<l.length;_++){let S=l[_],M=S._logKey;M?(delete S._logKey,g[M]=S):(E[y]=S,y++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Hr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Hr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Hr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Hr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Hr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Hr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=zp()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var Ac=Hr;var aP=["AccountError"];function uP(t){return t&&t.suppressAlert}function Xn(t,e){e&&aP.includes(e.name)&&uP(e)||console.error(`bb-alert: ${t}`,e)}function cP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,Xn(t,n)}function as(t,e){console.warn(`bb-warn: ${t}`,e)}var Yo={};v(Yo,{cleanup:()=>lP,clear:()=>Ho,set:()=>jo});var Qo=[];function jo(t,e){let r=setInterval(t,e);return Qo.push(r),r}function Ho(t){let e=Qo.indexOf(t);e!==-1&&Qo.splice(e,1),clearInterval(t)}function lP(){for(let t of Qo)clearInterval(t);Qo=[]}var Uf;if(h.MOCK_REDIS)try{Uf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var dP=2e3,pP=5e3,mS=h.REDIS_CLUSTERED,kf=0,Ko=!1,Lf={},ei=!1;h.MOCK_REDIS&&(ei=!0);function Ff(t){return Lf[t]}function Pf(t,e){Ko||(Ko=!0,clearTimeout(t),ei=!1,Xn("Redis connection failed",e),setTimeout(()=>{Bf()},dP))}function Bf(t=kf){let e=h.MOCK_REDIS&&Uf?Uf:fS.default,r;Ko=!1;let n=Ff(t);if(n&&ei)return;h.MOCK_REDIS&&(Lf[t]=new e(ns())),r=setTimeout(()=>{ei||Pf(r,"Did not successfully connect in timeout")},pP),n&&n.disconnect();let{host:i,port:s}=ac(),o=ns();mS?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Pf(r,a)}),n.on("error",a=>{Pf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),ei=!0}),Lf[t]=n}function fP(t=kf){return new Promise(e=>{if(Ff(t)==null)Bf();else if(ei){e("");return}let r=jo(()=>{ei&&(Ho(r),e(""))},500)})}function mP(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:nf(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var Mf=class{constructor(e,r=null){this._db=e,this._select=r||kf}getClient(){return Ff(this._select)}async init(){return Ko=!1,Bf(this._select),await fP(this._select),this._select&&!h.isTest()&&this.getClient().select(this._select),this}async finish(){Ko=!0,this.getClient().disconnect()}async scan(e=""){e=`${this._db}${rs}${e}`;let n;return mS?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),mP(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ke(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ke(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ke(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=>Ke(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=Ke(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[Ke(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=Ke(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ke(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ke(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ke(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(Ke(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
|
|
34
34
|
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
35
35
|
redis.call('DEL', KEYS[1])
|
|
36
36
|
end
|
|
37
|
-
`;await n.eval(i,1,Ke(this._db,e),r)}},qe=Lf;var Ko,Jo,zo,Zo,ti,Xo,ea,ta,ra,Bf;async function Lt(){Ko=await new qe("users").init(),Jo=await new qe("session").init(),zo=await new qe("appMetadata").init(),Zo=await new qe("data_cache").init(),Xo=await new qe("locks").init(),ti=await new qe("writeThrough").init(),ta=await new qe("invitation").init(),ra=await new qe("pwReset").init(),ea=await new qe("socket_io",1).init(),Bf=await new qe("docWriteThrough").init()}async function hS(){Ko&&await Ko.finish(),Jo&&await Jo.finish(),zo&&await zo.finish(),Zo&&await Zo.finish(),ti&&await ti.finish(),Xo&&await Xo.finish(),ta&&await ta.finish(),ra&&await ra.finish(),ea&&await ea.finish(),Bf&&await Bf.finish()}process.on("exit",async()=>{await hS()});async function na(){return Ko||await Lt(),Ko}async function Kr(){return Jo||await Lt(),Jo}async function pc(){return zo||await Lt(),zo}async function Gf(){return Zo||await Lt(),Zo}async function $f(){return ti||await Lt(),ti}async function Vf(){return Xo||await Lt(),Xo}async function fP(){return ea||await Lt(),ea}async function ri(){return ta||await Lt(),ta}async function ia(){return ra||await Lt(),ra}async function mP(){return ti||await Lt(),ti}function Yt(t){let e=j();return`${t}:${e}`}var ni=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Gf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Yt(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[Yt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(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 withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ii=new ni,Ce={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:t=>`oauth2Token_${t}`},si=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(si||{}),Sc=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),hr=(...t)=>ii.store(...t),sa=(...t)=>ii.delete(...t),zr=(...t)=>ii.withCache(...t),gS=(...t)=>ii.withCacheWithDynamicTTL(...t),us=(...t)=>ii.bustCache(...t);var rn={};v(rn,{getUser:()=>Da,getUsers:()=>I0,invalidateUser:()=>Ca});var ua={};v(ua,{addTenantToUrl:()=>hP,getTenantDB:()=>qf,getTenantIDFromCtx:()=>aa,isUserInAppTenant:()=>gP});function qf(t){return $e(lr(t))}function hP(t){let e=j();if(qr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var gP=(t,e)=>{let r;return e?r=e.tenantId||Te:r=j(),(Xi(t)||Te)===r},yP=Object.values(Rs),aa=(t,e)=>{if(!qr())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=yP),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 la={};v(la,{getPlatformDB:()=>ct,tenants:()=>tm,users:()=>Mt});var Mt={};v(Mt,{addSsoUser:()=>ES,addUser:()=>IP,getUserDoc:()=>yS,lookupTenantId:()=>EP,removeUser:()=>OP,updateUserDoc:()=>TP});function ct(){return $e(Ee.PLATFORM_INFO.name)}async function EP(t){return h.MULTI_TENANCY?(await yS(t)).tenantId:Te}async function yS(t){return ct().get(t)}async function TP(t){await ct().put(t)}function AP(t,e){return{_id:t,tenantId:e}}function SP(t,e,r){return{_id:e,userId:t,tenantId:r}}function _P(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Wf(t,e){let r=ct(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function ES(t,e,r,n){return Wf(t,()=>_P(t,e,r,n))}async function IP(t,e,r,n){let i=[Wf(e,()=>AP(e,t)),Wf(r,()=>SP(e,r,t))];n&&i.push(ES(n,r,e,t)),await Promise.all(i)}async function OP(t){let e=ct(),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 tm={};v(tm,{addTenant:()=>WP,exists:()=>$P,getTenantIds:()=>GP,removeTenant:()=>QP,tenacyLockOptions:()=>em});var ci={};v(ci,{AUTO_EXTEND_POLLING_MS:()=>wS,doWithLock:()=>ps,newRedlock:()=>ui});var RS=Q(require("redlock"));var ls={};v(ls,{Duration:()=>be,DurationType:()=>Zf,clearCookie:()=>Zr,compare:()=>Hf,getAppIdFromCtx:()=>NP,getCookie:()=>ai,hasCircularStructure:()=>UP,hash:()=>jf,isAudited:()=>Jf,isClient:()=>PP,isPublicApiRequest:()=>vP,isServingApp:()=>bP,isServingBuilder:()=>DP,isServingBuilderPreview:()=>CP,isValidInternalAPIKey:()=>ca,newid:()=>Ie,openJwt:()=>Ic,resolveAppUrl:()=>IS,setCookie:()=>OS,time:()=>MP,timeout:()=>Kf,urlHasProtocol:()=>LP,validEmail:()=>zf});var Qf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),xP=h.SALT_ROUNDS||10;async function jf(t){let e=await Qf.genSalt(xP);return Qf.hash(t,e)}async function Hf(t,e){return Qf.compare(t,e)}var _c=Q(require("jsonwebtoken")),Yf="app"+N,AS="/app/",SS="/app/preview",RP="/builder",_S=`${RP}/app/`,wP="/api/public/v";function cs(t){return t&&t.startsWith(Yf)?t:void 0}async function IS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=aa(t,{includeStrategies:["subdomain"]}));let s=(await Ve(n,()=>ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function bP(t){return t.path.startsWith(`/${Yf}`)?!0:t.path.startsWith(AS)}function DP(t){return t.path.startsWith(_S)}function CP(t){return t.path.startsWith(SS)}function vP(t){return t.path.startsWith(wP)}async function NP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=cs(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=cs(t.request.body.appId));let n=TS(t.path);!r&&n&&(r=cs(n)),!r&&t.query?.appId&&(r=cs(t.query?.appId));let i=t.path.startsWith(SS),s=t.path.startsWith(AS)&&!i;!r&&s&&(r=cs(await IS(t)));let o=t.request.headers.referer;if(!r&&o?.includes(_S)){let a=TS(t.request.headers.referer);r=cs(a)}return r}function TS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Yf))}function Ic(t){if(t)try{return _c.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return _c.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function ca(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function ai(t,e){let r=t.cookies.get(e);if(r)return Ic(r)}function OS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=_c.default.sign(e,h.JWT_SECRET));let i={expires:Yu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Zr(t,e){OS(t,null,e)}function PP(t){return t.headers["x-budibase-type"]==="client"}function Kf(t){return new Promise(e=>setTimeout(e,t))}function Jf(t){return!!Ph[t]}function UP(t){if(typeof t!="object")return!1;try{JSON.stringify(t)}catch(e){if(e instanceof Error&&e?.message.includes("circular structure"))return!0}return!1}function LP(t){return!!t.match(/^.+:\/\/.+$/)}function zf(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 Zf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Zf||{}),Oc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/Oc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Oc[e]/Oc[r]}static from(e,r){return new t(r*Oc[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function MP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function kP(t,e){if(t==="custom")return ui(e);switch(t){case"try_once":return ui(ds.TRY_ONCE);case"try_twice":return ui(ds.TRY_TWICE);case"default":return ui(ds.DEFAULT);case"delay_500":return ui(ds.DELAY_500);case"auto_extend":return ui(ds.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var ds={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 ui(t={}){let e={...ds.DEFAULT,...t},n=(await Vf()).getClient();return new RS.default([n],e)}function FP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var wS=be.fromSeconds(10).toMs();async function ps(t,e){let r=await kP(t.type,t.customOptions),n,i;try{let s=FP(t),o=t.type==="auto_extend"?wS: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 Xf=Ee.PLATFORM_INFO.docs.tenants,em={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function GP(){return(await xc()).tenantIds}async function xc(){let t=ct(),e;try{e=await t.get(Xf)}catch(r){if(r.status===404)e=await qP();else throw r}return e}async function $P(t){return(await xc()).tenantIds.indexOf(t)!==-1}function VP(){return{_id:Xf,tenantIds:[]}}async function qP(){let t=ct(),e=VP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Xf);throw r}return e}async function WP(t){let e=ct();await ps(em,async()=>{let r=await xc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function QP(t){try{await ps(em,async()=>{let e=ct(),r=await xc();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 li={};v(li,{getAccount:()=>im,getAccountByTenantId:()=>Kt,getStatus:()=>jP});var bS=Q(require("node-fetch"));var da=class{constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Po.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,bS.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 rm=new da(h.ACCOUNT_PORTAL_URL),nm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,im=async t=>{if(nm)return;let e=await rm.get(`/api/v2/admin/account?email=${t}`,{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(e.status!==200)throw new Error(`Error getting account by email ${t}`);return(await e.json())[0]},Kt=async t=>{if(nm)return;let e={tenantId:t},r=await rm.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]},jP=async()=>{if(nm)return;let t=await rm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var As={};v(As,{UserDB:()=>Jt,addAppBuilder:()=>T0,bulkGetGlobalUsersById:()=>Jc,bulkUpdateGlobalUsers:()=>Ra,cleanseUserObject:()=>vm,creatorsInList:()=>di,doesUserExist:()=>m0,getAccountHolderFromUsers:()=>Mc,getAllUserIds:()=>p0,getAllUsers:()=>f0,getById:()=>mi,getCreatorCount:()=>y0,getExistingAccounts:()=>fs,getExistingPlatformUsers:()=>NS,getExistingTenantUsers:()=>vS,getFirstPlatformUser:()=>pa,getGlobalUserByAppPage:()=>O_,getGlobalUserByEmail:()=>Ft,getPlatformUsers:()=>Rc,getUserCount:()=>g0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>LS,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>US,isBuilder:()=>gs,isCreatorAsync:()=>fa,isCreatorSync:()=>Uc,isGlobalBuilder:()=>PS,paginatedUsers:()=>R_,removeAppBuilder:()=>A0,removePortalUserPermissions:()=>E0,searchExistingEmails:()=>am,searchGlobalUsersByApp:()=>zc,searchGlobalUsersByAppAccess:()=>Cm,searchGlobalUsersByEmail:()=>x_,validateUniqueUser:()=>Lc});var um={};v(um,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>Mc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>LS,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>US,isBuilder:()=>gs,isCreatorAsync:()=>fa,isCreatorSync:()=>Uc,isGlobalBuilder:()=>PS,validateUniqueUser:()=>Lc});var om={};v(om,{createCode:()=>YP,deleteCode:()=>JP,getCode:()=>KP,getExistingInvites:()=>sm,getInviteCodes:()=>CS,updateCode:()=>HP});var DS=be.fromDays(7).toSeconds();async function HP(t,e){await(await ri()).store(t,e,DS)}async function YP(t,e){let r=Ie();return await(await ri()).store(r,{email:t,info:e},DS),r}async function KP(t){let r=await(await ri()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function JP(t){await(await ri()).delete(t)}async function CS(){let r=(await(await ri()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=j();return r.filter(i=>n===i.info.tenantId)}async function sm(t){return(await CS()).filter(e=>t.includes(e.email))}async function am(t){let e=[],r=await vS(t);e.push(...r.map(o=>o.email));let n=await NS(t);e.push(...n.map(o=>o._id));let i=await fs(t);e.push(...i.map(o=>o.email));let s=await sm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Rc(t){return await Bo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function pa(t){return(await Rc(t))[0]??null}async function vS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await pr("by_email2",r,void 0,n)}async function NS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bo("platform_users_lowercase_2",r)}async function fs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Bo("account_by_email",r)}var Pc={};v(Pc,{BadRequestError:()=>bc,BudibaseError:()=>ms,EmailUnavailableError:()=>gr,ErrorCode:()=>vc,FeatureDisabledError:()=>Cc,HTTPError:()=>lt,InvalidAPIKeyError:()=>hs,NotFoundError:()=>wc,UsageLimitError:()=>Dc,getPublicError:()=>Nc});var ms=class extends Error{constructor(r,n){super(r);this.code=n}},vc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(vc||{}),Nc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class t extends ms{constructor(r,n,i="http"){super(r,i);this.status=n}static async fromResponse(r){let n=await r.text(),i=n,s=r.status,o="http";try{let a=JSON.parse(n);i=a.message,s=a.status,o=a.error?.code}catch{}return new t(i,s,o)}},wc=class extends lt{constructor(e){super(e,404)}},bc=class extends lt{constructor(e){super(e,400)}},Dc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Cc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},hs=class extends ms{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},gr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var gs=ot.users.isBuilder,Xr=ot.users.isAdmin,PS=ot.users.isGlobalBuilder,US=ot.users.isAdminOrBuilder,en=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,LS=ot.users.hasAppBuilderPermissions;async function di(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>Uc(i,e))}async function fa(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Uc(t,e)}function Uc(t,e){let r=ot.users.isCreator(t);return!r&&t?zP(t,e):r}function zP(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}async function Lc(t,e){if(h.MULTI_TENANCY){let r=await pa(t);if(r!=null&&r.tenantId!==e)throw new gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&await im(t))throw new gr(t)}async function Mc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await fs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ts={};v(Ts,{account:()=>ZS,ai:()=>n_,analytics:()=>Fc,app:()=>XS,auditLog:()=>E_,auth:()=>Hc,automation:()=>e_,backfill:()=>f_,backfillCache:()=>Qc,backup:()=>g_,datasource:()=>t_,email:()=>r_,environmentVariable:()=>y_,group:()=>m_,identification:()=>kt,initAsyncEvents:()=>zM,installation:()=>Aa,layout:()=>s_,license:()=>i_,org:()=>o_,plugin:()=>h_,processors:()=>fm,publishEvent:()=>A,query:()=>a_,role:()=>xa,rowAction:()=>T_,rows:()=>c_,screen:()=>u_,serve:()=>d_,shutdown:()=>ZM,table:()=>l_,user:()=>We,view:()=>p_});var fm={};v(fm,{analyticsProcessor:()=>HS,init:()=>gU,processors:()=>Tr});var Fc={};v(Fc,{enabled:()=>kc});var kc=async()=>Bc();var GS=require("posthog-node");var ZP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",XP=t=>t==="served:app:preview"||t==="served:app";var kS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},FS=async t=>{if(!ZP(t))return!1;let e=await eU(t);if(e){let r=new Date(e.timestamp);switch(kS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await MS(t,{timestamp:Date.now()}),!1):!0}}else return await MS(t,{timestamp:Date.now()}),!1},BS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return XP(t)&&(e=e+":"+Ue()),e},eU=async t=>{let e=BS(t);return await oi(e)},MS=async(t,e)=>{let r=BS(t),n=kS[t],i;switch(n){case"calendarDay":i=86400}await hr(r,e,i)};var rU=["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"],ma=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new GS.PostHog(e)}async processEvent(e,r,n,i){if(rU.includes(e)||await FS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Ue();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 $S=ma;var nU=["installation:version:upgraded","installation:version:downgraded"],iU=["installation","tenant"],ha=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new $S(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!nU.includes(e)&&!await kc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!iU.includes(e.type)&&!await kc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var cm=h.SELF_HOSTED&&!h.isDev(),ga=class{async processEvent(e,r,n){cm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){cm||console.log("[audit] identified",e)}async identifyGroup(e){cm||console.log("[audit] group identified",e)}shutdown(){}};var pm={};v(pm,{BudibaseQueue:()=>Er,InMemoryQueue:()=>Gc,JobQueue:()=>ys,shutdown:()=>fU});var VS=Q(require("events"));function sU(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var Gc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new VS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a,u=0){try{await a}catch(c){if(u++,u<3)await jt.wait(100*u),await s(r(n),u);else throw c}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n);let a=this._messages.indexOf(n);if(a===-1)throw"Failed deleting a processed message";this._messages.splice(a,1)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Ie(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>sU(e))}async whenCurrentJobsFinished(){do await Kf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},qS=Gc;var lm=Q(require("bull"));var ys=(o=>(o.AUTOMATION="automationQueue",o.APP_BACKUP="appBackupQueue",o.AUDIT_LOG="auditLogQueue",o.SYSTEM_EVENT_QUEUE="systemEventQueue",o.APP_MIGRATION="appMigration",o.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",o))(ys||{});function WS(t,e,r){uU(t,e),r&&oU(t,r)}function oU(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 St(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 aU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function uU(t,e){let r=aU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Kp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...St(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...St(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...St(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...St(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...St(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...St(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...St(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...St(r,"paused"))}).on("resumed",()=>{console.info(...St(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...St(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...St(r,"drained"))}).on("removed",i=>{console.info(...St(r,"removed",{job:i}))})}var yr=Q(require("dd-trace")),ya=Q(require("object-sizeof")),cU=be.fromMinutes(5).toMs(),lU=be.fromSeconds(30).toMs(),dm=be.fromSeconds(60).toMs(),Ea=[],$c;async function QS(){for(let t of Ea)await t.clean(dm,"completed"),await t.clean(dm,"failed")}async function dU(t,e,r){let n=performance.now();try{let i=await e();return yr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw yr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;yr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),yr.default.dogstatsd.increment(t,1,r)}}function jS(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}function pU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ya.default)(t.data),...jS(t.opts||{})}}var Er=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:ns(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:cU,lockRenewTime:lU}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new lm.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new qS(this.jobQueue,r):n=new lm.default(this.jobQueue,r),WS(n,this.jobQueue,this.opts.removeStalledCb),Ea.push(n),!$c&&!h.isTest()&&($c=Qo(QS,dm),QS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=async s=>{await yr.default.trace("queue.process",async o=>{if(s.data._parentSpanContext){let a=s.data._parentSpanContext,u={traceId:a.traceId,spanId:a.spanId,toTraceId:()=>a.traceId,toSpanId:()=>a.spanId,toTraceparent:()=>""};o.addLink(u)}o.addTags({"queue.name":this.jobQueue,...pU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),yr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,ya.default)(s.data),this.metricTags()),await this.withMetrics("queue.process",()=>n(s))})};return r?this.queue.process(r,i):this.queue.process(i)}async add(e,r){return await yr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ya.default)(e),...jS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},yr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ya.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return dU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function fU(){if($c&&jo($c),Ea.length){for(let t of Ea)await t.close();Ea=[]}console.log("Queues shutdown")}var Es=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Er("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await 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&&Jf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Ta=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}shutdown(){for(let e of this.processors)e.shutdown&&e.shutdown()}};var HS=new ha,mU=new ga,hU=new Es;function gU(t){return Es.init(t)}var Tr=new Ta([HS,mU,hU]);var Vc={};v(Vc,{checkInstallVersion:()=>TU,getInstall:()=>Sa,getInstallFromDB:()=>hm});var mm=Q(require("semver"));var Sa=async()=>zr(Ce.INSTALLATION,86400,hm,{useTenancy:!1});async function yU(t){let e={_id:Ee.PLATFORM_INFO.docs.install,installId:Ie(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return hm();throw r}}var hm=async()=>ut(Ee.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Ee.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await yU(t);else throw r}return e}),EU=async t=>{try{await ut(Ee.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await us(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},TU=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=mm.default.gt(r,e),i=mm.default.lt(r,e);await EU(r)&&(await Ro({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await kt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Xn(`Invalid version "${r}" - is it semver?`):Xn("Failed to retrieve version",n)}};var AU=async()=>{let t=vp(),e=Oa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=_a();return{id:YS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await qc(j()),s=_a();return{id:YS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await qc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=_a(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},SU=async(t,e)=>{let r=t,n="installation",i=_a(),s=h.VERSION,o=Oa(),a={id:r,type:n,hosting:i,version:s,environment:o};await gm(a,e),await Ia({...a,id:`$${n}_${r}`},e)},_U=async(t,e,r)=>{let n=await qc(t),i="tenant",s=await pi(),o=Oa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await gm(a,r),await Ia({...a,id:`$${i}_${n}`},r)},IU=async(t,e,r)=>{let n=t._id,i=await qc(t.tenantId),s="user",o=At(t),a=en(t),u;ja(t)&&(u=t.providerType);let l=(await fs([t.email])).length>0,d=!!e&&l&&e.verified,m=await pi(),p=e?e.hosting:_a(),f=Oa();await Ia({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},OU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Qa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=Oa();if(Wa(t)){let d=await Ft(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await Tr.identify(t,e)},gm=async(t,e)=>{await Tr.identifyGroup(t,e)},Oa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,_a=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>xU()?"account-portal":(await Sa()).installId,qc=async t=>h.SELF_HOSTED?KS(t):t,KS=async t=>Ve(t,()=>zr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Wc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Ie()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),xU=()=>h.SERVICE==="account-portal",YS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,kt={getCurrentIdentity:AU,identifyInstallationGroup:SU,identifyTenantGroup:_U,identifyUser:IU,identifyAccount:OU,identify:Ia,identifyGroup:gm,getInstallationId:pi,getUniqueTenantId:KS};var Qc={};v(Qc,{end:()=>wU,isAlreadySent:()=>Tm,isBackfillingEvent:()=>Em,recordEvent:()=>ym,start:()=>RU});var RU=async t=>DU({eventWhitelist:t}),ym=async(t,e)=>{let r=Am(t,e);await hr(r,e,void 0,{useTenancy:!1})},wU=async()=>{await CU(),await vU()},bU=async()=>oi(Ce.BACKFILL_METADATA),DU=async t=>hr(Ce.BACKFILL_METADATA,t),CU=async()=>{await sa(Ce.BACKFILL_METADATA)},vU=async()=>{let t=Am(),e=await Sc(t);for(let r of e)await sa(r,{useTenancy:!1})},Em=async t=>{let r=(await bU())?.eventWhitelist;return!!(r&&r.includes(t))},Tm=async(t,e)=>{let r=Am(t,e);return!!await oi(r,{useTenancy:!1})},NU={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Am=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=NU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Ar;function jc(){Ar=new Er("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function JS(){Ar&&await Ar.close()}async function zS(t){Ar||jc();let{event:e,identity:r}=t;Nh.indexOf(e)!==-1&&r.tenantId&&await Ar.add(t)}var A=async(t,e,r,n)=>{let i=n||await kt.getCurrentIdentity();if(!(n?!1:await Em(t))){await zS({event:t,identity:i,properties:e,timestamp:r}),await Tr.processEvent(t,i,e,r);return}await Tm(t,e)||(await Tr.processEvent(t,i,e,r),await ym(t,e))};async function PU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function UU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function LU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var ZS={created:PU,deleted:UU,verified:LU};var MU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function kU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function FU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function BU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function GU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function $U(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function VU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function qU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function WU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function QU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function jU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function HU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var XS={created:MU,updated:kU,deleted:FU,published:BU,unpublished:GU,fileImported:$U,duplicated:VU,templateImported:qU,versionUpdated:WU,versionReverted:QU,reverted:jU,exported:HU};async function YU(t,e){let n={userId:(await kt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function KU(t){let r={userId:(await kt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function JU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function zU(t){let e={type:t};await A("auth:sso:updated",e)}async function ZU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function XU(t){let e={type:t};await A("auth:sso:deactivated",e)}var Hc={login:YU,logout:KU,SSOCreated:JU,SSOUpdated:zU,SSOActivated:ZU,SSODeactivated:XU};async function eL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}async function tL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}async function rL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function nL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var iL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function sL(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}async function oL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var e_={created:eL,triggerUpdated:tL,deleted:rL,tested:nL,run:iL,stepCreated:sL,stepDeleted:oL};function Sm(t){return!Object.values($a).includes(t.source)}async function aL(t,e){let r={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:created",r,e)}async function uL(t){let e={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:updated",e)}async function cL(t){let e={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:deleted",e)}var t_={created:aL,updated:uL,deleted:cL};async function lL(t){let e={};await A("email:smtp:created",e,t)}async function dL(){let t={};await A("email:smtp:updated",t)}var r_={SMTPCreated:lL,SMTPUpdated:dL};async function pL(t){let e={};await A("ai:config:created",e,t)}async function fL(){let t={};await A("ai:config:updated",t)}var n_={AIConfigCreated:pL,AIConfigUpdated:fL};async function mL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function hL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function gL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function yL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function EL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function TL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function AL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var i_={planChanged:mL,activated:hL,checkoutOpened:gL,checkoutSuccess:yL,portalOpened:EL,paymentFailed:TL,paymentRecovered:AL};async function SL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function _L(t){let e={layoutId:t};await A("layout:deleted",e)}var s_={created:SL,deleted:_L};async function IL(t){let e={};await A("org:info:name:updated",e,t)}async function OL(t){let e={};await A("org:info:logo:updated",e,t)}async function xL(t){let e={};await A("org:platformurl:updated",e,t)}async function RL(){let t={};await A("analytics:opt:out",t)}async function wL(){let t={};await A("analytics:opt:out",t)}var o_={nameUpdated:IL,logoUpdated:OL,platformURLUpdated:xL,analyticsOptOut:RL,analyticsOptIn:wL};var bL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},DL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},CL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},vL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},NL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},PL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},a_={created:bL,updated:DL,deleted:CL,imported:vL,run:NL,previewed:PL};async function UL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function LL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function ML(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function kL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function FL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var xa={created:UL,updated:LL,deleted:ML,assigned:kL,unassigned:FL};async function BL(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}async function GL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var u_={created:BL,deleted:GL};var $L=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},VL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},c_={created:$L,imported:VL};async function qL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function WL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function QL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function jL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function HL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var l_={created:qL,updated:WL,deleted:QL,exported:jL,imported:HL};async function YL(t){let e={timezone:t};await A("served:builder",e)}async function KL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function JL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var d_={servedBuilder:YL,servedApp:KL,servedAppPreview:JL};async function zL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function ZL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function XL(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function eM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function tM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function rM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function nM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function iM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function sM(t){let e={audited:{email:t}};await A("user:invited",e)}async function oM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function aM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function uM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function cM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function lM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function dM(t){let e={users:t};await A("user:data:collaboration",e)}var We={created:zL,updated:ZL,deleted:XL,permissionAdminAssigned:tM,permissionAdminRemoved:rM,permissionBuilderAssigned:nM,permissionBuilderRemoved:iM,onboardingComplete:eM,invited:sM,inviteAccepted:oM,passwordForceReset:aM,passwordUpdated:uM,passwordResetRequested:cM,passwordReset:lM,dataCollaboration:dM};async function pM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function fM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function mM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function hM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function gM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function yM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function EM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function TM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function AM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function SM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function _M(t,e){let r={tableId:t};await A("view:join:created",r,e)}var p_={created:pM,updated:fM,deleted:mM,exported:hM,filterCreated:gM,filterUpdated:yM,filterDeleted:EM,calculationCreated:TM,calculationUpdated:AM,calculationDeleted:SM,viewJoinCreated:_M};async function IM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function OM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function xM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function RM(){let t={};await A("installation:firstStartup",t)}var Aa={versionChecked:IM,upgraded:OM,downgraded:xM,firstStartup:RM};var Ss=!h.SELF_HOSTED&&!h.isDev();async function wM(t){Ss||await A("app:backfill:succeeded",t)}async function bM(t){if(Ss)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function DM(t){Ss||await A("tenant:backfill:succeeded",t)}async function CM(t){if(Ss)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function vM(){if(Ss)return;let t={};await A("installation:backfill:succeeded",t)}async function NM(t){if(Ss)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var f_={appSucceeded:wM,appFailed:bM,tenantSucceeded:DM,tenantFailed:CM,installationSucceeded:vM,installationFailed:NM};async function PM(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function UM(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function LM(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function MM(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function kM(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function FM(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function BM(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var m_={created:PM,updated:UM,deleted:LM,usersAdded:MM,usersDeleted:kM,createdOnboarding:FM,permissionsEdited:BM};async function GM(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function $M(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}async function VM(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var h_={init:GM,imported:$M,deleted:VM};async function qM(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function WM(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var g_={appBackupRestored:qM,appBackupTriggered:WM};async function QM(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function jM(t){let e={name:t};await A("environment_variable:deleted",e)}async function HM(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var y_={created:QM,deleted:jM,upgradePanelOpened:HM};async function YM(t){let e={filters:t};await A("audit_log:filtered",e)}async function KM(t){let e={filters:t};await A("audit_log:downloaded",e)}var E_={filtered:YM,downloaded:KM};async function JM(t,e){await A("row_action:created",t,e)}var T_={created:JM};function zM(){}var ZM=()=>{Tr.shutdown(),console.log("Events shutdown")};var _m=async t=>{await We.deleted(t),At(t)&&await We.permissionBuilderRemoved(t),en(t)&&await We.permissionAdminRemoved(t)},XM=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},e0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},t0=async(t,e)=>{let r=t.roles,n=e?.roles;await XM(t,r,n),await e0(t,r,n)},Im=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await Kt(r)),await kt.identifyUser(t,n),e?(await We.updated(t),n0(t,e)&&await We.permissionBuilderRemoved(t),s0(t,e)&&await We.permissionAdminRemoved(t),o0(t,e)&&await We.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await We.passwordForceReset(t),t.password!==e.password&&await We.passwordUpdated(t)):await We.created(t),r0(t,e)&&await We.permissionBuilderAssigned(t),i0(t,e)&&await We.permissionAdminAssigned(t),await t0(t,e)},r0=(t,e)=>A_(t,e,At),n0=(t,e)=>S_(t,e,At),i0=(t,e)=>A_(t,e,en),s0=(t,e)=>S_(t,e,en),o0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",A_=(t,e,r)=>!(!r(t)||e&&r(e)),S_=(t,e,r)=>!(r(t)||!e||!r(e));var Kc={};v(Kc,{createASession:()=>u0,endSession:()=>c0,getSession:()=>xm,getSessionsForUser:()=>Yc,invalidateSessions:()=>fi,updateSessionTTL:()=>Om});var __=require("uuid");var I_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function _s(t,e){return`${t}/${e}`}async function Yc(t){return t?(await(await Kr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function fi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Yc(t)).map(o=>({key:_s(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:_s(t,s)}))),i&&i.length>0){let s=await Kr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||as(`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 u0(t,e){await fi(t,{reason:"creation"});let r=await Kr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,__.v4)(),s=_s(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,I_),o}async function Om(t){let e=await Kr(),r=_s(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,I_)}async function c0(t,e){await(await Kr()).delete(_s(t,e))}async function xm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Kr()).get(_s(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Dm={};v(Dm,{PASSWORD_MAX_LENGTH:()=>wm,PASSWORD_MIN_LENGTH:()=>Rm,validatePassword:()=>bm});var Rm=+(h.PASSWORD_MIN_LENGTH||12),wm=+(h.PASSWORD_MAX_LENGTH||512);function bm(t){return!t||t.length<Rm?{valid:!1,error:`Password invalid. Minimum ${Rm} characters.`}:t.length>wm?{valid:!1,error:`Password invalid. Maximum ${wm} characters.`}:{valid:!0}}var l0=async t=>{let e=t._id;await Mt.removeUser(t),await _m(t),await rn.invalidateUser(e),await fi(e,{reason:"bulk-deletion"})},Jt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&Xr(e)?!1:await t.features.isSSOEnforced()||ja(e)?!0:(r||(r=await Kt(j())),!!(r&&r.email===e.email&&Qa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=bm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await jf(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||is();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(zn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await zc(e,{})).length}}static async getUsersByAppAccess(e){return await Cm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Ft(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await Jc(e)}static async bulkUpdate(e){return await Ra(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),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 mi(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 Ft(s),c&&c._id!==o))throw new gr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[m,p]=await di([c,e]);d=m!==p?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Lc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=vm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Im(m,c),c&&m.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,m._id,m.email,m.ssoId),await rn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await am(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 fa(d)&&o.push(d)}let l=await Kt(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await Ra(d);for(let p of d)await Mt.addUser(n,p._id,p.email),await Im(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Mc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await Ra(a),l=(await di(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await pa(p._id)).ssoId;g&&(await Rc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await l0(p)}await ct().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.tenantId;if(await Kt(o))throw n.userId===cr()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await fa(n)?1:0;await t.quotas.removeUsers(1,s),await _m(n),await rn.invalidateUser(i),await fi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await us(Ce.CHECKLIST),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function ba(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Jc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=ba(n)),n}async function p0(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`})).rows.map(n=>n.id)}async function f0(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ra(t){return await ie().bulkDocs(t)}async function mi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=ba(n)),n}async function Ft(t,e){if(t==null)throw"Must supply an email address to view";let r=await pr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=ba(n)),n}async function m0(t){try{let e=await Ft(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function zc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=mc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await pr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=ba(s)),s}async function Cm(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 Hp(lr(),i)).rows}function O_(t,e){if(e)return fc(at(t),e._id)}async function x_(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 pr("by_email2",{...e,startkey:i,endkey:`${n}${Fe}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=ba(o)),o}var h0=8;async function R_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??h0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await mi(e.equal._id)]:r?(u=await zc(r,a),l=d=>O_(r,d)):e?.string?.email?(u=await x_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Jc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(zn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Fr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(zn(null,a))).rows.map(m=>m.doc),pf(u,s,{paginate:!0,property:c,getKey:l})}async function g0(){return(await hf("by_email2",{limit:0,include_docs:!1})).total_rows}async function y0(){let t=0;async function e(r){let n=await R_({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function E0(t){return delete t.admin,delete t.builder,t}function vm(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 T0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Jt.save(t,{hashPassword:!1})}async function A0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Jt.save(t,{hashPassword:!1})}var w_=3600;async function S0(t,e){let n=await qf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Kt(e);i?.email===n.email&&(n.account=i,n.accountPortalAccess=!0)}return n}async function _0(t){let e=await Jt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Kt(i.tenantId);s?.email===i.email&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Da({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=S0),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await na(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,w_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await Ve(e,async()=>{let o=await Jt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function I0(t){let e=await na(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await _0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,w_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ca(t){await(await na()).delete(t)}var Lm={};v(Lm,{Writethrough:()=>Pm});var b_=1e4,Nm=null;async function Zc(){if(!Nm){let t=await $f();Nm=new ni(t)}return Nm}function va(t,e){return t.name+e}function Um(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function O0(t,e,r=b_){let n=await Zc(),i=e._id,s;i&&(s=await n.get(va(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ps({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;as("Ignoring conflict in write-through cache")}})).executed||as("Ignoring redlock conflict in write-through cache")),s=Um(a,o?null:s?.lastWrite),a._id&&await n.store(va(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function x0(t,e){let r=await Zc(),n=va(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Um(s),await r.store(n,i)}return i.doc}async function R0(t,e){let r=await Zc(),n=va(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Um(s),await r.store(n,i)}return i.doc}async function w0(t,e,r){let n=await Zc();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(va(t,i))}finally{await t.remove(i,r)}}var Pm=class{constructor(e,r=b_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return O0(this.db,e,r)}async get(e){return x0(this.db,e)}async tryGet(e){return R0(this.db,e)}async remove(e,r){return w0(this.db,e,r)}};var Mm={};v(Mm,{createCode:()=>D0,getCode:()=>C0,invalidateCode:()=>v0});var b0=be.fromHours(1).toSeconds();async function D0(t,e){let r=Ie();return await(await ia()).store(r,{userId:t,info:e},b0),r}async function C0(t){let r=await(await ia()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function v0(t){await(await ia()).delete(t)}var Fm={};v(Fm,{DocWritethrough:()=>km,DocWritethroughProcessor:()=>Na,getProcessor:()=>P0,init:()=>D_});var N0=100,Xc,Na=class t{static get queue(){return t._queue||(t._queue=new Er("docWritethroughQueue",{jobOptions:{attempts:N0}})),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}){if(r.startsWith("scimlog"))return;let i=$e(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},km=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Na.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function D_(){return Xc=new Na().init(),Xc}function P0(){return Xc||D_()}function el(t){return`config${N}${t}`}async function Bt(t){let e=ie();try{return await e.get(el(t))}catch(r){if(r.status===404)return;throw r}}async function U0(t){return t._id||(t._id=el(t.type)),ie().put(t)}async function Wc(){let t=await Bt("settings");return t||(t={_id:el("settings"),type:"settings",config:{}}),t.config.platformUrl=await Pa({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Bc({config:t.config}),t}async function $m(){return(await Wc()).config}async function Pa(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Bt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Bc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await zr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Bt("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 L0(){return await Bt("google")}async function tl(){return(await L0())?.config}async function Vm(){if(!h.SELF_HOSTED)return Bm();let t=await tl();return(!t||!t.activated)&&(t=Bm()),t}function Bm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function M0(){return Bt("logos_oidc")}async function k0(){return Bt("oidc")}async function F0(){let t=(await k0())?.config;return t?.configs&&t.configs[0]}async function qm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function C_(){return Bt("smtp")}async function B0(t){let e=await C_();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},fallback:!0}}async function G0(){return(await Bt("scim"))?.config}async function $0(){return Bt("ai")}var Xm={};v(Xm,{AccessController:()=>jm,BUILTIN_ROLE_IDS:()=>Hm,Role:()=>nn,RoleHierarchyTraversal:()=>rl,RoleIDVersion:()=>Ym,builtinRoleToNumber:()=>Ua,checkForRoleResourceArray:()=>U_,externalRole:()=>H0,findRole:()=>La,getAllRoleIds:()=>z0,getAllRoles:()=>Zm,getBuiltinRole:()=>N_,getBuiltinRoles:()=>Jm,getDBRoleID:()=>L_,getExternalRoleID:()=>sn,getExternalRoleIDs:()=>M_,getRole:()=>Y0,getUserRoleHierarchy:()=>zm,getUserRoleIdHierarchy:()=>P_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>j0,prefixRoleIDNoBuiltin:()=>Qm,roleIDsAreEqual:()=>_t,roleToNumber:()=>Q0,saveRoles:()=>K0,validInherits:()=>W0});var Wm=Q(require("semver"));var nl=Q(require("lodash/fp/cloneDeep"));var v_=require("lodash");var Hm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...Hm,BUILDER:"BUILDER"},Ym={UUID:void 0,NAME:"name"};function q0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var nn=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Ym.NAME}addInheritance(e){return e&&typeof e=="string"?e=Qm(e):e&&Array.isArray(e)&&(e=e.map(Qm)),this.inherits=e,this}},rl=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=La(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!q0(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=La(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,v_.uniqBy)(i,s=>s._id)}},Km={ADMIN:new nn(fe.ADMIN,fe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(fe.POWER),POWER:new nn(fe.POWER,fe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(fe.BASIC),BASIC:new nn(fe.BASIC,fe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(fe.PUBLIC),PUBLIC:new nn(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new nn(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Jm(){return(0,nl.default)(Km)}function hi(t){return Object.values(Hm).includes(t)}function Qm(t){return hi(t)?t:dr(t)}function N_(t){let e=Object.values(Km).find(r=>t.includes(r._id));if(e)return(0,nl.default)(e)}function W0(t,e){if(!e)return!1;let r=n=>t.find(i=>_t(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 Ua(t){let e=Jm(),r=Object.values(e).length+1;if(_t(t,fe.ADMIN)||_t(t,fe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function Q0(t){if(hi(t))return Ua(t);let e=await zm(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=>_t(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(hi(n.inherits))return Ua(n.inherits)+1;return 0};return Math.max(...e.map(r))}function j0(t,e){return t?e&&Ua(t)>Ua(e)?e:t:e}function _t(t,e){return dr(t)===dr(e)}function H0(t){let e;return t._id&&(e=sn(t._id)),{...t,_id:e,inherits:M_(t.inherits,t.version)}}function La(t,e,r){let n=N_(t);n||(t=dr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,nl.default)(Km.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=sn(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function Y0(t,e){let r=es(),n=[];if(!hi(t)){let i=await r.tryGet(L_(t));i&&n.push(i)}return La(t,n,e)}async function K0(t){await es().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:dr(r._id)})))}async function J0(t,e){let r=await Zm();if(_t(t,fe.ADMIN))return r;let n=La(t,r,e),i=[];return n&&(i=new rl(r,e).walk(n)),i}async function P_(t){return(await zm(t)).map(r=>r._id)}async function zm(t,e){return J0(t,e)}function U_(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 z0(t){return(await Zm(t)).map(r=>r._id)}async function Zm(t){if(t)return ut(t,e);{let r;try{r=es()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(hc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=sn(a._id,a.version)));let i=Jm(),s=[];!r||await Z0(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>_t(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=sn(a._id,u.version),n.push({...a,...u,name:a.name,_id:sn(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=U_(o.permissions,a);return n}}async function Z0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Wm.default.valid(r)?!0:!Wm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var jm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,fe.BUILDER)||_t(r,e)||_t(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await P_(r),this.userHierarchies[r]=n),n?.find(i=>_t(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 L_(t){return t?.startsWith("role")?t:dr(t)}function sn(t,e){if(t.startsWith(`role${N}`)&&(hi(t)||e===Ym.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function M_(t,e){return t&&(typeof t=="string"?sn(t,e):t.map(r=>sn(r,e)))}var eh={};v(eh,{BUILDER:()=>nk,BUILTIN_PERMISSIONS:()=>il,CREATOR:()=>ik,GLOBAL_BUILDER:()=>sk,PermissionImpl:()=>me,PermissionLevel:()=>ws,PermissionType:()=>qa,doesHaveBasePermission:()=>tk,getAllowedLevels:()=>G_,getBuiltinPermissionByID:()=>ek,getBuiltinPermissions:()=>X0,isPermissionLevelHigherThanRead:()=>rk,levelToNumber:()=>B_});var k_=Q(require("lodash/flatten")),F_=Q(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function B_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function G_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var il={PUBLIC:{_id:"public",name:"Public",permissions:[new me("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new me("query","read"),new me("table","read"),new me("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new me("query","write"),new me("table","write"),new me("automation","execute"),new me("legacy_view","read"),new me("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new me("table","write"),new me("user","read"),new me("automation","execute"),new me("webhook","read"),new me("legacy_view","read"),new me("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new me("table","admin"),new me("user","admin"),new me("automation","admin"),new me("webhook","read"),new me("query","admin"),new me("legacy_view","read"),new me("app","read")]}};function X0(){return(0,F_.default)(il)}function ek(t){return Object.values(il).find(r=>r._id===t)}function tk(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(il),s=(0,k_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&G_(o.level).indexOf(e)!==-1)return!0;return!1}function rk(t){return B_(t)>1}var nk="builder",ik="creator",sk="globalBuilder";var nh={};v(nh,{FlagSet:()=>ol,all:()=>ck,flags:()=>th,init:()=>ok,isEnabled:()=>uk,parseEnvFlags:()=>ul,shutdown:()=>ak,testutils:()=>rh});var al=Q(require("crypto"));var $_=require("posthog-node"),V_=Q(require("dd-trace"));var q_=require("lodash");var sl;function ok(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),sl=new $_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:be.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function ak(){sl?.shutdown()}function ul(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 ol=class{constructor(e){this.flagSchema=e;this.setId=al.randomUUID()}defaults(){return(0,q_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await V_.default.trace("features.fetch",async e=>{let r=Xp(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:l,key:d,value:m}of ul(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=cr(),u=a?._id;if(!u){let l=zp();l&&(u=al.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,sl&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await sl.getAllFlags(u,{personProperties:l,onlyEvaluateLocally:!0});for(let[m,p]of Object.entries(d))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${p}`,f)}}}ef(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},th=new ol(kh);async function uk(t){return await th.isEnabled(t)}async function ck(){return await th.fetch()}var rh={};v(rh,{setFeatureFlags:()=>W_,withFeatureFlags:()=>pk});function lk(){let t={};for(let{tenantId:e,key:r,value:n}of ul(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function dk(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 W_(t,e){let r=lk();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=dk(r);return wo({TENANT_FEATURE_FLAGS:n})}function pk(t,e,r){let n=W_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var hh={};v(hh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,buildAuthMiddleware:()=>eF,buildCsrfMiddleware:()=>rF,buildTenancyMiddleware:()=>tF,builderOnly:()=>Sl,builderOrAdmin:()=>Al,google:()=>Sr,internalApi:()=>yl,joiValidator:()=>ka,oidc:()=>_r,passport:()=>nF,platformLogout:()=>uF,refreshOAuthToken:()=>oF,ssoCallbackUrl:()=>on,updateUserOAuth:()=>aF});var mh={};v(mh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,authenticated:()=>ml,builderOnly:()=>Sl,builderOrAdmin:()=>Al,correlation:()=>iI,csp:()=>lI,csrf:()=>El,datasource:()=>Zk,errorHandling:()=>oI,google:()=>Sr,internalApi:()=>yl,ip:()=>pI,joiValidator:()=>ka,local:()=>Is,oidc:()=>_r,pino:()=>rI,querystringToBody:()=>aI,ssoCallbackUrl:()=>on,tenancy:()=>gl});var Is={};v(Is,{authenticate:()=>hk,options:()=>mk});function Me(t,e,r){return t(r,null,{message:e})}async function on(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await $m(),n="/api/global/auth";return qr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var ih="Invalid credentials",fk="This account has expired. Please reset your password",mk={passReqToCallback:!0};async function hk(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Ft(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,ih)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,ih)):i.password?await Hf(r,i.password)?(delete i.password,n(null,i)):Me(n,ih):(console.info(`user=${e} has no password set`,i),Me(n,fk))}var Sr={};v(Sr,{buildVerifyFn:()=>H_,getCallbackUrl:()=>Ek,strategyFactory:()=>sh});var Ma=t=>Promise.resolve(t);async function cl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=is(t.userId),s;try{s=await mi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Ft(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:j()});let o=await gk(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Me(r,"Error saving user",a)}return r(null,o)}async function gk(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 yk=require("passport-google-oauth").OAuth2Strategy;function H_(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 cl(s,!0,i,t)}}async function sh(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=H_(r);return new yk({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function Ek(t){return on("google",t)}var _r={};v(_r,{buildVerifyFn:()=>K_,fetchStrategyConfig:()=>_k,getCallbackUrl:()=>Ik,strategyFactory:()=>Sk});var Y_=Q(require("node-fetch"));var Tk=require("@techpass/passport-openidconnect").Strategy;function K_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:Ak(n,i),oauth2:{accessToken:s,refreshToken:o}};return cl(l,!1,c,t)}}function Ak(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&zf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function Sk(t,e){try{let r=K_(e),n=new Tk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function _k(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,Y_.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 Ik(){return on("oidc")}var oh={};v(oh,{postAuth:()=>Rk,preAuth:()=>xk});var Ok=require("passport-google-oauth").OAuth2Strategy;async function J_(){let t=await Vm();if(!t)throw new Error("No google configuration found");return t}async function xk(t,e,r){let n=await J_(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await sh(n,s,Ma);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function Rk(t,e,r){let n=await J_(),s=`${await Pa({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ai(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new Ok({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Ie();await hr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var wk=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(wk);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}}):[],yi=(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 ph={};v(ph,{SecretOption:()=>X_,decrypt:()=>dh,decryptFile:()=>Pk,encrypt:()=>Ck,encryptFile:()=>vk,getSecret:()=>lh});var Ir=Q(require("crypto")),an=Q(require("fs")),uh=Q(require("zlib"));var ah=require("path"),ll="aes-256-ctr",Z_="-",bk=1e4,Dk=32,dl=16,ch=16,X_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(X_||{});function lh(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 pl(t,e){return Ir.default.pbkdf2Sync(t,e,bk,Dk,"sha512")}function Ck(t,e="api"){let r=Ir.default.randomBytes(dl),n=pl(lh(e),r),i=Ir.default.createCipheriv(ll,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${Z_}${a}`}function dh(t,e="api"){let[r,n]=t.split(Z_),i=Buffer.from(r,"hex"),s=pl(lh(e),i),o=Ir.default.createDecipheriv(ll,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function vk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,ah.join)(t,e);if(an.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=an.default.createReadStream(i),o=an.default.createWriteStream((0,ah.join)(t,n)),a=Ir.default.randomBytes(dl),u=Ir.default.randomBytes(ch),c=pl(r,a),l=Ir.default.createCipheriv(ll,c,u);return o.write(a),o.write(u),s.pipe(uh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function Nk(t){let e=an.default.createReadStream(t),r=await z_(e,dl),n=await z_(e,ch);return e.close(),{salt:r,iv:n}}async function Pk(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await Nk(t),s=an.default.createReadStream(t,{start:dl+ch}),o=an.default.createWriteStream(e),a=pl(r,n),u=Ir.default.createDecipheriv(ll,a,i),c=uh.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 z_(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 tI=Q(require("dd-trace")),Uk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function Lk(){return new Date(Date.now()-Uk).toISOString()}function eI(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 Mk(t,e){if(ca(t))return{valid:!0,user:void 0};let n=dh(t).split(N)[0];return Ve(n,async()=>{let i;try{let s=ie();i=await pr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Da({userId:i,tenantId:n,populateUser:e})};throw new hs})}function fl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ml(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=fl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=fl(n,"x-budibase-token"),c=ai(n,"budibase:auth")||Ic(u),l=fl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=fl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,_=c.userId,S;try{S=await xm(_,y),e&&e.populateUser?p=await Da({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Da({userId:_,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<Lk()&&await Om(S),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),Zr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await Mk(l,y);_&&(m=!0,g="api_key",p=S,f=!S)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&tI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),eI(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Pp(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Zr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return eI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var kk=async(t,e)=>e(),hl=kk;function gl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=aa(s,u);return s.set("x-budibase-tenant-id",l),Ve(l,o)}}var yl=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"),ca(r)||t.throw(403,"Unauthorized"),e()};var Fk=["GET","HEAD","OPTIONS"],Bk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function El(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||Fk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!Bk.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 Tl=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Al=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Xr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var Sl=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?gs:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()};var Gk=require("koa-pino-logger"),$k=require("correlation-id");function Vk(){return{logger:Tc,genReqId:$k.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 qk(){return h.HTTP_LOGGING?Gk(Vk()):(t,e)=>e()}var Wk=qk(),rI=Wk;var nI=require("uuid"),Qk=require("correlation-id"),jk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,nI.v4)()),Qk.withId(r,()=>e())},iI=jk;function sI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of MT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Hk(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Nc(r)};if(sI(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 oI=Hk;function aI(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 cI=Q(require("crypto"));var uI={"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:","'self'"]},Yk=/^[A-Za-z0-9-*:/.]+$/,Kk=async(t,e)=>{let r=cI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...uI};if(n["script-src"]=[...uI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Lo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
|
|
38
|
-
`).filter(c=>Yk.test(c));n["default-src"]=[...n["default-src"],...u]}}catch(o){console.error(`Error occurred in Content-Security-Policy middleware: ${o}`)}let s=Object.entries(n).map(([o,a])=>`${o} ${a.join(" ")}`).join("; ");t.set("Content-Security-Policy",s),await e()},lI=Kk;var ka={};v(ka,{body:()=>Jk,params:()=>zk});var fh=Q(require("joi"));function dI(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:fh.default.any().optional(),updatedAt:fh.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 Jk(t,e){return dI(t,"body",e)}function zk(t,e){return dI(t,"params",e)}var pI=async(t,e)=>t.ip?await Zp(t.ip,()=>e()):e();var Zk={google:oh};var fI=require("koa-passport"),Xk=require("passport-local").Strategy,_l=require("passport-oauth2-refresh"),eF=ml,tF=gl,rF=El,nF=fI;fI.use(new Xk(Is.options,Is.authenticate));async function iF(t,e){let r=await _r.getCallbackUrl(),n,i;try{if(n=await _r.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await _r.strategyFactory(n,Ma)}catch{throw new Error("Could not refresh OAuth Token")}return _l.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{_l.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function sF(t,e){let r=await Sr.getCallbackUrl(t),n;try{n=await Sr.strategyFactory(t,r,Ma)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return _l.use(n),new Promise(i=>{_l.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function oF(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await qm(r);return n?iF(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await tl();return n?sF(n,t):{err:{data:"Google configuration not found"}}}}}async function aF(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 Ca(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function uF(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=ai(e,"budibase:auth"),s=await Yc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Zr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await Hc.logout(e.user?.email),await Ca(r)}var yh={};v(yh,{validate:()=>fF});var D=Q(require("joi")),cF=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function gh(t,e){let{error:r}=t.validate(e);if(r)throw r}function lF(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)});gh(e,t)}function dF(t){let e=D.default.object({type:D.default.string().allow(...Object.values(wl)).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(Rl)),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(bl).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(...cF),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()}))})});gh(n,t)}function pF(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(oe)).required(),customType:D.default.string().allow(...Object.values(ge)),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(...Fh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});gh(n,t)}function fF(t){switch(t?.type){case"component":lF(t);break;case"datasource":dF(t);break;case"automation":pF(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Eh={};v(Eh,{Client:()=>qe,clients:()=>Jr,locks:()=>ci,utils:()=>ac});var Th={};v(Th,{isBlacklisted:()=>hF,refreshBlacklist:()=>yI});var mI=Q(require("dns")),Ol=Q(require("net"));var hI=require("util"),Il,mF=(0,hI.promisify)(mI.default.lookup);async function gI(t){return Ol.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await mF(t,{all:!0})).map(r=>r.address)}async function yI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Ol.default.isIP(i))r.push(i);else{let s=await gI(i);r=r.concat(s)}}Il=r}async function hF(t){if(Il||await yI(),Il?.length===0)return!1;let e;return Ol.default.isIP(t)?e=[t]:e=await gI(t),!!Il?.find(r=>e.includes(r))}var Sh={};v(Sh,{init:()=>yF});var gF={"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 EI(t,e){let r=gF[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Fa=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=EI(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 JS()}};var TI,Ah;function yF(t){Ar||jc(),Ah||(Ah=new Fa(t)),TI||(TI=Ar.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Ah.processEvent(r,n,i)}))}var Ch={};v(Ch,{COUNT_FIELD_NAME:()=>bh,Sql:()=>bI,SqlTable:()=>xl,designDoc:()=>Dh,utils:()=>Qp});var II=require("knex");var EF=require("knex");function _h(t){return["link","formula","ai"].indexOf(t)!==-1}function AI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,p]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=p.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":p.timeOnly?t.time(m):t.datetime(m,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":jt.schema.isDeprecatedSingleUserColumn(p)?t.text(m):t.json(m);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=$p(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let _=y.primary[0],S=y.schema[_].externalType;S?t.specificType(p.foreignKey,S):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${_}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(m);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:Ci.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!_h(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!_h(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||_h(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function AF(t,e,r){return t.createTable(e.name,n=>{AI(n,e,r)})}function SF(t,e,r,n,i){return t.alterTable(e.name,s=>{AI(s,e,r,n,i)})}function _F(t,e){return t.dropTable(e.name)}var Ih=class{constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,EF.knex)({client:this.sqlClient}).schema;e?.schema&&(r=r.withSchema(e.schema));let n;if(!e.table||!e.tables)throw new Error("Cannot execute without table being specified");if(e.table.sourceType==="internal")throw new Error("Cannot perform table actions for SQS.");switch(this._operation(e)){case"CREATE_TABLE":n=AF(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=SF(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=zi(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=_F(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return zi(n)}},xl=Ih;var OI=require("lodash"),bh="__bb_total";function SI(){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 IF(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 xI(t){return Array.isArray(t)?t.map(e=>xI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function _I(t){return t.sourceType==="internal"||t.sourceId===Pl}function OF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function RI(t,e='"'){return`${e}${OF(t,e)}${e}`}function xh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=RI(t[r],e));return`[${t.join(",")}]`}function wI(t){return Bh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var xF={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},Rh=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 Fr.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]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}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.requiresJsonAsStringClient()&&wI(r)&&typeof e=="object")return JSON.stringify(e);if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!qp(e))return null}else{if(Vp(e))return null;if(nc(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,OI.cloneDeep)(e);for(let r of Object.values(xr)){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(zt)){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(dn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),_=Wp(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let M=a?.[_.through]||d.through,T=this.tableNameWithSchema(_.through,{alias:M,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${_.toPrimary}`,"=",`${M}.${_.to}`)}).where(`${M}.${_.from}`,"=",this.rawQuotedIdentifier(`${c}.${_.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,_)),e=e.where(I=>{I.whereExists(i(S,y)),r&&I.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${M}.${_.from}`)}))})}else{let M=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(M,"=",this.rawQuotedIdentifier(T)),e=e.where(I=>{I.whereExists(i(S,y.clone())),r&&I.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let _=(S,M,T)=>{let[I,...x]=M.split("."),w=x.join("."),B=c(I);return S.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let S in f){let M=f[S],T=Go(S),I=T.includes("."),x=n?.relationship&&I,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let B=c(u);e=y(e,w.id.map(le=>B?`${B}.${le}`:le),w.values)}else if(I)x&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,xF[g],T,(B,le)=>_(le,B,M)));else{let B=c(u);e=E(e,B?`${B}.${T}`:T,M)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,_,S)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(xh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(xh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,_,S)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(RI(xh(S)))])):l(f,"contains",(y,_,S)=>(S.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let I of S){f===r?.containsAny?T=T.or:T=T.and;let x=typeof I=="string"?`"${I.toLowerCase()}"`:I;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${x}%`)}}),f===r?.notContains&&(M=M.or.whereNull(this.rawQuotedIdentifier(_))),M))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),_=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let S of _)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,_)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let _=ic(E.low),S=ic(E.high),M=this.getFieldSchema(g),T=g,I=E.high,x=E.low;return this.client==="sqlite3"&&M?.type==="datetime"&&M.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),x!=null&&(x=x.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&M?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[E.high]),x=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),_&&S?f.whereBetween(T,[x,I]):_?f.where(T,">=",x):S?f.where(T,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",E)).or.whereNull(_)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!Gp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${Rr(r.documentType)}%`),e}isSqs(){return _I(this.table)}getTableName(e){e||(e=this.table);let r=e.name;_I(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 ${bh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let _=c[m];if(!_)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,M=a?.[r]||r,T=p&&a?.[p]||p,I=this.tableNameWithSchema(m,{alias:S,schema:u}),x=[..._?.primary||[],_?.primaryDisplay].filter(V=>V),w=IF(l.filter(V=>V.split(".")[0]===S),x);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map(V=>this.buildJsonField(_,V));if(!B.length)continue;let le=B.map(V=>{let se=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${se}??`,[V[0],V[1]]).toString()}).join(","),un=`${S}.${y||f}`,$=s.from(I).orderBy(un),F=p&&y&&E,C=F?`${T}.${g}`:`${S}.${f}`,q=F?`${M}.${E}`:`${M}.${g}`;if(F){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(C),"=",this.rawQuotedIdentifier(q));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Oh()),s.select(V).from({[S]:$})),K;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),K=L(this.knex.raw(`json_group_array(json_object(${le}))`));break;case"pg":K=L(this.knex.raw(`json_agg(json_build_object(${le}))`));break;case"mariadb":K=$.select(s.raw(`json_arrayagg(json_object(${le}) LIMIT ${Oh()})`));break;case"mysql2":case"oracledb":K=L(this.knex.raw(`json_arrayagg(json_object(${le}))`));break;case"mssql":{let V=s.select("*").from({[M]:$.select(B.map(se=>s.ref(se[1]).as(se[0]))).limit(Oh())});K=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},wh=class extends xl{constructor(r,n=SI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=zi(r);return i==="sqlite3"&&(s=xI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,II.knex)(s),a,u=new Rh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:SI()}});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===Pl){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(!wI(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}log(r,n){vo(this.getSqlClient(),r,n)}},bI=wh;var Dh={};v(Dh,{base:()=>RF});function RF(t){return{_id:ur,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var wF={...ua,...Ae},bF=(t={})=>{tc(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,ErrorCode,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
37
|
+
`;await n.eval(i,1,Ke(this._db,e),r)}},qe=Mf;var Jo,zo,Zo,Xo,ti,ea,ta,ra,na,Gf;async function Lt(){Jo=await new qe("users").init(),zo=await new qe("session").init(),Zo=await new qe("appMetadata").init(),Xo=await new qe("data_cache").init(),ea=await new qe("locks").init(),ti=await new qe("writeThrough").init(),ra=await new qe("invitation").init(),na=await new qe("pwReset").init(),ta=await new qe("socket_io",1).init(),Gf=await new qe("docWriteThrough").init()}async function hS(){Jo&&await Jo.finish(),zo&&await zo.finish(),Zo&&await Zo.finish(),Xo&&await Xo.finish(),ti&&await ti.finish(),ea&&await ea.finish(),ra&&await ra.finish(),na&&await na.finish(),ta&&await ta.finish(),Gf&&await Gf.finish()}process.on("exit",async()=>{await hS()});async function ia(){return Jo||await Lt(),Jo}async function Yr(){return zo||await Lt(),zo}async function fc(){return Zo||await Lt(),Zo}async function $f(){return Xo||await Lt(),Xo}async function Vf(){return ti||await Lt(),ti}async function qf(){return ea||await Lt(),ea}async function hP(){return ta||await Lt(),ta}async function ri(){return ra||await Lt(),ra}async function sa(){return na||await Lt(),na}async function gP(){return ti||await Lt(),ti}function Yt(t){let e=j();return`${t}:${e}`}var ni=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await $f()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Yt(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[Yt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(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 withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ii=new ni,Ce={CHECKLIST:"checklist",INSTALLATION:"installation",ANALYTICS_ENABLED:"analyticsEnabled",UNIQUE_TENANT_ID:"uniqueTenantId",EVENTS:"events",BACKFILL_METADATA:"backfillMetadata",EVENTS_RATE_LIMIT:"eventsRateLimit",OAUTH2_TOKEN:t=>`oauth2Token_${t}`},si=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(si||{}),_c=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),mr=(...t)=>ii.store(...t),oa=(...t)=>ii.delete(...t),Jr=(...t)=>ii.withCache(...t),gS=(...t)=>ii.withCacheWithDynamicTTL(...t),us=(...t)=>ii.bustCache(...t);var rn={};v(rn,{getUser:()=>Ca,getUsers:()=>x0,invalidateUser:()=>va});var ca={};v(ca,{addTenantToUrl:()=>yP,getTenantDB:()=>Wf,getTenantIDFromCtx:()=>ua,isUserInAppTenant:()=>EP});function Wf(t){return $e(cr(t))}function yP(t){let e=j();if(Vr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var EP=(t,e)=>{let r;return e?r=e.tenantId||Te:r=j(),(Xi(t)||Te)===r},TP=Object.values(ws),ua=(t,e)=>{if(!Vr())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=TP),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(Kp()).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 da={};v(da,{getPlatformDB:()=>ct,tenants:()=>rm,users:()=>Mt});var Mt={};v(Mt,{addSsoUser:()=>ES,addUser:()=>xP,getUserDoc:()=>yS,lookupTenantId:()=>AP,removeUser:()=>RP,updateUserDoc:()=>SP});function ct(){return $e(Ee.PLATFORM_INFO.name)}async function AP(t){return h.MULTI_TENANCY?(await yS(t)).tenantId:Te}async function yS(t){return ct().get(t)}async function SP(t){await ct().put(t)}function _P(t,e){return{_id:t,tenantId:e}}function IP(t,e,r){return{_id:e,userId:t,tenantId:r}}function OP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Qf(t,e){let r=ct(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function ES(t,e,r,n){return Qf(t,()=>OP(t,e,r,n))}async function xP(t,e,r,n){let i=[Qf(e,()=>_P(e,t)),Qf(r,()=>IP(e,r,t))];n&&i.push(ES(n,r,e,t)),await Promise.all(i)}async function RP(t){let e=ct(),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 rm={};v(rm,{addTenant:()=>jP,exists:()=>qP,getTenantIds:()=>VP,removeTenant:()=>HP,tenacyLockOptions:()=>tm});var ci={};v(ci,{AUTO_EXTEND_POLLING_MS:()=>wS,doWithLock:()=>ps,newRedlock:()=>ui});var RS=Q(require("redlock"));var ls={};v(ls,{Duration:()=>be,DurationType:()=>Xf,clearCookie:()=>zr,compare:()=>Yf,getAppIdFromCtx:()=>UP,getCookie:()=>ai,hasCircularStructure:()=>MP,hash:()=>Hf,isAudited:()=>zf,isClient:()=>LP,isPublicApiRequest:()=>PP,isServingApp:()=>CP,isServingBuilder:()=>vP,isServingBuilderPreview:()=>NP,isValidInternalAPIKey:()=>la,newid:()=>Ie,openJwt:()=>Oc,resolveAppUrl:()=>IS,setCookie:()=>OS,time:()=>FP,timeout:()=>Jf,urlHasProtocol:()=>kP,validEmail:()=>Zf});var jf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),wP=h.SALT_ROUNDS||10;async function Hf(t){let e=await jf.genSalt(wP);return jf.hash(t,e)}async function Yf(t,e){return jf.compare(t,e)}var Ic=Q(require("jsonwebtoken")),Kf="app"+N,AS="/app/",SS="/app/preview",bP="/builder",_S=`${bP}/app/`,DP="/api/public/v";function cs(t){return t&&t.startsWith(Kf)?t:void 0}async function IS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=ua(t,{includeStrategies:["subdomain"]}));let s=(await Ve(n,()=>Fo({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function CP(t){return t.path.startsWith(`/${Kf}`)?!0:t.path.startsWith(AS)}function vP(t){return t.path.startsWith(_S)}function NP(t){return t.path.startsWith(SS)}function PP(t){return t.path.startsWith(DP)}async function UP(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=cs(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=cs(t.request.body.appId));let n=TS(t.path);!r&&n&&(r=cs(n)),!r&&t.query?.appId&&(r=cs(t.query?.appId));let i=t.path.startsWith(SS),s=t.path.startsWith(AS)&&!i;!r&&s&&(r=cs(await IS(t)));let o=t.request.headers.referer;if(!r&&o?.includes(_S)){let a=TS(t.request.headers.referer);r=cs(a)}return r}function TS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Kf))}function Oc(t){if(t)try{return Ic.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Ic.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function la(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function ai(t,e){let r=t.cookies.get(e);if(r)return Oc(r)}function OS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Ic.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 zr(t,e){OS(t,null,e)}function LP(t){return t.headers["x-budibase-type"]==="client"}function Jf(t){return new Promise(e=>setTimeout(e,t))}function zf(t){return!!Ph[t]}function MP(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 kP(t){return!!t.match(/^.+:\/\/.+$/)}function Zf(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 Xf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Xf||{}),xc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/xc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*xc[e]/xc[r]}static from(e,r){return new t(r*xc[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function FP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function BP(t,e){if(t==="custom")return ui(e);switch(t){case"try_once":return ui(ds.TRY_ONCE);case"try_twice":return ui(ds.TRY_TWICE);case"default":return ui(ds.DEFAULT);case"delay_500":return ui(ds.DELAY_500);case"auto_extend":return ui(ds.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var ds={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 ui(t={}){let e={...ds.DEFAULT,...t},n=(await qf()).getClient();return new RS.default([n],e)}function GP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var wS=be.fromSeconds(10).toMs();async function ps(t,e){let r=await BP(t.type,t.customOptions),n,i;try{let s=GP(t),o=t.type==="auto_extend"?wS: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 em=Ee.PLATFORM_INFO.docs.tenants,tm={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function VP(){return(await Rc()).tenantIds}async function Rc(){let t=ct(),e;try{e=await t.get(em)}catch(r){if(r.status===404)e=await QP();else throw r}return e}async function qP(t){return(await Rc()).tenantIds.indexOf(t)!==-1}function WP(){return{_id:em,tenantIds:[]}}async function QP(){let t=ct(),e=WP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(em);throw r}return e}async function jP(t){let e=ct();await ps(tm,async()=>{let r=await Rc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function HP(t){try{await ps(tm,async()=>{let e=ct(),r=await Rc();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 li={};v(li,{getAccount:()=>Zr,getAccountByTenantId:()=>fs,getStatus:()=>YP});var bS=Q(require("node-fetch"));var pa=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";Uo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,bS.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 nm=new pa(h.ACCOUNT_PORTAL_URL),im=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(im)return;let e={email:t},r=await nm.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]},fs=async t=>{if(im)return;let e={tenantId:t},r=await nm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},YP=async()=>{if(im)return;let t=await nm.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 Ss={};v(Ss,{UserDB:()=>Kt,addAppBuilder:()=>S0,bulkGetGlobalUsersById:()=>zc,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>vm,creatorsInList:()=>di,doesUserExist:()=>g0,getAccountHolderFromUsers:()=>kc,getAllUserIds:()=>m0,getAllUsers:()=>h0,getById:()=>mi,getCreatorCount:()=>T0,getExistingAccounts:()=>ms,getExistingPlatformUsers:()=>NS,getExistingTenantUsers:()=>vS,getFirstPlatformUser:()=>fa,getGlobalUserByAppPage:()=>O_,getGlobalUserByEmail:()=>Ft,getPlatformUsers:()=>wc,getUserCount:()=>E0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>LS,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>US,isBuilder:()=>ys,isCreatorAsync:()=>ma,isCreatorSync:()=>Lc,isGlobalBuilder:()=>PS,paginatedUsers:()=>R_,removeAppBuilder:()=>_0,removePortalUserPermissions:()=>A0,searchExistingEmails:()=>am,searchGlobalUsersByApp:()=>Zc,searchGlobalUsersByAppAccess:()=>Cm,searchGlobalUsersByEmail:()=>x_,validateUniqueUser:()=>Mc});var um={};v(um,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>kc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>LS,hasBuilderPermissions:()=>At,isAdmin:()=>Xr,isAdminOrBuilder:()=>US,isBuilder:()=>ys,isCreatorAsync:()=>ma,isCreatorSync:()=>Lc,isGlobalBuilder:()=>PS,validateUniqueUser:()=>Mc});var om={};v(om,{createCode:()=>JP,deleteCode:()=>ZP,getCode:()=>zP,getExistingInvites:()=>sm,getInviteCodes:()=>CS,updateCode:()=>KP});var DS=be.fromDays(7).toSeconds();async function KP(t,e){await(await ri()).store(t,e,DS)}async function JP(t,e){let r=Ie();return await(await ri()).store(r,{email:t,info:e},DS),r}async function zP(t){let r=await(await ri()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function ZP(t){await(await ri()).delete(t)}async function CS(){let r=(await(await ri()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=j();return r.filter(i=>n===i.info.tenantId)}async function sm(t){return(await CS()).filter(e=>t.includes(e.email))}async function am(t){let e=[],r=await vS(t);e.push(...r.map(o=>o.email));let n=await NS(t);e.push(...n.map(o=>o._id));let i=await ms(t);e.push(...i.map(o=>o.email));let s=await sm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function wc(t){return await Go("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function fa(t){return(await wc(t))[0]??null}async function vS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await dr("by_email2",r,void 0,n)}async function NS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Go("platform_users_lowercase_2",r)}async function ms(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Go("account_by_email",r)}var Uc={};v(Uc,{BadRequestError:()=>Dc,BudibaseError:()=>hs,EmailUnavailableError:()=>hr,ErrorCode:()=>Nc,FeatureDisabledError:()=>vc,HTTPError:()=>lt,InvalidAPIKeyError:()=>gs,NotFoundError:()=>bc,UsageLimitError:()=>Cc,getPublicError:()=>Pc});var hs=class extends Error{constructor(r,n){super(r);this.code=n}},Nc=(i=>(i.USAGE_LIMIT_EXCEEDED="usage_limit_exceeded",i.FEATURE_DISABLED="feature_disabled",i.INVALID_API_KEY="invalid_api_key",i.HTTP="http",i))(Nc||{}),Pc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class t extends hs{constructor(r,n,i="http"){super(r,i);this.status=n}static async fromResponse(r){let n=await r.text(),i=n,s=r.status,o="http";try{let a=JSON.parse(n);i=a.message,s=a.status,o=a.error?.code}catch{}return new t(i,s,o)}},bc=class extends lt{constructor(e){super(e,404)}},Dc=class extends lt{constructor(e){super(e,400)}},Cc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},vc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},gs=class extends hs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},hr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ys=ot.users.isBuilder,Xr=ot.users.isAdmin,PS=ot.users.isGlobalBuilder,US=ot.users.isAdminOrBuilder,en=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,LS=ot.users.hasAppBuilderPermissions;async function di(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>Lc(i,e))}async function ma(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Lc(t,e)}function Lc(t,e){let r=ot.users.isCreator(t);return!r&&t?XP(t,e):r}function XP(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}async function Mc(t,e){if(h.MULTI_TENANCY){let r=await fa(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function kc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ms(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var As={};v(As,{account:()=>ZS,ai:()=>n_,analytics:()=>Bc,app:()=>XS,auditLog:()=>E_,auth:()=>Yc,automation:()=>e_,backfill:()=>f_,backfillCache:()=>jc,backup:()=>g_,datasource:()=>t_,email:()=>r_,environmentVariable:()=>y_,group:()=>m_,identification:()=>kt,initAsyncEvents:()=>XM,installation:()=>Sa,layout:()=>s_,license:()=>i_,org:()=>o_,plugin:()=>h_,processors:()=>fm,publishEvent:()=>A,query:()=>a_,role:()=>Ra,rowAction:()=>T_,rows:()=>c_,screen:()=>u_,serve:()=>d_,shutdown:()=>e0,table:()=>l_,user:()=>We,view:()=>p_});var fm={};v(fm,{analyticsProcessor:()=>HS,init:()=>EU,processors:()=>Er});var Bc={};v(Bc,{enabled:()=>Fc});var Fc=async()=>Gc();var GS=require("posthog-node");var eU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",tU=t=>t==="served:app:preview"||t==="served:app";var kS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},FS=async t=>{if(!eU(t))return!1;let e=await rU(t);if(e){let r=new Date(e.timestamp);switch(kS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await MS(t,{timestamp:Date.now()}),!1):!0}}else return await MS(t,{timestamp:Date.now()}),!1},BS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return tU(t)&&(e=e+":"+Ue()),e},rU=async t=>{let e=BS(t);return await oi(e)},MS=async(t,e)=>{let r=BS(t),n=kS[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var iU=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ha=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new GS.PostHog(e)}async processEvent(e,r,n,i){if(iU.includes(e)||await FS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Ue();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 $S=ha;var sU=["installation:version:upgraded","installation:version:downgraded"],oU=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new $S(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!sU.includes(e)&&!await Fc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!oU.includes(e.type)&&!await Fc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var cm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){cm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){cm||console.log("[audit] identified",e)}async identifyGroup(e){cm||console.log("[audit] group identified",e)}shutdown(){}};var pm={};v(pm,{BudibaseQueue:()=>yr,InMemoryQueue:()=>$c,JobQueue:()=>Es,shutdown:()=>hU});var VS=Q(require("events"));function aU(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var $c=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new VS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;let i=r(n);async function s(a,u=0){try{await a}catch(c){if(u++,u<3)await jt.wait(100*u),await s(r(n),u);else throw c}}if(i.then!=null)try{await s(i),this._emitter.emit("completed",n);let a=this._messages.indexOf(n);if(a===-1)throw"Failed deleting a processed message";this._messages.splice(a,1)}catch(a){console.error(a)}this._runCount++;let o=n.opts?.jobId?.toString();o&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(o)})}async isReady(){return this}async add(e,r){if(typeof e=="string")throw new Error("doesn't support named jobs");let n=r,i=n?.jobId?.toString();if(i&&this._queuedJobIds.has(i)){console.log(`Ignoring already queued job ${i}`);return}if(typeof e!="object")throw"Queue only supports carrying JSON.";i&&this._queuedJobIds.add(i);let s=()=>{let a={id:Ie(),timestamp:Date.now(),queue:this,data:e,opts:n};this._messages.push(a),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",a)},o=n?.delay;return o?setTimeout(s,o):s(),{id:i}}async close(){}async removeRepeatableByKey(e){for(let[r,n]of this._messages.entries())if(n.id===e){this._messages.splice(r,1),this._emitter.emit("removed",n);return}}async removeJobs(e){}async clean(){return[]}async getJob(e){for(let r of this._messages)if(r.id===e)return r;return null}manualTrigger(e){for(let r of this._messages)if(r.id===e){this._emitter.emit("message",{...r,manualTrigger:!0});return}throw new Error(`Job with id ${e} not found`)}on(e,r){return this._emitter.on(e,r),this}off(e,r){return this._emitter.off(e,r),this}async count(){return this._messages.length}async getCompletedCount(){return this._runCount}async getRepeatableJobs(){return this._messages.filter(e=>e.opts?.repeat!=null).map(e=>aU(e))}async whenCurrentJobsFinished(){do await Jf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},qS=$c;var lm=Q(require("bull"));var Es=(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))(Es||{});function WS(t,e,r){lU(t,e),r&&uU(t,r)}function uU(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 St(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 cU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function lU(t,e){let r=cU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Jp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...St(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...St(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...St(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...St(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...St(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...St(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...St(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...St(r,"paused"))}).on("resumed",()=>{console.info(...St(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...St(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...St(r,"drained"))}).on("removed",i=>{console.info(...St(r,"removed",{job:i}))})}var gr=Q(require("dd-trace")),Ea=Q(require("object-sizeof")),dU=be.fromMinutes(5).toMs(),pU=be.fromSeconds(30).toMs(),dm=be.fromSeconds(60).toMs(),Ta=[],Vc;async function QS(){for(let t of Ta)await t.clean(dm,"completed"),await t.clean(dm,"failed")}async function fU(t,e,r){let n=performance.now();try{let i=await e();return gr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw gr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;gr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),gr.default.dogstatsd.increment(t,1,r)}}function jS(t){return{"job.opts.attempts":t.attempts,"job.opts.backoff":t.backoff,"job.opts.delay":t.delay,"job.opts.jobId":t.jobId,"job.opts.lifo":t.lifo,"job.opts.preventParsingData":t.preventParsingData,"job.opts.priority":t.priority,"job.opts.removeOnComplete":t.removeOnComplete,"job.opts.removeOnFail":t.removeOnFail,"job.opts.repeat":t.repeat,"job.opts.stackTraceLimit":t.stackTraceLimit,"job.opts.timeout":t.timeout}}function mU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Ea.default)(t.data),...jS(t.opts||{})}}var yr=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:ns(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:dU,lockRenewTime:pU}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new lm.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new qS(this.jobQueue,r):n=new lm.default(this.jobQueue,r),WS(n,this.jobQueue,this.opts.removeStalledCb),Ta.push(n),!Vc&&!h.isTest()&&(Vc=jo(QS,dm),QS().catch(i=>{console.error(`Unable to cleanup ${this.jobQueue} initially - ${i}`)})),n}getBullQueue(){return this.queue}process(...e){let r,n;e.length===2?(r=e[0],n=e[1]):n=e[0];let i=async s=>{await gr.default.trace("queue.process",async o=>{if(s.data._parentSpanContext){let a=s.data._parentSpanContext,u={traceId:a.traceId,spanId:a.spanId,toTraceId:()=>a.traceId,toSpanId:()=>a.spanId,toTraceparent:()=>""};o.addLink(u)}o.addTags({"queue.name":this.jobQueue,...mU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),gr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Ea.default)(s.data),this.metricTags()),await this.withMetrics("queue.process",()=>n(s))})};return r?this.queue.process(r,i):this.queue.process(i)}async add(e,r){return await gr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Ea.default)(e),...jS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},gr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Ea.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return fU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function hU(){if(Vc&&Ho(Vc),Ta.length){for(let t of Ta)await t.close();Ta=[]}console.log("Queues shutdown")}var Ts=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new yr("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await 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&&zf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}shutdown(){t.auditLogQueue?.close()}};var Aa=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}shutdown(){for(let e of this.processors)e.shutdown&&e.shutdown()}};var HS=new ga,gU=new ya,yU=new Ts;function EU(t){return Ts.init(t)}var Er=new Aa([HS,gU,yU]);var qc={};v(qc,{checkInstallVersion:()=>SU,getInstall:()=>_a,getInstallFromDB:()=>hm});var mm=Q(require("semver"));var _a=async()=>Jr(Ce.INSTALLATION,86400,hm,{useTenancy:!1});async function TU(t){let e={_id:Ee.PLATFORM_INFO.docs.install,installId:Ie(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return hm();throw r}}var hm=async()=>ut(Ee.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Ee.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await TU(t);else throw r}return e}),AU=async t=>{try{await ut(Ee.PLATFORM_INFO.name,async e=>{let r=await _a();r.version=t,await e.put(r),await us(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},SU=async()=>{let t=await _a(),e=t.version,r=h.VERSION;try{if(e!==r){let n=mm.default.gt(r,e),i=mm.default.lt(r,e);await AU(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Sa.upgraded(e,r):i&&await Sa.downgraded(e,r)}),await kt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?Xn(`Invalid version "${r}" - is it semver?`):Xn("Failed to retrieve version",n)}};var _U=async()=>{let t=Np(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=Ia();return{id:YS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await Wc(j()),s=Ia();return{id:YS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await Wc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=Ia(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},IU=async(t,e)=>{let r=t,n="installation",i=Ia(),s=h.VERSION,o=xa(),a={id:r,type:n,hosting:i,version:s,environment:o};await gm(a,e),await Oa({...a,id:`$${n}_${r}`},e)},OU=async(t,e,r)=>{let n=await Wc(t),i="tenant",s=await pi(),o=xa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await gm(a,r),await Oa({...a,id:`$${i}_${n}`},r)},xU=async(t,e,r)=>{let n=t._id,i=await Wc(t.tenantId),s="user",o=At(t),a=en(t),u;Ha(t)&&(u=t.providerType);let l=(await ms([t.email])).length>0,d=!!e&&l&&e.verified,m=await pi(),p=e?e.hosting:Ia(),f=xa();await Oa({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},RU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=ja(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=xa();if(Qa(t)){let d=await Ft(t.email);d?._id&&(e=d._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await Er.identify(t,e)},gm=async(t,e)=>{await Er.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ia=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>wU()?"account-portal":(await _a()).installId,Wc=async t=>h.SELF_HOSTED?KS(t):t,KS=async t=>Ve(t,()=>Jr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Qc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Ie()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),wU=()=>h.SERVICE==="account-portal",YS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,kt={getCurrentIdentity:_U,identifyInstallationGroup:IU,identifyTenantGroup:OU,identifyUser:xU,identifyAccount:RU,identify:Oa,identifyGroup:gm,getInstallationId:pi,getUniqueTenantId:KS};var jc={};v(jc,{end:()=>DU,isAlreadySent:()=>Tm,isBackfillingEvent:()=>Em,recordEvent:()=>ym,start:()=>bU});var bU=async t=>vU({eventWhitelist:t}),ym=async(t,e)=>{let r=Am(t,e);await mr(r,e,void 0,{useTenancy:!1})},DU=async()=>{await NU(),await PU()},CU=async()=>oi(Ce.BACKFILL_METADATA),vU=async t=>mr(Ce.BACKFILL_METADATA,t),NU=async()=>{await oa(Ce.BACKFILL_METADATA)},PU=async()=>{let t=Am(),e=await _c(t);for(let r of e)await oa(r,{useTenancy:!1})},Em=async t=>{let r=(await CU())?.eventWhitelist;return!!(r&&r.includes(t))},Tm=async(t,e)=>{let r=Am(t,e);return!!await oi(r,{useTenancy:!1})},UU={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Am=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=UU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Tr;function Hc(){Tr=new yr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function JS(){Tr&&await Tr.close()}async function zS(t){Tr||Hc();let{event:e,identity:r}=t;Nh.indexOf(e)!==-1&&r.tenantId&&await Tr.add(t)}var A=async(t,e,r,n)=>{let i=n||await kt.getCurrentIdentity();if(!(n?!1:await Em(t))){await zS({event:t,identity:i,properties:e,timestamp:r}),await Er.processEvent(t,i,e,r);return}await Tm(t,e)||(await Er.processEvent(t,i,e,r),await ym(t,e))};async function LU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function MU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function kU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var ZS={created:LU,deleted:MU,verified:kU};var FU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function BU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function GU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function $U(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function VU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function qU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function WU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function QU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function jU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function HU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function YU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function KU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var XS={created:FU,updated:BU,deleted:GU,published:$U,unpublished:VU,fileImported:qU,duplicated:WU,templateImported:QU,versionUpdated:jU,versionReverted:HU,reverted:YU,exported:KU};async function JU(t,e){let n={userId:(await kt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function zU(t){let r={userId:(await kt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function ZU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function XU(t){let e={type:t};await A("auth:sso:updated",e)}async function eL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function tL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Yc={login:JU,logout:zU,SSOCreated:ZU,SSOUpdated:XU,SSOActivated:eL,SSODeactivated:tL};async function rL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:created",r,e)}async function nL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}async function iL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function sL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:tested",e)}var oL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function aL(t,e,r){let n={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:created",n,r)}async function uL(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var e_={created:rL,triggerUpdated:nL,deleted:iL,tested:sL,run:oL,stepCreated:aL,stepDeleted:uL};function Sm(t){return!Object.values(Va).includes(t.source)}async function cL(t,e){let r={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:created",r,e)}async function lL(t){let e={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:updated",e)}async function dL(t){let e={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:deleted",e)}var t_={created:cL,updated:lL,deleted:dL};async function pL(t){let e={};await A("email:smtp:created",e,t)}async function fL(){let t={};await A("email:smtp:updated",t)}var r_={SMTPCreated:pL,SMTPUpdated:fL};async function mL(t){let e={};await A("ai:config:created",e,t)}async function hL(){let t={};await A("ai:config:updated",t)}var n_={AIConfigCreated:mL,AIConfigUpdated:hL};async function gL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function yL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function EL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function TL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function AL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function SL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function _L(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var i_={planChanged:gL,activated:yL,checkoutOpened:EL,checkoutSuccess:TL,portalOpened:AL,paymentFailed:SL,paymentRecovered:_L};async function IL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function OL(t){let e={layoutId:t};await A("layout:deleted",e)}var s_={created:IL,deleted:OL};async function xL(t){let e={};await A("org:info:name:updated",e,t)}async function RL(t){let e={};await A("org:info:logo:updated",e,t)}async function wL(t){let e={};await A("org:platformurl:updated",e,t)}async function bL(){let t={};await A("analytics:opt:out",t)}async function DL(){let t={};await A("analytics:opt:out",t)}var o_={nameUpdated:xL,logoUpdated:RL,platformURLUpdated:wL,analyticsOptOut:bL,analyticsOptIn:DL};var CL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},vL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},NL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},PL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},UL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},LL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},a_={created:CL,updated:vL,deleted:NL,imported:PL,run:UL,previewed:LL};async function ML(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function kL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function FL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function BL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function GL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Ra={created:ML,updated:kL,deleted:FL,assigned:BL,unassigned:GL};async function $L(t,e){let r={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:created",r,e)}async function VL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var u_={created:$L,deleted:VL};var qL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},WL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},c_={created:qL,imported:WL};async function QL(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function jL(t,e){let r,n;for(let s in e.schema)if(!t.schema[s]){let o=e.schema[s];"default"in o&&o.default!=null&&(r=!0),o.type==="ai"&&(n=o.operation)}let i={tableId:e._id,defaultValues:r,aiColumn:n,audited:{name:e.name}};(r||n)&&await A("table:updated",i)}async function HL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function YL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function KL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var l_={created:QL,updated:jL,deleted:HL,exported:YL,imported:KL};async function JL(t){let e={timezone:t};await A("served:builder",e)}async function zL(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function ZL(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var d_={servedBuilder:JL,servedApp:zL,servedAppPreview:ZL};async function XL(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function eM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function tM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function rM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:onboarding:complete",e)}async function nM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function iM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function sM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function oM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function aM(t){let e={audited:{email:t}};await A("user:invited",e)}async function uM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function cM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function lM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function dM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function pM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function fM(t){let e={users:t};await A("user:data:collaboration",e)}var We={created:XL,updated:eM,deleted:tM,permissionAdminAssigned:nM,permissionAdminRemoved:iM,permissionBuilderAssigned:sM,permissionBuilderRemoved:oM,onboardingComplete:rM,invited:aM,inviteAccepted:uM,passwordForceReset:cM,passwordUpdated:lM,passwordResetRequested:dM,passwordReset:pM,dataCollaboration:fM};async function mM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function hM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function gM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function yM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function EM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function TM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function AM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function SM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function _M(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function IM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function OM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var p_={created:mM,updated:hM,deleted:gM,exported:yM,filterCreated:EM,filterUpdated:TM,filterDeleted:AM,calculationCreated:SM,calculationUpdated:_M,calculationDeleted:IM,viewJoinCreated:OM};async function xM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function RM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function wM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function bM(){let t={};await A("installation:firstStartup",t)}var Sa={versionChecked:xM,upgraded:RM,downgraded:wM,firstStartup:bM};var _s=!h.SELF_HOSTED&&!h.isDev();async function DM(t){_s||await A("app:backfill:succeeded",t)}async function CM(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function vM(t){_s||await A("tenant:backfill:succeeded",t)}async function NM(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function PM(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function UM(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var f_={appSucceeded:DM,appFailed:CM,tenantSucceeded:vM,tenantFailed:NM,installationSucceeded:PM,installationFailed:UM};async function LM(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function MM(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function kM(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function FM(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function BM(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function GM(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function $M(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var m_={created:LM,updated:MM,deleted:kM,usersAdded:FM,usersDeleted:BM,createdOnboarding:GM,permissionsEdited:$M};async function VM(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function qM(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}async function WM(t){let e={pluginId:t._id,type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:deleted",e)}var h_={init:VM,imported:qM,deleted:WM};async function QM(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function jM(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var g_={appBackupRestored:QM,appBackupTriggered:jM};async function HM(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function YM(t){let e={name:t};await A("environment_variable:deleted",e)}async function KM(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var y_={created:HM,deleted:YM,upgradePanelOpened:KM};async function JM(t){let e={filters:t};await A("audit_log:filtered",e)}async function zM(t){let e={filters:t};await A("audit_log:downloaded",e)}var E_={filtered:JM,downloaded:zM};async function ZM(t,e){await A("row_action:created",t,e)}var T_={created:ZM};function XM(){}var e0=()=>{Er.shutdown(),console.log("Events shutdown")};var _m=async t=>{await We.deleted(t),At(t)&&await We.permissionBuilderRemoved(t),en(t)&&await We.permissionAdminRemoved(t)},t0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ra.assigned(t,i)},r0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ra.unassigned(t,i)},n0=async(t,e)=>{let r=t.roles,n=e?.roles;await t0(t,r,n),await r0(t,r,n)},Im=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await fs(r)),await kt.identifyUser(t,n),e?(await We.updated(t),s0(t,e)&&await We.permissionBuilderRemoved(t),a0(t,e)&&await We.permissionAdminRemoved(t),u0(t,e)&&await We.onboardingComplete(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await We.passwordForceReset(t),t.password!==e.password&&await We.passwordUpdated(t)):await We.created(t),i0(t,e)&&await We.permissionBuilderAssigned(t),o0(t,e)&&await We.permissionAdminAssigned(t),await n0(t,e)},i0=(t,e)=>A_(t,e,At),s0=(t,e)=>S_(t,e,At),o0=(t,e)=>A_(t,e,en),a0=(t,e)=>S_(t,e,en),u0=(t,e)=>!e?.onboardedAt&&typeof t.onboardedAt=="string",A_=(t,e,r)=>!(!r(t)||e&&r(e)),S_=(t,e,r)=>!(r(t)||!e||!r(e));var Jc={};v(Jc,{createASession:()=>l0,endSession:()=>d0,getSession:()=>xm,getSessionsForUser:()=>Kc,invalidateSessions:()=>fi,updateSessionTTL:()=>Om});var __=require("uuid");var I_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function Is(t,e){return`${t}/${e}`}async function Kc(t){return t?(await(await Yr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function fi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Kc(t)).map(o=>({key:Is(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Is(t,s)}))),i&&i.length>0){let s=await Yr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||as(`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 l0(t,e){await fi(t,{reason:"creation"});let r=await Yr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,__.v4)(),s=Is(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,I_),o}async function Om(t){let e=await Yr(),r=Is(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,I_)}async function d0(t,e){await(await Yr()).delete(Is(t,e))}async function xm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Yr()).get(Is(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Dm={};v(Dm,{PASSWORD_MAX_LENGTH:()=>wm,PASSWORD_MIN_LENGTH:()=>Rm,validatePassword:()=>bm});var Rm=+(h.PASSWORD_MIN_LENGTH||12),wm=+(h.PASSWORD_MAX_LENGTH||512);function bm(t){return!t||t.length<Rm?{valid:!1,error:`Password invalid. Minimum ${Rm} characters.`}:t.length>wm?{valid:!1,error:`Password invalid. Maximum ${wm} characters.`}:{valid:!0}}var p0=async t=>{let e=t._id;await Mt.removeUser(t),await _m(t),await rn.invalidateUser(e),await fi(e,{reason:"bulk-deletion"})},Kt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&Xr(e)?!1:await t.features.isSSOEnforced()||Ha(e)?!0:(r||(r=await fs(j())),!!(r&&r.email===e.email&&ja(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 lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=bm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await Hf(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||is();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(zn(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Zc(e,{})).length}}static async getUsersByAppAccess(e){return await Cm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Ft(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await zc(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),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 mi(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 Ft(s),c&&c._id!==o))throw new hr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[m,p]=await di([c,e]);d=m!==p?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Mc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=vm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Im(m,c),c&&m.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,m._id,m.email,m.ssoId),await rn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await am(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 ma(d)&&o.push(d)}let l=await fs(n);return t.quotas.addUsers(s.length,o.length,async()=>{s.forEach(p=>{i.push(t.buildUser(p,{hashPassword:!0,requirePassword:p.requirePassword},n,void 0,l))});let d=await Promise.all(i);await wa(d);for(let p of d)await Mt.addUser(n,p._id,p.email),await Im(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await kc(e);i&&(e=e.filter(p=>p.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(p=>p.userId)})).rows.map(p=>p.doc),a=o.map(p=>({...p,_deleted:!0})),u=await wa(a),l=(await di(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await fa(p._id)).ssoId;g&&(await wc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await p0(p)}await ct().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,f)=>(p[f._id]=f,p),m),u.forEach(p=>{let f=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:f}):n.unsuccessful.push({_id:p.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Zr(o))throw n.userId===ur()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await ma(n)?1:0;await t.quotas.removeUsers(1,s),await _m(n),await rn.invalidateUser(i),await fi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await us(Ce.CHECKLIST),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function zc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function m0(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`})).rows.map(n=>n.id)}async function h0(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(t){return await ie().bulkDocs(t)}async function mi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Da(n)),n}async function Ft(t,e){if(t==null)throw"Must supply an email address to view";let r=await dr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=Da(n)),n}async function g0(t){try{let e=await Ft(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Zc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=hc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await dr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Da(s)),s}async function Cm(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 Yp(cr(),i)).rows}function O_(t,e){if(e)return mc(at(t),e._id)}async function x_(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 dr("by_email2",{...e,startkey:i,endkey:`${n}${Fe}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var y0=8;async function R_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??y0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await mi(e.equal._id)]:r?(u=await Zc(r,a),l=d=>O_(r,d)):e?.string?.email?(u=await x_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await zc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(zn(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=kr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(zn(null,a))).rows.map(m=>m.doc),ff(u,s,{paginate:!0,property:c,getKey:l})}async function E0(){return(await gf("by_email2",{limit:0,include_docs:!1})).total_rows}async function T0(){let t=0;async function e(r){let n=await R_({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function A0(t){return delete t.admin,delete t.builder,t}function vm(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 S0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Kt.save(t,{hashPassword:!1})}async function _0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Kt.save(t,{hashPassword:!1})}var w_=3600;async function I0(t,e){let n=await Wf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Zr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function O0(t){let e=await Kt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Ca({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=I0),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await ia(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,w_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await Ve(e,async()=>{let o=await Kt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function x0(t){let e=await ia(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r),s;if(n.length){let o=await O0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,w_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ia()).delete(t)}var Lm={};v(Lm,{Writethrough:()=>Pm});var b_=1e4,Nm=null;async function Xc(){if(!Nm){let t=await Vf();Nm=new ni(t)}return Nm}function Na(t,e){return t.name+e}function Um(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function R0(t,e,r=b_){let n=await Xc(),i=e._id,s;i&&(s=await n.get(Na(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await ps({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;as("Ignoring conflict in write-through cache")}})).executed||as("Ignoring redlock conflict in write-through cache")),s=Um(a,o?null:s?.lastWrite),a._id&&await n.store(Na(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function w0(t,e){let r=await Xc(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Um(s),await r.store(n,i)}return i.doc}async function b0(t,e){let r=await Xc(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Um(s),await r.store(n,i)}return i.doc}async function D0(t,e,r){let n=await Xc();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(Na(t,i))}finally{await t.remove(i,r)}}var Pm=class{constructor(e,r=b_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return R0(this.db,e,r)}async get(e){return w0(this.db,e)}async tryGet(e){return b0(this.db,e)}async remove(e,r){return D0(this.db,e,r)}};var Mm={};v(Mm,{createCode:()=>v0,getCode:()=>N0,invalidateCode:()=>P0});var C0=be.fromHours(1).toSeconds();async function v0(t,e){let r=Ie();return await(await sa()).store(r,{userId:t,info:e},C0),r}async function N0(t){let r=await(await sa()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function P0(t){await(await sa()).delete(t)}var Fm={};v(Fm,{DocWritethrough:()=>km,DocWritethroughProcessor:()=>Pa,getProcessor:()=>L0,init:()=>D_});var U0=100,el,Pa=class t{static get queue(){return t._queue||(t._queue=new yr("docWritethroughQueue",{jobOptions:{attempts:U0}})),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}){if(r.startsWith("scimlog"))return;let i=$e(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},km=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Pa.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function D_(){return el=new Pa().init(),el}function L0(){return el||D_()}function tl(t){return`config${N}${t}`}async function Bt(t){let e=ie();try{return await e.get(tl(t))}catch(r){if(r.status===404)return;throw r}}async function M0(t){return t._id||(t._id=tl(t.type)),ie().put(t)}async function Qc(){let t=await Bt("settings");return t||(t={_id:tl("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ua({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Gc({config:t.config}),t}async function $m(){return(await Qc()).config}async function Ua(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Bt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Gc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Jr(Ce.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await Bt("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function k0(){return await Bt("google")}async function rl(){return(await k0())?.config}async function Vm(){if(!h.SELF_HOSTED)return Bm();let t=await rl();return(!t||!t.activated)&&(t=Bm()),t}function Bm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function F0(){return Bt("logos_oidc")}async function B0(){return Bt("oidc")}async function G0(){let t=(await B0())?.config;return t?.configs&&t.configs[0]}async function qm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function C_(){return Bt("smtp")}async function $0(t){let e=await C_();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},fallback:!0}}async function V0(){return(await Bt("scim"))?.config}async function q0(){return Bt("ai")}var Xm={};v(Xm,{AccessController:()=>jm,BUILTIN_ROLE_IDS:()=>Hm,Role:()=>nn,RoleHierarchyTraversal:()=>nl,RoleIDVersion:()=>Ym,builtinRoleToNumber:()=>La,checkForRoleResourceArray:()=>U_,externalRole:()=>K0,findRole:()=>Ma,getAllRoleIds:()=>X0,getAllRoles:()=>Zm,getBuiltinRole:()=>N_,getBuiltinRoles:()=>Jm,getDBRoleID:()=>L_,getExternalRoleID:()=>sn,getExternalRoleIDs:()=>M_,getRole:()=>J0,getUserRoleHierarchy:()=>zm,getUserRoleIdHierarchy:()=>P_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>Y0,prefixRoleIDNoBuiltin:()=>Qm,roleIDsAreEqual:()=>_t,roleToNumber:()=>H0,saveRoles:()=>z0,validInherits:()=>j0});var Wm=Q(require("semver"));var il=Q(require("lodash/fp/cloneDeep"));var v_=require("lodash");var Hm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...Hm,BUILDER:"BUILDER"},Ym={UUID:void 0,NAME:"name"};function Q0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var nn=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Ym.NAME}addInheritance(e){return e&&typeof e=="string"?e=Qm(e):e&&Array.isArray(e)&&(e=e.map(Qm)),this.inherits=e,this}},nl=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=Ma(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!Q0(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ma(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,v_.uniqBy)(i,s=>s._id)}},Km={ADMIN:new nn(fe.ADMIN,fe.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(fe.POWER),POWER:new nn(fe.POWER,fe.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(fe.BASIC),BASIC:new nn(fe.BASIC,fe.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(fe.PUBLIC),PUBLIC:new nn(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new nn(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Jm(){return(0,il.default)(Km)}function hi(t){return Object.values(Hm).includes(t)}function Qm(t){return hi(t)?t:lr(t)}function N_(t){let e=Object.values(Km).find(r=>t.includes(r._id));if(e)return(0,il.default)(e)}function j0(t,e){if(!e)return!1;let r=n=>t.find(i=>_t(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function La(t){let e=Jm(),r=Object.values(e).length+1;if(_t(t,fe.ADMIN)||_t(t,fe.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function H0(t){if(hi(t))return La(t);let e=await zm(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=>_t(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(hi(n.inherits))return La(n.inherits)+1;return 0};return Math.max(...e.map(r))}function Y0(t,e){return t?e&&La(t)>La(e)?e:t:e}function _t(t,e){return lr(t)===lr(e)}function K0(t){let e;return t._id&&(e=sn(t._id)),{...t,_id:e,inherits:M_(t.inherits,t.version)}}function Ma(t,e,r){let n=N_(t);n||(t=lr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,il.default)(Km.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=sn(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function J0(t,e){let r=es(),n=[];if(!hi(t)){let i=await r.tryGet(L_(t));i&&n.push(i)}return Ma(t,n,e)}async function z0(t){await es().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function Z0(t,e){let r=await Zm();if(_t(t,fe.ADMIN))return r;let n=Ma(t,r,e),i=[];return n&&(i=new nl(r,e).walk(n)),i}async function P_(t){return(await zm(t)).map(r=>r._id)}async function zm(t,e){return Z0(t,e)}function U_(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 X0(t){return(await Zm(t)).map(r=>r._id)}async function Zm(t){if(t)return ut(t,e);{let r;try{r=es()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(gc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=sn(a._id,a.version)));let i=Jm(),s=[];!r||await ek(r)?s=[fe.ADMIN,fe.POWER,fe.BASIC,fe.PUBLIC]:s=[fe.ADMIN,fe.BASIC,fe.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>_t(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=sn(a._id,u.version),n.push({...a,...u,name:a.name,_id:sn(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=U_(o.permissions,a);return n}}async function ek(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Wm.default.valid(r)?!0:!Wm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var jm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,fe.BUILDER)||_t(r,e)||_t(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await P_(r),this.userHierarchies[r]=n),n?.find(i=>_t(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 L_(t){return t?.startsWith("role")?t:lr(t)}function sn(t,e){if(t.startsWith(`role${N}`)&&(hi(t)||e===Ym.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function M_(t,e){return t&&(typeof t=="string"?sn(t,e):t.map(r=>sn(r,e)))}var eh={};v(eh,{BUILDER:()=>sk,BUILTIN_PERMISSIONS:()=>sl,CREATOR:()=>ok,GLOBAL_BUILDER:()=>ak,PermissionImpl:()=>me,PermissionLevel:()=>bs,PermissionType:()=>Wa,doesHaveBasePermission:()=>nk,getAllowedLevels:()=>G_,getBuiltinPermissionByID:()=>rk,getBuiltinPermissions:()=>tk,isPermissionLevelHigherThanRead:()=>ik,levelToNumber:()=>B_});var k_=Q(require("lodash/flatten")),F_=Q(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function B_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function G_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var sl={PUBLIC:{_id:"public",name:"Public",permissions:[new me("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new me("query","read"),new me("table","read"),new me("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new me("query","write"),new me("table","write"),new me("automation","execute"),new me("legacy_view","read"),new me("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new me("table","write"),new me("user","read"),new me("automation","execute"),new me("webhook","read"),new me("legacy_view","read"),new me("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new me("table","admin"),new me("user","admin"),new me("automation","admin"),new me("webhook","read"),new me("query","admin"),new me("legacy_view","read"),new me("app","read")]}};function tk(){return(0,F_.default)(sl)}function rk(t){return Object.values(sl).find(r=>r._id===t)}function nk(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(sl),s=(0,k_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&G_(o.level).indexOf(e)!==-1)return!0;return!1}function ik(t){return B_(t)>1}var sk="builder",ok="creator",ak="globalBuilder";var nh={};v(nh,{FlagSet:()=>al,all:()=>dk,flags:()=>th,init:()=>uk,isEnabled:()=>lk,parseEnvFlags:()=>cl,shutdown:()=>ck,testutils:()=>rh});var ul=Q(require("crypto"));var $_=require("posthog-node"),V_=Q(require("dd-trace"));var q_=require("lodash");var ol;function uk(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),ol=new $_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:be.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function ck(){ol?.shutdown()}function cl(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 al=class{constructor(e){this.flagSchema=e;this.setId=ul.randomUUID()}defaults(){return(0,q_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await V_.default.trace("features.fetch",async e=>{let r=ef(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:l,key:d,value:m}of cl(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=ur(),u=a?._id;if(!u){let l=Zp();l&&(u=ul.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,ol&&u){n.readFromPostHog=!0;let l={tenantId:c},d=await ol.getAllFlags(u,{personProperties:l,onlyEvaluateLocally:!0});for(let[m,p]of Object.entries(d))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(f){console.warn(`Error parsing posthog flag "${m}": ${p}`,f)}}}tf(this.setId,i);for(let[l,d]of Object.entries(i))n[`flags.${l}.value`]=d;return e?.addTags(n),i})}},th=new al(kh);async function lk(t){return await th.isEnabled(t)}async function dk(){return await th.fetch()}var rh={};v(rh,{setFeatureFlags:()=>W_,withFeatureFlags:()=>mk});function pk(){let t={};for(let{tenantId:e,key:r,value:n}of cl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function fk(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 W_(t,e){let r=pk();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=fk(r);return bo({TENANT_FEATURE_FLAGS:n})}function mk(t,e,r){let n=W_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var hh={};v(hh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,buildAuthMiddleware:()=>rF,buildCsrfMiddleware:()=>iF,buildTenancyMiddleware:()=>nF,builderOnly:()=>_l,builderOrAdmin:()=>Sl,google:()=>Ar,internalApi:()=>El,joiValidator:()=>Fa,oidc:()=>Sr,passport:()=>sF,platformLogout:()=>lF,refreshOAuthToken:()=>uF,ssoCallbackUrl:()=>on,updateUserOAuth:()=>cF});var mh={};v(mh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,authenticated:()=>hl,builderOnly:()=>_l,builderOrAdmin:()=>Sl,correlation:()=>iI,csp:()=>lI,csrf:()=>Tl,datasource:()=>eF,errorHandling:()=>oI,google:()=>Ar,internalApi:()=>El,ip:()=>pI,joiValidator:()=>Fa,local:()=>Os,oidc:()=>Sr,pino:()=>rI,querystringToBody:()=>aI,ssoCallbackUrl:()=>on,tenancy:()=>yl});var Os={};v(Os,{authenticate:()=>yk,options:()=>gk});function Me(t,e,r){return t(r,null,{message:e})}async function on(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await $m(),n="/api/global/auth";return Vr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var ih="Invalid credentials",hk="This account has expired. Please reset your password",gk={passReqToCallback:!0};async function yk(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Ft(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,ih)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,ih)):i.password?await Yf(r,i.password)?(delete i.password,n(null,i)):Me(n,ih):(console.info(`user=${e} has no password set`,i),Me(n,hk))}var Ar={};v(Ar,{buildVerifyFn:()=>H_,getCallbackUrl:()=>Ak,strategyFactory:()=>sh});var ka=t=>Promise.resolve(t);async function ll(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=is(t.userId),s;try{s=await mi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Ft(t.email)),!s&&e)return Me(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:j()});let o=await Ek(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Me(r,"Error saving user",a)}return r(null,o)}async function Ek(t,e){let r,n,i;if(e.profile){let s=e.profile;if(s.name){let o=s.name;o.givenName&&(r=o.givenName),o.familyName&&(n=o.familyName)}}return e.oauth2&&(i={...e.oauth2}),{...t,provider:e.provider,providerType:e.providerType,firstName:r,lastName:n,oauth2:i}}var Tk=require("passport-google-oauth").OAuth2Strategy;function H_(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 ll(s,!0,i,t)}}async function sh(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=H_(r);return new Tk({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function Ak(t){return on("google",t)}var Sr={};v(Sr,{buildVerifyFn:()=>K_,fetchStrategyConfig:()=>Ok,getCallbackUrl:()=>xk,strategyFactory:()=>Ik});var Y_=Q(require("node-fetch"));var Sk=require("@techpass/passport-openidconnect").Strategy;function K_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:_k(n,i),oauth2:{accessToken:s,refreshToken:o}};return ll(l,!1,c,t)}}function _k(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Zf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function Ik(t,e){try{let r=K_(e),n=new Sk(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function Ok(t,e){try{let{clientID:r,clientSecret:n,configUrl:i}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let s=await(0,Y_.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 xk(){return on("oidc")}var oh={};v(oh,{postAuth:()=>bk,preAuth:()=>wk});var Rk=require("passport-google-oauth").OAuth2Strategy;async function J_(){let t=await Vm();if(!t)throw new Error("No google configuration found");return t}async function wk(t,e,r){let n=await J_(),s=`${await Ua({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await sh(n,s,ka);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 bk(t,e,r){let n=await J_(),s=`${await Ua({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=ai(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new Rk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{zr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Ie();await mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var Dk=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(Dk);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],yi=(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 ph={};v(ph,{SecretOption:()=>X_,decrypt:()=>dh,decryptFile:()=>Lk,encrypt:()=>Nk,encryptFile:()=>Pk,getSecret:()=>lh});var _r=Q(require("crypto")),an=Q(require("fs")),uh=Q(require("zlib"));var ah=require("path"),dl="aes-256-ctr",Z_="-",Ck=1e4,vk=32,pl=16,ch=16,X_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(X_||{});function lh(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 fl(t,e){return _r.default.pbkdf2Sync(t,e,Ck,vk,"sha512")}function Nk(t,e="api"){let r=_r.default.randomBytes(pl),n=fl(lh(e),r),i=_r.default.createCipheriv(dl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${Z_}${a}`}function dh(t,e="api"){let[r,n]=t.split(Z_),i=Buffer.from(r,"hex"),s=fl(lh(e),i),o=_r.default.createDecipheriv(dl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function Pk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,ah.join)(t,e);if(an.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=an.default.createReadStream(i),o=an.default.createWriteStream((0,ah.join)(t,n)),a=_r.default.randomBytes(pl),u=_r.default.randomBytes(ch),c=fl(r,a),l=_r.default.createCipheriv(dl,c,u);return o.write(a),o.write(u),s.pipe(uh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function Uk(t){let e=an.default.createReadStream(t),r=await z_(e,pl),n=await z_(e,ch);return e.close(),{salt:r,iv:n}}async function Lk(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await Uk(t),s=an.default.createReadStream(t,{start:pl+ch}),o=an.default.createWriteStream(e),a=fl(r,n),u=_r.default.createDecipheriv(dl,a,i),c=uh.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 z_(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 tI=Q(require("dd-trace")),Mk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function kk(){return new Date(Date.now()-Mk).toISOString()}function eI(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 Fk(t,e){if(la(t))return{valid:!0,user:void 0};let n=dh(t).split(N)[0];return Ve(n,async()=>{let i;try{let s=ie();i=await dr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ca({userId:i,tenantId:n,populateUser:e})};throw new gs})}function ml(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function hl(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=ml(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=ml(n,"x-budibase-token"),c=ai(n,"budibase:auth")||Oc(u),l=ml(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=ml(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,_=c.userId,S;try{S=await xm(_,y),e&&e.populateUser?p=await Ca({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Ca({userId:_,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<kk()&&await Om(S),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),zr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await Fk(l,y);_&&(m=!0,g="api_key",p=S,f=!S)}!p&&d?p={tenantId:d}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&tI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),eI(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Up(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?zr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return eI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Bk=async(t,e)=>e(),gl=Bk;function yl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=ua(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"),la(r)||t.throw(403,"Unauthorized"),e()};var Gk=["GET","HEAD","OPTIONS"],$k=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Tl(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||Gk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!$k.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Al=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Sl=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?ys:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!Xr(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var _l=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?ys: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 Vk=require("koa-pino-logger"),qk=require("correlation-id");function Wk(){return{logger:Ac,genReqId:qk.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 Qk(){return h.HTTP_LOGGING?Vk(Wk()):(t,e)=>e()}var jk=Qk(),rI=jk;var nI=require("uuid"),Hk=require("correlation-id"),Yk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,nI.v4)()),Hk.withId(r,()=>e())},iI=Yk;function sI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of MT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function Kk(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:Pc(r)};if(sI(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 oI=Kk;function aI(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 cI=Q(require("crypto"));var uI={"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:","'self'"]},Jk=/^[A-Za-z0-9-*:/.]+$/,zk=async(t,e)=>{let r=cI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...uI};if(n["script-src"]=[...uI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Mo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
|
|
38
|
+
`).filter(c=>Jk.test(c));n["default-src"]=[...n["default-src"],...u]}}catch(o){console.error(`Error occurred in Content-Security-Policy middleware: ${o}`)}let s=Object.entries(n).map(([o,a])=>`${o} ${a.join(" ")}`).join("; ");t.set("Content-Security-Policy",s),await e()},lI=zk;var Fa={};v(Fa,{body:()=>Zk,params:()=>Xk});var fh=Q(require("joi"));function dI(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:fh.default.any().optional(),updatedAt:fh.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 Zk(t,e){return dI(t,"body",e)}function Xk(t,e){return dI(t,"params",e)}var pI=async(t,e)=>t.ip?await Xp(t.ip,()=>e()):e();var eF={google:oh};var fI=require("koa-passport"),tF=require("passport-local").Strategy,Il=require("passport-oauth2-refresh"),rF=hl,nF=yl,iF=Tl,sF=fI;fI.use(new tF(Os.options,Os.authenticate));async function oF(t,e){let r=await Sr.getCallbackUrl(),n,i;try{if(n=await Sr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Sr.strategyFactory(n,ka)}catch{throw new Error("Could not refresh OAuth Token")}return Il.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Il.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function aF(t,e){let r=await Ar.getCallbackUrl(t),n;try{n=await Ar.strategyFactory(t,r,ka)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Il.use(n),new Promise(i=>{Il.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function uF(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await qm(r);return n?oF(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await rl();return n?aF(n,t):{err:{data:"Google configuration not found"}}}}}async function cF(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function lF(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=ai(e,"budibase:auth"),s=await Kc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):zr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await Yc.logout(e.user?.email),await va(r)}var yh={};v(yh,{validate:()=>hF});var D=Q(require("joi")),dF=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function gh(t,e){let{error:r}=t.validate(e);if(r)throw r}function pF(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)});gh(e,t)}function fF(t){let e=D.default.object({type:D.default.string().allow(...Object.values(bl)).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(wl)),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(...dF),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()}))})});gh(n,t)}function mF(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(oe)).required(),customType:D.default.string().allow(...Object.values(ge)),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(...Fh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});gh(n,t)}function hF(t){switch(t?.type){case"component":pF(t);break;case"datasource":fF(t);break;case"automation":mF(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Eh={};v(Eh,{Client:()=>qe,clients:()=>Kr,locks:()=>ci,utils:()=>uc});var Th={};v(Th,{isBlacklisted:()=>yF,refreshBlacklist:()=>yI});var mI=Q(require("dns")),xl=Q(require("net"));var hI=require("util"),Ol,gF=(0,hI.promisify)(mI.default.lookup);async function gI(t){return xl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await gF(t,{all:!0})).map(r=>r.address)}async function yI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(xl.default.isIP(i))r.push(i);else{let s=await gI(i);r=r.concat(s)}}Ol=r}async function yF(t){if(Ol||await yI(),Ol?.length===0)return!1;let e;return xl.default.isIP(t)?e=[t]:e=await gI(t),!!Ol?.find(r=>e.includes(r))}var Sh={};v(Sh,{init:()=>TF});var EF={"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 EI(t,e){let r=EF[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ba=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=EI(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 JS()}};var TI,Ah;function TF(t){Tr||Hc(),Ah||(Ah=new Ba(t)),TI||(TI=Tr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Ah.processEvent(r,n,i)}))}var Ch={};v(Ch,{COUNT_FIELD_NAME:()=>bh,Sql:()=>bI,SqlTable:()=>Rl,designDoc:()=>Dh,utils:()=>jp});var II=require("knex");var AF=require("knex");function _h(t){return["link","formula","ai"].indexOf(t)!==-1}function AI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(m=>m.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(m=>m.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(m=>m.foreignKey);for(let[m,p]of Object.entries(e.schema)){let f=n?.schema[m];if(f&&f.type||c.includes(m)||i?.updated===m)continue;let g=p.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(m)?t.string(m,255):t.text(m);break;case"number":if(p.meta&&p.meta.toKey&&p.meta.toTable){let{toKey:E,toTable:y}=p.meta;t.integer(m).unsigned(),t.foreign(m).references(`${y}.${E}`)}else l.indexOf(m)===-1&&t.float(m);break;case"bigint":t.bigint(m);break;case"boolean":t.boolean(m);break;case"datetime":p.timeOnly?t.time(m):t.datetime(m,{useTz:!p.ignoreTimezones});break;case"array":case"bb_reference":jt.schema.isDeprecatedSingleUserColumn(p)?t.text(m):t.json(m);break;case"link":if(p.relationshipType!=="many-to-one"&&p.relationshipType!=="many-to-many"){if(!p.foreignKey||!p.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Vp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let _=y.primary[0],S=y.schema[_].externalType;S?t.specificType(p.foreignKey,S):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${_}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(m);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${p.type} is not a valid SQL type`);default:Ci.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!_h(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!_h(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||_h(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function _F(t,e,r){return t.createTable(e.name,n=>{AI(n,e,r)})}function IF(t,e,r,n,i){return t.alterTable(e.name,s=>{AI(s,e,r,n,i)})}function OF(t,e){return t.dropTable(e.name)}var Ih=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,AF.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=_F(r,e.table,e.tables);break;case"UPDATE_TABLE":if(!e.table)throw new Error("Must specify old table for update");if(this.sqlClient==="mysql2"&&e.meta?.renamed){let i=e.meta.renamed.updated;return{sql:`alter table ${e?.schema?`\`${e.schema}\`.\`${e.table.name}\``:`\`${e.table.name}\``} rename column \`${e.meta.renamed.old}\` to \`${i}\`;`,bindings:[]}}if(n=IF(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=zi(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=OF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return zi(n)}},Rl=Ih;var OI=require("lodash"),bh="__bb_total";function SI(){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 xF(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 xI(t){return Array.isArray(t)?t.map(e=>xI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function _I(t){return t.sourceType==="internal"||t.sourceId===Ul}function RF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function RI(t,e='"'){return`${e}${RF(t,e)}${e}`}function xh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=RI(t[r],e));return`[${t.join(",")}]`}function wI(t){return Bh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var wF={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},Rh=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 kr.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]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}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.requiresJsonAsStringClient()&&wI(r)&&typeof e=="object")return JSON.stringify(e);if(this.client==="oracledb"&&r.type==="datetime"&&r.timeOnly){if(e instanceof Date){let n=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),s=e.getSeconds().toString().padStart(2,"0");return`${n}:${i}:${s}`}if(typeof e=="string")return new Date(`1970-01-01T${e}Z`)}if(typeof e=="string"&&r.type==="datetime")if(r.timeOnly){if(!Wp(e))return null}else{if(qp(e))return null;if(ic(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,OI.cloneDeep)(e);for(let r of Object.values(Or)){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(Jt)){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(dn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let m=d.tableName,p=a?.[m]||m,f=l(m)||l(p),g=l(d.column);if((f||g)&&d.to&&d.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),_=Qp(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let M=a?.[_.through]||d.through,T=this.tableNameWithSchema(_.through,{alias:M,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${_.toPrimary}`,"=",`${M}.${_.to}`)}).where(`${M}.${_.from}`,"=",this.rawQuotedIdentifier(`${c}.${_.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,_)),e=e.where(I=>{I.whereExists(i(S,y)),r&&I.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${M}.${_.from}`)}))})}else{let M=`${p}.${d.to}`,T=`${c}.${d.from}`;y=y.where(M,"=",this.rawQuotedIdentifier(T)),e=e.where(I=>{I.whereExists(i(S,y.clone())),r&&I.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(f){return s?.[f]||f}function l(f,g,E,y){let _=(S,M,T)=>{let[I,...x]=M.split("."),w=x.join("."),B=c(I);return S.andWhere(le=>E(le,B?`${B}.${w}`:w,T))};for(let S in f){let M=f[S],T=$o(S),I=T.includes("."),x=n?.relationship&&I,w;if(S==="_complexIdOperator"&&(w=f[S])&&y){let B=c(u);e=y(e,w.id.map(le=>B?`${B}.${le}`:le),w.values)}else if(I)x&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,wF[g],T,(B,le)=>_(le,B,M)));else{let B=c(u);e=E(e,B?`${B}.${T}`:T,M)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(f,g=!1)=>{function E(y){return(o||f===r?.containsAny)&&(y=y.or),f===r?.notContains&&(y=y.not),y}this.client==="pg"?l(f,"contains",(y,_,S)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(xh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(xh(S))]))):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(y,_,S)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(RI(xh(S)))])):l(f,"contains",(y,_,S)=>(S.length===0||(y=y.where(M=>(f===r?.notContains&&(M=M.not),M=M.where(T=>{for(let I of S){f===r?.containsAny?T=T.or:T=T.and;let x=typeof I=="string"?`"${I.toLowerCase()}"`:I;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${x}%`)}}),f===r?.notContains&&(M=M.or.whereNull(this.rawQuotedIdentifier(_))),M))),y))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let y=this.getFieldSchema(g),_=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let S of _)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,_)},(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):f.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let y=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let _=sc(E.low),S=sc(E.high),M=this.getFieldSchema(g),T=g,I=E.high,x=E.low;return this.client==="sqlite3"&&M?.type==="datetime"&&M.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),x!=null&&(x=x.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&M?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[E.high]),x=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),_&&S?f.whereBetween(T,[x,I]):_?f.where(T,">=",x):S?f.where(T,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let y=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",E)).or.whereNull(_)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&m(r.contains),r.notContains&&m(r.notContains),r.containsAny&&m(r.containsAny,!0);let p=s?.[this.table._id]||this.table._id;return r.documentType&&!$p(this.table)&&p&&e.andWhereLike(`${p}._id`,`${xr(r.documentType)}%`),e}isSqs(){return _I(this.table)}getTableName(e){e||(e=this.table);let r=e.name;_I(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 ${bh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let _=c[m];if(!_)throw new Error(`related table "${m}" not found in datasource`);let S=a?.[m]||m,M=a?.[r]||r,T=p&&a?.[p]||p,I=this.tableNameWithSchema(m,{alias:S,schema:u}),x=[..._?.primary||[],_?.primaryDisplay].filter(V=>V),w=xF(l.filter(V=>V.split(".")[0]===S),x);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map(V=>this.buildJsonField(_,V));if(!B.length)continue;let le=B.map(V=>{let se=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${se}??`,[V[0],V[1]]).toString()}).join(","),un=`${S}.${y||f}`,$=s.from(I).orderBy(un),F=p&&y&&E,C=F?`${T}.${g}`:`${S}.${f}`,q=F?`${M}.${E}`:`${M}.${g}`;if(F){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(C),"=",this.rawQuotedIdentifier(q));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Oh()),s.select(V).from({[S]:$})),K;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),K=L(this.knex.raw(`json_group_array(json_object(${le}))`));break;case"pg":K=L(this.knex.raw(`json_agg(json_build_object(${le}))`));break;case"mariadb":K=$.select(s.raw(`json_arrayagg(json_object(${le}) LIMIT ${Oh()})`));break;case"mysql2":case"oracledb":K=L(this.knex.raw(`json_arrayagg(json_object(${le}))`));break;case"mssql":{let V=s.select("*").from({[M]:$.select(B.map(se=>s.ref(se[1]).as(se[0]))).limit(Oh())});K=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,m=this.tableNameWithSchema(o,{alias:c,schema:s}),p=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(p,function(){for(let f of n){let g=f.fromPrimary,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let p=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=p}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let m=this.query.tableAliases?.[o.name]||o.name,p=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[m]:"paginated"}));return this.addJsonRelationships(p,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},wh=class extends Rl{constructor(r,n=SI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=zi(r);return i==="sqlite3"&&(s=xI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,II.knex)(s),a,u=new Rh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:SI()}});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===Ul){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(!wI(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}log(r,n){No(this.getSqlClient(),r,n)}},bI=wh;var Dh={};v(Dh,{base:()=>bF});function bF(t){return{_id:ar,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var DF={...ca,...Ae},CF=(t={})=>{rc(t.db)};0&&(module.exports={APP_DEV,APP_DEV_PREFIX,APP_PREFIX,AutomationViewMode,BUDIBASE_DATASOURCE_TYPE,BadRequestError,BudibaseError,Config,Cookie,DEFAULT_BB_DATASOURCE_ID,DEFAULT_EMPLOYEE_TABLE_ID,DEFAULT_EXPENSES_TABLE_ID,DEFAULT_INVENTORY_TABLE_ID,DEFAULT_JOBS_TABLE_ID,DEFAULT_TENANT_ID,DeprecatedViews,DocumentType,Duration,DurationType,EmailUnavailableError,ErrorCode,FeatureDisabledError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,db,docIds,docUpdates,encryption,env,errors,events,features,getPublicError,init,installation,locks,logging,middleware,objectStore,permissions,platform,plugins,queue,redis,roles,security,sessions,setEnv,sql,tenancy,timers,userUtils,users,utils,withEnv});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|