@budibase/backend-core 3.10.5 → 3.10.7
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 +18 -18
- package/dist/index.js.map +4 -4
- package/dist/package.json +2 -2
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +4 -4
- package/dist/src/cache/base/index.d.ts +6 -6
- package/dist/src/cache/generic.d.ts +2 -2
- package/dist/src/cache/user.js +2 -3
- package/dist/src/cache/user.js.map +1 -1
- package/dist/src/docIds/ids.d.ts +1 -0
- package/dist/src/docIds/ids.js +5 -1
- package/dist/src/docIds/ids.js.map +1 -1
- package/dist/src/objectStore/objectStore.js +1 -1
- package/dist/src/objectStore/objectStore.js.map +1 -1
- package/dist/src/redis/init.js +10 -10
- package/dist/src/redis/init.js.map +1 -1
- package/dist/src/redis/redis.d.ts +24 -20
- package/dist/src/redis/redis.js +200 -248
- package/dist/src/redis/redis.js.map +1 -1
- package/dist/src/redis/redlockImpl.js +1 -1
- package/dist/src/redis/redlockImpl.js.map +1 -1
- package/dist/src/redis/utils.d.ts +2 -2
- package/dist/src/redis/utils.js +10 -21
- package/dist/src/redis/utils.js.map +1 -1
- package/dist/src/sql/utils.d.ts +1 -0
- package/dist/src/sql/utils.js +9 -0
- package/dist/src/sql/utils.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
"use strict";var vI=Object.create;var $a=Object.defineProperty;var NI=Object.getOwnPropertyDescriptor;var PI=Object.getOwnPropertyNames;var UI=Object.getPrototypeOf,LI=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})},Nh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of PI(e))!LI.call(t,i)&&i!==r&&$a(t,i,{get:()=>e[i],enumerable:!(n=NI(e,i))||n.enumerable});return t};var Q=(t,e,r)=>(r=t!=null?vI(UI(t)):{},Nh(e||!t||!t.__esModule?$a(r,"default",{value:t,enumerable:!0}):r,t)),MI=t=>Nh($a({},"__esModule",{value:!0}),t);var ng=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(dn,We){var Or=B.w(L.$u?Date.UTC(L.$y,We,dn):new Date(L.$y,We,dn),L);return K?Or:Or.endOf(a)},Oe=function(dn,We){return B.w(L.toDate()[dn].apply(L.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(We)),L)},ve=this.$W,W=this.$M,dt=this.$D,Ai="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 ln=this.$locale().weekStart||0,xs=(ve<ln?ve+7:ve)-ln;return se(K?dt-xs:dt+(6-xs),W);case a:case m:return Oe(Ai+"Hours",0);case o:return Oe(Ai+"Minutes",1);case s:return Oe(Ai+"Seconds",2);case i:return Oe(Ai+"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,Ai=L.meridiem,ln=function(We,Or,Rs,Ga){return We&&(We[Or]||We(q,K))||Rs[Or].slice(0,Ga)},xs=function(We){return B.s(se%12||12,We,"0")},dn=Ai||function(We,Or,Rs){var Ga=We<12?"AM":"PM";return Rs?Ga.toLowerCase():Ga};return K.replace(g,function(We,Or){return Or||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 ln(L.monthsShort,ve,dt,3);case"MMMM":return ln(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 ln(L.weekdaysMin,q.$W,W,2);case"ddd":return ln(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 dn(se,Oe,!0);case"A":return dn(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}(We)||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()},$}(),cn=le.prototype;return w.prototype=cn,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",m]].forEach(function($){cn[$[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(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.Err=je.Valid=je.err=je.valid=void 0;var cx=t=>new uu(t);je.valid=cx;var lx=t=>new cu(t);je.err=lx;var uu=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,je.valid)(e(this.value))}mapErr(e){return(0,je.valid)(this.value)}};je.Valid=uu;var cu=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,je.err)(this.error)}mapErr(e){return(0,je.err)(e(this.error))}};je.Err=cu});var Rt=H(ag=>{"use strict";Object.defineProperty(ag,"__esModule",{value:!0})});var Nr=H(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});qt();var re=xt();Rt();var dx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],px=["sun","mon","tue","wed","thu","fri","sat"],fx=(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&&dx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&px.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)},mx=(t,e,r)=>{if(t==="*")return fx(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)},ug=(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),hx=(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 mx(n[0],e,r);if(n.length===2){let i=ug(n[0],e,r,0),s=ug(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)")},gx=(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=hx(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)},yx=(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(gx(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=yx});var cg=H(Ms=>{"use strict";var Ex=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});qt();var Tx=xt(),Ax=Ex(Nr());Rt();var Sx=(t,e)=>{if(!t.seconds)return(0,Tx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Ax.default)(r,"seconds",e)};Ms.default=Sx});var lg=H(ks=>{"use strict";var _x=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});qt();var Ix=xt(),Ox=_x(Nr());Rt();var xx=(t,e)=>{if(!t.minutes)return(0,Ix.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Ox.default)(r,"minutes",e)};ks.default=xx});var dg=H(Fs=>{"use strict";var Rx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var wx=xt(),bx=Rx(Nr());Rt();var Dx=(t,e)=>{if(!t.hours)return(0,wx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,bx.default)(r,"hours",e)};Fs.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});qt();var Bs=xt(),vx=Cx(Nr());Rt();var Nx=(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,vx.default)(r,"daysOfMonth",e)};Gs.default=Nx});var fg=H($s=>{"use strict";var Px=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var Ux=xt(),Lx=Px(Nr());Rt();var Mx=(t,e)=>{if(!t.months)return(0,Ux.err)(["months field is undefined."]);let{months:r}=t;return(0,Lx.default)(r,"months",e)};$s.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});qt();var Vs=xt(),Fx=kx(Nr());Rt();var Bx=(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,Fx.default)(r,"daysOfWeek",e)};qs.default=Bx});var hg=H(Ws=>{"use strict";var Gx=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});qt();var $x=xt(),Vx=Gx(Nr());Rt();var qx=(t,e)=>{if(!t.years)return(0,$x.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Vx.default)(r,"years",e)};Ws.default=qx});var Tg=H((GW,Eg)=>{"use strict";var jl;try{jl=Map}catch{}var Hl;try{Hl=Set}catch{}function gg(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(yg);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]:gg(t[i],e,r)}return n}return t}function yg(t){return gg(t,[],[])}Eg.exports=yg});var Qs=H(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});Yl.default=Jx;var Wx=Object.prototype.toString,Qx=Error.prototype.toString,jx=RegExp.prototype.toString,Hx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",Yx=/^Symbol\((.*)\)(.*)$/;function Kx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Ag(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Kx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Hx.call(t).replace(Yx,"Symbol($1)");let n=Wx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Qx.call(t)+"]":n==="RegExp"?jx.call(t):null}function Jx(t,e){let r=Ag(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Ag(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 Sg=zx(Qs());function zx(t){return t&&t.__esModule?t:{default:t}}var _g={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,Sg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Sg.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Ne.mixed=_g;var Ig={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=Ig;var Og={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Ne.number=Og;var xg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=xg;var Rg={isValue:"${path} field must be ${value}"};Ne.boolean=Rg;var wg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=wg;var bg={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=bg;var Zx=Object.assign(Object.create(null),{mixed:_g,string:Ig,number:Og,date:xg,object:wg,array:bg,boolean:Rg});Ne.default=Zx});var Pi=H(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.default=void 0;var Xx=t=>t&&t.__isYupSchema__;lu.default=Xx});var Cg=H(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var eR=Dg(require("lodash/has")),tR=Dg(Pi());function Dg(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,eR.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,tR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},rR=Kl;du.default=rR});var zl=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.default=nR;function nR(t){return t==null?[]:[].concat(t)}});var Cn=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var iR=vg(Qs()),sR=vg(zl());function vg(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 oR=/\$\{\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(oR,(i,s)=>(0,iR.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,sR.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)}};pu.default=Xl});var fu=H(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});td.default=cR;var ed=aR(Cn());function aR(t){return t&&t.__esModule?t:{default:t}}var uR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function cR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=uR(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 js=H((YW,Mg)=>{"use strict";function vn(t){this._maxSize=t,this.clear()}vn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};vn.prototype.get=function(t){return this._values[t]};vn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var lR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Lg=/^\d+$/,dR=/^\d/,pR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,fR=/^\s*(['"]?)(.*?)(\1)\s*$/,id=512,Ng=new vn(id),Pg=new vn(id),Ug=new vn(id);Mg.exports={Cache:vn,split:nd,normalizePath:rd,setter:function(t){var e=rd(t);return Pg.get(t)||Pg.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 Ug.get(t)||Ug.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)||Lg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){mR(Array.isArray(t)?t:nd(t),e,r)}};function rd(t){return Ng.get(t)||Ng.set(t,nd(t).map(function(e){return e.replace(fR,"$2")}))}function nd(t){return t.match(lR)||[""]}function mR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(yR(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 hR(t){return t.match(dR)&&!t.match(Lg)}function gR(t){return pR.test(t)}function yR(t){return!sd(t)&&(hR(t)||gR(t))}});var Nn=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=TR;Ys.default=void 0;var ER=js(),mu={context:"$",value:"."};function TR(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]===mu.context,this.isValue=this.key[0]===mu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?mu.context:this.isValue?mu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,ER.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Ys.default=Hs;Hs.prototype.__isYupRef=!0});var kg=H(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=IR;var AR=od(require("lodash/mapValues")),hu=od(Cn()),SR=od(Nn());function od(t){return t&&t.__esModule?t:{default:t}}function gu(){return gu=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},gu.apply(this,arguments)}function _R(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function IR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=_R(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 SR.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let x=(0,AR.default)(gu({value:i,originalValue:u,label:o,path:I.path||s},p,I.params),y),w=new hu.default(hu.default.formatError(I.message||f,x),i,x.path,I.type||d);return w.params=x,w}let S=gu({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=>{hu.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}hu.default.isError(M)?n(M):M?n(null,M):n(_())}return e.OPTIONS=t,e}});var ud=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=Fg;Ks.default=void 0;var OR=js(),xR=t=>t.substr(0,t.length-1).substr(1);function Fg(t,e,r,n=r){let i,s,o;return e?((0,OR.forEach)(e,(a,u,c)=>{let l=u?xR(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 RR=(t,e,r,n)=>Fg(t,e,r,n).schema,wR=RR;Ks.default=wR});var Gg=H(yu=>{"use strict";Object.defineProperty(yu,"__esModule",{value:!0});yu.default=void 0;var Bg=bR(Nn());function bR(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){Bg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Bg.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}};yu.default=cd});var rr=H(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.default=void 0;var $g=tr(Tg()),Ui=er(),DR=tr(Cg()),Vg=tr(fu()),Eu=tr(kg()),qg=tr(Qs()),CR=tr(Nn()),vR=ud(),NR=tr(zl()),Wg=tr(Cn()),Qg=tr(Gg());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 Qg.default,this._blacklist=new Qg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ui.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,$g.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,qg.default)(e),o=(0,qg.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 RI=Object.create;var La=Object.defineProperty;var wI=Object.getOwnPropertyDescriptor;var bI=Object.getOwnPropertyNames;var DI=Object.getPrototypeOf,CI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)La(t,r,{get:e[r],enumerable:!0})},wh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of bI(e))!CI.call(t,i)&&i!==r&&La(t,i,{get:()=>e[i],enumerable:!(n=wI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?RI(DI(t)):{},wh(e||!t||!t.__esModule?La(r,"default",{value:t,enumerable:!0}):r,t)),vI=t=>wh(La({},"__esModule",{value:!0}),t);var Zh=H((Fl,kl)=>{"use strict";(function(t,e){typeof Fl=="object"&&typeof kl<"u"?kl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Fl,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 k=["th","st","nd","rd"],v=$%100;return"["+$+(k[(v-20)%10]||k[v]||k[0])+"]"}},y=function($,k,v){var q=String($);return!q||q.length>=k?$:""+Array(k+1-q.length).join(v)+$},_={s:y,z:function($){var k=-$.utcOffset(),v=Math.abs(k),q=Math.floor(v/60),L=v%60;return(k<=0?"+":"-")+y(q,2,"0")+":"+y(L,2,"0")},m:function $(k,v){if(k.date()<v.date())return-$(v,k);var q=12*(v.year()-k.year())+(v.month()-k.month()),L=k.clone().add(q,c),Y=v-L<0,V=k.clone().add(q+(Y?-1:1),c);return+(-(q+(v-L)/(Y?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 $(k,v,q){var L;if(!k)return S;if(typeof k=="string"){var Y=k.toLowerCase();M[Y]&&(L=Y),v&&(M[Y]=v,L=Y);var V=k.split("-");if(!L&&V.length>1)return $(V[0])}else{var se=k.name;M[se]=k,L=se}return!q&&L&&(S=L),L||!q&&S},w=function($,k){if(I($))return $.clone();var v=typeof k=="object"?k:{};return v.date=$,v.args=arguments,new le(v)},B=_;B.l=x,B.i=I,B.w=function($,k){return w($,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var le=function(){function $(v){this.$L=x(v.locale,null,!0),this.parse(v),this.$x=this.$x||v.x||{},this[T]=!0}var k=$.prototype;return k.parse=function(v){this.$d=function(q){var L=q.date,Y=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 Y?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)}(v),this.init()},k.init=function(){var v=this.$d;this.$y=v.getFullYear(),this.$M=v.getMonth(),this.$D=v.getDate(),this.$W=v.getDay(),this.$H=v.getHours(),this.$m=v.getMinutes(),this.$s=v.getSeconds(),this.$ms=v.getMilliseconds()},k.$utils=function(){return B},k.isValid=function(){return this.$d.toString()!==p},k.isSame=function(v,q){var L=w(v);return this.startOf(q)<=L&&L<=this.endOf(q)},k.isAfter=function(v,q){return w(v)<this.startOf(q)},k.isBefore=function(v,q){return this.endOf(q)<w(v)},k.$g=function(v,q,L){return B.u(v)?this[q]:this.set(L,v)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(v,q){var L=this,Y=!!B.u(q)||q,V=B.p(v),se=function(ln,Qe){var Ir=B.w(L.$u?Date.UTC(L.$y,Qe,ln):new Date(L.$y,Qe,ln),L);return Y?Ir:Ir.endOf(a)},Oe=function(ln,Qe){return B.w(L.toDate()[ln].apply(L.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(Qe)),L)},ve=this.$W,Fe=this.$M,Q=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case d:return Y?se(1,0):se(31,11);case c:return Y?se(1,Fe):se(0,Fe+1);case u:var cn=this.$locale().weekStart||0,_s=(ve<cn?ve+7:ve)-cn;return se(Y?Q-_s:Q+(6-_s),Fe);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()}},k.endOf=function(v){return this.startOf(v,!1)},k.$set=function(v,q){var L,Y=B.p(v),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)[Y],Oe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===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},k.set=function(v,q){return this.clone().$set(v,q)},k.get=function(v){return this[B.p(v)]()},k.add=function(v,q){var L,Y=this;v=Number(v);var V=B.p(q),se=function(Fe){var Q=w(Y);return B.w(Q.date(Q.date()+Math.round(Fe*v)),Y)};if(V===c)return this.set(c,this.$M+v);if(V===d)return this.set(d,this.$y+v);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()+v*Oe;return B.w(ve,this)},k.subtract=function(v,q){return this.add(-1*v,q)},k.format=function(v){var q=this,L=this.$locale();if(!this.isValid())return L.invalidDate||p;var Y=v||"YYYY-MM-DDTHH:mm:ssZ",V=B.z(this),se=this.$H,Oe=this.$m,ve=this.$M,Fe=L.weekdays,Q=L.months,Ei=L.meridiem,cn=function(Qe,Ir,Is,Ua){return Qe&&(Qe[Ir]||Qe(q,Y))||Is[Ir].slice(0,Ua)},_s=function(Qe){return B.s(se%12||12,Qe,"0")},ln=Ei||function(Qe,Ir,Is){var Ua=Qe<12?"AM":"PM";return Is?Ua.toLowerCase():Ua};return Y.replace(g,function(Qe,Ir){return Ir||function(Is){switch(Is){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,Q,3);case"MMMM":return cn(Q,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,Fe,2);case"ddd":return cn(L.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(se);case"HH":return B.s(se,2,"0");case"h":return _s(1);case"hh":return _s(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(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(v,q,L){var Y,V=this,se=B.p(q),Oe=w(v),ve=(Oe.utcOffset()-this.utcOffset())*e,Fe=this-Oe,Q=function(){return B.m(V,Oe)};switch(se){case d:Y=Q()/12;break;case c:Y=Q();break;case l:Y=Q()/3;break;case u:Y=(Fe-ve)/6048e5;break;case a:Y=(Fe-ve)/864e5;break;case o:Y=Fe/r;break;case s:Y=Fe/e;break;case i:Y=Fe/t;break;default:Y=Fe}return L?Y:B.a(Y)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return M[this.$L]},k.locale=function(v,q){if(!v)return this.$L;var L=this.clone(),Y=x(v,q,!0);return Y&&(L.$L=Y),L},k.clone=function(){return B.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},$}(),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(k){return this.$g(k,$[0],$[1])}}),w.extend=function($,k){return $.$i||($(k,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 Ot=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var ix=t=>new ru(t);He.valid=ix;var sx=t=>new nu(t);He.err=sx;var ru=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=ru;var nu=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=nu});var xt=H(rg=>{"use strict";Object.defineProperty(rg,"__esModule",{value:!0})});var vr=H(Vl=>{"use strict";Object.defineProperty(Vl,"__esModule",{value:!0});Vt();var re=Ot();xt();var ox=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],ax=["sun","mon","tue","wed","thu","fri","sat"],ux=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ns=(t,e,r)=>{if(e==="months"&&r.useAliases&&ox.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&ax.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)},cx=(t,e,r)=>{if(t==="*")return ux(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):Ns(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):Ns(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."):Ns(n,e,r)}return Ns(t,e,r)},ng=(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):Ns(t,e,r),lx=(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 cx(n[0],e,r);if(n.length===2){let i=ng(n[0],e,r,0),s=ng(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)")},dx=(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=lx(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)},px=(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(dx(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)};Vl.default=px});var ig=H(Ps=>{"use strict";var fx=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Vt();var mx=Ot(),hx=fx(vr());xt();var gx=(t,e)=>{if(!t.seconds)return(0,mx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,hx.default)(r,"seconds",e)};Ps.default=gx});var sg=H(Us=>{"use strict";var yx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Vt();var Ex=Ot(),Tx=yx(vr());xt();var Ax=(t,e)=>{if(!t.minutes)return(0,Ex.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Tx.default)(r,"minutes",e)};Us.default=Ax});var og=H(Ls=>{"use strict";var Sx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Vt();var _x=Ot(),Ix=Sx(vr());xt();var Ox=(t,e)=>{if(!t.hours)return(0,_x.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Ix.default)(r,"hours",e)};Ls.default=Ox});var ag=H(Fs=>{"use strict";var xx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Ms=Ot(),Rx=xx(vr());xt();var wx=(t,e)=>{if(!t.daysOfMonth)return(0,Ms.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ms.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ms.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Ms.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Ms.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Rx.default)(r,"daysOfMonth",e)};Fs.default=wx});var ug=H(ks=>{"use strict";var bx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var Dx=Ot(),Cx=bx(vr());xt();var vx=(t,e)=>{if(!t.months)return(0,Dx.err)(["months field is undefined."]);let{months:r}=t;return(0,Cx.default)(r,"months",e)};ks.default=vx});var cg=H(Gs=>{"use strict";var Nx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=Ot(),Px=Nx(vr());xt();var Ux=(t,e)=>{if(!t.daysOfWeek)return(0,Bs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&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.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Bs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Px.default)(r,"daysOfWeek",e)};Gs.default=Ux});var lg=H($s=>{"use strict";var Lx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var Mx=Ot(),Fx=Lx(vr());xt();var kx=(t,e)=>{if(!t.years)return(0,Mx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Fx.default)(r,"years",e)};$s.default=kx});var mg=H((FW,fg)=>{"use strict";var ql;try{ql=Map}catch{}var Wl;try{Wl=Set}catch{}function dg(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(pg);if(ql&&t instanceof ql)return new Map(Array.from(t.entries()));if(Wl&&t instanceof Wl)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]:dg(t[i],e,r)}return n}return t}function pg(t){return dg(t,[],[])}fg.exports=pg});var Vs=H(Ql=>{"use strict";Object.defineProperty(Ql,"__esModule",{value:!0});Ql.default=Qx;var Bx=Object.prototype.toString,Gx=Error.prototype.toString,$x=RegExp.prototype.toString,Vx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",qx=/^Symbol\((.*)\)(.*)$/;function Wx(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function hg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return Wx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Vx.call(t).replace(qx,"Symbol($1)");let n=Bx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Gx.call(t)+"]":n==="RegExp"?$x.call(t):null}function Qx(t,e){let r=hg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=hg(this[n],e);return s!==null?s:i},2)}});var Xt=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 gg=jx(Vs());function jx(t){return t&&t.__esModule?t:{default:t}}var yg={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,gg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,gg.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=yg;var Eg={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=Eg;var Tg={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=Tg;var Ag={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Ag;var Sg={isValue:"${path} field must be ${value}"};Ne.boolean=Sg;var _g={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=_g;var Ig={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=Ig;var Hx=Object.assign(Object.create(null),{mixed:yg,string:Eg,number:Tg,date:Ag,object:_g,array:Ig,boolean:Sg});Ne.default=Hx});var vi=H(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.default=void 0;var Kx=t=>t&&t.__isYupSchema__;iu.default=Kx});var xg=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var Yx=Og(require("lodash/has")),Jx=Og(vi());function Og(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,Yx.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,Jx.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},zx=jl;su.default=zx});var Kl=H(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.default=Zx;function Zx(t){return t==null?[]:[].concat(t)}});var Dn=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var Xx=Rg(Vs()),eR=Rg(Kl());function Rg(t){return t&&t.__esModule?t:{default:t}}function Yl(){return Yl=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Yl.apply(this,arguments)}var tR=/\$\{\s*(\w+)\s*\}/g,Jl=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=Yl({},r,{path:n})),typeof e=="string"?e.replace(tR,(i,s)=>(0,Xx.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,eR.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)}};ou.default=Jl});var au=H(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=iR;var zl=rR(Dn());function rR(t){return t&&t.__esModule?t:{default:t}}var nR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function iR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=nR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new zl.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(!zl.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 zl.default(o,s,u),s);return}c(null,s)}})}}});var qs=H((QW,vg)=>{"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 sR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Cg=/^\d+$/,oR=/^\d/,aR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,uR=/^\s*(['"]?)(.*?)(\1)\s*$/,td=512,wg=new Cn(td),bg=new Cn(td),Dg=new Cn(td);vg.exports={Cache:Cn,split:ed,normalizePath:Xl,setter:function(t){var e=Xl(t);return bg.get(t)||bg.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=Xl(t);return Dg.get(t)||Dg.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+(rd(r)||Cg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){cR(Array.isArray(t)?t:ed(t),e,r)}};function Xl(t){return wg.get(t)||wg.set(t,ed(t).map(function(e){return e.replace(uR,"$2")}))}function ed(t){return t.match(sR)||[""]}function cR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(pR(i)&&(i='"'+i+'"'),a=rd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function rd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function lR(t){return t.match(oR)&&!t.match(Cg)}function dR(t){return aR.test(t)}function pR(t){return!rd(t)&&(lR(t)||dR(t))}});var vn=H(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=mR;Qs.default=void 0;var fR=qs(),uu={context:"$",value:"."};function mR(t,e){return new Ws(t,e)}var Ws=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]===uu.context,this.isValue=this.key[0]===uu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?uu.context:this.isValue?uu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,fR.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}};Qs.default=Ws;Ws.prototype.__isYupRef=!0});var Ng=H(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=ER;var hR=nd(require("lodash/mapValues")),cu=nd(Dn()),gR=nd(vn());function nd(t){return t&&t.__esModule?t:{default:t}}function lu(){return lu=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},lu.apply(this,arguments)}function yR(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 ER(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=yR(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 gR.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let x=(0,hR.default)(lu({value:i,originalValue:u,label:o,path:I.path||s},p,I.params),y),w=new cu.default(cu.default.formatError(I.message||f,x),i,x.path,I.type||d);return w.params=x,w}let S=lu({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=>{cu.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}cu.default.isError(M)?n(M):M?n(null,M):n(_())}return e.OPTIONS=t,e}});var sd=H(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Pg;js.default=void 0;var TR=qs(),AR=t=>t.substr(0,t.length-1).substr(1);function Pg(t,e,r,n=r){let i,s,o;return e?((0,TR.forEach)(e,(a,u,c)=>{let l=u?AR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var SR=(t,e,r,n)=>Pg(t,e,r,n).schema,_R=SR;js.default=_R});var Lg=H(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var Ug=IR(vn());function IR(t){return t&&t.__esModule?t:{default:t}}var od=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){Ug.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Ug.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}};du.default=od});var tr=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var Mg=er(mg()),Ni=Xt(),OR=er(xg()),Fg=er(au()),pu=er(Ng()),kg=er(Vs()),xR=er(vn()),RR=sd(),wR=er(Kl()),Bg=er(Dn()),Gg=er(Lg());function er(t){return t&&t.__esModule?t:{default:t}}function ft(){return ft=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},ft.apply(this,arguments)}var Rt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Gg.default,this._blacklist=new Gg.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ni.mixed.notType)}),this.type=e?.type||"mixed",this.spec=ft({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=ft({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Mg.default)(ft({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=ft({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(ft({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,kg.default)(e),o=(0,kg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
|
|
2
2
|
|
|
3
3
|
attempted value: ${s}
|
|
4
|
-
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,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,Vg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Vg.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(Wg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Wg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,$g.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=Ui.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ui.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=Ui.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Eu.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,NR.default)(e).map(s=>new CR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new DR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Eu.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=Ui.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Eu.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=Ui.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Eu.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)}}};Tu.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,vR.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 Hg=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=jg;Js.default=void 0;var PR=UR(rr());function UR(t){return t&&t.__esModule?t:{default:t}}var ld=PR.default,LR=ld;Js.default=LR;function jg(){return new ld}jg.prototype=ld.prototype});var Li=H(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var MR=t=>t==null;Au.default=MR});var Zg=H(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=zg;Zs.default=void 0;var kR=Jg(rr()),Yg=er(),Kg=Jg(Li());function Jg(t){return t&&t.__esModule?t:{default:t}}function zg(){return new zs}var zs=class extends kR.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=Yg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Kg.default)(r)||r===!0}})}isFalse(e=Yg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Kg.default)(r)||r===!1}})}};Zs.default=zs;zg.prototype=zs.prototype});var ty=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=ey;eo.default=void 0;var Wt=er(),nr=Xg(Li()),FR=Xg(rr());function Xg(t){return t&&t.__esModule?t:{default:t}}var BR=/^((([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,GR=/^((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,$R=/^(?:[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,VR=t=>(0,nr.default)(t)||t===t.trim(),qR={}.toString();function ey(){return new Xs}var Xs=class extends FR.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===qR?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=Wt.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=Wt.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=Wt.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||Wt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Wt.string.email){return this.matches(BR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Wt.string.url){return this.matches(GR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Wt.string.uuid){return this.matches($R,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Wt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:VR})}lowercase(e=Wt.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=Wt.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;ey.prototype=Xs.prototype});var iy=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=ny;ro.default=void 0;var Pn=er(),Un=ry(Li()),WR=ry(rr());function ry(t){return t&&t.__esModule?t:{default:t}}var QR=t=>t!=+t;function ny(){return new to}var to=class extends WR.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"&&!QR(e)}min(e,r=Pn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Un.default)(n)||n>=this.resolve(e)}})}max(e,r=Pn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Un.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Pn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Un.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Pn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Un.default)(n)||n>this.resolve(e)}})}positive(e=Pn.number.positive){return this.moreThan(0,e)}negative(e=Pn.number.negative){return this.lessThan(0,e)}integer(e=Pn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Un.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Un.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,Un.default)(i)?i:Math[e](i))}};ro.default=to;ny.prototype=to.prototype});var sy=H(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=HR;var jR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function HR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=jR.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 uy=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=fd;no.default=void 0;var YR=Su(sy()),oy=er(),ay=Su(Li()),KR=Su(Nn()),JR=Su(rr());function Su(t){return t&&t.__esModule?t:{default:t}}var pd=new Date(""),zR=t=>Object.prototype.toString.call(t)==="[object Date]";function fd(){return new Mi}var Mi=class extends JR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,YR.default)(e),isNaN(e)?pd:new Date(e))})})}_typeCheck(e){return zR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(KR.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=oy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,ay.default)(i)||i>=this.resolve(n)}})}max(e,r=oy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,ay.default)(i)||i<=this.resolve(n)}})}};no.default=Mi;Mi.INVALID_DATE=pd;fd.prototype=Mi.prototype;fd.INVALID_DATE=pd});var ly=H((aQ,md)=>{"use strict";md.exports=function(t){return cy(ZR(t),t)};md.exports.array=cy;function cy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=XR(e),a=ew(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 ZR(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 XR(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 ew(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var dy=H(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=ow;var tw=_u(require("lodash/has")),rw=_u(ly()),nw=js(),iw=_u(Nn()),sw=_u(Pi());function _u(t){return t&&t.__esModule?t:{default:t}}function ow(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,nw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,tw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),iw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,sw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return rw.default.array(n,r).reverse()}});var fy=H(gd=>{"use strict";Object.defineProperty(gd,"__esModule",{value:!0});gd.default=aw;function py(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 aw(t){return(e,r)=>py(t,e)-py(t,r)}});var Ay=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Ty;so.default=void 0;var my=Qt(require("lodash/has")),hy=Qt(require("lodash/snakeCase")),uw=Qt(require("lodash/camelCase")),cw=Qt(require("lodash/mapKeys")),lw=Qt(require("lodash/mapValues")),dw=js(),gy=er(),pw=Qt(dy()),Ey=Qt(fy()),fw=Qt(fu()),mw=Qt(Cn()),yd=Qt(rr());function Qt(t){return t&&t.__esModule?t:{default:t}}function ki(){return ki=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},ki.apply(this,arguments)}var yy=t=>Object.prototype.toString.call(t)==="[object Object]";function hw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var gw=(0,Ey.default)([]),io=class extends yd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=gw,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 yy(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=ki({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let m=s[d],p=(0,my.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(!mw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!yy(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],ki({},r,{path:E,from:o,strict:!0,parent:d,originalValue:a[p]}),g);return}g(null)});(0,fw.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=ki({},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,Ey.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,pw.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,dw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,my.default)(s,e)&&(o=ki({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=gy.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=hw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=gy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,cw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(uw.default)}snakeCase(){return this.transformKeys(hy.default)}constantCase(){return this.transformKeys(e=>(0,hy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,lw.default)(this.fields,r=>r.describe()),e}};so.default=io;function Ty(t){return new io(t)}Ty.prototype=io.prototype});var _y=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Sy;ao.default=void 0;var Ed=Fi(Li()),yw=Fi(Pi()),Ew=Fi(Qs()),Td=er(),Tw=Fi(fu()),Aw=Fi(Cn()),Sw=Fi(rr());function Fi(t){return t&&t.__esModule?t:{default:t}}function Iu(){return Iu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Iu.apply(this,arguments)}function Sy(t){return new oo(t)}var oo=class extends Sw.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,Iu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,f)=>{if(p){if(!Aw.default.isError(p)||l)return void n(p,f);o.push(p)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}m=m||f;let g=new Array(f.length);for(let E=0;E<f.length;E++){let y=f[E],_=`${r.path||""}[${E}]`,S=Iu({},r,{path:_,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,S,T)}(0,Tw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,yw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Ew.default)(e));return r.innerType=e,r}length(e,r=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)}};ao.default=oo;Sy.prototype=oo.prototype});var Iy=H(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=Ow;uo.default=void 0;var _w=Iw(Pi());function Iw(t){return t&&t.__esModule?t:{default:t}}function Ow(t){return new Ou(t)}var Ou=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,_w.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},xw=Ou;uo.default=xw});var Oy=H(Ad=>{"use strict";Object.defineProperty(Ad,"__esModule",{value:!0});Ad.default=bw;var Rw=ww(er());function ww(t){return t&&t.__esModule?t:{default:t}}function bw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Rw.default[e][r]=t[e][r]})})}});var _d=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Lw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return xy.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 Ry.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return Cy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return Dw.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return Cw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return vw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return Nw.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return vy.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return Pw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return Uw.default}});var xy=Ln(Hg()),Sd=Ln(Zg()),Ry=Ln(ty()),wy=Ln(iy()),by=Ln(uy()),Dy=Ln(Ay()),Cy=Ln(_y()),Dw=Nn(),Cw=Iy(),vw=co(Cn()),Nw=co(ud()),vy=co(Pi()),Pw=co(Oy()),Uw=co(rr());function co(t){return t&&t.__esModule?t:{default:t}}function Ny(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Ny=function(){return t},t}function Ln(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Ny();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 Lw(t,e,r){if(!t||!(0,vy.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 Py=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 Mw=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]}),kw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Fw=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)&&Mw(e,t,r);return kw(e,t),e},Bw=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=Fw(_d());_d();var lo=xt(),Gw=Bw(Py());Rt();var Mn={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}}},Uy=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(),$w=t=>Mn[t]?(0,lo.valid)(Mn[t]):(0,lo.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=$w;var Vw=()=>Mn;Pe.getOptionPresets=Vw;var qw=(t,e)=>{Mn[t]=Uy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=qw;var Ww=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,_,S,M;try{(0,Gw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Mn[t.preset])return(0,lo.err)([`Option preset ${t.preset} does not exist.`]);T=Mn[t.preset]}else T=t.preset;else T=Mn.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:Uy.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=Ww});var qt=H((po,wd)=>{"use strict";var Fn=po&&po.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(po,"__esModule",{value:!0});var kn=xt(),Qw=Fn(cg()),jw=Fn(lg()),Hw=Fn(dg()),Yw=Fn(pg()),Kw=Fn(fg()),Jw=Fn(mg()),zw=Fn(hg()),Zw=xd();Rt();var Xw=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,kn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,kn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,kn.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,kn.valid)(n)},Rd=(t,e={})=>{let r=(0,Zw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Xw(t,n);if(i.isError())return(0,kn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Qw.default)(s,n)),o.push((0,jw.default)(s,n)),o.push((0,Hw.default)(s,n)),o.push((0,Yw.default)(s,n)),o.push((0,Kw.default)(s,n)),o.push((0,Jw.default)(s,n)),n.useYears&&o.push((0,zw.default)(s,n)),o.every(u=>u.isValid()))return(0,kn.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,kn.err)(a)};po.default=Rd;wd.exports=Rd;wd.exports.default=Rd});var iT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},Md=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},kd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Fd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},$n=class extends sr{},vu=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},He=class extends sr{},jt=class extends sr{constructor(){super("Zone is an abstract class")}},b="numeric",Ct="short",nt="long",Nu={year:b,month:b,day:b},oE={year:b,month:Ct,day:b},eb={year:b,month:Ct,day:b,weekday:Ct},aE={year:b,month:nt,day:b},uE={year:b,month:nt,day:b,weekday:nt},cE={hour:b,minute:b},lE={hour:b,minute:b,second:b},dE={hour:b,minute:b,second:b,timeZoneName:Ct},pE={hour:b,minute:b,second:b,timeZoneName:nt},fE={hour:b,minute:b,hourCycle:"h23"},mE={hour:b,minute:b,second:b,hourCycle:"h23"},hE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Ct},gE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:nt},yE={year:b,month:b,day:b,hour:b,minute:b},EE={year:b,month:b,day:b,hour:b,minute:b,second:b},TE={year:b,month:Ct,day:b,hour:b,minute:b},AE={year:b,month:Ct,day:b,hour:b,minute:b,second:b},tb={year:b,month:Ct,day:b,weekday:Ct,hour:b,minute:b},SE={year:b,month:nt,day:b,hour:b,minute:b,timeZoneName:Ct},_E={year:b,month:nt,day:b,hour:b,minute:b,second:b,timeZoneName:Ct},IE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,timeZoneName:nt},OE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,second:b,timeZoneName:nt},Mr=class{get type(){throw new jt}get name(){throw new jt}get ianaName(){return this.name}get isUniversal(){throw new jt}offsetName(e,r){throw new jt}formatOffset(e,r){throw new jt}offset(e){throw new jt}equals(e){throw new jt}get isValid(){throw new jt}},bd=null,To=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 RE(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}},Du={};function rb(t){return Du[t]||(Du[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"})),Du[t]}var nb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ib(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 sb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=nb[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var xu={},or=class t extends Mr{static create(e){return xu[e]||(xu[e]=new t(e)),xu[e]}static resetCache(){xu={},Du={}}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 RE(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=rb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?sb(n,r):ib(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}},Ly={};function ob(t,e={}){let r=JSON.stringify([t,e]),n=Ly[r];return n||(n=new Intl.ListFormat(t,e),Ly[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 ab(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 ub(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 go=null;function cb(){return go||(go=new Intl.DateTimeFormat().resolvedOptions().locale,go)}function lb(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 db(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function pb(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function fb(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 Ru(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function mb(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=ab(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&&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=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&&xE()&&(this.rtf=ub(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Cb(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":cb()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){go=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]=lb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=db(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=mb(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 Ru(this,e,n,DE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=pb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Ru(this,e,n,NE,()=>{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]=fb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Ru(this,void 0,e,()=>PE,()=>{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 Ru(this,e,r,UE,()=>{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 ob(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(Fu(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}},Pu=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(hb(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 qn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Pu(t)}var My=()=>Date.now(),ky="system",Fy=null,By=null,Gy=null,$y=60,Vy,ye=class{static get now(){return My}static set now(e){My=e}static set defaultZone(e){ky=e}static get defaultZone(){return Lr(ky,To.instance)}static get defaultLocale(){return Fy}static set defaultLocale(e){Fy=e}static get defaultNumberingSystem(){return By}static set defaultNumberingSystem(e){By=e}static get defaultOutputCalendar(){return Gy}static set defaultOutputCalendar(e){Gy=e}static get twoDigitCutoffYear(){return $y}static set twoDigitCutoffYear(e){$y=e%100}static get throwOnInvalid(){return Vy}static set throwOnInvalid(e){Vy=e}static resetCaches(){Se.resetCache(),or.resetCache()}};function ne(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function ku(t){return typeof t=="number"&&t%1===0}function hb(t){return typeof t=="string"}function gb(t){return Object.prototype.toString.call(t)==="[object Date]"}function xE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function yb(t){return Array.isArray(t)?t:[t]}function qy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Eb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Vi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return ku(t)&&t>=e&&t<=r}function Tb(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 Bn(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 Ao(t){return t%4===0&&(t%100!==0||t%400===0)}function yo(t){return Ao(t)?366:365}function Uu(t,e){let r=Tb(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 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 Lu(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 RE(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 Fu(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 wE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new He(`Invalid unit value ${t}`);return e}function Mu(t,e){let r={};for(let n in t)if(Vi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=wE(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 Bu(t){return Eb(t,["hour","minute","second","millisecond"])}var Ab=["January","February","March","April","May","June","July","August","September","October","November","December"],bE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Sb=["J","F","M","A","M","J","J","A","S","O","N","D"];function DE(t){switch(t){case"narrow":return[...Sb];case"short":return[...bE];case"long":return[...Ab];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var CE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],vE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],_b=["M","T","W","T","F","S","S"];function NE(t){switch(t){case"narrow":return[..._b];case"short":return[...vE];case"long":return[...CE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var PE=["AM","PM"],Ib=["Before Christ","Anno Domini"],Ob=["BC","AD"],xb=["B","A"];function UE(t){switch(t){case"narrow":return[...xb];case"short":return[...Ob];case"long":return[...Ib];default:return null}}function Rb(t){return PE[t.hour<12?0:1]}function wb(t,e){return NE(e)[t.weekday-1]}function bb(t,e){return DE(e)[t.month-1]}function Db(t,e){return UE(e)[t.year<0?0:1]}function Cb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function Wy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var vb={D:Nu,DD:oE,DDD:aE,DDDD:uE,t:cE,tt:lE,ttt:dE,tttt:pE,T:fE,TT:mE,TTT:hE,TTTT:gE,f:yE,ff:TE,fff:SE,ffff:IE,F:EE,FF:AE,FFF:_E,FFFF:OE},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 vb[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?Rb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?bb(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?wb(e,p):s(f?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let f=t.macroTokenToFormatOpts(p);return f?this.formatWithSystemDefault(e,f):p},d=p=>n?Db(e,p):s({era:p},"era"),m=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(p)}};return Wy(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 Wy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},LE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function qi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Wi(...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 ME(...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 kE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Nb=`(?:${kE.source}?(?:\\[(${LE.source})\\])?)?`,zd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,FE=RegExp(`${zd.source}${Nb}`),Zd=RegExp(`(?:T${FE.source})?`),Pb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Ub=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Lb=/(\d{4})-?(\d{3})/,Mb=ME("weekYear","weekNumber","weekDay"),kb=ME("year","ordinal"),Fb=/(\d{4})-(\d\d)-(\d\d)/,BE=RegExp(`${zd.source} ?(?:${kE.source}|(${LE.source}))?`),Bb=RegExp(`(?: ${BE.source})?`);function $i(t,e,r){let n=t[e];return ne(n)?r:Ur(n)}function Gb(t,e){return[{year:$i(t,e),month:$i(t,e+1,1),day:$i(t,e+2,1)},null,e+3]}function ji(t,e){return[{hours:$i(t,e,0),minutes:$i(t,e+1,0),seconds:$i(t,e+2,0),milliseconds:Yd(t[e+3])},null,e+4]}function So(t,e){let r=!t[e]&&!t[e+1],n=Fu(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 $b=RegExp(`^T?${zd.source}$`),Vb=/^-?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 qb(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(Bn(r)),months:m(Bn(n)),weeks:m(Bn(i)),days:m(Bn(s)),hours:m(Bn(o)),minutes:m(Bn(a)),seconds:m(Bn(u),u==="-0"),milliseconds:m(Yd(c),d)}]}var Wb={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:bE.indexOf(r)+1,day:Ur(n),hour:Ur(i),minute:Ur(s)};return o&&(a.second=Ur(o)),t&&(a.weekday=t.length>3?CE.indexOf(t)+1:vE.indexOf(t)+1),a}var Qb=/^(?:(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 jb(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=Wb[u]:c?p=0:p=Fu(l,d),[m,new it(p)]}function Hb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Yb=/^(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$/,Kb=/^(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$/,Jb=/^(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 Qy(t){let[,e,r,n,i,s,o,a]=t;return[Xd(e,i,n,r,s,o,a),it.utcInstance]}function zb(t){let[,e,r,n,i,s,o,a]=t;return[Xd(e,a,r,n,i,s,o),it.utcInstance]}var Zb=qi(Pb,Zd),Xb=qi(Ub,Zd),eD=qi(Lb,Zd),tD=qi(FE),GE=Wi(Gb,ji,So,_o),rD=Wi(Mb,ji,So,_o),nD=Wi(kb,ji,So,_o),iD=Wi(ji,So,_o);function sD(t){return Qi(t,[Zb,GE],[Xb,rD],[eD,nD],[tD,iD])}function oD(t){return Qi(Hb(t),[Qb,jb])}function aD(t){return Qi(t,[Yb,Qy],[Kb,Qy],[Jb,zb])}function uD(t){return Qi(t,[Vb,qb])}var cD=Wi(ji);function lD(t){return Qi(t,[$b,cD])}var dD=qi(Fb,Bb),pD=qi(BE),fD=Wi(ji,So,_o);function mD(t){return Qi(t,[dD,GE],[pD,fD])}var hD="Invalid Duration",$E={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}},gD={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},...$E},ht=146097/400,Bi=146097/4800,yD={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:Bi/7,days:Bi,hours:Bi*24,minutes:Bi*24*60,seconds:Bi*24*60*60,milliseconds:Bi*24*60*60*1e3},...$E},Gn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],ED=Gn.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 TD(t){return t<0?Math.floor(t):Math.ceil(t)}function VE(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?TD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function AD(t,e){ED.reduce((r,n)=>ne(e[n])?r:(r&&VE(t,e,r,e,n),n),null)}function SD(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?yD:gD;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 He(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Mu(e,t.normalizeUnit),loc:Se.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(qn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new He(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=uD(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]=lD(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 He("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 vu(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):hD}toHuman(e={}){let r=Gn.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 Gn)(Vi(r.values,i)||Vi(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]=wE(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,...Mu(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 AD(this.matrix,e),Pr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=SD(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 Gn)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;qn(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)Gn.indexOf(c)>Gn.indexOf(o)&&VE(this.matrix,i,c,r,o)}else qn(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 Gn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Gi="Invalid Interval";function _D(t,e){return!t||!t.isValid?Wn.invalid("missing or invalid start"):!e||!e.isValid?Wn.invalid("missing or invalid end"):e<t?Wn.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 Wn=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 He("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=ho(e),i=ho(r),s=_D(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()})`:Gi}toLocaleString(e=Nu,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):Gi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Gi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Gi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Gi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Gi}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))}},Vn=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 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:xE()}}};function jy(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 ID(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=jy(u,c);return(l-l%7)/7}],["days",jy]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function OD(t,e,r,n){let[i,s,o,a]=ID(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=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"},Hy={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},xD=ep.hanidec.replace(/[\[|\]]/g,"").split("");function RD(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+=xD.indexOf(t[r]);else for(let i in Hy){let[s,o]=Hy[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 wD="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(RD(r))}}var bD=String.fromCharCode(160),qE=`[ ${bD}]`,WE=new RegExp(qE,"g");function DD(t){return t.replace(/\./g,"\\.?").replace(WE,qE)}function Yy(t){return t.replace(/\./g,"").replace(WE," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map(DD).join("|")),deser:([r])=>t.findIndex(n=>Yy(r)===Yy(n))+e}}function Ky(t,e){return{regex:t,deser:([,r,n])=>Fu(r,n),groups:e}}function Cd(t){return{regex:t,deser:([e])=>e}}function CD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function vD(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(CD(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 Ky(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Ky(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Cd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:wD};return g.token=t,g}var ND={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 PD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=ND[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function UD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function LD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Vi(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 MD(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=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 kD(){return vd||(vd=_e.fromMillis(1555555555555)),vd}function FD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=HE(r,e);return n==null||n.includes(void 0)?t:n}function QE(t,e){return Array.prototype.concat(...t.map(r=>FD(r,e)))}function jE(t,e,r){let n=QE(tt.parseFormat(r),t),i=n.map(o=>vD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=UD(i),u=RegExp(o,"i"),[c,l]=LD(e,u,a),[d,m,p]=l?MD(l):[null,null,void 0];if(Vi(l,"a")&&Vi(l,"H"))throw new $n("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 BD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=jE(t,e,r);return[n,i,s,o]}function HE(t,e){return t?tt.create(e,t).formatDateTimeParts(kD()).map(i=>PD(i,t)):null}var YE=[0,31,59,90,120,151,181,212,243,273,304,334],KE=[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 JE(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 zE(t,e,r){return r+(Ao(t)?KE:YE)[e-1]}function ZE(t,e){let r=Ao(t)?KE:YE,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=zE(e,r,n),s=JE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Lu(a)):o>Lu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Bu(t)}}function Jy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=JE(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,...Bu(t)}}function Nd(t){let{year:e,month:r,day:n}=t,i=zE(e,r,n);return{year:e,ordinal:i,...Bu(t)}}function zy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=ZE(e,r);return{year:e,month:n,day:i,...Bu(t)}}function GD(t){let e=ku(t.weekYear),r=ir(t.weekNumber,1,Lu(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 $D(t){let e=ku(t.year),r=ir(t.ordinal,1,yo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function XE(t){let e=ku(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Uu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function eT(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 Pd="Invalid DateTime",Zy=864e13;function wu(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 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 tT(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 Xy(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 Cu(t,e,r){return tT(Jd(t),e,r)}function eE(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,Uu(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]=tT(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 bu(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 tE(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 rT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},VD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},qD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},nT=["year","month","day","hour","minute","second","millisecond"],WD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],QD=["year","ordinal","hour","minute","second","millisecond"];function rE(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 vu(t);return e}function nE(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 nT)ne(t[c])&&(t[c]=rT[c]);let a=XE(t)||eT(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=Cu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function iE(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 sE(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:wu(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=Xy(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]=sE(arguments),[n,i,s,o,a,u,c]=r;return nE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=sE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,nE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=gb(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(wu(i))}static fromMillis(e,r={}){if(qn(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 He(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(qn(e))return new t({ts:e*1e3,zone:Lr(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new He("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Lr(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(wu(n));let i=ye.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Mu(e,rE),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 $n("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new $n("Can't mix ordinal dates with month/day");let p=d||o.weekday&&!l,f,g,E=Xy(i,s);p?(f=WD,g=VD,E=Hd(E)):a?(f=QD,g=qD,E=Nd(E)):(f=nT,g=rT);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?GD(o):a?$D(o):XE(o),S=_||eT(o);if(S)return t.invalid(S);let M=p?Jy(o):a?zy(o):o,[T,I]=Cu(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]=sD(e);return mo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=oD(e);return mo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=aD(e);return mo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new He("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]=BD(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]=mD(e);return mo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new He("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=HE(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return QE(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?Vn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Vn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Vn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Vn.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 Uu(this.year,this.month)}get daysInYear(){return this.isValid?yo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Lu(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]=Cu(o,s,e)}return fo(this,{ts:i,zone:e})}else return t.invalid(wu(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=Mu(e,rE),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 $n("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new $n("Can't mix ordinal dates with month/day");let c;n?c=Jy({...Hd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(Uu(c.year,c.month),c.day))):c=zy({...Nd(this.c),...r});let[l,d]=Cu(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,eE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return fo(this,eE(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=Nu,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+=tE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Ld(this,e==="extended"):null}toISOWeekDate(){return bu(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":"")+tE(this,o==="extended",r,e,n,s):null}toRFC2822(){return bu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return bu(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")),bu(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=yb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=OD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?Wn.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),iE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?iE(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 He("min requires all arguments be DateTimes");return qy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new He("max requires all arguments be DateTimes");return qy(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 jE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Nu}static get DATE_MED(){return oE}static get DATE_MED_WITH_WEEKDAY(){return eb}static get DATE_FULL(){return aE}static get DATE_HUGE(){return uE}static get TIME_SIMPLE(){return cE}static get TIME_WITH_SECONDS(){return lE}static get TIME_WITH_SHORT_OFFSET(){return dE}static get TIME_WITH_LONG_OFFSET(){return pE}static get TIME_24_SIMPLE(){return fE}static get TIME_24_WITH_SECONDS(){return mE}static get TIME_24_WITH_SHORT_OFFSET(){return hE}static get TIME_24_WITH_LONG_OFFSET(){return gE}static get DATETIME_SHORT(){return yE}static get DATETIME_SHORT_WITH_SECONDS(){return EE}static get DATETIME_MED(){return TE}static get DATETIME_MED_WITH_SECONDS(){return AE}static get DATETIME_MED_WITH_WEEKDAY(){return tb}static get DATETIME_FULL(){return SE}static get DATETIME_FULL_WITH_SECONDS(){return _E}static get DATETIME_HUGE(){return IE}static get DATETIME_HUGE_WITH_SECONDS(){return OE}};function ho(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&qn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new He(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var jD="3.2.1";st.DateTime=_e;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=Vn;st.Interval=Wn;st.InvalidZone=Pu;st.Settings=ye;st.SystemZone=To;st.VERSION=jD;st.Zone=Mr});var oT=H((EQ,sT)=>{"use strict";var Qn=iT();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=Qn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Qn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Qn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Qn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Qn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Qn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Qn.DateTime.local(),!this._date||!this._date.isValid)throw new Error("CronDate: unhandled timestamp: "+JSON.stringify(t));e&&e!==this._date.zoneName&&(this._date=this._date.setZone(e))}sT.exports=z});var cT=H((TQ,uT)=>{"use strict";function jn(t){return{start:t,count:1}}function aT(t,e){t.end=e,t.step=e-t.start,t.count=2}function tp(t,e,r){e&&(e.count===2?(t.push(jn(e.start)),t.push(jn(e.end))):t.push(e)),r&&t.push(r)}function HD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(tp(e,r,jn(i)),r=void 0):r?r.count===1?aT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(jn(r.start)),r=jn(r.end),aT(r,i)):(tp(e,r),r=jn(i)):r=jn(i)}return tp(e,r),e}uT.exports=HD});var dT=H((AQ,lT)=>{"use strict";var YD=cT();function KD(t,e,r){var n=YD(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(",")}lT.exports=KD});var mT=H((SQ,fT)=>{"use strict";var Hn=oT(),JD=dT(),pT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Hn(e.currentDate,this._tz),this._startDate=e.startDate?new Hn(e.startDate,this._tz):null,this._endDate=e.endDate?new Hn(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 Hn(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<pT;){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>=pT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Hn(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 Hn(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(JD(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 Hn(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||{})};fT.exports=U});var gT=H((_Q,hT)=>{"use strict";var Gu=mT();function kr(){}kr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Gu.parse(e)};if(r.length>6)return{interval:Gu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};kr.parseExpression=function(e,r){return Gu.parse(e,r)};kr.fieldsToExpression=function(e,r){return Gu.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()))})};hT.exports=kr});var PF={};v(PF,{APP_DEV:()=>Yu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Hu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,BadRequestError:()=>Cc,BudibaseError:()=>hs,Config:()=>Dp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>vi,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:()=>Ki,DocumentType:()=>he,Duration:()=>be,DurationType:()=>em,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Nc,GlobalRole:()=>bp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>wr,InvalidAPIKeyError:()=>gs,MAX_VALID_DATE:()=>Ju,MIN_VALID_DATE:()=>CT,NotFoundError:()=>Dc,RedisClient:()=>qe,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UsageLimitError:()=>vc,UserStatus:()=>Ku,ViewName:()=>Gr,accounts:()=>pi,auth:()=>gh,blacklist:()=>Ah,cache:()=>ba,configs:()=>rn,constants:()=>Cp,context:()=>Ae,db:()=>Wr,docIds:()=>ff,docUpdates:()=>_h,encryption:()=>fh,env:()=>h,errors:()=>Uc,events:()=>As,features:()=>ih,getPublicError:()=>Pc,init:()=>NF,installation:()=>qc,locks:()=>di,logging:()=>_c,middleware:()=>hh,objectStore:()=>Df,permissions:()=>th,platform:()=>da,plugins:()=>Eh,queue:()=>fm,redis:()=>Th,roles:()=>eh,security:()=>Cm,sessions:()=>Jc,setEnv:()=>bo,sql:()=>vh,tenancy:()=>vF,timers:()=>Yo,userUtils:()=>cm,users:()=>Ss,utils:()=>ls,withEnv:()=>MT});module.exports=MI(PF);var rn={};v(rn,{analyticsEnabled:()=>Gc,generateConfigID:()=>tl,getAIConfig:()=>Q0,getConfig:()=>Gt,getDefaultGoogleConfig:()=>Gm,getGoogleConfig:()=>rl,getGoogleDatasourceConfig:()=>qm,getOIDCConfig:()=>V0,getOIDCConfigById:()=>Wm,getOIDCLogosDoc:()=>G0,getPlatformUrl:()=>Ua,getSCIMConfig:()=>W0,getSMTPConfig:()=>q0,getSMTPConfigDoc:()=>v_,getSettingsConfig:()=>Vm,getSettingsConfigDoc:()=>Qc,save:()=>F0});var kI=["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"],Ph=[...kI],Uh={"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 FI=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||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),pn=(e=>(e.RANGE="range",e))(pn||{}),Si=(r=>(r.AND="$and",r.OR="$or",r))(Si||{});function qa(t){return Object.values(Si).includes(t)}function Lh(t){return Object.values(xr).includes(t)}function Mh(t){return Object.values(Jt).includes(t)}function Wa(t){return Object.values(pn).includes(t)}var _i=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(_i||{});var kh=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 Fh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,AI_TABLE_GENERATION:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var UB={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 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 ja=t=>t.hosting==="cloud";var Ha=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||{}),SG=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||{}),_G=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||{}),Bh=[...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 Gh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ya(t){return!!t.providerType}var Ul=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ul||{});var B$=Object.values(Ul);var W$=["rows","queries","automations"],Q$=["queries","automations"];var mn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(mn||{}),Ka=(r=>(r.STRING="string",r.NUMBER="number",r))(Ka||{});var te;(function(t){t.assertEqual=i=>i;function e(i){}t.assertIs=e;function r(i){throw new Error}t.assertNever=r,t.arrayToEnum=i=>{let s={};for(let o of i)s[o]=o;return s},t.getValidEnumValues=i=>{let s=t.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of s)o[a]=i[a];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let s=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},t.find=(i,s)=>{for(let o of i)if(s(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(te||(te={}));var 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"]),VI=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 xi=(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}},qh=xi;function qI(t){qh=t}function Ja(){return qh}var za=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}},WI=[];function P(t,e){let r=Ja(),n=za({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===xi?void 0:xi].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"}),Oi=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),kl=t=>t.status==="aborted",Fl=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 Wh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var 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}},$h=(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 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(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:br(e)},s=this._parseSync({data:e,path:i.path,parent:i});return $h(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(Ns(i)?i:Promise.resolve(i));return $h(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 Vt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.create(this,this._def)}promise(){return vr.create(this,this._def)}or(e){return Sn.create([this,e],this._def)}and(e){return _n.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 wn({...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 bn({...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 Dn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},QI=/^c[^\s-]{8,}$/i,jI=/^[0-9a-z]+$/,HI=/^[0-9A-HJKMNP-TV-Z]{26}$/,YI=/^[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,KI=/^[a-z0-9_-]{21}$/i,JI=/^[-+]?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)?)??$/,zI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ZI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ll,XI=/^(?:(?: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])$/,eO=/^(([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})))$/,tO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Qh="((\\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])))",rO=new RegExp(`^${Qh}$`);function jh(t){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`),e}function nO(t){return new RegExp(`^${jh(t)}$`)}function Hh(t){let e=`${Qh}T${jh(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 iO(t,e){return!!((e==="v4"||!e)&&XI.test(t)||(e==="v6"||!e)&&eO.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")zI.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(ZI,"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")YI.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")KI.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")jI.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")HI.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"?Hh(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"?rO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?nO(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"?JI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?iO(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"?tO.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 sO(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 hn=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"?sO(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)}};hn.create=t=>new hn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var gn=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}};gn.create=t=>{var e;return new gn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var yn=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)}};yn.create=t=>new yn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var En=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}};En.create=t=>new En({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...Z(t)});var Ri=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)}};Ri.create=t=>new Ri({typeName:Y.ZodSymbol,...Z(t)});var Tn=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)}};Tn.create=t=>new Tn({typeName:Y.ZodUndefined,...Z(t)});var An=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)}};An.create=t=>new An({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 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 wi=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)}};wi.create=t=>new wi({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 Ii(t){if(t instanceof Qe){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=pt.create(Ii(n))}return new Qe({...t._def,shape:()=>e})}else return t instanceof Xt?new Xt({...t._def,type:Ii(t.element)}):t instanceof pt?pt.create(Ii(t.unwrap())):t instanceof Vt?Vt.create(Ii(t.unwrap())):t instanceof $t?$t.create(t.items.map(e=>Ii(e))):t}var Qe=class t extends X{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=te.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==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 Ii(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 Yh(te.objectKeys(this.shape))}};Qe.create=(t,e)=>new Qe({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});Qe.strictCreate=(t,e)=>new Qe({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});Qe.lazycreate=(t,e)=>new Qe({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...Z(e)});var Sn=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}};Sn.create=(t,e)=>new Sn({options:t,typeName:Y.ZodUnion,...Z(e)});var zt=t=>t instanceof In?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof On?[t.value]:t instanceof xn?t.options:t instanceof Rn?te.objectValues(t.enum):t instanceof wn?zt(t._def.innerType):t instanceof Tn?[void 0]:t instanceof An?[null]:t instanceof pt?[void 0,...zt(t.unwrap())]:t instanceof Vt?[null,...zt(t.unwrap())]:t instanceof Ps||t instanceof Dn?zt(t.unwrap()):t instanceof bn?zt(t._def.innerType):[],Xa=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 _n=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}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:Y.ZodIntersection,...Z(r)});var $t=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})}};$t.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $t({items:t,typeName:Y.ZodTuple,rest:null,...Z(e)})};var eu=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)})}},bi=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}}}};bi.create=(t,e,r)=>new bi({valueType:e,keyType:t,typeName:Y.ZodMap,...Z(r)});var Di=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)}};Di.create=(t,e)=>new Di({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...Z(e)});var tu=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 za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].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:$t.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||$t.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName:Y.ZodFunction,...Z(n)})}},In=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})}};In.create=(t,e)=>new In({getter:t,typeName:Y.ZodLazy,...Z(e)});var On=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}};On.create=(t,e)=>new On({value:t,typeName:Y.ZodLiteral,...Z(e)});function Yh(t,e){return new xn({values:t,typeName:Y.ZodEnum,...Z(e)})}var xn=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")||Wh(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;xn.create=Yh;var Rn=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")||Wh(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;Rn.create=(t,e)=>new Rn({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"?Oi(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"?Oi(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 Vt=class extends X{_parse(e){return this._getType(e)===k.null?Be(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Vt.create=(t,e)=>new Vt({innerType:t,typeName:Y.ZodNullable,...Z(e)});var wn=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}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var bn=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}};bn.create=(t,e)=>new bn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var Ci=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}}};Ci.create=t=>new Ci({typeName:Y.ZodNaN,...Z(t)});var oO=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(),Oi(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})}},Dn=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}};Dn.create=(t,e)=>new Dn({innerType:t,typeName:Y.ZodReadonly,...Z(e)});function Kh(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 aO={object:Qe.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var uO=(t,e={message:`Input not instance of ${t.name}`})=>Kh(r=>r instanceof t,e),Jh=Dr.create,zh=hn.create,cO=Ci.create,lO=gn.create,Zh=yn.create,dO=En.create,pO=Ri.create,fO=Tn.create,mO=An.create,hO=Cr.create,gO=Zt.create,yO=Ot.create,EO=wi.create,TO=Xt.create,AO=Qe.create,SO=Qe.strictCreate,_O=Sn.create,IO=Xa.create,OO=_n.create,xO=$t.create,RO=eu.create,wO=bi.create,bO=Di.create,DO=tu.create,CO=In.create,vO=On.create,NO=xn.create,PO=Rn.create,UO=vr.create,Vh=Ze.create,LO=pt.create,MO=Vt.create,kO=Ze.createWithPreprocess,FO=Us.create,BO=()=>Jh().optional(),GO=()=>zh().optional(),$O=()=>Zh().optional(),VO={string:t=>Dr.create({...t,coerce:!0}),number:t=>hn.create({...t,coerce:!0}),boolean:t=>yn.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>En.create({...t,coerce:!0})},qO=J,ee=Object.freeze({__proto__:null,defaultErrorMap:xi,setErrorMap:qI,getErrorMap:Ja,makeIssue:za,EMPTY_PATH:WI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:Oi,OK:Be,isAborted:kl,isDirty:Fl,isValid:vs,isAsync:Ns,get util(){return te},get objectUtil(){return Ml},ZodParsedType:k,getParsedType:br,ZodType:X,datetimeRegex:Hh,ZodString:Dr,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:yn,ZodDate:En,ZodSymbol:Ri,ZodUndefined:Tn,ZodNull:An,ZodAny:Cr,ZodUnknown:Zt,ZodNever:Ot,ZodVoid:wi,ZodArray:Xt,ZodObject:Qe,ZodUnion:Sn,ZodDiscriminatedUnion:Xa,ZodIntersection:_n,ZodTuple:$t,ZodRecord:eu,ZodMap:bi,ZodSet:Di,ZodFunction:tu,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:vr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:pt,ZodNullable:Vt,ZodDefault:wn,ZodCatch:bn,ZodNaN:Ci,BRAND:oO,ZodBranded:Ps,ZodPipeline:Us,ZodReadonly:Dn,custom:Kh,Schema:X,ZodSchema:X,late:aO,get ZodFirstPartyTypeKind(){return Y},coerce:VO,any:hO,array:TO,bigint:lO,boolean:Zh,date:dO,discriminatedUnion:IO,effect:Vh,enum:NO,function:DO,instanceof:uO,intersection:OO,lazy:CO,literal:vO,map:wO,nan:cO,nativeEnum:PO,never:yO,null:mO,nullable:MO,number:zh,object:AO,oboolean:$O,onumber:GO,optional:LO,ostring:BO,pipeline:FO,preprocess:kO,promise:UO,record:RO,set:bO,strictObject:SO,string:Jh,symbol:pO,transformer:Vh,tuple:xO,undefined:fO,union:_O,unknown:gO,void:EO,NEVER:qO,ZodIssueCode:O,quotelessJson:VI,ZodError:ze});var su=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Xh=ee.record(su,ee.string()),ru=ee.record(su,ee.any()),nu=ee.record(su,ee.union([ee.any().array(),ee.string()])),eg=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(tg))})),iu=ee.union([ee.string(),ee.number()]),tg={string:Xh.optional(),fuzzy:Xh.optional(),range:ee.record(su,ee.union([ee.object({high:iu,low:iu}),ee.object({high:iu}),ee.object({low:iu})])).optional(),equal:ru.optional(),notEqual:ru.optional(),empty:ru.optional(),notEmpty:ru.optional(),oneOf:nu.optional(),contains:nu.optional(),notContains:nu.optional(),containsAny:nu.optional(),$and:eg.optional(),$or:eg.optional()},FV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(_i).optional(),...tg}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(mn).optional(),sortType:ee.nativeEnum(Ka).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var Cp={};v(Cp,{APP_DEV:()=>Yu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Hu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,Config:()=>Dp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>vi,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:()=>Ki,DocumentType:()=>he,GlobalRole:()=>bp,Header:()=>Xe,InternalTable:()=>wr,MAX_VALID_DATE:()=>Ju,MIN_VALID_DATE:()=>CT,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,UserStatus:()=>Ku,ViewName:()=>Gr});var Zq={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 rW={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 uW="darkest",cW="light",jO=[{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"}},rg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var vi="datasource_internal_bb_default";var Fr={};v(Fr,{ColumnSplitter:()=>up,NoEmptyFilterStrings:()=>IT,buildQuery:()=>OT,cleanupQuery:()=>dp,fixupFilterArrays:()=>fp,getKeyNumbering:()=>pp,getValidOperatorsForType:()=>EC,hasFilters:()=>cp,limit:()=>RT,recurseLogicalOperators:()=>lp,removeKeyNumbering:()=>ou,runQuery:()=>$u,search:()=>SC,sort:()=>xT,splitFiltersArray:()=>au});var Hi=Q(ng());var Ni={};v(Ni,{filterValueToLabel:()=>ZO,hasSchema:()=>XO,isSupportedUserSearch:()=>sg,parallelForeach:()=>zO,processSearchFilters:()=>Vl,toMap:()=>tx,trimOtherProps:()=>ex,unreachable:()=>JO});var ig=Q(require("lodash")),KO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function JO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function zO(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 ZO(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function XO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ex(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function sg(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(!sg(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}=au(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=ig.default.pick(i,KO);return s.field=ou(s.field),s})}]}}function tx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Ht={};v(Ht,{cancelableTimeout:()=>og,cron:()=>rp,deepGet:()=>ql,duplicateName:()=>mC,getSequentialName:()=>hC,getUserColor:()=>nx,getUserInitials:()=>rx,getUserLabel:()=>ix,isGoogleSheets:()=>ox,isSQL:()=>ax,lists:()=>ap,retry:()=>ux,roles:()=>op,schema:()=>Io,views:()=>sp,wait:()=>Wl,withTimeout:()=>sx});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},rx=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"},nx=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%)`},ix=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function og(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function sx(t,e){let[r,n]=og(t),i=await Promise.race([e(),r]);return n(),i}function ox(t){return t==="GOOGLE_SHEETS"}function ax(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 ux(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:()=>XD,validate:()=>eC});var ET=Q(qt()),TT=Q(gT()),yT="(Input cron: ",zD={"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 ZD(t){let e=[];for(let r of t){r.includes(yT)&&(r=r.split(yT)[0].trim());for(let[n,i]of Object.entries(zD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function XD(t,e=4){let r=TT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function eC(t){let e=(0,ET.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:ZD(e.getError())}}var Io={};v(Io,{decodeNonAscii:()=>np,encodeNonAscii:()=>nC,isDeprecatedSingleUserColumn:()=>tC,isNumeric:()=>iC,isRequired:()=>rC});function tC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function rC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function nC(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 iC(t){return t.type==="number"||t.type==="bigint"}var sp={};v(sp,{basicFields:()=>cC,calculationFields:()=>uC,hasCalculationFields:()=>aC,isBasicViewField:()=>sC,isCalculationField:()=>Oo,isCalculationView:()=>oC,isV2:()=>lC,isVisible:()=>AT});var ip=require("lodash");function Oo(t){return"calculationType"in t}function sC(t){return!Oo(t)}function oC(t){return t.type==="calculation"}function aC(t){return Object.values(t.schema||{}).some(Oo)}function uC(t){return(0,ip.pickBy)(t.schema||{},Oo)}function AT(t){return t.visible!==!1}function cC(t,e){let{visible:r=!0}=e||{};return(0,ip.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||AT(n)))}function lC(t){return t.version===2}var op={};v(op,{checkForRoleInheritanceLoops:()=>pC});function dC(t){return`role${N}${t}`}function pC(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=dC(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:()=>fC});function fC(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 mC=(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}`},hC=(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 Yn=require("lodash");var gC=/{{([^{].*?)}}/g,_T=Object.values(Si),yC=[...Object.values(xr),...Object.values(Jt),...Object.values(pn)],EC=(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},IT=[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 _T)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var dp=t=>{for(let e of IT)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===""||TC(s))&&delete t[e][i]}return t=lp(t,dp),t};function TC(t){return Array.isArray(t)&&t.length===0}var ou=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 AC(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(gC)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if(Wa(r))return e[r]??={},e[r][n]=o,e}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(Wa(r)){let c=rg[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(Lh(r)||Mh(r)||Wa(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 au(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 OT(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=ST(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=OT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=au(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=ST(n.logicalOperator)),{[a]:{conditions:o.map(AC).filter(u=>u)}}})},e}function ST(t){return t==="all"?"$and":"$or"}function fp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Yn.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 SC(t,e){let r=$u(t,e.query);e.sort&&(r=xT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=RT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function $u(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=qa(T)?x:ql(x,ou(w)),cn=I(le,B);if(e.allOr&&cn)return!0;if(!e.allOr&&!cn)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,Yn.isPlainObject)(I.low)&&(0,Yn.isEmpty)(I.low)&&(I.low=void 0),(0,Yn.isPlainObject)(I.high)&&(0,Yn.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,Hi.default)(T);if(w.isValid()){let B=(0,Hi.default)(I.low||"0000-00-00T00:00:00.000Z"),le=(0,Hi.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,Hi.default)(T);if(x.isValid()){let w=(0,Hi.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(!$u([T],x).length)return!1;return!0}),S=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if($u([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 xT(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 RT(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 _T)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of yC){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:()=>_C,getProdAppID:()=>Vu});var mp=Rr("app"),xo=Rr("app_dev");function _C(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(xo))return t;let e=t.split(mp);e.shift();let r=e.join(mp);return`${xo}${r}`}function Vu(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`${mp}${r}`}var gp={};v(gp,{isAppAction:()=>xC,isRowAction:()=>IC,isWebhookAction:()=>OC});function IC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function OC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function xC(t){return t.definition.trigger?.stepId==="APP"}var Ap={};v(Ap,{canCreateApps:()=>RC,containsUserID:()=>NC,getGlobalUserID:()=>vC,getUserAppGroups:()=>PC,getUserGroups:()=>Tp,hasAdminPermissions:()=>Ep,hasAppBuilderPermissions:()=>Qu,hasAppCreatorPermissions:()=>wT,hasBuilderPermissions:()=>DC,hasCreatorPermissions:()=>ju,isAdmin:()=>Wu,isAdminOrBuilder:()=>wC,isAdminOrGlobalBuilder:()=>bC,isBuilder:()=>yp,isCreator:()=>CC,isGlobalBuilder:()=>qu,userAppAccessList:()=>UC});var Br=Q(require("lodash/fp"));function yp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Vu(e))):!1}function qu(t){return yp(t)&&!Qu(t)||Wu(t)}function RC(t){return qu(t)||ju(t)}function Wu(t){return t?Ep(t):!1}function wC(t,e){return yp(t,e)||Wu(t)}function bC(t){return qu(t)||Wu(t)}function Qu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function wT(t){return t?Br.flow(Br.get("roles"),Br.values,Br.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function DC(t){return t?t.builder?.global||Qu(t)||ju(t):!1}function Ep(t){return t?!!t.admin?.global:!1}function ju(t){return t?!!t.builder?.creator:!1}function CC(t){return t?qu(t)||Ep(t)||ju(t)||Qu(t)||wT(t):!1}function vC(t){if(typeof t!="string")return t;let e=`ro${N}ta_users${N}`;return t.startsWith(e)?t.split(e)[1]:t}function NC(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 PC(t,e,r){let n=Vu(t);return Tp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function UC(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:()=>LC});function LC(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 Tj={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},Aj={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},Sj={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 Dj={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 Nj={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 Lj={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 Fj={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 $j={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 Wj={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 Hj={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 Jj={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 Xj={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 rH={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,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 jC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},sH={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(jC)},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 uH={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 dH={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 mH={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 bT=(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))(bT||{}),yH={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(bT)}},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 DT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(DT||{}),AH={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(DT),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 XC={ascending:"Ascending",descending:"Descending"},IH={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(mn),pretty:Object.values(XC)},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 RH={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 DH={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 NH={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 LH={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 FH={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 $H={name:"Zapier Webhook",stepId:"zapier",type:"ACTION",internal:!1,features:{LOOPING:!0},description:"Trigger a Zapier Zap via webhooks",tagline:"Trigger a Zapier Zap",icon:"ri-flashlight-line",inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},body:{type:"json",title:"Payload"}},required:["url"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},response:{type:"string",description:"The response from Zapier"}}}}};var uv={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var lv={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 pv={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 mv={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 gv={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 Ev={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 Av={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 Hu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Hu||{}),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||{}),Ki={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"),Yu=Rr("app_dev"),Et=Yu,_p="internal",Ip="budibase",ar="_design/sqlite",Op="ta_bb_jobs",xp="ta_bb_inventory",Rp="ta_bb_expenses",wp="ta_bb_employee";var Ku=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Ku||{}),Kn=(o=>(o.Auth="budibase:auth",o.Init="budibase:init",o.ACCOUNT_RETURN_URL="budibase:account:returnurl",o.DatasourceAuth="budibase:datasourceauth",o.OIDC_CONFIG="budibase:oidc:config",o.FeatureFlags="budibase:featureflags",o))(Kn||{}),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||{}),CT=new Date(-2147483647e3),Ju=new Date(2147483647e3),Te="default";var ba={};v(ba,{CacheKey:()=>Ce,TTL:()=>ui,app:()=>Mo,bustCache:()=>us,destroy:()=>oa,docWritethrough:()=>Bm,generic:()=>aa,get:()=>ci,invite:()=>am,keys:()=>Ic,passwordReset:()=>km,store:()=>mr,user:()=>nn,withCache:()=>zr,withCacheWithDynamicTTL:()=>yS,writethrough:()=>Mm});var aa={};v(aa,{CacheKey:()=>Ce,TTL:()=>ui,bustCache:()=>us,destroy:()=>oa,get:()=>ci,keys:()=>Ic,store:()=>mr,withCache:()=>zr,withCacheWithDynamicTTL:()=>yS});var Ae={};v(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Po,doInAppContext:()=>sN,doInAppMigrationContext:()=>aN,doInAutomationContext:()=>eN,doInContext:()=>Kp,doInEnvironmentContext:()=>cN,doInFeatureFlagOverrideContext:()=>rf,doInIPContext:()=>Zp,doInIdentityContext:()=>wo,doInLicenseContext:()=>rN,doInScimContext:()=>lN,doInSelfHostTenantUsingCloud:()=>tN,doInTenant:()=>Ve,ensureSnippetContext:()=>eA,getAppDB:()=>ts,getAppId:()=>Ue,getAuditLogDBName:()=>zT,getAuditLogsDB:()=>pN,getAutomationId:()=>Jp,getCurrentContext:()=>zn,getDevAppDB:()=>mN,getEnvironmentVariables:()=>dN,getFeatureFlagOverrides:()=>tf,getFeatureFlags:()=>Xp,getGlobalDB:()=>ie,getGlobalDBName:()=>cr,getIP:()=>zp,getIdentity:()=>ur,getLicense:()=>nN,getPlatformURL:()=>Yp,getProdAppDB:()=>fN,getProdAppId:()=>uN,getScimDBName:()=>Jv,getSelfHostCloudDB:()=>iN,getTableForView:()=>hN,getTenantIDFromAppID:()=>es,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>qr,isScim:()=>Ut,isSelfHostUsingCloud:()=>ZT,isTenancyEnabled:()=>Zv,isTenantIdSet:()=>zv,setFeatureFlags:()=>ef,setTableForView:()=>gN});var Ro={};v(Ro,{doInAccountContext:()=>Ov,doInIdentityContext:()=>Np,doInUserContext:()=>Pp,getAccountUserId:()=>vT,getIdentity:()=>vp});function vp(){return ur()}function Np(t,e){return wo(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 Ov(t,e){let r=vT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Np(i,e)}function vT(t){let e;return ja(t)?e=t.budibaseUserId:e=t.accountId,e}var Xu=require("fs");var UT=require("lodash"),Up=require("crypto");function Lp(){return LT()}function LT(){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 xv(t){if(t)return parseInt(t)}var NT=!1;!NT&&Zu()&&!Lp()&&(require("dotenv").config(),NT=!0);var Ji={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},PT=!!parseInt(process.env.SELF_HOSTED||"");function Rv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function wv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function bv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Xu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Xu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Zu()&&!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 Dv(){return vt.SERVICE_TYPE==="worker"}function Cv(){return vt.SERVICE_TYPE==="apps"}function vv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}var vt={isTest:Lp,isJest:LT,isDev:Zu,isWorker:Dv,isApps:Cv,isQA:vv,isProd:()=>!Zu(),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:Rv(),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:PT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Ji.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Ji.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Ji.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Ji.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Ji.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Ji.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:process.env.SERVICE||"budibase",LOG_LEVEL:process.env.LOG_LEVEL||"info",SESSION_UPDATE_PERIOD:process.env.SESSION_UPDATE_PERIOD,DEPLOYMENT_ENVIRONMENT:process.env.DEPLOYMENT_ENVIRONMENT||"docker-compose",HTTP_LOGGING:wv(),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:PT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...bv(),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:xv(process.env.BSON_BUFFER_SIZE)};function bo(t){let e=(0,UT.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 MT(t,e){let r=bo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var kT=["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 FT=require("async_hooks"),we=class t{static{this.storage=new FT.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 Nv(t){if(!t)throw Mp;return t.startsWith(yt)&&!$r(t)}function Do(t){if(!t)throw Mp;return $r(t.appId)}function ec(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var Pv=ec;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 Uv(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 KT=Q(require("@budibase/nano"));var BT=Q(require("node-fetch"));function tc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function GT(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,BT.default)(tc(encodeURI(t)),i)}async function rc(t,e="GET",r){let n=await GT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Jn=Q(require("pouchdb"));var $T,VT=!1,Fp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Jn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Jn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Jn.default.plugin(i.plugin),Jn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Jn.default.plugin(i)}return Jn.default.defaults(n)};function nc(t){$T=Fp(t),VT=!0}var Mv=()=>{if(!VT)throw new Error("init has not been called")};function Tt(t,e){Mv();let r=new $T(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function vo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var qT=require("uuid");function Ie(){return(0,qT.v4)().replace(/-/g,"")}var xe=Q(require("dd-trace")),zi=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:()=>Hv,buildExternalTableId:()=>$v,convertRowId:()=>jv,encodeTableId:()=>Vv,encodeViewId:()=>qv,generateRowIdField:()=>Wv,getNativeSql:()=>Zi,isExternalTable:()=>Gp,isExternalTableID:()=>ic,isInternalTableID:()=>Gv,isInvalidISODateString:()=>Vp,isRowId:()=>Qv,isValidFilter:()=>oc,isValidISODateString:()=>sc,isValidTime:()=>qp,sqlLog:()=>No,validateManyToMany:()=>Wp});var Bp=`${N}${N}`,QT=/^\[.*]$/g,kv=encodeURIComponent(" "),Fv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Bv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ic(t){return t.startsWith("datasource"+N)}function Gv(t){return!ic(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!==vi||t?.sourceType==="external"?!0:!!(t?._id&&ic(t._id))}function $v(t,e){return`${t}${Bp}${encodeURIComponent(e)}`}function Vv(t){return ic(t)?encodeURIComponent(t):t}function qv(t){return encodeURIComponent(t)}function $p(t){let e=t.split(Bp),r=e.shift(),n=e.join(Bp);if(n.includes(kv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function Wv(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}function Qv(t){return Array.isArray(t)||typeof t=="string"&&t.match(QT)!=null}function jv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(QT)!=null?t.substring(1,t.length-1):t}function Hv(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 sc(t){let e=t.trim();if(!Fv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Vp(t){return!sc(t)}function oc(t){return t!=null&&t!==""}function qp(t){return Bv.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 Yv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Wp(t){if(Yv(t))return t}var jT="Database does not exist.";function HT(t){return(0,KT.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 Kv(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Xi(t,r,e);return new zi(n)}var Xi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=HT(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=HT(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 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===jT)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(kh(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===jT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=tc(`${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 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}/${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 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 zi(new Xi(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 rc(e)}async function Hp(t,e){let r=await rc(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var JT=null;function cr(t){return t||(t=j()),Po(t)}function zT(t){return t||(t=j()),t===Te?Ee.AUDIT_LOGS.name:`${t}${N}${Ee.AUDIT_LOGS.name}`}function Jv(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 Yp(){return h.PLATFORM_URL}function qr(){return!!h.MULTI_TENANCY}function zv(){return!!we.get()?.tenantId}function Zv(){return h.MULTI_TENANCY}function es(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 Xv(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){oN();let r=Xv(t);return we.run(r,e)}async function eN(t){return await eA(),await Pt({tenantId:es(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Kp(t,e){let r=es(t);return Pt({tenantId:r,appId:t},e)}async function Ve(t,e){return h.MULTI_TENANCY||(t=t||Te),Pt(t?{tenantId:t}:{},e)}async function tN(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function rN(t,e){return Pt({license:t},e)}function nN(){return we.get()?.license}function ZT(){return!!we.get()?.isSelfHostUsingCloud}function iN(){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 sN(t,e){return XT(t,e)}async function XT(t,e,r){if(!t)throw new Error("appId is required");let n=es(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(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),Pt(r,e)}function oN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function aN(t,e){return XT(t,e,{isMigrating:!0})}function ur(){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()&&JT?JT:e}function zp(){return we.get()?.ip}var uN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function cN(t,e){if(!t)throw new Error("Must supply environment variables.");return Pt({environmentVariables:t},e)}function lN(t){return Pt({isScim:!0},t)}function Zp(t,e){return Pt({ip:t},e)}async function eA(t=!h.isTest()){let e=zn();if(!e||e.snippets)return;let r,n=ts();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function dN(){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 pN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return $e(zT())}function ts(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 fN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return $e(at(e),t)}function mN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return $e(ec(e),t)}function Ut(){return!!we.get()?.isScim}function zn(){try{return we.get()}catch{return}}function Xp(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function ef(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function tf(){return zn()?.featureFlagOverrides||{}}async function rf(t,e){return await Pt({featureFlagOverrides:t},e)}function hN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function gN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Jr={};v(Jr,{getAppClient:()=>mc,getCacheClient:()=>Vf,getDocWritethroughClient:()=>TP,getInviteClient:()=>si,getLockClient:()=>Wf,getPasswordResetClient:()=>sa,getSessionClient:()=>Kr,getSocketClient:()=>EP,getUserClient:()=>ia,getWritethroughClient:()=>qf,init:()=>Mt,shutdown:()=>gS});var mS=Q(require("ioredis"));var cc={};v(cc,{Databases:()=>nf,SEPARATOR:()=>rs,SelectableDatabase:()=>ac,addDbPrefix:()=>Ye,getRedisConnectionDetails:()=>uc,getRedisOptions:()=>ns,removeDbPrefix:()=>sf});var yN=2e3,tA=1e4,rs="-",nf=(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))(nf||{}),ac=(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))(ac||{});function uc(){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}=uc(),n={connectTimeout:tA,port:r,host:t,password:e},i=n;return h.REDIS_CLUSTERED&&(i={connectTimeout:tA,redisOptions:{...n,tls:{}},slotsRefreshTimeout:yN,dnsLookup:(s,o)=>o(null,s)}),i}function Ye(t,e){return e.includes(t)?e:`${t}${rs}${e}`}function sf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var _c={};v(_c,{correlation:()=>Uo,logAlert:()=>ri,logAlertWithInfo:()=>pP,logWarn:()=>as,logger:()=>Sc,system:()=>Nf});var Uo={};v(Uo,{getId:()=>of,setHeader:()=>EN});var rA=require("correlation-id"),EN=t=>{let e=rA.getId();e&&(t["x-budibase-correlation-id"]=e)};function of(){return rA.getId()}var Ac=Q(require("pino")),pS=Q(require("pino-pretty"));var Pf=Q(require("dd-trace")),fS=require("dd-trace/ext");var Nf={};v(Nf,{getLogReadStream:()=>oP,getSingleFileMaxSizeInfo:()=>dS,localFileDestination:()=>vf});var Wo=Q(require("fs")),Cf=Q(require("path")),aS=Q(require("rotating-file-stream"));var Df={};v(Df,{ObjectStore:()=>Lt,ObjectStoreBuckets:()=>AN,SIGNED_FILE_PREFIX:()=>xf,bucketTTLConfig:()=>lc,budibaseTempDir:()=>Zn,clientLibraryCDNUrl:()=>XN,clientLibraryPath:()=>ZA,clientLibraryUrl:()=>eP,createBucketIfNotExists:()=>qo,deleteFile:()=>jN,deleteFiles:()=>HN,deleteFolder:()=>KA,downloadTarball:()=>KN,downloadTarballDirect:()=>YN,enrichPWAImages:()=>tP,enrichPluginURLs:()=>nP,extractBucketAndPath:()=>af,getAppFileUrl:()=>XA,getGlobalFileS3Key:()=>eS,getGlobalFileUrl:()=>rP,getObjectMetadata:()=>JN,getPluginIconKey:()=>nS,getPluginJSKey:()=>rS,getPluginS3Dir:()=>sS,getPresignedUrl:()=>Hr,getReadStream:()=>dc,listAllObjects:()=>YA,processAutomationAttachment:()=>_N,processObjectStoreAttachment:()=>aA,retrieve:()=>HA,retrieveDirectory:()=>QN,retrieveToTmp:()=>WN,sanitizeBucket:()=>Ke,sanitizeKey:()=>Le,streamUpload:()=>jA,upload:()=>qN,uploadDirectory:()=>Rf});var Ec=require("@aws-sdk/client-s3"),Af=require("@aws-sdk/lib-storage"),VA=require("@aws-sdk/s3-request-presigner"),Vo=Q(require("stream")),Sf=Q(require("node-fetch")),_f=Q(require("tar-fs")),If=Q(require("zlib")),qA=require("util"),jr=require("path"),fr=Q(require("fs"));var Lo=Q(require("path")),nA=require("os"),iA=Q(require("fs"));var sA=Q(require("stream")),AN={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},oA=(0,Lo.join)((0,nA.tmpdir)(),".budibase");try{iA.default.mkdirSync(oA)}catch(t){if(t.code!=="EEXIST")throw t}function Zn(){return oA}var lc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function SN(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:sA.default.Readable.fromWeb(e.body)}}async function aA(t){let e=af(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await dc(r,n),s=Lo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function _N(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await SN(t):await aA(t)}var Of=require("uuid");var Wr={};v(Wr,{APP_DEV:()=>Yu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>Hu,BUDIBASE_DATASOURCE_TYPE:()=>Ip,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>wp,DEFAULT_EXPENSES_TABLE_ID:()=>Rp,DEFAULT_INVENTORY_TABLE_ID:()=>xp,DEFAULT_JOBS_TABLE_ID:()=>Op,DatabaseImpl:()=>Xi,DatabaseWithConnection:()=>Kv,DeprecatedViews:()=>Ki,DocumentType:()=>he,InternalTable:()=>wr,QueryBuilder:()=>pr,Replication:()=>kA,SEPARATOR:()=>N,SQLITE_DESIGN_DOC_ID:()=>ar,SQS_DATASOURCE_INTERNAL:()=>_p,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Fe,ViewName:()=>Gr,baseGlobalDBName:()=>Po,checkErrorCode:()=>$A,closePouchDB:()=>vo,createApiKeyView:()=>NA,createNewUserEmailView:()=>CA,createPlatformAccountEmailView:()=>UA,createPlatformUserView:()=>LA,createUserAppView:()=>vA,createView:()=>ss,dbExists:()=>PN,directCouchAllDbs:()=>jp,directCouchCall:()=>GT,directCouchFind:()=>Hp,directCouchQuery:()=>rc,directCouchUrlCall:()=>Co,doWithDB:()=>ut,extractAppUUID:()=>Uv,fullSearch:()=>kN,generateAppID:()=>cA,generateAppUserID:()=>hc,generateDevInfoID:()=>gA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>EA,generatePluginID:()=>yA,generateRoleID:()=>lf,generateRowID:()=>cf,generateTableID:()=>lA,generateTemplateID:()=>hA,generateUserMetadataID:()=>fA,generateWorkspaceID:()=>dA,getAllApps:()=>Fo,getAllDbs:()=>DA,getAppsByIDs:()=>DN,getCouchInfo:()=>Nt,getDB:()=>$e,getDevAppID:()=>Pv,getDevAppIDs:()=>vN,getDevelopmentAppID:()=>ec,getDocParams:()=>Xn,getGlobalDBName:()=>cr,getGlobalIDFromUserMetadataID:()=>mA,getGlobalUserParams:()=>ei,getOAuth2ConfigParams:()=>bA,getPluginParams:()=>wA,getPouch:()=>Fp,getPouchDB:()=>Tt,getProdAppID:()=>at,getProdAppIDs:()=>CN,getQueryIndex:()=>TA,getRoleParams:()=>yc,getRowParams:()=>df,getStartEndKeyURL:()=>ko,getTemplateParams:()=>RA,getUrlInfo:()=>kp,getUserMetadataParams:()=>xA,getUsersByAppParams:()=>gc,getWorkspaceParams:()=>OA,init:()=>nc,isDatasourceId:()=>_A,isDevApp:()=>Do,isDevAppID:()=>$r,isDocumentConflictError:()=>BN,isExternalTableId:()=>pf,isGlobalUserID:()=>pA,isProdAppID:()=>Nv,isQueryId:()=>IA,isSameAppID:()=>NN,isTableId:()=>AA,isViewId:()=>SA,paginatedSearch:()=>MN,pagination:()=>mf,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>yf,queryPlatformView:()=>Go,queryView:()=>gf,queryViewRaw:()=>Bo,removeKeyNumbering:()=>$o,searchIndexes:()=>Tf});var Mo={};v(Mo,{AppState:()=>uf,getAppMetadata:()=>fc,invalidateAppMetadata:()=>RN});var uf=(e=>(e.INVALID="invalid",e))(uf||{}),uA=3600,IN=60;async function ON(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function xN(t){return!t||t.state==="invalid"}async function fc(t){let e=await mc(),r=await e.get(t);if(!r){let n=uA;try{r=await ON(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=IN;else throw i}if(xN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function RN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await mc();await r.delete(t),e&&await r.store(t,e,uA)}var ff={};v(ff,{generateAppID:()=>cA,generateAppUserID:()=>hc,generateDevInfoID:()=>gA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>EA,generatePluginID:()=>yA,generateRoleID:()=>lf,generateRowID:()=>cf,generateTableID:()=>lA,generateTemplateID:()=>hA,generateUserMetadataID:()=>fA,generateWorkspaceID:()=>dA,getDocParams:()=>Xn,getGlobalIDFromUserMetadataID:()=>mA,getGlobalUserParams:()=>ei,getOAuth2ConfigParams:()=>bA,getPluginParams:()=>wA,getQueryIndex:()=>TA,getRoleParams:()=>yc,getRowParams:()=>df,getStartEndKeyURL:()=>ko,getTemplateParams:()=>RA,getUserMetadataParams:()=>xA,getUsersByAppParams:()=>gc,getWorkspaceParams:()=>OA,isDatasourceId:()=>_A,isExternalTableId:()=>pf,isGlobalUserID:()=>pA,isQueryId:()=>IA,isTableId:()=>AA,isViewId:()=>SA,prefixRoleID:()=>lr});var cA=t=>{let e=yt;return t&&(e+=`${t}${N}`),`${e}${Ie()}`};function lA(){return`ta${N}${Ie()}`}function cf(t,e){return e=e||Ie(),`ro${N}${t}${N}${e}`}function dA(){return`workspace${N}${Ie()}`}function is(t){return`us${N}${t||Ie()}`}var wN=new RegExp(`^us${N}.+`);function pA(t){return wN.test(t)}function fA(t){return cf("ta_users",t)}function mA(t){let e=`ro${N}ta_users${N}`;return!t||!t.includes(e)?t:t.split(e)[1]}function hA(t){return`template${N}${t}${N}${Ie()}`}function hc(t,e){return`${t}${N}${e}`}function lf(t){let e=`role${N}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return lf(t)}var gA=t=>`devinfo${N}${t}`,yA=t=>`plg${N}${t}`,EA=t=>`oauth2log${N}${t}`;var bN=new RegExp("^datasource_plus_(.+)__(.+)$");function Xn(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${N}${e}`,endkey:`${t}${N}${e}${Fe}`}}function df(t,e,r={}){if(t==null)return Xn("ro",null,r);let n=e??`${t}${N}`;return Xn("ro",n,r)}function TA(t){return`database/${t}`}var pf=t=>{let e=t.match(bN);return!!t&&e!==null},AA=t=>!!t&&(t.startsWith(`ta${N}`)||pf(t));function SA(t){return!!t&&t.startsWith(`view${N}`)}function _A(t){return!!t&&t.startsWith(`datasource${N}`)}function IA(t){return!!t&&t.startsWith(`query${N}`)}function OA(t="",e={}){return{...e,startkey:`workspace${N}${t}`,endkey:`workspace${N}${t}${Fe}`}}function ei(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${N}${t}`,endkey:`us${N}${t}${Fe}`}}function xA(t,e={}){return df("ta_users",t,e)}function gc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Fe}`}}function RA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${N}${t}${N}`,{...r,startkey:n,endkey:`${n}${Fe}`}}function yc(t,e={}){return Xn("role",t,e)}function ko(t,e){let r=e?`${N}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Fe}"`}var wA=(t,e={})=>Xn("plg",t,e),bA=(t,e={})=>Xn("oauth2",t,e);async function DA(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(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 DA({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=>fc(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 DN(t){return(await Promise.allSettled(t.map(r=>fc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function CN(){return(await Fo({idsOnly:!0})).filter(e=>!$r(e))}async function vN(){return(await Fo({idsOnly:!0})).filter(e=>$r(e))}function NN(t,e){return t==null||e==null?!1:at(t)===at(e)}async function PN(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function mf(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 hf="_design/database";function UN(){return{_id:hf,views:{}}}async function LN(t,e){if(Ki[e])try{let r=await t.get(hf);for(let n of Ki[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(hf)}catch{n=UN()}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 CA=async()=>{let t=ie(),e=`function(doc) {
|
|
6
|
-
|
|
4
|
+
`+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},m=[];this._typeError&&m.push(this._typeError),this._whitelistError&&m.push(this._whitelistError),this._blacklistError&&m.push(this._blacklistError),(0,Fg.default)({args:d,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,Fg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(ft({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(ft({},r,{value:e})),i;return n._validate(e,ft({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(Bg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Bg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Mg.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,pu.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,wR.default)(e).map(s=>new xR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new OR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,pu.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,pu.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,pu.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)}}};fu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,RR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var Vg=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=$g;Hs.default=void 0;var bR=DR(tr());function DR(t){return t&&t.__esModule?t:{default:t}}var ad=bR.default,CR=ad;Hs.default=CR;function $g(){return new ad}$g.prototype=ad.prototype});var Pi=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var vR=t=>t==null;mu.default=vR});var Hg=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=jg;Ys.default=void 0;var NR=Qg(tr()),qg=Xt(),Wg=Qg(Pi());function Qg(t){return t&&t.__esModule?t:{default:t}}function jg(){return new Ks}var Ks=class extends NR.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=qg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Wg.default)(r)||r===!0}})}isFalse(e=qg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Wg.default)(r)||r===!1}})}};Ys.default=Ks;jg.prototype=Ks.prototype});var Jg=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=Yg;zs.default=void 0;var qt=Xt(),rr=Kg(Pi()),PR=Kg(tr());function Kg(t){return t&&t.__esModule?t:{default:t}}var UR=/^((([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,LR=/^((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,MR=/^(?:[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,FR=t=>(0,rr.default)(t)||t===t.trim(),kR={}.toString();function Yg(){return new Js}var Js=class extends PR.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===kR?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,rr.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,rr.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,rr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||qt.string.matches,params:{regex:e},test:o=>(0,rr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(UR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(LR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(MR,{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:FR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,rr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,rr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,rr.default)(r)||r===r.toUpperCase()})}};zs.default=Js;Yg.prototype=Js.prototype});var Xg=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Zg;Xs.default=void 0;var Nn=Xt(),Pn=zg(Pi()),BR=zg(tr());function zg(t){return t&&t.__esModule?t:{default:t}}var GR=t=>t!=+t;function Zg(){return new Zs}var Zs=class extends BR.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"&&!GR(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))}};Xs.default=Zs;Zg.prototype=Zs.prototype});var ey=H(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=VR;var $R=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function VR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=$R.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 ny=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=ld;eo.default=void 0;var qR=hu(ey()),ty=Xt(),ry=hu(Pi()),WR=hu(vn()),QR=hu(tr());function hu(t){return t&&t.__esModule?t:{default:t}}var cd=new Date(""),jR=t=>Object.prototype.toString.call(t)==="[object Date]";function ld(){return new Ui}var Ui=class extends QR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,qR.default)(e),isNaN(e)?cd:new Date(e))})})}_typeCheck(e){return jR(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(WR.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=ty.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,ry.default)(i)||i>=this.resolve(n)}})}max(e,r=ty.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,ry.default)(i)||i<=this.resolve(n)}})}};eo.default=Ui;Ui.INVALID_DATE=cd;ld.prototype=Ui.prototype;ld.INVALID_DATE=cd});var sy=H((iQ,dd)=>{"use strict";dd.exports=function(t){return iy(HR(t),t)};dd.exports.array=iy;function iy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=KR(e),a=YR(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 HR(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 KR(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 YR(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var oy=H(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=tw;var JR=gu(require("lodash/has")),zR=gu(sy()),ZR=qs(),XR=gu(vn()),ew=gu(vi());function gu(t){return t&&t.__esModule?t:{default:t}}function tw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,ZR.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,JR.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),XR.default.isRef(o)&&o.isSibling?i(o.path,s):(0,ew.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return zR.default.array(n,r).reverse()}});var uy=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=rw;function ay(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 rw(t){return(e,r)=>ay(t,e)-ay(t,r)}});var hy=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=my;ro.default=void 0;var cy=Wt(require("lodash/has")),ly=Wt(require("lodash/snakeCase")),nw=Wt(require("lodash/camelCase")),iw=Wt(require("lodash/mapKeys")),sw=Wt(require("lodash/mapValues")),ow=qs(),dy=Xt(),aw=Wt(oy()),fy=Wt(uy()),uw=Wt(au()),cw=Wt(Dn()),md=Wt(tr());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 py=t=>Object.prototype.toString.call(t)==="[object Object]";function lw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var dw=(0,fy.default)([]),to=class extends md.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=dw,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 py(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,cy.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(!cw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!py(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,uw.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 md.default&&s instanceof md.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,fy.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,aw.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,ow.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,cy.default)(s,e)&&(o=Li({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=dy.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=lw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=dy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,iw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(nw.default)}snakeCase(){return this.transformKeys(ly.default)}constantCase(){return this.transformKeys(e=>(0,ly.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,sw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function my(t){return new to(t)}my.prototype=to.prototype});var yy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=gy;io.default=void 0;var hd=Mi(Pi()),pw=Mi(vi()),fw=Mi(Vs()),gd=Xt(),mw=Mi(au()),hw=Mi(Dn()),gw=Mi(tr());function Mi(t){return t&&t.__esModule?t:{default:t}}function yu(){return yu=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},yu.apply(this,arguments)}function gy(t){return new no(t)}var no=class extends gw.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,yu({},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(!hw.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=yu({},r,{path:_,strict:!0,parent:f,index:E,originalValue:m[E]});g[E]=(M,T)=>c.validate(y,S,T)}(0,mw.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,pw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,fw.default)(e));return r.innerType=e,r}length(e,r=gd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,hd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||gd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,hd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||gd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,hd.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)}};io.default=no;gy.prototype=no.prototype});var Ey=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Tw;so.default=void 0;var yw=Ew(vi());function Ew(t){return t&&t.__esModule?t:{default:t}}function Tw(t){return new Eu(t)}var Eu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,yw.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},Aw=Eu;so.default=Aw});var Ty=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=Iw;var Sw=_w(Xt());function _w(t){return t&&t.__esModule?t:{default:t}}function Iw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Sw.default[e][r]=t[e][r]})})}});var Td=H(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.addMethod=Cw;Object.defineProperty(pe,"MixedSchema",{enumerable:!0,get:function(){return Ay.default}});Object.defineProperty(pe,"mixed",{enumerable:!0,get:function(){return Ay.create}});Object.defineProperty(pe,"BooleanSchema",{enumerable:!0,get:function(){return Ed.default}});Object.defineProperty(pe,"bool",{enumerable:!0,get:function(){return Ed.create}});Object.defineProperty(pe,"boolean",{enumerable:!0,get:function(){return Ed.create}});Object.defineProperty(pe,"StringSchema",{enumerable:!0,get:function(){return Sy.default}});Object.defineProperty(pe,"string",{enumerable:!0,get:function(){return Sy.create}});Object.defineProperty(pe,"NumberSchema",{enumerable:!0,get:function(){return _y.default}});Object.defineProperty(pe,"number",{enumerable:!0,get:function(){return _y.create}});Object.defineProperty(pe,"DateSchema",{enumerable:!0,get:function(){return Iy.default}});Object.defineProperty(pe,"date",{enumerable:!0,get:function(){return Iy.create}});Object.defineProperty(pe,"ObjectSchema",{enumerable:!0,get:function(){return Oy.default}});Object.defineProperty(pe,"object",{enumerable:!0,get:function(){return Oy.create}});Object.defineProperty(pe,"ArraySchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(pe,"array",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(pe,"ref",{enumerable:!0,get:function(){return Ow.create}});Object.defineProperty(pe,"lazy",{enumerable:!0,get:function(){return xw.create}});Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return Rw.default}});Object.defineProperty(pe,"reach",{enumerable:!0,get:function(){return ww.default}});Object.defineProperty(pe,"isSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(pe,"setLocale",{enumerable:!0,get:function(){return bw.default}});Object.defineProperty(pe,"BaseSchema",{enumerable:!0,get:function(){return Dw.default}});var Ay=Un(Vg()),Ed=Un(Hg()),Sy=Un(Jg()),_y=Un(Xg()),Iy=Un(ny()),Oy=Un(hy()),xy=Un(yy()),Ow=vn(),xw=Ey(),Rw=oo(Dn()),ww=oo(sd()),Ry=oo(vi()),bw=oo(Ty()),Dw=oo(tr());function oo(t){return t&&t.__esModule?t:{default:t}}function wy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return wy=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=wy();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 Cw(t,e,r){if(!t||!(0,Ry.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 by=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});var Ad=_d();Sd.default=()=>{(0,Ad.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,Ad.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,Ad.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var _d=H(Pe=>{"use strict";var vw=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]}),Nw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Pw=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)&&vw(e,t,r);return Nw(e,t),e},Uw=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=Pw(Td());Td();var ao=Ot(),Lw=Uw(by());xt();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}}},Dy=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(),Mw=t=>Ln[t]?(0,ao.valid)(Ln[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Mw;var Fw=()=>Ln;Pe.getOptionPresets=Fw;var kw=(t,e)=>{Ln[t]=Dy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=kw;var Bw=t=>{var e,r,n,i,s,o,a,u,c,l,d,m,p,f,g,E,y,_,S,M;try{(0,Lw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Ln[t.preset])return(0,ao.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:Dy.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,ao.valid)(w)}catch(T){return(0,ao.err)(T.errors)}};Pe.validateOptions=Bw});var Vt=H((uo,Od)=>{"use strict";var Fn=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var Mn=Ot(),Gw=Fn(ig()),$w=Fn(sg()),Vw=Fn(og()),qw=Fn(ag()),Ww=Fn(ug()),Qw=Fn(cg()),jw=Fn(lg()),Hw=_d();xt();var Kw=(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)},Id=(t,e={})=>{let r=(0,Hw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Kw(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,Gw.default)(s,n)),o.push((0,$w.default)(s,n)),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)),n.useYears&&o.push((0,jw.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)};uo.default=Id;Od.exports=Id;Od.exports.default=Id});var XE=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var ir=class extends Error{},Pd=class extends ir{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ud=class extends ir{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Ld=class extends ir{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends ir{},xu=class extends ir{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends ir{},Qt=class extends ir{constructor(){super("Zone is an abstract class")}},b="numeric",Dt="short",nt="long",Ru={year:b,month:b,day:b},tE={year:b,month:Dt,day:b},Yw={year:b,month:Dt,day:b,weekday:Dt},rE={year:b,month:nt,day:b},nE={year:b,month:nt,day:b,weekday:nt},iE={hour:b,minute:b},sE={hour:b,minute:b,second:b},oE={hour:b,minute:b,second:b,timeZoneName:Dt},aE={hour:b,minute:b,second:b,timeZoneName:nt},uE={hour:b,minute:b,hourCycle:"h23"},cE={hour:b,minute:b,second:b,hourCycle:"h23"},lE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:Dt},dE={hour:b,minute:b,second:b,hourCycle:"h23",timeZoneName:nt},pE={year:b,month:b,day:b,hour:b,minute:b},fE={year:b,month:b,day:b,hour:b,minute:b,second:b},mE={year:b,month:Dt,day:b,hour:b,minute:b},hE={year:b,month:Dt,day:b,hour:b,minute:b,second:b},Jw={year:b,month:Dt,day:b,weekday:Dt,hour:b,minute:b},gE={year:b,month:nt,day:b,hour:b,minute:b,timeZoneName:Dt},yE={year:b,month:nt,day:b,hour:b,minute:b,second:b,timeZoneName:Dt},EE={year:b,month:nt,day:b,weekday:nt,hour:b,minute:b,timeZoneName:nt},TE={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}},xd=null,go=class t extends Lr{static get instance(){return xd===null&&(xd=new t),xd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return SE(e,r,n)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Iu={};function zw(t){return Iu[t]||(Iu[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Iu[t]}var Zw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Xw(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 eb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Zw[s];s==="era"?n[a]=o:ne(a)||(n[a]=parseInt(o,10))}return n}var Tu={},sr=class t extends Lr{static create(e){return Tu[e]||(Tu[e]=new t(e)),Tu[e]}static resetCache(){Tu={},Iu={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return SE(e,r,n,this.name)}formatOffset(e,r){return ho(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=zw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?eb(n,r):Xw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Hd({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}},Cy={};function tb(t,e={}){let r=JSON.stringify([t,e]),n=Cy[r];return n||(n=new Intl.ListFormat(t,e),Cy[r]=n),n}var Md={};function Fd(t,e={}){let r=JSON.stringify([t,e]),n=Md[r];return n||(n=new Intl.DateTimeFormat(t,e),Md[r]=n),n}var kd={};function rb(t,e={}){let r=JSON.stringify([t,e]),n=kd[r];return n||(n=new Intl.NumberFormat(t,e),kd[r]=n),n}var Bd={};function nb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Bd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Bd[i]=s),s}var fo=null;function ib(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function sb(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=Fd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Fd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function ob(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function ab(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function ub(t){let e=[];for(let r=1;r<=7;r++){let n=Ie.utc(2016,11,13+r);e.push(t(n))}return e}function Au(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function cb(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 Gd=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=rb(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)}}},$d=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&sr.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:Ie.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=Fd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Vd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&AE()&&(this.rtf=nb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):xb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_e=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||ye.defaultLocale,o=s||(i?"en-US":ib()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,Md={},kd={},Bd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=sb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=ob(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=cb(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return Au(this,e,n,OE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=ab(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Au(this,e,n,wE,()=>{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]=ub(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Au(this,void 0,e,()=>bE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ie.utc(2016,11,13,9),Ie.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return Au(this,e,r,DE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ie.utc(-40,1,1),Ie.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 Gd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new $d(e,this.intl,r)}relFormatter(e={}){return new Vd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return tb(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}},Rd=null,it=class t extends Lr{static get utcInstance(){return Rd===null&&(Rd=new t(0)),Rd}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(Nu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${ho(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${ho(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return ho(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}},wu=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(lb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||sr.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new wu(t)}var vy=()=>Date.now(),Ny="system",Py=null,Uy=null,Ly=null,My=60,Fy,ye=class{static get now(){return vy}static set now(e){vy=e}static set defaultZone(e){Ny=e}static get defaultZone(){return Ur(Ny,go.instance)}static get defaultLocale(){return Py}static set defaultLocale(e){Py=e}static get defaultNumberingSystem(){return Uy}static set defaultNumberingSystem(e){Uy=e}static get defaultOutputCalendar(){return Ly}static set defaultOutputCalendar(e){Ly=e}static get twoDigitCutoffYear(){return My}static set twoDigitCutoffYear(e){My=e%100}static get throwOnInvalid(){return Fy}static set throwOnInvalid(e){Fy=e}static resetCaches(){_e.resetCache(),sr.resetCache()}};function ne(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function vu(t){return typeof t=="number"&&t%1===0}function lb(t){return typeof t=="string"}function db(t){return Object.prototype.toString.call(t)==="[object Date]"}function AE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function pb(t){return Array.isArray(t)?t:[t]}function ky(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function fb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function nr(t,e,r){return vu(t)&&t>=e&&t<=r}function mb(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 kn(t){if(!(ne(t)||t===null||t===""))return parseFloat(t)}function Qd(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 yo(t){return t%4===0&&(t%100!==0||t%400===0)}function mo(t){return yo(t)?366:365}function bu(t,e){let r=mb(e-1,12)+1,n=t+(e-r)/12;return r===2?yo(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Hd(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 Du(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 qd(t){return t>99?t:t>ye.twoDigitCutoffYear?1900+t:2e3+t}function SE(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 Nu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function _E(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ke(`Invalid unit value ${t}`);return e}function Cu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=_E(i)}return r}function ho(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 Pu(t){return fb(t,["hour","minute","second","millisecond"])}var hb=["January","February","March","April","May","June","July","August","September","October","November","December"],IE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],gb=["J","F","M","A","M","J","J","A","S","O","N","D"];function OE(t){switch(t){case"narrow":return[...gb];case"short":return[...IE];case"long":return[...hb];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 xE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],RE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],yb=["M","T","W","T","F","S","S"];function wE(t){switch(t){case"narrow":return[...yb];case"short":return[...RE];case"long":return[...xE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var bE=["AM","PM"],Eb=["Before Christ","Anno Domini"],Tb=["BC","AD"],Ab=["B","A"];function DE(t){switch(t){case"narrow":return[...Ab];case"short":return[...Tb];case"long":return[...Eb];default:return null}}function Sb(t){return bE[t.hour<12?0:1]}function _b(t,e){return wE(e)[t.weekday-1]}function Ib(t,e){return OE(e)[t.month-1]}function Ob(t,e){return DE(e)[t.year<0?0:1]}function xb(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 By(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Rb={D:Ru,DD:tE,DDD:rE,DDDD:nE,t:iE,tt:sE,ttt:oE,tttt:aE,T:uE,TT:cE,TTT:lE,TTTT:dE,f:pE,ff:mE,fff:gE,ffff:EE,F:fE,FF:hE,FFF:yE,FFFF:TE},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 Rb[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?Sb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,f)=>n?Ib(e,p):s(f?{month:p}:{month:p,day:"numeric"},"month"),c=(p,f)=>n?_b(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?Ob(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 By(t.parseFormat(r),m)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return By(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},CE=/[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 vE(...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 NE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,wb=`(?:${NE.source}?(?:\\[(${CE.source})\\])?)?`,Kd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,PE=RegExp(`${Kd.source}${wb}`),Yd=RegExp(`(?:T${PE.source})?`),bb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Db=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Cb=/(\d{4})-?(\d{3})/,vb=vE("weekYear","weekNumber","weekDay"),Nb=vE("year","ordinal"),Pb=/(\d{4})-(\d\d)-(\d\d)/,UE=RegExp(`${Kd.source} ?(?:${NE.source}|(${CE.source}))?`),Ub=RegExp(`(?: ${UE.source})?`);function Bi(t,e,r){let n=t[e];return ne(n)?r:Pr(n)}function Lb(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:Qd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Nu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?sr.create(t[e]):null;return[{},r,e+1]}var Mb=RegExp(`^T?${Kd.source}$`),Fb=/^-?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 kb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",m=(p,f=!1)=>p!==void 0&&(f||p&&l)?-p:p;return[{years:m(kn(r)),months:m(kn(n)),weeks:m(kn(i)),days:m(kn(s)),hours:m(kn(o)),minutes:m(kn(a)),seconds:m(kn(u),u==="-0"),milliseconds:m(Qd(c),d)}]}var Bb={GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Jd(t,e,r,n,i,s,o){let a={year:e.length===2?qd(Pr(e)):Pr(e),month:IE.indexOf(r)+1,day:Pr(n),hour:Pr(i),minute:Pr(s)};return o&&(a.second=Pr(o)),t&&(a.weekday=t.length>3?xE.indexOf(t)+1:RE.indexOf(t)+1),a}var Gb=/^(?:(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 $b(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,m=Jd(e,i,n,r,s,o,a),p;return u?p=Bb[u]:c?p=0:p=Nu(l,d),[m,new it(p)]}function Vb(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$/,Wb=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Qb=/^(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 Gy(t){let[,e,r,n,i,s,o,a]=t;return[Jd(e,i,n,r,s,o,a),it.utcInstance]}function jb(t){let[,e,r,n,i,s,o,a]=t;return[Jd(e,a,r,n,i,s,o),it.utcInstance]}var Hb=$i(bb,Yd),Kb=$i(Db,Yd),Yb=$i(Cb,Yd),Jb=$i(PE),LE=Vi(Lb,Wi,Eo,To),zb=Vi(vb,Wi,Eo,To),Zb=Vi(Nb,Wi,Eo,To),Xb=Vi(Wi,Eo,To);function eD(t){return qi(t,[Hb,LE],[Kb,zb],[Yb,Zb],[Jb,Xb])}function tD(t){return qi(Vb(t),[Gb,$b])}function rD(t){return qi(t,[qb,Gy],[Wb,Gy],[Qb,jb])}function nD(t){return qi(t,[Fb,kb])}var iD=Vi(Wi);function sD(t){return qi(t,[Mb,iD])}var oD=$i(Pb,Ub),aD=$i(UE),uD=Vi(Wi,Eo,To);function cD(t){return qi(t,[oD,LE],[aD,uD])}var lD="Invalid Duration",ME={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}},dD={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},...ME},mt=146097/400,Fi=146097/4800,pD={years:{quarters:4,months:12,weeks:mt/7,days:mt,hours:mt*24,minutes:mt*24*60,seconds:mt*24*60*60,milliseconds:mt*24*60*60*1e3},quarters:{months:3,weeks:mt/28,days:mt/4,hours:mt*24/4,minutes:mt*24*60/4,seconds:mt*24*60*60/4,milliseconds:mt*24*60*60*1e3/4},months:{weeks:Fi/7,days:Fi,hours:Fi*24,minutes:Fi*24*60,seconds:Fi*24*60*60,milliseconds:Fi*24*60*60*1e3},...ME},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],fD=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 mD(t){return t<0?Math.floor(t):Math.ceil(t)}function FE(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?mD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function hD(t,e){fD.reduce((r,n)=>ne(e[n])?r:(r&&FE(t,e,r,e,n),n),null)}function gD(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?pD:dD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||_e.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Ke(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Cu(e,t.normalizeUnit),loc:_e.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Vn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ke(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=nD(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]=sD(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 Ke("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Ld(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 xu(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):lD}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]=_E(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,...Cu(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 hD(this.matrix,e),Nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=gD(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)&&FE(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}},ki="Invalid Interval";function yD(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 Ke("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Ud(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=yD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=po(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=po(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=Ie.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ie.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(po).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()})`:ki}toLocaleString(e=Ru,r={}){return this.isValid?tt.create(this.s.loc.clone(r),e).formatInterval(this):ki}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:ki}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:ki}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:ki}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:ki}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=Ie.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return sr.isValidZone(e)}static normalizeZone(e){return Ur(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||_e.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||_e.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return _e.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return _e.create(r,null,"gregory").eras(e)}static features(){return{relative:AE()}}};function $y(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 ED(t,e,r){let n=[["years",(u,c)=>c.year-u.year],["quarters",(u,c)=>c.quarter-u.quarter+(c.year-u.year)*4],["months",(u,c)=>c.month-u.month+(c.year-u.year)*12],["weeks",(u,c)=>{let l=$y(u,c);return(l-l%7)/7}],["days",$y]],i={},s=t,o,a;for(let[u,c]of n)r.indexOf(u)>=0&&(o=u,i[u]=c(t,e),a=s.plus(i),a>e?(i[u]--,t=s.plus(i)):t=a);return[t,i,a,o]}function TD(t,e,r,n){let[i,s,o,a]=ED(t,e,r),u=e-i,c=r.filter(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 zd={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"},Vy={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},AD=zd.hanidec.replace(/[\[|\]]/g,"").split("");function SD(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(zd.hanidec)!==-1)e+=AD.indexOf(t[r]);else for(let i in Vy){let[s,o]=Vy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${zd[t||"latn"]}${e}`)}var _D="missing Intl.DateTimeFormat.formatToParts support";function ce(t,e=r=>r){return{regex:t,deser:([r])=>e(SD(r))}}var ID=String.fromCharCode(160),kE=`[ ${ID}]`,BE=new RegExp(kE,"g");function OD(t){return t.replace(/\./g,"\\.?").replace(BE,kE)}function qy(t){return t.replace(/\./g,"").replace(BE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(OD).join("|")),deser:([r])=>t.findIndex(n=>qy(r)===qy(n))+e}}function Wy(t,e){return{regex:t,deser:([,r,n])=>Nu(r,n),groups:e}}function wd(t){return{regex:t,deser:([e])=>e}}function xD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function RD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),d=wt(e,"{2,4}"),m=wt(e,"{4,6}"),p=E=>({regex:RegExp(xD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return p(E);switch(E.val){case"G":return bt(e.eras("short",!1),0);case"GG":return bt(e.eras("long",!1),0);case"y":return ce(c);case"yy":return ce(d,qd);case"yyyy":return ce(s);case"yyyyy":return ce(m);case"yyyyyy":return ce(o);case"M":return ce(a);case"MM":return ce(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return ce(a);case"LL":return ce(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return ce(a);case"dd":return ce(n);case"o":return ce(u);case"ooo":return ce(i);case"HH":return ce(n);case"H":return ce(a);case"hh":return ce(n);case"h":return ce(a);case"mm":return ce(n);case"m":return ce(a);case"q":return ce(a);case"qq":return ce(n);case"s":return ce(a);case"ss":return ce(n);case"S":return ce(u);case"SSS":return ce(i);case"u":return wd(l);case"uu":return wd(a);case"uuu":return ce(r);case"a":return bt(e.meridiems(),0);case"kkkk":return ce(s);case"kk":return ce(d,qd);case"W":return ce(a);case"WW":return ce(n);case"E":case"c":return ce(r);case"EEE":return bt(e.weekdays("short",!1,!1),1);case"EEEE":return bt(e.weekdays("long",!1,!1),1);case"ccc":return bt(e.weekdays("short",!0,!1),1);case"cccc":return bt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return Wy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Wy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return wd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:_D};return g.token=t,g}var wD={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 bD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=wD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function DD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function CD(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 vD(t){let e=s=>{switch(s){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},r=null,n;return ne(t.z)||(r=sr.create(t.z)),ne(t.Z)||(r||(r=new 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=Qd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var bd=null;function ND(){return bd||(bd=Ie.fromMillis(1555555555555)),bd}function PD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=VE(r,e);return n==null||n.includes(void 0)?t:n}function GE(t,e){return Array.prototype.concat(...t.map(r=>PD(r,e)))}function $E(t,e,r){let n=GE(tt.parseFormat(r),t),i=n.map(o=>RD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=DD(i),u=RegExp(o,"i"),[c,l]=CD(e,u,a),[d,m,p]=l?vD(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 UD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=$E(t,e,r);return[n,i,s,o]}function VE(t,e){return t?tt.create(e,t).formatDateTimeParts(ND()).map(i=>bD(i,t)):null}var qE=[0,31,59,90,120,151,181,212,243,273,304,334],WE=[0,31,60,91,121,152,182,213,244,274,305,335];function ht(t,e){return new rt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function QE(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+(yo(t)?WE:qE)[e-1]}function HE(t,e){let r=yo(t)?WE:qE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Wd(t){let{year:e,month:r,day:n}=t,i=jE(e,r,n),s=QE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Du(a)):o>Du(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Pu(t)}}function Qy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=QE(e,1,4),s=mo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=mo(a)):o>s?(a=e+1,o-=mo(e)):a=e;let{month:u,day:c}=HE(a,o);return{year:a,month:u,day:c,...Pu(t)}}function Dd(t){let{year:e,month:r,day:n}=t,i=jE(e,r,n);return{year:e,ordinal:i,...Pu(t)}}function jy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=HE(e,r);return{year:e,month:n,day:i,...Pu(t)}}function LD(t){let e=vu(t.weekYear),r=nr(t.weekNumber,1,Du(t.weekYear)),n=nr(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function MD(t){let e=vu(t.year),r=nr(t.ordinal,1,mo(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function KE(t){let e=vu(t.year),r=nr(t.month,1,12),n=nr(t.day,1,bu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function YE(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=nr(e,0,23)||e===24&&r===0&&n===0&&i===0,o=nr(r,0,59),a=nr(n,0,59),u=nr(i,0,999);return s?o?a?u?!1:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Cd="Invalid DateTime",Hy=864e13;function Su(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function vd(t){return t.weekData===null&&(t.weekData=Wd(t.c)),t.weekData}function co(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ie({...r,...e,old:r})}function JE(t,e,r){let n=t-e*60*1e3,i=r.offset(n);if(e===i)return[n,e];n-=(i-e)*60*1e3;let s=r.offset(n);return i===s?[n,i]:[t-Math.min(i,s)*60*1e3,Math.max(i,s)]}function Ky(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function Ou(t,e,r){return JE(Hd(t),e,r)}function Yy(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,bu(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=Hd(s),[u,c]=JE(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function lo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=Ie.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ie.invalid(new rt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function _u(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Nd(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 Jy(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 zE={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},FD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},kD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ZE=["year","month","day","hour","minute","second","millisecond"],BD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],GD=["year","ordinal","hour","minute","second","millisecond"];function zy(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 xu(t);return e}function Zy(t,e){let r=Ur(e.zone,ye.defaultZone),n=_e.fromObject(e),i=ye.now(),s,o;if(ne(t.year))s=i;else{for(let c of ZE)ne(t[c])&&(t[c]=zE[c]);let a=KE(t)||YE(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=Ou(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function Xy(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 eE(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 Ie=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:Su(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=Ky(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||_e.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=eE(arguments),[n,i,s,o,a,u,c]=r;return Zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=eE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,Zy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=db(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:_e.fromObject(r)}):t.invalid(Su(i))}static fromMillis(e,r={}){if(Vn(e))return e<-Hy||e>Hy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(r.zone,ye.defaultZone),loc:_e.fromObject(r)});throw new Ke(`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:_e.fromObject(r)});throw new Ke("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ur(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(Su(n));let i=ye.now(),s=ne(r.specificOffset)?n.offset(i):r.specificOffset,o=Cu(e,zy),a=!ne(o.ordinal),u=!ne(o.year),c=!ne(o.month)||!ne(o.day),l=u||c,d=o.weekYear||o.weekNumber,m=_e.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=Ky(i,s);p?(f=BD,g=FD,E=Wd(E)):a?(f=GD,g=kD,E=Dd(E)):(f=ZE,g=zE);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?LD(o):a?MD(o):KE(o),S=_||YE(o);if(S)return t.invalid(S);let M=p?Qy(o):a?jy(o):o,[T,I]=Ou(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]=eD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=tD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=rD(e);return lo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ne(e)||ne(r))throw new Ke("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=UD(o,e,r);return l?t.invalid(l):lo(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]=cD(e);return lo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ke("need to specify a reason the DateTime is invalid");let n=e instanceof rt?e:new rt(e,r);if(ye.throwOnInvalid)throw new Pd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=VE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return GE(tt.parseFormat(e),_e.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?vd(this).weekYear:NaN}get weekNumber(){return this.isValid?vd(this).weekNumber:NaN}get weekday(){return this.isValid?vd(this).weekday:NaN}get ordinal(){return this.isValid?Dd(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 yo(this.year)}get daysInMonth(){return bu(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Du(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]=Ou(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(Su(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return co(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Cu(e,zy),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=Qy({...Wd(this.c),...r}):ne(r.ordinal)?(c={...this.toObject(),...r},ne(r.day)&&(c.day=Math.min(bu(c.year,c.month),c.day))):c=jy({...Dd(this.c),...r});let[l,d]=Ou(c,this.o,this.zone);return co(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,Yy(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(this,Yy(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):Cd}toLocaleString(e=Ru,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Cd}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=Nd(this,o);return a+="T",a+=Jy(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Nd(this,e==="extended"):null}toISOWeekDate(){return _u(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":"")+Jy(this,o==="extended",r,e,n,s):null}toRFC2822(){return _u(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return _u(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Nd(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")),_u(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Cd}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=pb(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=TD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?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),Xy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?Xy(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 Ke("min requires all arguments be DateTimes");return ky(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("max requires all arguments be DateTimes");return ky(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=_e.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return $E(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Ru}static get DATE_MED(){return tE}static get DATE_MED_WITH_WEEKDAY(){return Yw}static get DATE_FULL(){return rE}static get DATE_HUGE(){return nE}static get TIME_SIMPLE(){return iE}static get TIME_WITH_SECONDS(){return sE}static get TIME_WITH_SHORT_OFFSET(){return oE}static get TIME_WITH_LONG_OFFSET(){return aE}static get TIME_24_SIMPLE(){return uE}static get TIME_24_WITH_SECONDS(){return cE}static get TIME_24_WITH_SHORT_OFFSET(){return lE}static get TIME_24_WITH_LONG_OFFSET(){return dE}static get DATETIME_SHORT(){return pE}static get DATETIME_SHORT_WITH_SECONDS(){return fE}static get DATETIME_MED(){return mE}static get DATETIME_MED_WITH_SECONDS(){return hE}static get DATETIME_MED_WITH_WEEKDAY(){return Jw}static get DATETIME_FULL(){return gE}static get DATETIME_FULL_WITH_SECONDS(){return yE}static get DATETIME_HUGE(){return EE}static get DATETIME_HUGE_WITH_SECONDS(){return TE}};function po(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&Vn(t.valueOf()))return Ie.fromJSDate(t);if(t&&typeof t=="object")return Ie.fromObject(t);throw new Ke(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var $D="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=sr;st.Info=$n;st.Interval=qn;st.InvalidZone=wu;st.Settings=ye;st.SystemZone=go;st.VERSION=$D;st.Zone=Lr});var tT=H((hQ,eT)=>{"use strict";var Wn=XE();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))}eT.exports=z});var iT=H((gQ,nT)=>{"use strict";function Qn(t){return{start:t,count:1}}function rT(t,e){t.end=e,t.step=e-t.start,t.count=2}function Zd(t,e,r){e&&(e.count===2?(t.push(Qn(e.start)),t.push(Qn(e.end))):t.push(e)),r&&t.push(r)}function VD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(Zd(e,r,Qn(i)),r=void 0):r?r.count===1?rT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Qn(r.start)),r=Qn(r.end),rT(r,i)):(Zd(e,r),r=Qn(i)):r=Qn(i)}return Zd(e,r),e}nT.exports=VD});var oT=H((yQ,sT)=>{"use strict";var qD=iT();function WD(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(",")}sT.exports=WD});var cT=H((EQ,uT)=>{"use strict";var jn=tT(),QD=oT(),aT=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<aT;){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>=aT)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(QD(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||{})};uT.exports=U});var dT=H((TQ,lT)=>{"use strict";var Uu=cT();function Mr(){}Mr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Uu.parse(e)};if(r.length>6)return{interval:Uu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Mr.parseExpression=function(e,r){return Uu.parse(e,r)};Mr.fieldsToExpression=function(e,r){return Uu.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()))})};lT.exports=Mr});var wk={};N(wk,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>Ap,BadRequestError:()=>Rc,BudibaseError:()=>ps,Config:()=>Rp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Ip,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Sp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,Duration:()=>be,DurationType:()=>vf,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>bc,GlobalRole:()=>xp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>Rr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>xT,NotFoundError:()=>xc,RedisClient:()=>We,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Tp,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Be,UsageLimitError:()=>wc,UserStatus:()=>qu,ViewName:()=>Br,accounts:()=>li,auth:()=>dh,blacklist:()=>hh,cache:()=>_a,configs:()=>tn,constants:()=>wp,context:()=>Ae,db:()=>jr,docIds:()=>Af,docUpdates:()=>yh,encryption:()=>uh,env:()=>h,errors:()=>Cc,events:()=>ys,features:()=>Xm,getPublicError:()=>Dc,init:()=>Rk,installation:()=>Gc,locks:()=>ui,logging:()=>Ic,middleware:()=>lh,objectStore:()=>jf,permissions:()=>Jm,platform:()=>Zo,plugins:()=>fh,queue:()=>um,redis:()=>mh,roles:()=>Ym,security:()=>xm,sessions:()=>Hc,setEnv:()=>xo,sql:()=>Rh,tenancy:()=>xk,timers:()=>kc,userUtils:()=>rm,users:()=>Es,utils:()=>ss,withEnv:()=>vT});module.exports=vI(wk);var tn={};N(tn,{analyticsEnabled:()=>Mc,generateConfigID:()=>Zc,getAIConfig:()=>B0,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Lm,getGoogleConfig:()=>Xc,getGoogleDatasourceConfig:()=>km,getOIDCConfig:()=>M0,getOIDCConfigById:()=>Bm,getOIDCLogosDoc:()=>U0,getPlatformUrl:()=>ba,getSCIMConfig:()=>k0,getSMTPConfig:()=>F0,getSMTPConfigDoc:()=>R_,getSettingsConfig:()=>Fm,getSettingsConfigDoc:()=>Vc,save:()=>N0});var NI=["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"],bh=[...NI],Dh={"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 Ol=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ol||{}),xl=(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))(xl||{}),Ma=(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))(Ma||{});var Rl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Rl||{});var PI=W(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||{}),Yt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Yt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function Fa(t){return Object.values(Ti).includes(t)}function Ch(t){return Object.values(Or).includes(t)}function vh(t){return Object.values(Yt).includes(t)}function ka(t){return Object.values(dn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Nh=t=>typeof t=="object"&&t._id&&t._rev;var Os=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Os||{});var Ph={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!1,AI_TABLE_GENERATION:!1,AI_AGENTS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var bB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var xs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(xs||{});var Ba=(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))(Ba||{});var Ga=t=>t.hosting==="cloud";var $a=t=>t.authType==="sso";var C="_",Be="\uFFF0",xr=t=>`${t}${C}`,he=(Q=>(Q.USER="us",Q.GROUP="gr",Q.WORKSPACE="workspace",Q.CONFIG="config",Q.TEMPLATE="template",Q.APP="app",Q.DEV="dev",Q.APP_DEV="app_dev",Q.APP_METADATA="app_metadata",Q.ROLE="role",Q.MIGRATIONS="migrations",Q.DEV_INFO="devinfo",Q.AUTOMATION_LOG="log_au",Q.ACCOUNT_METADATA="acc_metadata",Q.PLUGIN="plg",Q.DATASOURCE="datasource",Q.DATASOURCE_PLUS="datasource_plus",Q.APP_BACKUP="backup",Q.TABLE="ta",Q.ROW="ro",Q.AUTOMATION="au",Q.LINK="li",Q.WEBHOOK="wh",Q.INSTANCE="inst",Q.LAYOUT="layout",Q.SCREEN="screen",Q.QUERY="query",Q.DEPLOYMENTS="deployments",Q.METADATA="metadata",Q.MEM_VIEW="view",Q.USER_FLAG="flag",Q.AUTOMATION_METADATA="meta_au",Q.AUDIT_LOG="al",Q.APP_MIGRATION_METADATA="_design/migrations",Q.SCIM_LOG="scimlog",Q.ROW_ACTIONS="ra",Q.OAUTH2_CONFIG="oauth2",Q.OAUTH2_CONFIG_LOG="oauth2log",Q.AGENT_CHAT="agentchat",Q))(he||{}),hG=Object.values(he).sort((t,e)=>e.length-t.length);var Rr=(e=>(e.USER_METADATA="ta_users",e))(Rr||{}),wl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(wl||{}),gG=Object.values(wl).sort((t,e)=>e.length-t.length);var oe=(c=>(c.OBJECT="object",c.STRING="string",c.BOOLEAN="boolean",c.NUMBER="number",c.ARRAY="array",c.JSON="json",c.DATE="date",c.DATETIME="datetime",c.ATTACHMENT="attachment",c))(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||{}),_t=(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))(_t||{});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||{}),Uh=[...Object.values(de),...Object.values(_t)];var bl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(bl||{});var Dl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Dl||{});var Cl="bb_internal";var Lh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Va(t){return!!t.providerType}var vl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(vl||{});var P$=Object.values(vl);var k$=["rows","queries","automations"],B$=["queries","automations"];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 Pl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Pl||(Pl={}));var F=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 F.undefined;case"string":return F.string;case"number":return isNaN(t)?F.nan:F.number;case"boolean":return F.boolean;case"function":return F.function;case"bigint":return F.bigint;case"symbol":return F.symbol;case"object":return Array.isArray(t)?F.array:t===null?F.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?F.promise:typeof Map<"u"&&t instanceof Map?F.map:typeof Set<"u"&&t instanceof Set?F.set:typeof Date<"u"&&t instanceof Date?F.date:F.object;default:return F.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"]),FI=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===F.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case O.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,te.jsonStringifyReplacer)}`;break;case O.unrecognized_keys:r=`Unrecognized key(s) in object: ${te.joinValues(t.keys,", ")}`;break;case O.invalid_union:r="Invalid input";break;case O.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${te.joinValues(t.options)}`;break;case O.invalid_enum_value:r=`Invalid enum value. Expected ${te.joinValues(t.options)}, received '${t.received}'`;break;case O.invalid_arguments:r="Invalid function arguments";break;case O.invalid_return_type:r="Invalid function return type";break;case O.invalid_date:r="Invalid date";break;case O.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:te.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case O.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case O.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case O.custom:r="Invalid input";break;case O.invalid_intersection_types:r="Intersection results could not be merged";break;case O.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case O.not_finite:r="Number must be finite";break;default:r=e.defaultError,te.assertNever(t)}return{message:r}},kh=Ii;function kI(t){kh=t}function qa(){return kh}var Wa=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}},BI=[];function P(t,e){let r=qa(),n=Wa({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}),Ge=t=>({status:"valid",value:t}),Ul=t=>t.status==="aborted",Ll=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function Qa(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Bh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var Rs,ws,pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Mh=(t,e)=>{if(bs(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(Ds(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 Mh(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(Ds(i)?i:Promise.resolve(i));return Mh(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:K.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return dt.create(this,this._def)}nullable(){return $t.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Zt.create(this,this._def)}promise(){return Cr.create(this,this._def)}or(e){return Tn.create([this,e],this._def)}and(e){return An.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:K.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new xn({...Z(this._def),innerType:this,defaultValue:r,typeName:K.ZodDefault})}brand(){return new Cs({typeName:K.ZodBranded,type:this,...Z(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,catchValue:r,typeName:K.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return vs.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},GI=/^c[^\s-]{8,}$/i,$I=/^[0-9a-z]+$/,VI=/^[0-9A-HJKMNP-TV-Z]{26}$/,qI=/^[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,WI=/^[a-z0-9_-]{21}$/i,QI=/^[-+]?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)?)??$/,jI=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,HI="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Nl,KI=/^(?:(?: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])$/,YI=/^(([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})))$/,JI=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Gh="((\\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])))",zI=new RegExp(`^${Gh}$`);function $h(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 ZI(t){return new RegExp(`^${$h(t)}$`)}function Vh(t){let e=`${Gh}T${$h(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 XI(t,e){return!!((e==="v4"||!e)&&KI.test(t)||(e==="v6"||!e)&&YI.test(t))}var br=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==F.string){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:F.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")jI.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")Nl||(Nl=new RegExp(HI,"u")),Nl.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")qI.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")WI.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")GI.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")$I.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")VI.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"?Vh(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"?zI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:O.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?ZI(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"?QI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:O.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?XI(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"?JI.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:K.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function eO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==F.number){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:F.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"?eO(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)}};fn.create=t=>new fn({checks:[],typeName:K.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==F.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:F.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}};mn.create=t=>{var e;return new mn({checks:[],typeName:K.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var hn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==F.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:F.boolean,received:n.parsedType}),J}return Ge(e.data)}};hn.create=t=>new hn({typeName:K.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var gn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==F.date){let s=this._getOrReturnCtx(e);return P(s,{code:O.invalid_type,expected:F.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}};gn.create=t=>new gn({checks:[],coerce:t?.coerce||!1,typeName:K.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==F.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:F.symbol,received:n.parsedType}),J}return Ge(e.data)}};Oi.create=t=>new Oi({typeName:K.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==F.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:F.undefined,received:n.parsedType}),J}return Ge(e.data)}};yn.create=t=>new yn({typeName:K.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==F.null){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:F.null,received:n.parsedType}),J}return Ge(e.data)}};En.create=t=>new En({typeName:K.ZodNull,...Z(t)});var Dr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Ge(e.data)}};Dr.create=t=>new Dr({typeName:K.ZodAny,...Z(t)});var zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ge(e.data)}};zt.create=t=>new zt({typeName:K.ZodUnknown,...Z(t)});var It=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:O.invalid_type,expected:F.never,received:r.parsedType}),J}};It.create=t=>new It({typeName:K.ZodNever,...Z(t)});var xi=class extends X{_parse(e){if(this._getType(e)!==F.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:F.void,received:n.parsedType}),J}return Ge(e.data)}};xi.create=t=>new xi({typeName:K.ZodVoid,...Z(t)});var Zt=class t extends X{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==F.array)return P(r,{code:O.invalid_type,expected:F.array,received:r.parsedType}),J;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(P(r,{code:o?O.too_big:O.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(P(r,{code:O.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(P(r,{code:O.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(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)}};Zt.create=(t,e)=>new Zt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:K.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]=dt.create(Si(n))}return new je({...t._def,shape:()=>e})}else return t instanceof Zt?new Zt({...t._def,type:Si(t.element)}):t instanceof dt?dt.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)!==F.object){let c=this._getOrReturnCtx(e);return P(c,{code:O.invalid_type,expected:F.object,received:c.parsedType}),J}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof It&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof It){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code:O.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,m=await l.value;c.push({key:d,value:m,alwaysSet:l.alwaysSet})}return c}).then(c=>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:K.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 dt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return qh(te.objectKeys(this.shape))}};je.create=(t,e)=>new je({shape:()=>t,unknownKeys:"strip",catchall:It.create(),typeName:K.ZodObject,...Z(e)});je.strictCreate=(t,e)=>new je({shape:()=>t,unknownKeys:"strict",catchall:It.create(),typeName:K.ZodObject,...Z(e)});je.lazycreate=(t,e)=>new je({shape:t,unknownKeys:"strip",catchall:It.create(),typeName:K.ZodObject,...Z(e)});var Tn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return 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}};Tn.create=(t,e)=>new Tn({options:t,typeName:K.ZodUnion,...Z(e)});var Jt=t=>t instanceof Sn?Jt(t.schema):t instanceof Ze?Jt(t.innerType()):t instanceof _n?[t.value]:t instanceof In?t.options:t instanceof On?te.objectValues(t.enum):t instanceof xn?Jt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...Jt(t.unwrap())]:t instanceof $t?[null,...Jt(t.unwrap())]:t instanceof Cs||t instanceof wn?Jt(t.unwrap()):t instanceof Rn?Jt(t._def.innerType):[],ja=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.object)return P(r,{code:O.invalid_type,expected:F.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=Jt(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:K.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function Ml(t,e){let r=wr(t),n=wr(e);if(t===e)return{valid:!0,data:t};if(r===F.object&&n===F.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=Ml(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===F.array&&n===F.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=Ml(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===F.date&&n===F.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var An=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Ul(s)||Ul(o))return J;let a=Ml(s.value,o.value);return a.valid?((Ll(s)||Ll(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}))}};An.create=(t,e,r)=>new An({left:t,right:e,typeName:K.ZodIntersection,...Z(r)});var Gt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.array)return P(n,{code:O.invalid_type,expected:F.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:O.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:O.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>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:K.ZodTuple,rest:null,...Z(e)})};var Ha=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!==F.object)return P(n,{code:O.invalid_type,expected:F.object,received:n.parsedType}),J;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?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:K.ZodRecord,...Z(n)}):new t({keyType:br.create(),valueType:e,typeName:K.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!==F.map)return P(n,{code:O.invalid_type,expected:F.map,received:n.parsedType}),J;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ri.create=(t,e,r)=>new Ri({valueType:e,keyType:t,typeName:K.ZodMap,...Z(r)});var wi=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==F.set)return P(n,{code:O.invalid_type,expected:F.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:O.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(P(n,{code:O.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return J;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};wi.create=(t,e)=>new wi({valueType:t,minSize:null,maxSize:null,typeName:K.ZodSet,...Z(e)});var Ka=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.function)return P(r,{code:O.invalid_type,expected:F.function,received:r.parsedType}),J;function n(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),Ii].filter(c=>!!c),issueData:{code:O.invalid_arguments,argumentsError:u}})}function i(a,u){return Wa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,qa(),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 Ge(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 Ge(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:K.ZodFunction,...Z(n)})}},Sn=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})}};Sn.create=(t,e)=>new Sn({getter:t,typeName:K.ZodLazy,...Z(e)});var _n=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:O.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};_n.create=(t,e)=>new _n({value:t,typeName:K.ZodLiteral,...Z(e)});function qh(t,e){return new In({values:t,typeName:K.ZodEnum,...Z(e)})}var In=class t extends X{constructor(){super(...arguments),Rs.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(Qa(this,Rs,"f")||Bh(this,Rs,new Set(this._def.values),"f"),!Qa(this,Rs,"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 Ge(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})}};Rs=new WeakMap;In.create=qh;var On=class extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){let r=te.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==F.string&&n.parsedType!==F.number){let i=te.objectValues(r);return P(n,{expected:te.joinValues(i),received:n.parsedType,code:O.invalid_type}),J}if(Qa(this,ws,"f")||Bh(this,ws,new Set(te.getValidEnumValues(this._def.values)),"f"),!Qa(this,ws,"f").has(e.data)){let i=te.objectValues(r);return P(n,{received:n.data,code:O.invalid_enum_value,options:i}),J}return Ge(e.data)}get enum(){return this._def.values}};ws=new WeakMap;On.create=(t,e)=>new On({values:t,typeName:K.ZodNativeEnum,...Z(e)});var Cr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==F.promise&&r.common.async===!1)return P(r,{code:O.invalid_type,expected:F.promise,received:r.parsedType}),J;let n=r.parsedType===F.promise?r.data:Promise.resolve(r.data);return Ge(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Cr.create=(t,e)=>new Cr({type:t,typeName:K.ZodPromise,...Z(e)});var Ze=class extends X{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===K.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(!bs(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=>bs(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:K.ZodEffects,effect:e,...Z(r)});Ze.createWithPreprocess=(t,e,r)=>new Ze({schema:e,effect:{type:"preprocess",transform:t},typeName:K.ZodEffects,...Z(r)});var dt=class extends X{_parse(e){return this._getType(e)===F.undefined?Ge(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:K.ZodOptional,...Z(e)});var $t=class extends X{_parse(e){return this._getType(e)===F.null?Ge(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};$t.create=(t,e)=>new $t({innerType:t,typeName:K.ZodNullable,...Z(e)});var xn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===F.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName:K.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Ds(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:K.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var bi=class extends X{_parse(e){if(this._getType(e)!==F.nan){let n=this._getOrReturnCtx(e);return P(n,{code:O.invalid_type,expected:F.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:K.ZodNaN,...Z(t)});var tO=Symbol("zod_brand"),Cs=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}},vs=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:K.ZodPipeline})}},wn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(bs(i)&&(i.value=Object.freeze(i.value)),i);return Ds(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:K.ZodReadonly,...Z(e)});function Wh(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 rO={object:je.lazycreate},K;(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"})(K||(K={}));var nO=(t,e={message:`Input not instance of ${t.name}`})=>Wh(r=>r instanceof t,e),Qh=br.create,jh=fn.create,iO=bi.create,sO=mn.create,Hh=hn.create,oO=gn.create,aO=Oi.create,uO=yn.create,cO=En.create,lO=Dr.create,dO=zt.create,pO=It.create,fO=xi.create,mO=Zt.create,hO=je.create,gO=je.strictCreate,yO=Tn.create,EO=ja.create,TO=An.create,AO=Gt.create,SO=Ha.create,_O=Ri.create,IO=wi.create,OO=Ka.create,xO=Sn.create,RO=_n.create,wO=In.create,bO=On.create,DO=Cr.create,Fh=Ze.create,CO=dt.create,vO=$t.create,NO=Ze.createWithPreprocess,PO=vs.create,UO=()=>Qh().optional(),LO=()=>jh().optional(),MO=()=>Hh().optional(),FO={string:t=>br.create({...t,coerce:!0}),number:t=>fn.create({...t,coerce:!0}),boolean:t=>hn.create({...t,coerce:!0}),bigint:t=>mn.create({...t,coerce:!0}),date:t=>gn.create({...t,coerce:!0})},kO=J,ee=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:kI,getErrorMap:qa,makeIssue:Wa,EMPTY_PATH:BI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:Ge,isAborted:Ul,isDirty:Ll,isValid:bs,isAsync:Ds,get util(){return te},get objectUtil(){return Pl},ZodParsedType:F,getParsedType:wr,ZodType:X,datetimeRegex:Vh,ZodString:br,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:Oi,ZodUndefined:yn,ZodNull:En,ZodAny:Dr,ZodUnknown:zt,ZodNever:It,ZodVoid:xi,ZodArray:Zt,ZodObject:je,ZodUnion:Tn,ZodDiscriminatedUnion:ja,ZodIntersection:An,ZodTuple:Gt,ZodRecord:Ha,ZodMap:Ri,ZodSet:wi,ZodFunction:Ka,ZodLazy:Sn,ZodLiteral:_n,ZodEnum:In,ZodNativeEnum:On,ZodPromise:Cr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:dt,ZodNullable:$t,ZodDefault:xn,ZodCatch:Rn,ZodNaN:bi,BRAND:tO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:wn,custom:Wh,Schema:X,ZodSchema:X,late:rO,get ZodFirstPartyTypeKind(){return K},coerce:FO,any:lO,array:mO,bigint:sO,boolean:Hh,date:oO,discriminatedUnion:EO,effect:Fh,enum:wO,function:OO,instanceof:nO,intersection:TO,lazy:xO,literal:RO,map:_O,nan:iO,nativeEnum:bO,never:pO,null:cO,nullable:vO,number:jh,object:hO,oboolean:MO,onumber:LO,optional:CO,ostring:UO,pipeline:PO,preprocess:NO,promise:DO,record:SO,set:IO,strictObject:gO,string:Qh,symbol:aO,transformer:Fh,tuple:AO,undefined:uO,union:yO,unknown:dO,void:fO,NEVER:kO,ZodIssueCode:O,quotelessJson:FI,ZodError:ze});var bn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(bn||{}),Ya=(r=>(r.STRING="string",r.NUMBER="number",r))(Ya||{});var Xa=ee.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Kh=ee.record(Xa,ee.string()),Ja=ee.record(Xa,ee.any()),za=ee.record(Xa,ee.union([ee.any().array(),ee.string()])),Yh=ee.lazy(()=>ee.object({conditions:ee.array(ee.object(Jh))})),Za=ee.union([ee.string(),ee.number()]),Jh={string:Kh.optional(),fuzzy:Kh.optional(),range:ee.record(Xa,ee.union([ee.object({high:Za,low:Za}),ee.object({high:Za}),ee.object({low:Za})])).optional(),equal:Ja.optional(),notEqual:Ja.optional(),empty:Ja.optional(),notEmpty:Ja.optional(),oneOf:za.optional(),contains:za.optional(),notContains:za.optional(),containsAny:za.optional(),$and:Yh.optional(),$or:Yh.optional()},UV=ee.object({query:ee.object({allOr:ee.boolean().optional(),onEmptyFilter:ee.nativeEnum(Ai).optional(),...Jh}).optional(),paginate:ee.boolean().optional(),bookmark:ee.union([ee.string(),ee.number()]).nullish(),limit:ee.number().optional(),sort:ee.string().nullish(),sortOrder:ee.nativeEnum(bn).optional(),sortType:ee.nativeEnum(Ya).nullish(),version:ee.string().optional(),disableEscaping:ee.boolean().optional(),countRows:ee.boolean().optional()});var wp={};N(wp,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>Ap,Config:()=>Rp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Ip,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Sp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Hi,DocumentType:()=>he,GlobalRole:()=>xp,Header:()=>Xe,InternalTable:()=>Rr,MAX_VALID_DATE:()=>Wu,MIN_VALID_DATE:()=>xT,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Tp,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Be,UserStatus:()=>qu,ViewName:()=>Br});var Yq={SUMMARISE_TEXT:{columns:"columns"},CLEAN_DATA:{column:"column"},TRANSLATE:{column:"column",language:"prompt"},CATEGORISE_TEXT:{columns:"columns",categories:"prompt"},SENTIMENT_ANALYSIS:{column:"column"},PROMPT:{prompt:"prompt"},SEARCH_WEB:{columns:"columns"}};var 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 Xq={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 sW="darkest",oW="light",$O=[{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"}},zh={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={};N(Fr,{ColumnSplitter:()=>sp,NoEmptyFilterStrings:()=>ET,buildQuery:()=>TT,cleanupQuery:()=>up,fixupFilterArrays:()=>lp,getKeyNumbering:()=>cp,getValidOperatorsForType:()=>fC,hasFilters:()=>op,limit:()=>ST,recurseLogicalOperators:()=>ap,removeKeyNumbering:()=>eu,runQuery:()=>Lu,search:()=>gC,sort:()=>AT,splitFiltersArray:()=>tu});var Qi=W(Zh());var Ci={};N(Ci,{filterValueToLabel:()=>HO,hasSchema:()=>KO,isSupportedUserSearch:()=>eg,parallelForeach:()=>jO,processSearchFilters:()=>Bl,toMap:()=>JO,trimOtherProps:()=>YO,unreachable:()=>QO});var Xh=W(require("lodash")),WO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function QO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function jO(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 HO(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function KO(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function YO(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function eg(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(Fa(s)){for(let c of t[s].conditions)if(!eg(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 Bl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=tu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=Xh.default.pick(i,WO);return s.field=eu(s.field),s})}]}}function JO(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var jt={};N(jt,{cancelableTimeout:()=>tg,cron:()=>Xd,deepGet:()=>Gl,duplicateName:()=>cC,getSequentialName:()=>lC,getUserColor:()=>ZO,getUserInitials:()=>zO,getUserLabel:()=>XO,isGoogleSheets:()=>tx,isSQL:()=>rx,lists:()=>ip,retry:()=>nx,roles:()=>np,schema:()=>Ao,views:()=>rp,wait:()=>$l,withTimeout:()=>ex});var Gl=(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},zO=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"},ZO=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%)`},XO=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function tg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function ex(t,e){let[r,n]=tg(t),i=await Promise.race([e(),r]);return n(),i}function tx(t){return t==="GOOGLE_SHEETS"}function rx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function $l(t){return new Promise(e=>setTimeout(e,t))}async function nx(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 $l(s);try{return await t()}catch(o){n=o}}throw n}var Xd={};N(Xd,{getNextExecutionDates:()=>KD,validate:()=>YD});var fT=W(Vt()),mT=W(dT()),pT="(Input cron: ",jD={"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 HD(t){let e=[];for(let r of t){r.includes(pT)&&(r=r.split(pT)[0].trim());for(let[n,i]of Object.entries(jD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function KD(t,e=4){let r=mT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function YD(t){let e=(0,fT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:HD(e.getError())}}var Ao={};N(Ao,{decodeNonAscii:()=>ep,encodeNonAscii:()=>ZD,isDeprecatedSingleUserColumn:()=>JD,isNumeric:()=>XD,isRequired:()=>zD});function JD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function zD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function ZD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function ep(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function XD(t){return t.type==="number"||t.type==="bigint"}var rp={};N(rp,{basicFields:()=>iC,calculationFields:()=>nC,hasCalculationFields:()=>rC,isBasicViewField:()=>eC,isCalculationField:()=>So,isCalculationView:()=>tC,isV2:()=>sC,isVisible:()=>hT});var tp=require("lodash");function So(t){return"calculationType"in t}function eC(t){return!So(t)}function tC(t){return t.type==="calculation"}function rC(t){return Object.values(t.schema||{}).some(So)}function nC(t){return(0,tp.pickBy)(t.schema||{},So)}function hT(t){return t.visible!==!1}function iC(t,e){let{visible:r=!0}=e||{};return(0,tp.pickBy)(t.schema||{},n=>!So(n)&&(!r||hT(n)))}function sC(t){return t.version===2}var np={};N(np,{checkForRoleInheritanceLoops:()=>aC});function oC(t){return`role${C}${t}`}function aC(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=oC(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 ip={};N(ip,{punctuateList:()=>uC});function uC(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 cC=(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}`},lC=(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 dC=/{{([^{].*?)}}/g,yT=Object.values(Ti),pC=[...Object.values(Or),...Object.values(Yt),...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"||Ao.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},ET=[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 ap(t,e){for(let r of yT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var up=t=>{for(let e of ET)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=ap(t,up),t};function mC(t){return Array.isArray(t)&&t.length===0}var eu=t=>cp(t).key,cp=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}},sp=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}=cp(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=ep(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;if(typeof o=="string")o=new Date(o).toISOString();else if(ka(r))return e[r]??={},e[r][n]=o,e}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(ka(r)){let c=zh[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(Ch(r)||vh(r)||ka(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 tu(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 TT(t){if(!t)return{};if(Array.isArray(t)&&(t=Bl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=gT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=TT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=tu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=gT(n.logicalOperator)),{[a]:{conditions:o.map(hC).filter(u=>u)}}})},e}function gT(t){return t==="all"?"$and":"$or"}function lp(t){if(!t)return t;for(let e of Object.values(Yt)){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 ap(t,lp),t}function gC(t,e){let r=Lu(t,e.query);e.sort&&(r=AT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=ST(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Lu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=up(e),e=lp(e),!op(e)&&e.onEmptyFilter==="none")return[];let r=(T,I)=>x=>{for(let[w,B]of Object.entries(e[T]||{})){let le=Fa(T)?x:Gl(x,eu(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(!Lu([T],x).length)return!1;return!0}),S=r("$or",(T,I)=>{if(!I.length)return!1;for(let x of I)if(Lu([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 op(e)?e.allOr?x.some(w=>w===!0):x.every(w=>w===!0):!0};return t.filter(M)}function AT(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 ST(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var op=t=>{if(!t)return!1;let e=r=>{for(let n of yT)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={};N(ot,{applications:()=>pp,automations:()=>fp,screens:()=>Ep,users:()=>yp});var pp={};N(pp,{getDevAppID:()=>yC,getProdAppID:()=>Mu});var dp=xr("app"),_o=xr("app_dev");function yC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(dp);e.shift();let r=e.join(dp);return`${_o}${r}`}function Mu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(_o))return t;let e=t.split(_o);e.shift();let r=e.join(_o);return`${dp}${r}`}var fp={};N(fp,{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 yp={};N(yp,{canCreateApps:()=>SC,containsUserID:()=>wC,getGlobalUserID:()=>RC,getUserAppGroups:()=>bC,getUserGroups:()=>gp,hasAdminPermissions:()=>hp,hasAppBuilderPermissions:()=>Bu,hasAppCreatorPermissions:()=>_T,hasBuilderPermissions:()=>OC,hasCreatorPermissions:()=>Gu,isAdmin:()=>ku,isAdminOrBuilder:()=>_C,isAdminOrGlobalBuilder:()=>IC,isBuilder:()=>mp,isCreator:()=>xC,isGlobalBuilder:()=>Fu,userAppAccessList:()=>DC});var kr=W(require("lodash/fp"));function mp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Mu(e))):!1}function Fu(t){return mp(t)&&!Bu(t)||ku(t)}function SC(t){return Fu(t)||Gu(t)}function ku(t){return t?hp(t):!1}function _C(t,e){return mp(t,e)||ku(t)}function IC(t){return Fu(t)||ku(t)}function Bu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function _T(t){return t?kr.flow(kr.get("roles"),kr.values,kr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function OC(t){return t?t.builder?.global||Bu(t)||Gu(t):!1}function hp(t){return t?!!t.admin?.global:!1}function Gu(t){return t?!!t.builder?.creator:!1}function xC(t){return t?Fu(t)||hp(t)||Gu(t)||Bu(t)||_T(t):!1}function RC(t){if(typeof t!="string")return t;let e=`ro${C}ta_users${C}`;return t.startsWith(e)?t.split(e)[1]:t}function wC(t){return typeof t!="string"?!1:t.includes(`us${C}`)}function gp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function bC(t,e,r){let n=Mu(t);return gp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function DC(t,e){let n=gp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ep={};N(Ep,{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 gj={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},yj={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},Ej={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 Rj={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 Dj={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 Nj={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 Lj={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 kj={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 $j={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 Wj={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 Hj={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 Jj={name:"JS Scripting",tagline:"Execute JavaScript Code",deprecated:!0,icon:"Code",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,stepId:"EXECUTE_SCRIPT",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{code:{type:"string",customType:"code",title:"Code"}},required:["code"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var Xj={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"Brackets",description:"Run a piece of JavaScript code in your automation",type:"ACTION",internal:!0,new:!1,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"},rH={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(bl),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 sH={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 uH={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 dH={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(Dl)},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 IT=(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))(IT||{}),mH={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(IT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var OT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(OT||{}),yH={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"Send",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(OT),title:"Request method"},url:{type:"string",title:"URL"},requestBody:{type:"string",title:"JSON Body",customType:"wide"},headers:{type:"string",title:"Headers",customType:"wide"}},required:["requestMethod","url"]},outputs:{properties:{response:{type:"object",description:"The response from the webhook"},httpStatus:{type:"number",description:"The HTTP status code returned"},success:{type:"boolean",description:"Whether the action was successful"}},required:["response","success"]}}};var KC={ascending:"Ascending",descending:"Descending"},AH={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(bn),pretty:Object.values(KC)},limit:{type:"number",title:"Limit",customType:"queryLimit"}},required:["tableId"]},outputs:{properties:{rows:{type:"array",customType:"rows",description:"The rows that were found"},success:{type:"boolean",description:"Whether the query was successful"}},required:["rows","success"]}}};var IH={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 RH={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 DH={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 NH={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 LH={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 kH={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 $u=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))($u||{}),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"}},gt=xr("app"),Vu=xr("app_dev"),yt=Vu,Tp="internal",Ap="budibase",or="_design/sqlite",Sp="ta_bb_jobs",_p="ta_bb_inventory",Ip="ta_bb_expenses",Op="ta_bb_employee";var qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(qu||{}),Kn=(o=>(o.Auth="budibase:auth",o.Init="budibase:init",o.ACCOUNT_RETURN_URL="budibase:account:returnurl",o.DatasourceAuth="budibase:datasourceauth",o.OIDC_CONFIG="budibase:oidc:config",o.FeatureFlags="budibase:featureflags",o))(Kn||{}),xp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(xp||{}),Rp=(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))(Rp||{}),xT=new Date(-2147483647e3),Wu=new Date(2147483647e3),Te="default";var _a={};N(_a,{CacheKey:()=>Ce,TTL:()=>ri,app:()=>Qo,bustCache:()=>ts,destroy:()=>$o,docWritethrough:()=>Um,generic:()=>Vo,get:()=>ni,invite:()=>em,keys:()=>ac,passwordReset:()=>Nm,store:()=>cr,user:()=>rn,withCache:()=>Qr,withCacheWithDynamicTTL:()=>XT,writethrough:()=>vm});var Vo={};N(Vo,{CacheKey:()=>Ce,TTL:()=>ri,bustCache:()=>ts,destroy:()=>$o,get:()=>ni,keys:()=>ac,store:()=>cr,withCache:()=>Qr,withCacheWithDynamicTTL:()=>XT});var Ae={};N(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Co,doInAppContext:()=>tN,doInAppMigrationContext:()=>nN,doInAutomationContext:()=>Jv,doInContext:()=>Hp,doInEnvironmentContext:()=>sN,doInFeatureFlagOverrideContext:()=>ef,doInIPContext:()=>Jp,doInIdentityContext:()=>Oo,doInLicenseContext:()=>Zv,doInScimContext:()=>oN,doInSelfHostTenantUsingCloud:()=>zv,doInTenant:()=>qe,ensureSnippetContext:()=>YT,getAppDB:()=>Xi,getAppId:()=>Ue,getAuditLogDBName:()=>jT,getAuditLogsDB:()=>uN,getAutomationId:()=>Kp,getCurrentContext:()=>Jn,getDevAppDB:()=>lN,getEnvironmentVariables:()=>aN,getFeatureFlagOverrides:()=>Xp,getFeatureFlags:()=>zp,getGlobalDB:()=>ie,getGlobalDBName:()=>ur,getIP:()=>Yp,getIdentity:()=>ar,getLicense:()=>Xv,getPlatformURL:()=>jp,getProdAppDB:()=>cN,getProdAppId:()=>iN,getScimDBName:()=>jv,getSelfHostCloudDB:()=>eN,getTableForView:()=>dN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>j,identity:()=>Io,isMultiTenant:()=>Vr,isScim:()=>Pt,isSelfHostUsingCloud:()=>HT,isTenancyEnabled:()=>Kv,isTenantIdSet:()=>Hv,setFeatureFlags:()=>Zp,setTableForView:()=>pN});var Io={};N(Io,{doInAccountContext:()=>Tv,doInIdentityContext:()=>Dp,doInUserContext:()=>Cp,getAccountUserId:()=>RT,getIdentity:()=>bp});function bp(){return ar()}function Dp(t,e){return Oo(t,e)}function Cp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Dp(n,r)}function Tv(t,e){let r=RT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Dp(i,e)}function RT(t){let e;return Ga(t)?e=t.budibaseUserId:e=t.accountId,e}var Hu=require("fs");var DT=require("lodash"),vp=require("crypto");function Np(){return CT()}function CT(){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 wT=!1;!wT&&ju()&&!Np()&&(require("dotenv").config(),wT=!0);var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},bT=!!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,Hu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Hu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ju()&&!Np())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 Ct.SERVICE_TYPE==="worker"}function xv(){return Ct.SERVICE_TYPE==="apps"}function Rv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}var Ct={isTest:Np,isJest:CT,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,vp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,vp.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:bT,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:bT?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,Ct[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Av(process.env.BSON_BUFFER_SIZE)};function xo(t){let e=(0,DT.cloneDeep)(Ct),r;for(r in t)Ct._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Ct._set(n,i)}}function vT(t,e){let r=xo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var NT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(Ct))e==="0"&&(Ct[t]=0),e==="false"&&(Ct[t]=0);var h=Ct;var PT=require("async_hooks"),we=class t{static{this.storage=new PT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Pp="No app provided";function Gr(t){if(!t)throw Pp;return t.startsWith(yt)}function wv(t){if(!t)throw Pp;return t.startsWith(gt)&&!Gr(t)}function Ro(t){if(!t)throw Pp;return Gr(t.appId)}function Ku(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var bv=Ku;function at(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${gt}${r}`}function Dv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Up(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:Up(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Up=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var WT=W(require("@budibase/nano"));var UT=W(require("node-fetch"));function Yu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function LT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await wo({url:s,cookie:i,method:e,body:r})}async function wo({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,UT.default)(Yu(encodeURI(t)),i)}async function Ju(t,e="GET",r){let n=await LT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=W(require("pouchdb"));var MT,FT=!1,Lp=(t={})=>{let{url:e,cookie:r}=vt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Yn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Yn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Yn.default.plugin(i.plugin),Yn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Yn.default.plugin(i)}return Yn.default.defaults(n)};function zu(t){MT=Lp(t),FT=!0}var vv=()=>{if(!FT)throw new Error("init has not been called")};function Et(t,e){vv();let r=new MT(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 bo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var kT=require("uuid");function Se(){return(0,kT.v4)().replace(/-/g,"")}var xe=W(require("dd-trace")),Yi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return xe.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return xe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return xe.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return xe.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||0,allow_missing:r?.allowMissing});let i=await this.db.getMultiple(e,r);return n.addTags({num_docs_found:i.length}),i})}remove(e,r){return xe.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return xe.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return xe.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return xe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}allDocs(e){return xe.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return xe.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return xe.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return xe.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return xe.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return xe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return xe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return xe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return xe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return xe.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return xe.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return xe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var qp={};N(qp,{breakExternalTableId:()=>kp,breakRowIdField:()=>qv,buildExternalTableId:()=>Fv,convertRowId:()=>Vv,encodeTableId:()=>kv,encodeViewId:()=>Bv,extractDate:()=>Gp,generateRowIdField:()=>Gv,getNativeSql:()=>Ji,isExternalTable:()=>Fp,isExternalTableID:()=>Zu,isInternalTableID:()=>Mv,isInvalidISODateString:()=>Bp,isRowId:()=>$v,isValidFilter:()=>ec,isValidISODateString:()=>Xu,isValidTime:()=>$p,sqlLog:()=>Do,validateManyToMany:()=>Vp});var Mp=`${C}${C}`,GT=/^\[.*]$/g,Nv=encodeURIComponent(" "),Pv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,Uv=/(\d{4}-\d{2}-\d{2})/,Lv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function Zu(t){return t.startsWith("datasource"+C)}function Mv(t){return!Zu(t)}function Ji(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function Fp(t){return t?.sourceId&&t.sourceId.includes("datasource"+C)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&Zu(t._id))}function Fv(t,e){return`${t}${Mp}${encodeURIComponent(e)}`}function kv(t){return Zu(t)?encodeURIComponent(t):t}function Bv(t){return encodeURIComponent(t)}function kp(t){let e=t.split(Mp),r=e.shift(),n=e.join(Mp);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 Gv(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 $v(t){return Array.isArray(t)||typeof t=="string"&&t.match(GT)!=null}function Vv(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(GT)!=null?t.substring(1,t.length-1):t}function qv(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 Xu(t){let e=t.trim();if(!Pv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Bp(t){return!Xu(t)}function Gp(t){let e=t.match(Uv);if(e)return e[0]}function ec(t){return t!=null&&t!==""}function $p(t){return Lv.test(t)}function Do(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 Wv(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Vp(t){if(Wv(t))return t}var $T="Database does not exist.";function VT(t){return(0,WT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var $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 Qv(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 Yi(n)}var zi=class t{constructor(e,r,n){this.couchInfo=vt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=vt(n),this.instanceNano=VT(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=VT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await wo({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===$T)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(Nh(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=Se()),this.put(e,r)}async put(e,r){if(!e._id)throw new Error("Cannot store document without _id field.");return this.performCallWithDBCreation(async n=>{if(e.createdAt||(e.createdAt=new Date().toISOString()),e.updatedAt=new Date().toISOString(),r?.force&&e._id)try{let i=await this.get(e._id);i&&(e._rev=i._rev)}catch(i){if(i.status!==404)throw i}return()=>n.insert(e)})}async bulkDocs(e){let r=new Date().toISOString();return this.performCallWithDBCreation(n=>()=>n.bulk({docs:e.map(i=>({createdAt:r,...i,updatedAt:r}))}))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===$T)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Yu(`${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 wo(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}/${or}`;return Do("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(or)){let e=await this.get(or);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new $r(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Et(this.name).dump(e,r)}async load(e){return Et(this.name).load(e)}async createIndex(e){return Et(this.name).createIndex(e)}async deleteIndex(e){return Et(this.name).deleteIndex(e)}async getIndexes(){return Et(this.name).getIndexes()}};function Ve(t,e){return new Yi(new zi(t,e))}async function ut(t,e,r){let n=Ve(t,r);return await e(n)}async function Wp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Ju(e)}async function Qp(t,e){let r=await Ju(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var QT=null;function ur(t){return t||(t=j()),Co(t)}function jT(t){return t||(t=j()),t===Te?Ee.AUDIT_LOGS.name:`${t}${C}${Ee.AUDIT_LOGS.name}`}function jv(t){return t||(t=j()),t===Te?Ee.SCIM_LOGS.name:`${t}${C}${Ee.SCIM_LOGS.name}`}function Co(t){return!t||t===Te?Ee.GLOBAL.name:`${t}${C}${Ee.GLOBAL.name}`}function jp(){return h.PLATFORM_URL}function Vr(){return!!h.MULTI_TENANCY}function Hv(){return!!we.get()?.tenantId}function Kv(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!Vr())return Te;let e=t.split(C),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function Yv(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Nt(t,e){rN();let r=Yv(t);return we.run(r,e)}async function Jv(t){return await YT(),await Nt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Hp(t,e){let r=Zi(t);return Nt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Te),Nt(t?{tenantId:t}:{},e)}async function zv(t,e){return Nt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function Zv(t,e){return Nt({license:t},e)}function Xv(){return we.get()?.license}function HT(){return!!we.get()?.isSelfHostUsingCloud}function eN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ve(Ee.SELF_HOST_CLOUD.name)}async function tN(t,e){return KT(t,e)}async function KT(t,e,r){if(!t)throw new Error("appId is required");let n=Zi(t),i={appId:t,...r};return n&&(i.tenantId=n),Nt(i,e)}async function Oo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Nt(r,e)}function rN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function nN(t,e){return KT(t,e,{isMigrating:!0})}function ar(){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 Kp(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&QT?QT:e}function Yp(){return we.get()?.ip}var iN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return at(t)};function sN(t,e){if(!t)throw new Error("Must supply environment variables.");return Nt({environmentVariables:t},e)}function oN(t){return Nt({isScim:!0},t)}function Jp(t,e){return Nt({ip:t},e)}async function YT(t=!h.isTest()){let e=Jn();if(!e||e.snippets)return;let r,n=Xi();n&&t&&(r=(await n.get("app_metadata")).snippets),e.snippets=r||[]}function aN(){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 Ve(Co(t?.tenantId))}function uN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(jT())}function Xi(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(HT())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function cN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function lN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Ku(e),t)}function Pt(){return!!we.get()?.isScim}function Jn(){try{return we.get()}catch{return}}function zp(t){let e=Jn();if(e)return e.featureFlagCache?.[t]}function Zp(t,e){let r=Jn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function Xp(){return Jn()?.featureFlagOverrides||{}}async function ef(t,e){return await Nt({featureFlagOverrides:t},e)}function dN(t){let e=Jn();if(e)return e.viewToTableCache?.[t]}function pN(t,e){let r=Jn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Wr={};N(Wr,{getAppClient:()=>oc,getCacheClient:()=>af,getDocWritethroughClient:()=>yN,getInviteClient:()=>Xn,getLockClient:()=>cf,getPasswordResetClient:()=>Go,getSessionClient:()=>qr,getSocketClient:()=>gN,getUserClient:()=>Bo,getWritethroughClient:()=>uf,init:()=>Ut,shutdown:()=>ZT});var sc=W(require("ioredis"));var nc={};N(nc,{Databases:()=>tf,SEPARATOR:()=>es,SelectableDatabase:()=>tc,getRedisClusterOptions:()=>rf,getRedisConnectionDetails:()=>rc,getRedisOptions:()=>zn,removeDbPrefix:()=>nf});var es="-",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||{}),tc=(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))(tc||{});function rc(){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 rf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...zn(),tls:{}}}}function zn(){let{host:t,password:e,port:r}=rc();return{connectTimeout:3e4,port:r,host:t,password:e}}function nf(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var ic=require("dd-trace"),zT=require("lodash"),JT;if(h.MOCK_REDIS)try{JT=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function fN(t=0){return await ic.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new JT(zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=rc();r=new sc.Cluster([{host:n,port:i}],rf())}else r=new sc.default(zn());return new Promise((n,i)=>{r.on("error",s=>{e.addTags({error:!0}),console.error(`failed to connect to redis (db: ${t})`,s),i(s)}),r.on("reconnecting",()=>{console.log(`Redis reconnecting... (db: ${t})`)}),r.on("ready",()=>{e.addTags({connected:!0}),console.log(`Redis ready to receive commands (db: ${t})`),n(r)})})})}function mN(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()=>{try{let s=Array.from(i).map(async o=>{let a=await e.get(o);return a&&(a=JSON.parse(a)),{key:nf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function hN(t){return t.isCluster}var sf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await ic.tracer.trace("RedisWrapper.init",async n=>{let i=await fN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return ic.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${es}${e}`}async finish(){return await this.trace("RedisWrapper.finish",async()=>{await this.client.quit()})}async scan(e=""){return await this.trace("RedisWrapper.scan",async r=>{r.addTags({key:e}),e=`${this.db}${es}${e}`;let n;hN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await mN(n,this.client);return r.addTags({numKeysFound:i.length}),i})}async keys(e){return await this.trace("RedisWrapper.keys",async r=>(r.addTags({pattern:e}),this.client.keys(this.prefixed(e))))}async exists(e){return await this.trace("RedisWrapper.exists",async r=>(r.addTags({key:e}),await this.client.exists(this.prefixed(e))))}async get(e){return await this.trace("RedisWrapper.get",async r=>{r.addTags({key:e});let n=await this.client.get(this.prefixed(e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}})}async bulkGet(e){return await this.trace("RedisWrapper.bulkGet",async r=>{if(r.addTags({numKeys:e.length}),e.length===0)return{};let n=await this.client.mget(e.map(i=>this.prefixed(i)));return r.addTags({numKeysFound:n.length}),(0,zT.zip)(e,n).reduce((i,[s,o])=>{if(s===void 0||o===void 0)throw new Error(`Keys and response length mismatch: ${e.length} vs ${n.length}`);try{i[s]=o?JSON.parse(o):null}catch{i[s]=o}return i},{})})}async store(e,r,n=null){return await this.trace("RedisWrapper.store",async i=>{i.addTags({key:e,expirySeconds:n}),typeof r=="object"&&(r=JSON.stringify(r)),await this.client.set(this.prefixed(e),r),n&&await this.client.expire(this.prefixed(e),n)})}async bulkStore(e,r=null){return await this.trace("RedisWrapper.bulkStore",async n=>{n.addTags({numKeys:Object.keys(e).length,expirySeconds:r});let i=Object.entries(e).reduce((o,[a,u])=>(o[this.prefixed(a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=this.client.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()})}async getTTL(e){return await this.trace("RedisWrapper.getTTL",async r=>(r.addTags({key:e}),await this.client.ttl(this.prefixed(e))))}async setExpiry(e,r){return await this.trace("RedisWrapper.setExpiry",async n=>(n.addTags({key:e,expirySeconds:r}),await this.client.expire(this.prefixed(e),r)))}async delete(e){return await this.trace("RedisWrapper.delete",async r=>{r.addTags({key:e}),await this.client.del(this.prefixed(e))})}async bulkDelete(e){return await this.trace("RedisWrapper.bulkDelete",async r=>{r.addTags({numKeys:e.length}),await this.client.del(e.map(n=>this.prefixed(n)))})}async clear(){return await this.trace("RedisWrapper.clear",async e=>{let r=await this.scan();e.addTags({numKeys:r.length}),await Promise.all(r.map(n=>this.delete(n.key)))})}async increment(e){return await this.trace("RedisWrapper.increment",async r=>{r.addTags({key:e});let n=await this.client.incr(this.prefixed(e));if(isNaN(n))throw new Error(`Redis ${e} does not contain a number`);return n})}async deleteIfValue(e,r){return await this.trace("RedisWrapper.deleteIfValue",async n=>{n.addTags({key:e});let i=`
|
|
6
|
+
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
7
|
+
redis.call('DEL', KEYS[1])
|
|
8
|
+
end
|
|
9
|
+
`;await this.client.eval(i,1,this.prefixed(e),r)})}},We=sf;var vo,No,Po,Uo,Zn,Lo,Mo,Fo,ko,of;async function Ut(){vo=await We.init("users"),No=await We.init("session"),Po=await We.init("appMetadata"),Uo=await We.init("data_cache"),Lo=await We.init("locks"),Zn=await We.init("writeThrough"),Fo=await We.init("invitation"),ko=await We.init("pwReset"),Mo=await We.init("socket_io",1),of=await We.init("docWriteThrough")}async function ZT(){vo&&await vo.finish(),No&&await No.finish(),Po&&await Po.finish(),Uo&&await Uo.finish(),Zn&&await Zn.finish(),Lo&&await Lo.finish(),Fo&&await Fo.finish(),ko&&await ko.finish(),Mo&&await Mo.finish(),of&&await of.finish()}process.on("exit",async()=>{await ZT()});async function Bo(){return vo||await Ut(),vo}async function qr(){return No||await Ut(),No}async function oc(){return Po||await Ut(),Po}async function af(){return Uo||await Ut(),Uo}async function uf(){return Zn||await Ut(),Zn}async function cf(){return Lo||await Ut(),Lo}async function gN(){return Mo||await Ut(),Mo}async function Xn(){return Fo||await Ut(),Fo}async function Go(){return ko||await Ut(),ko}async function yN(){return Zn||await Ut(),Zn}function Ht(t){let e=j();return`${t}:${e}`}var ei=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await af()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ht(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Ht(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[Ht(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Ht(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Ht(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(Ht(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Ht(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ti=new ei,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}`},ri=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ri||{}),ac=(...t)=>ti.keys(...t),ni=(...t)=>ti.get(...t),cr=(...t)=>ti.store(...t),$o=(...t)=>ti.delete(...t),Qr=(...t)=>ti.withCache(...t),XT=(...t)=>ti.withCacheWithDynamicTTL(...t),ts=(...t)=>ti.bustCache(...t);var rn={};N(rn,{getUser:()=>Oa,getUsers:()=>S0,invalidateUser:()=>xa});var Wo={};N(Wo,{addTenantToUrl:()=>EN,getTenantDB:()=>lf,getTenantIDFromCtx:()=>qo,isUserInAppTenant:()=>TN});function lf(t){return Ve(ur(t))}function EN(t){let e=j();if(Vr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var TN=(t,e)=>{let r;return e?r=e.tenantId||Te:r=j(),(Zi(t)||Te)===r},AN=Object.values(Os),qo=(t,e)=>{if(!Vr())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=AN),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(jp()).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 Zo={};N(Zo,{getPlatformDB:()=>ct,tenants:()=>Uf,users:()=>Lt});var Lt={};N(Lt,{addSsoUser:()=>tA,addUser:()=>RN,getUserDoc:()=>eA,lookupTenantId:()=>SN,removeUser:()=>wN,updateUserDoc:()=>_N});function ct(){return Ve(Ee.PLATFORM_INFO.name)}async function SN(t){return h.MULTI_TENANCY?(await eA(t)).tenantId:Te}async function eA(t){return ct().get(t)}async function _N(t){await ct().put(t)}function IN(t,e){return{_id:t,tenantId:e}}function ON(t,e,r){return{_id:e,userId:t,tenantId:r}}function xN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function df(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 tA(t,e,r,n){return df(t,()=>xN(t,e,r,n))}async function RN(t,e,r,n){let i=[df(e,()=>IN(e,t)),df(r,()=>ON(e,r,t))];n&&i.push(tA(n,r,e,t)),await Promise.all(i)}async function wN(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 Uf={};N(Uf,{addTenant:()=>lP,exists:()=>aP,getTenantIds:()=>oP,removeTenant:()=>dP,tenacyLockOptions:()=>Pf});var ui={};N(ui,{AUTO_EXTEND_POLLING_MS:()=>QA,doWithLock:()=>as,newRedlock:()=>ai});var WA=W(require("redlock"));var ss={};N(ss,{Duration:()=>be,DurationType:()=>vf,clearCookie:()=>Hr,compare:()=>mf,getAppIdFromCtx:()=>ZN,getCookie:()=>fr,hasCircularStructure:()=>eP,hash:()=>ff,isAudited:()=>Df,isClient:()=>XN,isPublicApiRequest:()=>zN,isServingApp:()=>KN,isServingBuilder:()=>YN,isServingBuilderPreview:()=>JN,isValidInternalAPIKey:()=>zo,newid:()=>Se,openJwt:()=>fc,resolveAppUrl:()=>$A,setCookie:()=>VA,time:()=>rP,timeout:()=>bf,urlHasProtocol:()=>tP,validEmail:()=>Cf});var pf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),bN=h.SALT_ROUNDS||10;async function ff(t){let e=await pf.genSalt(bN);return pf.hash(t,e)}async function mf(t,e){return pf.compare(t,e)}var jr={};N(jr,{APP_DEV:()=>Vu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>$u,BUDIBASE_DATASOURCE_TYPE:()=>Ap,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Op,DEFAULT_EXPENSES_TABLE_ID:()=>Ip,DEFAULT_INVENTORY_TABLE_ID:()=>_p,DEFAULT_JOBS_TABLE_ID:()=>Sp,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>Qv,DeprecatedViews:()=>Hi,DocumentType:()=>he,InternalTable:()=>Rr,QueryBuilder:()=>pr,Replication:()=>NA,SEPARATOR:()=>C,SQLITE_DESIGN_DOC_ID:()=>or,SQS_DATASOURCE_INTERNAL:()=>Tp,StaticDatabases:()=>Ee,UNICODE_MAX:()=>Be,ViewName:()=>Br,baseGlobalDBName:()=>Co,checkErrorCode:()=>MA,closePouchDB:()=>bo,createApiKeyView:()=>wA,createNewUserEmailView:()=>xA,createPlatformAccountEmailView:()=>DA,createPlatformUserView:()=>CA,createUserAppView:()=>RA,createView:()=>ns,dbExists:()=>BN,directCouchAllDbs:()=>Wp,directCouchCall:()=>LT,directCouchFind:()=>Qp,directCouchQuery:()=>Ju,directCouchUrlCall:()=>wo,doWithDB:()=>ut,extractAppUUID:()=>Dv,fullSearch:()=>qN,generateAgentChatID:()=>fA,generateAppID:()=>nA,generateAppUserID:()=>cc,generateDevInfoID:()=>lA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>pA,generatePluginID:()=>dA,generateRoleID:()=>yf,generateRowID:()=>gf,generateTableID:()=>iA,generateTemplateID:()=>cA,generateUserMetadataID:()=>aA,generateWorkspaceID:()=>sA,getAllApps:()=>Ho,getAllDbs:()=>OA,getAppsByIDs:()=>LN,getCouchInfo:()=>vt,getDB:()=>Ve,getDevAppID:()=>bv,getDevAppIDs:()=>FN,getDevelopmentAppID:()=>Ku,getDocParams:()=>ii,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>uA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>IA,getPluginParams:()=>_A,getPouch:()=>Lp,getPouchDB:()=>Et,getProdAppID:()=>at,getProdAppIDs:()=>MN,getQueryIndex:()=>mA,getRoleParams:()=>dc,getRowParams:()=>Ef,getStartEndKeyURL:()=>jo,getTemplateParams:()=>SA,getUrlInfo:()=>Up,getUserMetadataParams:()=>AA,getUsersByAppParams:()=>lc,getWorkspaceParams:()=>TA,init:()=>zu,isDatasourceId:()=>yA,isDevApp:()=>Ro,isDevAppID:()=>Gr,isDocumentConflictError:()=>QN,isExternalTableId:()=>Tf,isGlobalUserID:()=>oA,isProdAppID:()=>wv,isQueryId:()=>EA,isSameAppID:()=>kN,isTableId:()=>hA,isViewId:()=>gA,paginatedSearch:()=>VN,pagination:()=>Sf,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>Of,queryPlatformView:()=>Yo,queryView:()=>If,queryViewRaw:()=>Ko,removeKeyNumbering:()=>Jo,searchIndexes:()=>Rf});var Qo={};N(Qo,{AppState:()=>hf,getAppMetadata:()=>uc,invalidateAppMetadata:()=>NN});var hf=(e=>(e.INVALID="invalid",e))(hf||{}),rA=3600,DN=60;async function CN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function vN(t){return!t||t.state==="invalid"}async function uc(t){let e=await oc(),r=await e.get(t);if(!r){let n=rA;try{r=await CN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=DN;else throw i}if(vN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function NN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await oc();await r.delete(t),e&&await r.store(t,e,rA)}var Af={};N(Af,{generateAgentChatID:()=>fA,generateAppID:()=>nA,generateAppUserID:()=>cc,generateDevInfoID:()=>lA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>pA,generatePluginID:()=>dA,generateRoleID:()=>yf,generateRowID:()=>gf,generateTableID:()=>iA,generateTemplateID:()=>cA,generateUserMetadataID:()=>aA,generateWorkspaceID:()=>sA,getDocParams:()=>ii,getGlobalIDFromUserMetadataID:()=>uA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>IA,getPluginParams:()=>_A,getQueryIndex:()=>mA,getRoleParams:()=>dc,getRowParams:()=>Ef,getStartEndKeyURL:()=>jo,getTemplateParams:()=>SA,getUserMetadataParams:()=>AA,getUsersByAppParams:()=>lc,getWorkspaceParams:()=>TA,isDatasourceId:()=>yA,isExternalTableId:()=>Tf,isGlobalUserID:()=>oA,isQueryId:()=>EA,isTableId:()=>hA,isViewId:()=>gA,prefixRoleID:()=>lr});var nA=t=>{let e=gt;return t&&(e+=`${t}${C}`),`${e}${Se()}`};function iA(){return`ta${C}${Se()}`}function gf(t,e){return e=e||Se(),`ro${C}${t}${C}${e}`}function sA(){return`workspace${C}${Se()}`}function rs(t){return`us${C}${t||Se()}`}var PN=new RegExp(`^us${C}.+`);function oA(t){return PN.test(t)}function aA(t){return gf("ta_users",t)}function uA(t){let e=`ro${C}ta_users${C}`;return!t||!t.includes(e)?t:t.split(e)[1]}function cA(t){return`template${C}${t}${C}${Se()}`}function cc(t,e){return`${t}${C}${e}`}function yf(t){let e=`role${C}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return yf(t)}var lA=t=>`devinfo${C}${t}`,dA=t=>`plg${C}${t}`,pA=t=>`oauth2log${C}${t}`,fA=()=>`agentchat${C}${Se()}`;var UN=new RegExp("^datasource_plus_(.+)__(.+)$");function ii(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${C}${e}`,endkey:`${t}${C}${e}${Be}`}}function Ef(t,e,r={}){if(t==null)return ii("ro",null,r);let n=e??`${t}${C}`;return ii("ro",n,r)}function mA(t){return`database/${t}`}var Tf=t=>{let e=t.match(UN);return!!t&&e!==null},hA=t=>!!t&&(t.startsWith(`ta${C}`)||Tf(t));function gA(t){return!!t&&t.startsWith(`view${C}`)}function yA(t){return!!t&&t.startsWith(`datasource${C}`)}function EA(t){return!!t&&t.startsWith(`query${C}`)}function TA(t="",e={}){return{...e,startkey:`workspace${C}${t}`,endkey:`workspace${C}${t}${Be}`}}function si(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${C}${t}`,endkey:`us${C}${t}${Be}`}}function AA(t,e={}){return Ef("ta_users",t,e)}function lc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Be}`}}function SA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${C}${t}${C}`,{...r,startkey:n,endkey:`${n}${Be}`}}function dc(t,e={}){return ii("role",t,e)}function jo(t,e){let r=e?`${C}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Be}"`}var _A=(t,e={})=>ii("plg",t,e),IA=(t,e={})=>ii("oauth2",t,e);async function OA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Wp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(jo("app",i)),await n(jo("app_dev",i)),r.push(ur(i))),r}async function Ho({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await OA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(C);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===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=>uc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:Ro(l)?"development":"published"})):c.filter(l=>t?Ro(l):!Ro(l))}}async function LN(t){return(await Promise.allSettled(t.map(r=>uc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function MN(){return(await Ho({idsOnly:!0})).filter(e=>!Gr(e))}async function FN(){return(await Ho({idsOnly:!0})).filter(e=>Gr(e))}function kN(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 Sf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var _f="_design/database";function GN(){return{_id:_f,views:{}}}async function $N(t,e){if(Hi[e])try{let r=await t.get(_f);for(let n of Hi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ns(t,e,r){let n;try{n=await t.get(_f)}catch{n=GN()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ns(t,e,r);throw s}}var xA=async()=>{let t=ie(),e=`function(doc) {
|
|
10
|
+
if (doc._id.startsWith("us${C}")) {
|
|
7
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
8
12
|
}
|
|
9
|
-
}`;await
|
|
10
|
-
if (doc._id.startsWith("us${
|
|
13
|
+
}`;await ns(t,e,"by_email2")},RA=async()=>{let t=ie(),e=`function(doc) {
|
|
14
|
+
if (doc._id.startsWith("us${C}") && doc.roles) {
|
|
11
15
|
for (let prodAppId of Object.keys(doc.roles)) {
|
|
12
|
-
let emitted = prodAppId + "${
|
|
16
|
+
let emitted = prodAppId + "${C}" + doc._id
|
|
13
17
|
emit(emitted, null)
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
|
-
}`;await
|
|
20
|
+
}`;await ns(t,e,"by_app")},wA=async()=>{let t=ie(),e=`function(doc) {
|
|
17
21
|
if (doc._id.startsWith("devinfo") && doc.apiKey) {
|
|
18
22
|
emit(doc.apiKey, doc.userId)
|
|
19
23
|
}
|
|
20
|
-
}`;await
|
|
21
|
-
if (doc._id.startsWith("acc_metadata${
|
|
24
|
+
}`;await ns(t,e,"by_api_key")};async function Ko(t,e,r,n,i){try{return await r.query(`database/${t}`,e)}catch(s){let o=s&&s.name==="not_found",a=s&&s.status===404;if(o||a)return await $N(r,t),await n(),Ko(t,e,r,n,i);if(s.status===409)return Ko(t,e,r,n,i);throw s}}var If=async(t,e,r,n,i)=>{let a=(await Ko(t,e,r,n,i)).rows.map(u=>e.include_docs?u.doc:u.value);return i?.arrayResponse?a:a.length<=1?a[0]:a};async function bA(t,e){try{await ut(Ee.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var DA=async()=>{let t=`function(doc) {
|
|
25
|
+
if (doc._id.startsWith("acc_metadata${C}")) {
|
|
22
26
|
emit(doc.email.toLowerCase(), doc._id)
|
|
23
27
|
}
|
|
24
|
-
}`;await
|
|
28
|
+
}`;await bA(t,"account_by_email")},CA=async()=>{await bA(`function(doc) {
|
|
25
29
|
if (doc.tenantId) {
|
|
26
30
|
emit(doc._id.toLowerCase(), doc._id)
|
|
27
31
|
}
|
|
@@ -29,11 +33,7 @@ attempted value: ${s}
|
|
|
29
33
|
if (doc.ssoId) {
|
|
30
34
|
emit(doc.ssoId, doc._id)
|
|
31
35
|
}
|
|
32
|
-
}`,"platform_users_lowercase_2")},Go=async(t,e)=>{let r={account_by_email:UA,platform_users_lowercase_2:LA};return ut(Ee.PLATFORM_INFO.name,async n=>{let i=r[t];return gf(t,e,n,i,{arrayResponse:!0})})},MA={by_email2:CA,by_api_key:NA,by_app:vA},dr=async(t,e,r,n)=>{r||(r=ie());let i=MA[t];return gf(t,e,r,i,n)};async function yf(t,e,r){let n=ie(),i=MA[t];return Bo(t,e,n,i,r)}var Ef=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()}},kA=Ef;var BA=Q(require("node-fetch"));var $o=Fr.removeKeyNumbering;function ti(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)=>ti(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(ti(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)=>ti(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(ti(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)=>ti(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(ti(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)=>ti(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 FA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await FA(n,i,r);throw s}}};async function FA(t,e,r){let n=await(0,BA.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 GA(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 GA(t,e,r,c)}async function MN(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 kN(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 GA(t,e,r,n)}}var Tf={};v(Tf,{createUserIndex:()=>FN});async function FN(){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 $A(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 BN(t){return $A(t,409)}var WA=Q(require("fs/promises")),GN=require("sanitize-s3-objectkey"),QA=(0,qA.promisify)(Vo.default.pipeline),$N={bucketCreationPromises:{}},xf="/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"},VN=[Qr.html,Qr.css,Qr.js,Qr.json];function Le(t){return GN(Ke(t)).replace(/\\/g,"/")}function Ke(t){return t.replace(new RegExp(Et,"g"),yt)}function Lt(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 Ec.S3(e)}async function qo(t,e){e=Ke(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=$N.bucketCreationPromises,s=n===404,o=n===403;if(i[e])return await i[e],{created:!1,exists:!0};if(s||o){if(s)return i[e]=t.createBucket({Bucket:e}),await i[e],delete i[e],{created:!0,exists:!1};throw new Error("Access denied to object store bucket."+r)}else throw new Error("Unable to write to object store bucket.")}}async function qN({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await WA.default.open(r)).createReadStream():s,c=Lt(),l=await qo(c,t);if(o&&l.created){let g=lc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Qr[a.toLowerCase()]:Qr.txt),p={Bucket:Ke(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 Af.Upload({client:c,params:p}).done()}async function jA({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=Lt(),u=await qo(a,t);if(s&&u.created){let E=lc(t,s);await a.putBucketLifecycleConfiguration(E)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let c=n;c||(c=o?Qr[o.toLowerCase()]:Qr.txt);let l=Ke(t),d=Le(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Af.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function HA(t,e){let r=Lt(),n={Bucket:Ke(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(VN.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return Vo.default.Readable.fromWeb(s)}}async function YA(t,e){let r=Lt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ke(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=Lt({presigning:!0}),i={Bucket:Ke(t),Key:Le(e)},s=await(0,VA.getSignedUrl)(n,new Ec.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${xf}${a}${u}`}else return s}async function WN(t,e){t=Ke(t),e=Le(e);let r=await HA(t,e),n=(0,jr.join)(Zn(),(0,Of.v4)());return r instanceof Vo.default.Readable?r.pipe(fr.default.createWriteStream(n)):fr.default.writeFileSync(n,r),n}async function QN(t,e){let r=(0,jr.join)(Zn(),(0,Of.v4)());fr.default.mkdirSync(r);let n=await YA(t,e),i=await Promise.all(n.map(a=>dc(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&&!fr.default.existsSync(m)&&fr.default.mkdirSync(m,{recursive:!0});let p=fr.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 jN(t,e){let r=Lt();await qo(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function HN(t,e){let r=Lt();await qo(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function KA(t,e){t=Ke(t),e=Le(e);let r=Lt(),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 KA(t,e)}async function Rf(t,e,r){t=Ke(t);let n=[],i=fr.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(Rf(t,a,o)):n.push(jA({bucket:t,filename:o,stream:fr.default.createReadStream(a)}))}return await Promise.all(n),i}async function YN(t,e,r={}){e=Le(e);let n=await(0,Sf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await QA(n.body,If.default.createUnzip(),_f.default.extract(e))}async function KN(t,e,r){e=Ke(e),r=Le(r);let n=await(0,Sf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,jr.join)(Zn(),r);return await QA(n.body,If.default.createUnzip(),_f.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Rf(e,i,r),i}async function dc(t,e){t=Ke(t),e=Le(e);let r=Lt(),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 JN(t,e){t=Ke(t),e=Le(e);let r=Lt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function af(t){let e=t.split("?")[0],r=new RegExp(`^${xf}/(?<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 JA=Q(require("aws-cloudfront-sign")),Tc;function zN(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Tc||(Tc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Tc)}var ZN=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:zN(),expireTime:new Date().getTime()+1e3*60*60*24}),os=t=>{let e=wf(t);return JA.getSignedUrl(e,ZN())},wf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var zA=Q(require("querystring"));function ZA(t){return`${Le(t)}/budibase-client.js`}async function XN(t,e){let r=ZA(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),wf(r)):await Hr(h.APPS_BUCKET_NAME,r)}function eP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${zA.default.encode(n)}`}async function XA(t){return h.CLOUDFRONT_CDN?os(t):await Hr(h.APPS_BUCKET_NAME,t)}async function tP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await XA(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var rP=async(t,e,r)=>{let n=eS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),os(n)):await Hr(h.GLOBAL_BUCKET_NAME,n)},eS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function nP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await iP(e),n=await sP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function iP(t){let e=rS(t);return tS(e)}async function sP(t){let e=nS(t);if(e)return tS(e)}async function tS(t){return h.CLOUDFRONT_CDN?os(t):await Hr(h.PLUGIN_BUCKET_NAME,t)}function rS(t){return iS(t,"plugin.min.js")}function nS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return iS(t,e)}function iS(t,e){return`${sS(t.name)}/${e}`}function sS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var uS="budibase.log",cS="budibase-logs-history.txt",lS=Cf.default.join(Zn(),"systemlogs");function oS(t){return Cf.default.join(lS,t)}function dS(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 vf(){let t=dS(h.ROLLING_LOG_MAX_SIZE);return aS.createStream(uS,{size:t?.size,path:lS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:cS,initialRotation:!1})}function oP(){let t=[],e=oS(cS);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(oS(uS))),Buffer.concat(t)}function aP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function uP(t){return t instanceof Error}function cP(t){return typeof t=="string"}var Yr;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,pS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:vf(),level:t}),Yr=r.length?(0,Ac.default)(e,Ac.default.multistream(r)):(0,Ac.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{cP(E)&&(d=`${d} ${E}`.trimStart()),aP(E)&&l.push(E),uP(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:of()};let f=Pf.default.scope().active();f&&Pf.default.inject(f.context(),fS.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);Yr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Yr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Yr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Yr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Yr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Yr?.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=Jp()}catch{}return u},a=()=>{let u;try{u=ur()}catch{}return u}}var Sc=Yr;var lP=["AccountError"];function dP(t){return t&&t.suppressAlert}function ri(t,e){e&&lP.includes(e.name)&&dP(e)||console.error(`bb-alert: ${t}`,e)}function pP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,ri(t,n)}function as(t,e){console.warn(`bb-warn: ${t}`,e)}var Yo={};v(Yo,{cleanup:()=>fP,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 fP(){for(let t of Qo)clearInterval(t);Qo=[]}var Lf;if(h.MOCK_REDIS)try{Lf=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}var mP=2e3,hP=5e3,hS=h.REDIS_CLUSTERED,Ff=0,Ko=!1,Mf={},ni=!1;h.MOCK_REDIS&&(ni=!0);function Bf(t){return Mf[t]}function Uf(t,e){Ko||(Ko=!0,clearTimeout(t),ni=!1,ri("Redis connection failed",e),setTimeout(()=>{Gf()},mP))}function Gf(t=Ff){let e=h.MOCK_REDIS&&Lf?Lf:mS.default,r;Ko=!1;let n=Bf(t);if(n&&ni)return;h.MOCK_REDIS&&(Mf[t]=new e(ns())),r=setTimeout(()=>{ni||Uf(r,"Did not successfully connect in timeout")},hP),n&&n.disconnect();let{host:i,port:s}=uc(),o=ns();hS?n=new e.Cluster([{host:i,port:s}],o):n=new e(o),n.on("end",a=>{h.isTest()||Uf(r,a)}),n.on("error",a=>{Uf(r,a)}),n.on("connect",()=>{console.log(`Connected to Redis DB: ${t}`),clearTimeout(r),ni=!0}),Mf[t]=n}function gP(t=Ff){return new Promise(e=>{if(Bf(t)==null)Gf();else if(ni){e("");return}let r=jo(()=>{ni&&(Ho(r),e(""))},500)})}function yP(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:sf(u),value:JSON.parse(a.shift())})))}catch(o){n(o)}})})}var kf=class{constructor(e,r=null){this._db=e,this._select=r||Ff}getClient(){return Bf(this._select)}async init(){return Ko=!1,Gf(this._select),await gP(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 hS?n=this.getClient().nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.getClient().scanStream({match:e+"*",count:100}),yP(n,this.getClient())}async keys(e){let r=this._db;return this.getClient().keys(Ye(r,e))}async exists(e){let r=this._db;return await this.getClient().exists(Ye(r,e))}async get(e){let r=this._db,n=await this.getClient().get(Ye(r,e));n!=null&&n.key&&(n.key=e);try{return JSON.parse(n)}catch{return n}}async bulkGet(e){let r=this._db;if(e.length===0)return{};let n=e.map(s=>Ye(r,s)),i=await this.getClient().mget(n);if(Array.isArray(i)){let s={},o=0;for(let a of i){if(a){let u;try{u=JSON.parse(a)}catch{u=a}s[e[o]]=u}o++}return s}else throw new Error(`Invalid response: ${i}`)}async store(e,r,n=null){let i=this._db;typeof r=="object"&&(r=JSON.stringify(r));let s=Ye(i,e);await this.getClient().set(s,r),n&&await this.getClient().expire(s,n)}async bulkStore(e,r=null){let n=this.getClient(),i=Object.entries(e).reduce((o,[a,u])=>(o[Ye(this._db,a)]=typeof u=="object"?JSON.stringify(u):u,o),{}),s=n.pipeline();if(s.mset(i),r!==null)for(let o of Object.keys(i))s.expire(o,r);await s.exec()}async getTTL(e){let r=this._db,n=Ye(r,e);return this.getClient().ttl(n)}async setExpiry(e,r){let n=this._db,i=Ye(n,e);await this.getClient().expire(i,r)}async delete(e){let r=this._db;await this.getClient().del(Ye(r,e))}async bulkDelete(e){let r=this._db;await this.getClient().del(e.map(n=>Ye(r,n)))}async clear(){let e=await this.scan();await Promise.all(e.map(r=>this.delete(r.key)))}async increment(e){let r=await this.getClient().incr(Ye(this._db,e));if(isNaN(r))throw new Error(`Redis ${e} does not contain a number`);return r}async deleteIfValue(e,r){let n=this.getClient(),i=`
|
|
34
|
-
if redis.call('GET', KEYS[1]) == ARGV[1] then
|
|
35
|
-
redis.call('DEL', KEYS[1])
|
|
36
|
-
end
|
|
37
|
-
`;await n.eval(i,1,Ye(this._db,e),r)}},qe=kf;var Jo,zo,Zo,Xo,ii,ea,ta,ra,na,$f;async function Mt(){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(),ii=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(),$f=await new qe("docWriteThrough").init()}async function gS(){Jo&&await Jo.finish(),zo&&await zo.finish(),Zo&&await Zo.finish(),Xo&&await Xo.finish(),ii&&await ii.finish(),ea&&await ea.finish(),ra&&await ra.finish(),na&&await na.finish(),ta&&await ta.finish(),$f&&await $f.finish()}process.on("exit",async()=>{await gS()});async function ia(){return Jo||await Mt(),Jo}async function Kr(){return zo||await Mt(),zo}async function mc(){return Zo||await Mt(),Zo}async function Vf(){return Xo||await Mt(),Xo}async function qf(){return ii||await Mt(),ii}async function Wf(){return ea||await Mt(),ea}async function EP(){return ta||await Mt(),ta}async function si(){return ra||await Mt(),ra}async function sa(){return na||await Mt(),na}async function TP(){return ii||await Mt(),ii}function Yt(t){let e=j();return`${t}:${e}`}var oi=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Vf()}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 ai=new oi,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}`},ui=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ui||{}),Ic=(...t)=>ai.keys(...t),ci=(...t)=>ai.get(...t),mr=(...t)=>ai.store(...t),oa=(...t)=>ai.delete(...t),zr=(...t)=>ai.withCache(...t),yS=(...t)=>ai.withCacheWithDynamicTTL(...t),us=(...t)=>ai.bustCache(...t);var nn={};v(nn,{getUser:()=>Ca,getUsers:()=>w0,invalidateUser:()=>va});var ca={};v(ca,{addTenantToUrl:()=>AP,getTenantDB:()=>Qf,getTenantIDFromCtx:()=>ua,isUserInAppTenant:()=>SP});function Qf(t){return $e(cr(t))}function AP(t){let e=j();if(qr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var SP=(t,e)=>{let r;return e?r=e.tenantId||Te:r=j(),(es(t)||Te)===r},_P=Object.values(ws),ua=(t,e)=>{if(!qr())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=_P),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 da={};v(da,{getPlatformDB:()=>ct,tenants:()=>nm,users:()=>kt});var kt={};v(kt,{addSsoUser:()=>TS,addUser:()=>bP,getUserDoc:()=>ES,lookupTenantId:()=>IP,removeUser:()=>DP,updateUserDoc:()=>OP});function ct(){return $e(Ee.PLATFORM_INFO.name)}async function IP(t){return h.MULTI_TENANCY?(await ES(t)).tenantId:Te}async function ES(t){return ct().get(t)}async function OP(t){await ct().put(t)}function xP(t,e){return{_id:t,tenantId:e}}function RP(t,e,r){return{_id:e,userId:t,tenantId:r}}function wP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function jf(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 TS(t,e,r,n){return jf(t,()=>wP(t,e,r,n))}async function bP(t,e,r,n){let i=[jf(e,()=>xP(e,t)),jf(r,()=>RP(e,r,t))];n&&i.push(TS(n,r,e,t)),await Promise.all(i)}async function DP(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 nm={};v(nm,{addTenant:()=>KP,exists:()=>jP,getTenantIds:()=>QP,removeTenant:()=>JP,tenacyLockOptions:()=>rm});var di={};v(di,{AUTO_EXTEND_POLLING_MS:()=>bS,doWithLock:()=>ps,newRedlock:()=>li});var wS=Q(require("redlock"));var ls={};v(ls,{Duration:()=>be,DurationType:()=>em,clearCookie:()=>Zr,compare:()=>Kf,getAppIdFromCtx:()=>kP,getCookie:()=>hr,hasCircularStructure:()=>BP,hash:()=>Yf,isAudited:()=>Zf,isClient:()=>FP,isPublicApiRequest:()=>MP,isServingApp:()=>PP,isServingBuilder:()=>UP,isServingBuilderPreview:()=>LP,isValidInternalAPIKey:()=>la,newid:()=>Ie,openJwt:()=>xc,resolveAppUrl:()=>OS,setCookie:()=>xS,time:()=>$P,timeout:()=>zf,urlHasProtocol:()=>GP,validEmail:()=>Xf});var Hf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),CP=h.SALT_ROUNDS||10;async function Yf(t){let e=await Hf.genSalt(CP);return Hf.hash(t,e)}async function Kf(t,e){return Hf.compare(t,e)}var Oc=Q(require("jsonwebtoken")),Jf="app"+N,SS="/app/",_S="/app/preview",vP="/builder",IS=`${vP}/app/`,NP="/api/public/v";function cs(t){return t&&t.startsWith(Jf)?t:void 0}async function OS(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 PP(t){return t.path.startsWith(`/${Jf}`)?!0:t.path.startsWith(SS)}function UP(t){return t.path.startsWith(IS)}function LP(t){return t.path.startsWith(_S)}function MP(t){return t.path.startsWith(NP)}async function kP(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=AS(t.path);!r&&n&&(r=cs(n)),!r&&t.query?.appId&&(r=cs(t.query?.appId));let i=t.path.startsWith(_S),s=t.path.startsWith(SS)&&!i;!r&&s&&(r=cs(await OS(t)));let o=t.request.headers.referer;if(!r&&o?.includes(IS)){let a=AS(t.request.headers.referer);r=cs(a)}return r}function AS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Jf))}function xc(t){if(t)try{return Oc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Oc.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 hr(t,e){let r=t.cookies.get(e);if(r)return xc(r)}function xS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Oc.default.sign(e,h.JWT_SECRET));let i={expires:Ju,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Zr(t,e){xS(t,null,e)}function FP(t){return t.headers["x-budibase-type"]==="client"}function zf(t){return new Promise(e=>setTimeout(e,t))}function Zf(t){return!!Uh[t]}function BP(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 GP(t){return!!t.match(/^.+:\/\/.+$/)}function Xf(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 em=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(em||{}),Rc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/Rc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Rc[e]/Rc[r]}static from(e,r){return new t(r*Rc[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 $P(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function VP(t,e){if(t==="custom")return li(e);switch(t){case"try_once":return li(ds.TRY_ONCE);case"try_twice":return li(ds.TRY_TWICE);case"default":return li(ds.DEFAULT);case"delay_500":return li(ds.DELAY_500);case"auto_extend":return li(ds.AUTO_EXTEND);default:throw Ni.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 li(t={}){let e={...ds.DEFAULT,...t},n=(await Wf()).getClient();return new wS.default([n],e)}function qP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var bS=be.fromSeconds(10).toMs();async function ps(t,e){let r=await VP(t.type,t.customOptions),n,i;try{let s=qP(t),o=t.type==="auto_extend"?bS: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 tm=Ee.PLATFORM_INFO.docs.tenants,rm={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function QP(){return(await wc()).tenantIds}async function wc(){let t=ct(),e;try{e=await t.get(tm)}catch(r){if(r.status===404)e=await YP();else throw r}return e}async function jP(t){return(await wc()).tenantIds.indexOf(t)!==-1}function HP(){return{_id:tm,tenantIds:[]}}async function YP(){let t=ct(),e=HP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(tm);throw r}return e}async function KP(t){let e=ct();await ps(rm,async()=>{let r=await wc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function JP(t){try{await ps(rm,async()=>{let e=ct(),r=await wc();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 pi={};v(pi,{getAccount:()=>Xr,getAccountByTenantId:()=>fs,getStatus:()=>zP});var DS=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,DS.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 im=new pa(h.ACCOUNT_PORTAL_URL),sm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Xr=async t=>{if(sm)return;let e={email:t},r=await im.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(sm)return;let e={tenantId:t},r=await im.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]},zP=async()=>{if(sm)return;let t=await im.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:()=>I0,bulkGetGlobalUsersById:()=>zc,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>Nm,creatorsInList:()=>fi,doesUserExist:()=>E0,getAccountHolderFromUsers:()=>kc,getAllUserIds:()=>g0,getAllUsers:()=>y0,getById:()=>gi,getCreatorCount:()=>S0,getExistingAccounts:()=>ms,getExistingPlatformUsers:()=>PS,getExistingTenantUsers:()=>NS,getFirstPlatformUser:()=>fa,getGlobalUserByAppPage:()=>x_,getGlobalUserByEmail:()=>Bt,getPlatformUsers:()=>bc,getUserCount:()=>A0,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>MS,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>LS,isBuilder:()=>ys,isCreatorAsync:()=>ma,isCreatorSync:()=>Lc,isGlobalBuilder:()=>US,paginatedUsers:()=>w_,removeAppBuilder:()=>O0,removePortalUserPermissions:()=>_0,searchExistingEmails:()=>um,searchGlobalUsersByApp:()=>Zc,searchGlobalUsersByAppAccess:()=>vm,searchGlobalUsersByEmail:()=>R_,validateUniqueUser:()=>Mc});var cm={};v(cm,{creatorsInList:()=>fi,getAccountHolderFromUsers:()=>kc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>MS,hasBuilderPermissions:()=>At,isAdmin:()=>en,isAdminOrBuilder:()=>LS,isBuilder:()=>ys,isCreatorAsync:()=>ma,isCreatorSync:()=>Lc,isGlobalBuilder:()=>US,validateUniqueUser:()=>Mc});var am={};v(am,{createCode:()=>XP,deleteCode:()=>tU,getCode:()=>eU,getExistingInvites:()=>om,getInviteCodes:()=>vS,updateCode:()=>ZP});var CS=be.fromDays(7).toSeconds();async function ZP(t,e){await(await si()).store(t,e,CS)}async function XP(t,e){let r=Ie();return await(await si()).store(r,{email:t,info:e},CS),r}async function eU(t){let r=await(await si()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function tU(t){await(await si()).delete(t)}async function vS(){let r=(await(await si()).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 om(t){return(await vS()).filter(e=>t.includes(e.email))}async function um(t){let e=[],r=await NS(t);e.push(...r.map(o=>o.email));let n=await PS(t);e.push(...n.map(o=>o._id));let i=await ms(t);e.push(...i.map(o=>o.email));let s=await om(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function bc(t){return await Go("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function fa(t){return(await bc(t))[0]??null}async function NS(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 PS(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:()=>Cc,BudibaseError:()=>hs,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Nc,HTTPError:()=>lt,InvalidAPIKeyError:()=>gs,NotFoundError:()=>Dc,UsageLimitError:()=>vc,getPublicError:()=>Pc});var hs=class extends Error{constructor(r,n){super(r);this.code=n}},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)}},Dc=class extends lt{constructor(e){super(e,404)}},Cc=class extends lt{constructor(e){super(e,400)}},vc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Nc=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")}},gr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ys=ot.users.isBuilder,en=ot.users.isAdmin,US=ot.users.isGlobalBuilder,LS=ot.users.isAdminOrBuilder,tn=ot.users.hasAdminPermissions,At=ot.users.hasBuilderPermissions,MS=ot.users.hasAppBuilderPermissions;async function fi(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?nU(t,e):r}function nU(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 gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Xr(t);if(r&&r.verified&&r.tenantId!==e)throw new gr(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:()=>XS,ai:()=>i_,analytics:()=>Bc,app:()=>e_,auditLog:()=>T_,auth:()=>Yc,automation:()=>t_,backfill:()=>m_,backfillCache:()=>jc,backup:()=>y_,datasource:()=>r_,email:()=>n_,environmentVariable:()=>E_,group:()=>h_,identification:()=>Ft,initAsyncEvents:()=>r0,installation:()=>Sa,layout:()=>o_,license:()=>s_,org:()=>a_,plugin:()=>g_,processors:()=>mm,publishEvent:()=>A,query:()=>u_,role:()=>Ra,rowAction:()=>A_,rows:()=>l_,screen:()=>c_,serve:()=>p_,shutdown:()=>n0,table:()=>d_,user:()=>Je,view:()=>f_});var mm={};v(mm,{analyticsProcessor:()=>YS,init:()=>_U,processors:()=>Tr});var Bc={};v(Bc,{enabled:()=>Fc});var Fc=async()=>Gc();var $S=require("posthog-node");var iU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",sU=t=>t==="served:app:preview"||t==="served:app";var FS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},BS=async t=>{if(!iU(t))return!1;let e=await oU(t);if(e){let r=new Date(e.timestamp);switch(FS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await kS(t,{timestamp:Date.now()}),!1):!0}}else return await kS(t,{timestamp:Date.now()}),!1},GS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return sU(t)&&(e=e+":"+Ue()),e},oU=async t=>{let e=GS(t);return await ci(e)},kS=async(t,e)=>{let r=GS(t),n=FS[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var uU=["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 $S.PostHog(e)}async processEvent(e,r,n,i){if(uU.includes(e)||await BS(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 VS=ha;var cU=["installation:version:upgraded","installation:version:downgraded"],lU=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new VS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!cU.includes(e)&&!await Fc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!lU.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 lm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){lm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){lm||console.log("[audit] identified",e)}async identifyGroup(e){lm||console.log("[audit] group identified",e)}shutdown(){}};var fm={};v(fm,{BudibaseQueue:()=>Er,InMemoryQueue:()=>$c,JobQueue:()=>Es,shutdown:()=>TU});var qS=Q(require("events"));function dU(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 qS.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 Ht.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=>dU(e))}async whenCurrentJobsFinished(){do await zf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},WS=$c;var dm=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 QS(t,e,r){mU(t,e),r&&pU(t,r)}function pU(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 fU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function mU(t,e){let r=fU[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")),Ea=Q(require("object-sizeof")),hU=be.fromMinutes(5).toMs(),gU=be.fromSeconds(30).toMs(),pm=be.fromSeconds(60).toMs(),Ta=[],Vc;async function jS(){for(let t of Ta)await t.clean(pm,"completed"),await t.clean(pm,"failed")}async function yU(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 HS(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 EU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Ea.default)(t.data),...HS(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:hU,lockRenewTime:gU}};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 dm.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new WS(this.jobQueue,r):n=new dm.default(this.jobQueue,r),QS(n,this.jobQueue,this.opts.removeStalledCb),Ta.push(n),!Vc&&!h.isTest()&&(Vc=jo(jS,pm),jS().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,...EU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),yr.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 yr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Ea.default)(e),...HS(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,Ea.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return yU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}};async function TU(){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 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&&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 YS=new ga,AU=new ya,SU=new Ts;function _U(t){return Ts.init(t)}var Tr=new Aa([YS,AU,SU]);var qc={};v(qc,{checkInstallVersion:()=>xU,getInstall:()=>_a,getInstallFromDB:()=>gm});var hm=Q(require("semver"));var _a=async()=>zr(Ce.INSTALLATION,86400,gm,{useTenancy:!1});async function IU(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 gm();throw r}}var gm=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 IU(t);else throw r}return e}),OU=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},xU=async()=>{let t=await _a(),e=t.version,r=h.VERSION;try{if(e!==r){let n=hm.default.gt(r,e),i=hm.default.lt(r,e);await OU(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Sa.upgraded(e,r):i&&await Sa.downgraded(e,r)}),await Ft.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?ri(`Invalid version "${r}" - is it semver?`):ri("Failed to retrieve version",n)}};var RU=async()=>{let t=vp(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await mi(),i=Ia();return{id:KS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await mi(),i=await Wc(j()),s=Ia();return{id:KS(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 mi(),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")},wU=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 ym(a,e),await Oa({...a,id:`$${n}_${r}`},e)},bU=async(t,e,r)=>{let n=await Wc(t),i="tenant",s=await mi(),o=xa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await ym(a,r),await Oa({...a,id:`$${i}_${n}`},r)},DU=async(t,e,r)=>{let n=t._id,i=await Wc(t.tenantId),s="user",o=At(t),a=tn(t),u;Ya(t)&&(u=t.providerType);let l=(await ms([t.email])).length>0,d=!!e&&l&&e.verified,m=await mi(),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)},CU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ha(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await mi(),c=xa();if(ja(t)){let d=await Bt(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 Tr.identify(t,e)},ym=async(t,e)=>{await Tr.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ia=()=>h.SELF_HOSTED?"self":"cloud",mi=async()=>vU()?"account-portal":(await _a()).installId,Wc=async t=>h.SELF_HOSTED?JS(t):t,JS=async t=>Ve(t,()=>zr(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)})),vU=()=>h.SERVICE==="account-portal",KS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ft={getCurrentIdentity:RU,identifyInstallationGroup:wU,identifyTenantGroup:bU,identifyUser:DU,identifyAccount:CU,identify:Oa,identifyGroup:ym,getInstallationId:mi,getUniqueTenantId:JS};var jc={};v(jc,{end:()=>PU,isAlreadySent:()=>Am,isBackfillingEvent:()=>Tm,recordEvent:()=>Em,start:()=>NU});var NU=async t=>LU({eventWhitelist:t}),Em=async(t,e)=>{let r=Sm(t,e);await mr(r,e,void 0,{useTenancy:!1})},PU=async()=>{await MU(),await kU()},UU=async()=>ci(Ce.BACKFILL_METADATA),LU=async t=>mr(Ce.BACKFILL_METADATA,t),MU=async()=>{await oa(Ce.BACKFILL_METADATA)},kU=async()=>{let t=Sm(),e=await Ic(t);for(let r of e)await oa(r,{useTenancy:!1})},Tm=async t=>{let r=(await UU())?.eventWhitelist;return!!(r&&r.includes(t))},Am=async(t,e)=>{let r=Sm(t,e);return!!await ci(r,{useTenancy:!1})},FU={"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}`},Sm=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=FU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Ar;function Hc(){Ar=new Er("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function zS(){Ar&&await Ar.close()}async function ZS(t){Ar||Hc();let{event:e,identity:r}=t;Ph.indexOf(e)!==-1&&r.tenantId&&await Ar.add(t)}var A=async(t,e,r,n)=>{let i=n||await Ft.getCurrentIdentity();if(!(n?!1:await Tm(t))){await ZS({event:t,identity:i,properties:e,timestamp:r}),await Tr.processEvent(t,i,e,r);return}await Am(t,e)||(await Tr.processEvent(t,i,e,r),await Em(t,e))};async function BU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function GU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function $U(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var XS={created:BU,deleted:GU,verified:$U};var VU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function qU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function WU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function QU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function jU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function HU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function YU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function KU(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 zU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function ZU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function XU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var e_={created:VU,updated:qU,deleted:WU,published:QU,unpublished:jU,fileImported:HU,duplicated:YU,templateImported:KU,versionUpdated:JU,versionReverted:zU,reverted:ZU,exported:XU};async function eL(t,e){let n={userId:(await Ft.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function tL(t){let r={userId:(await Ft.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function rL(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function nL(t){let e={type:t};await A("auth:sso:updated",e)}async function iL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function sL(t){let e={type:t};await A("auth:sso:deactivated",e)}var Yc={login:eL,logout:tL,SSOCreated:rL,SSOUpdated:nL,SSOActivated:iL,SSODeactivated:sL};async function oL(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 aL(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 uL(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 cL(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 lL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function dL(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 pL(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 t_={created:oL,triggerUpdated:aL,deleted:uL,tested:cL,run:lL,stepCreated:dL,stepDeleted:pL};function _m(t){return!Object.values(Va).includes(t.source)}async function fL(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:created",r,e)}async function mL(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:updated",e)}async function hL(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:deleted",e)}var r_={created:fL,updated:mL,deleted:hL};async function gL(t){let e={};await A("email:smtp:created",e,t)}async function yL(){let t={};await A("email:smtp:updated",t)}var n_={SMTPCreated:gL,SMTPUpdated:yL};async function EL(t){let e={};await A("ai:config:created",e,t)}async function TL(){let t={};await A("ai:config:updated",t)}var i_={AIConfigCreated:EL,AIConfigUpdated:TL};async function AL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function SL(t){let e={accountId:t.accountId};await A("license:activated",e)}async function _L(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function IL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function OL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function xL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function RL(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var s_={planChanged:AL,activated:SL,checkoutOpened:_L,checkoutSuccess:IL,portalOpened:OL,paymentFailed:xL,paymentRecovered:RL};async function wL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function bL(t){let e={layoutId:t};await A("layout:deleted",e)}var o_={created:wL,deleted:bL};async function DL(t){let e={};await A("org:info:name:updated",e,t)}async function CL(t){let e={};await A("org:info:logo:updated",e,t)}async function vL(t){let e={};await A("org:platformurl:updated",e,t)}async function NL(){let t={};await A("analytics:opt:out",t)}async function PL(){let t={};await A("analytics:opt:out",t)}var a_={nameUpdated:DL,logoUpdated:CL,platformURLUpdated:vL,analyticsOptOut:NL,analyticsOptIn:PL};var UL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},LL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},ML=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},kL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},FL=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},BL=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},u_={created:UL,updated:LL,deleted:ML,imported:kL,run:FL,previewed:BL};async function GL(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function $L(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function VL(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function qL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function WL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Ra={created:GL,updated:$L,deleted:VL,assigned:qL,unassigned:WL};async function QL(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 jL(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var c_={created:QL,deleted:jL};var HL=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},YL=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},l_={created:HL,imported:YL};async function KL(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 zL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function ZL(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function XL(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var d_={created:KL,updated:JL,deleted:zL,exported:ZL,imported:XL};async function eM(t){let e={timezone:t};await A("served:builder",e)}async function tM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function rM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var p_={servedBuilder:eM,servedApp:tM,servedAppPreview:rM};async function nM(t,e){let r={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:created",r,e)}async function iM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:updated",e)}async function sM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:deleted",e)}async function oM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function aM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function uM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function cM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function lM(t){let e={audited:{email:t}};await A("user:invited",e)}async function dM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function pM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function fM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function mM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function hM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function gM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:nM,updated:iM,deleted:sM,permissionAdminAssigned:oM,permissionAdminRemoved:aM,permissionBuilderAssigned:uM,permissionBuilderRemoved:cM,invited:lM,inviteAccepted:dM,passwordForceReset:pM,passwordUpdated:fM,passwordResetRequested:mM,passwordReset:hM,dataCollaboration:gM};async function yM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function EM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function TM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function AM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function SM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function _M({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function IM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function OM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function xM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function RM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function wM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var f_={created:yM,updated:EM,deleted:TM,exported:AM,filterCreated:SM,filterUpdated:_M,filterDeleted:IM,calculationCreated:OM,calculationUpdated:xM,calculationDeleted:RM,viewJoinCreated:wM};async function bM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function DM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function CM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function vM(){let t={};await A("installation:firstStartup",t)}var Sa={versionChecked:bM,upgraded:DM,downgraded:CM,firstStartup:vM};var _s=!h.SELF_HOSTED&&!h.isDev();async function NM(t){_s||await A("app:backfill:succeeded",t)}async function PM(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function UM(t){_s||await A("tenant:backfill:succeeded",t)}async function LM(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function MM(){if(_s)return;let t={};await A("installation:backfill:succeeded",t)}async function kM(t){if(_s)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var m_={appSucceeded:NM,appFailed:PM,tenantSucceeded:UM,tenantFailed:LM,installationSucceeded:MM,installationFailed:kM};async function FM(t,e){let r={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:created",r,e)}async function BM(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:updated",e)}async function GM(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:deleted",e)}async function $M(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:user_added",r)}async function VM(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function qM(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function WM(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var h_={created:FM,updated:BM,deleted:GM,usersAdded:$M,usersDeleted:VM,createdOnboarding:qM,permissionsEdited:WM};async function QM(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function jM(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 HM(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 g_={init:QM,imported:jM,deleted:HM};async function YM(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function KM(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var y_={appBackupRestored:YM,appBackupTriggered:KM};async function JM(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function zM(t){let e={name:t};await A("environment_variable:deleted",e)}async function ZM(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var E_={created:JM,deleted:zM,upgradePanelOpened:ZM};async function XM(t){let e={filters:t};await A("audit_log:filtered",e)}async function e0(t){let e={filters:t};await A("audit_log:downloaded",e)}var T_={filtered:XM,downloaded:e0};async function t0(t,e){await A("row_action:created",t,e)}var A_={created:t0};function r0(){}var n0=()=>{Tr.shutdown(),console.log("Events shutdown")};var Im=async t=>{await Je.deleted(t),At(t)&&await Je.permissionBuilderRemoved(t),tn(t)&&await Je.permissionAdminRemoved(t)},i0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ra.assigned(t,i)},s0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ra.unassigned(t,i)},o0=async(t,e)=>{let r=t.roles,n=e?.roles;await i0(t,r,n),await s0(t,r,n)},Om=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await fs(r)),await Ft.identifyUser(t,n),e?(await Je.updated(t),u0(t,e)&&await Je.permissionBuilderRemoved(t),l0(t,e)&&await Je.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Je.passwordForceReset(t),t.password!==e.password&&await Je.passwordUpdated(t)):await Je.created(t),a0(t,e)&&await Je.permissionBuilderAssigned(t),c0(t,e)&&await Je.permissionAdminAssigned(t),await o0(t,e)},a0=(t,e)=>S_(t,e,At),u0=(t,e)=>__(t,e,At),c0=(t,e)=>S_(t,e,tn),l0=(t,e)=>__(t,e,tn),S_=(t,e,r)=>!(!r(t)||e&&r(e)),__=(t,e,r)=>!(r(t)||!e||!r(e));var Jc={};v(Jc,{createASession:()=>p0,endSession:()=>f0,getSession:()=>Rm,getSessionsForUser:()=>Kc,invalidateSessions:()=>hi,updateSessionTTL:()=>xm});var I_=require("uuid");var O_=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 Kr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function hi(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 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 p0(t,e){await hi(t,{reason:"creation"});let r=await Kr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,I_.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,O_),o}async function xm(t){let e=await Kr(),r=Is(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,O_)}async function f0(t,e){await(await Kr()).delete(Is(t,e))}async function Rm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Kr()).get(Is(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Cm={};v(Cm,{PASSWORD_MAX_LENGTH:()=>bm,PASSWORD_MIN_LENGTH:()=>wm,validatePassword:()=>Dm});var wm=+(h.PASSWORD_MIN_LENGTH||12),bm=+(h.PASSWORD_MAX_LENGTH||512);function Dm(t){return!t||t.length<wm?{valid:!1,error:`Password invalid. Minimum ${wm} characters.`}:t.length>bm?{valid:!1,error:`Password invalid. Maximum ${bm} characters.`}:{valid:!0}}var m0=async t=>{let e=t._id;await kt.removeUser(t),await Im(t),await nn.invalidateUser(e),await hi(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&&en(e)?!1:await t.features.isSSOEnforced()||Ya(e)?!0:(r||(r=await fs(j())),!!(r&&r.email===e.email&&Ha(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=Dm(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await Yf(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(ei(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 vm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Bt(e)}static async getUser(e){let r=await gi(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 gi(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 Bt(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 fi([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=Nm(m,c)),!c&&u?.length&&(m.roles={...u});let p=[];if(!o&&a.length>0)for(let f of a)p.push(t.groups.addUsers(f,[m._id]));try{let f=await i.put(m);return m._rev=f.rev,await Om(m,c),c&&m.email!==c.email&&await kt.removeUser({email:c.email}),await kt.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await um(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 kt.addUser(n,p._id,p.email),await Om(p,void 0);let m=d.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],f=m.map(g=>g._id);for(let g of r)p.push(t.groups.addUsers(g,f));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=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 fi(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await fa(p._id)).ssoId;g&&(await bc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await m0(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 Xr(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 kt.removeUser(n),await r.remove(i,n._rev);let s=await ma(n)?1:0;await t.quotas.removeUsers(1,s),await Im(n),await nn.invalidateUser(i),await hi(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 g0(){let t=ie(),e=`us${N}`;return(await t.allDocs({startkey:e,endkey:`${e}${Fe}`})).rows.map(n=>n.id)}async function y0(){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 gi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Da(n)),n}async function Bt(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 E0(t){try{let e=await Bt(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=gc(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 vm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Hp(cr(),i)).rows}function x_(t,e){if(e)return hc(at(t),e._id)}async function R_(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 T0=8;async function w_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??T0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await gi(e.equal._id)]:r?(u=await Zc(r,a),l=d=>x_(r,d)):e?.string?.email?(u=await R_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await zc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(ei(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Fr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(ei(null,a))).rows.map(m=>m.doc),mf(u,s,{paginate:!0,property:c,getKey:l})}async function A0(){return(await yf("by_email2",{limit:0,include_docs:!1})).total_rows}async function S0(){let t=0;async function e(r){let n=await w_({bookmark:r}),i=await fi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function _0(t){return delete t.admin,delete t.builder,t}function Nm(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 I0(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 O0(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 b_=3600;async function x0(t,e){let n=await Qf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Xr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function R0(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 Xr(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=x0),!e)try{e=j()}catch{e=await kt.lookupTenantId(t)}let i=await ia(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,b_)),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 w0(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 R0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,b_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await ia()).delete(t)}var Mm={};v(Mm,{Writethrough:()=>Um});var D_=1e4,Pm=null;async function Xc(){if(!Pm){let t=await qf();Pm=new oi(t)}return Pm}function Na(t,e){return t.name+e}function Lm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function b0(t,e,r=D_){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=Lm(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 D0(t,e){let r=await Xc(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Lm(s),await r.store(n,i)}return i.doc}async function C0(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=Lm(s),await r.store(n,i)}return i.doc}async function v0(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 Um=class{constructor(e,r=D_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return b0(this.db,e,r)}async get(e){return D0(this.db,e)}async tryGet(e){return C0(this.db,e)}async remove(e,r){return v0(this.db,e,r)}};var km={};v(km,{createCode:()=>P0,getCode:()=>U0,invalidateCode:()=>L0});var N0=be.fromHours(1).toSeconds();async function P0(t,e){let r=Ie();return await(await sa()).store(r,{userId:t,info:e},N0),r}async function U0(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 L0(t){await(await sa()).delete(t)}var Bm={};v(Bm,{DocWritethrough:()=>Fm,DocWritethroughProcessor:()=>Pa,getProcessor:()=>k0,init:()=>C_});var M0=100,el,Pa=class t{static get queue(){return t._queue||(t._queue=new Er("docWritethroughQueue",{jobOptions:{attempts:M0}})),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)}},Fm=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 C_(){return el=new Pa().init(),el}function k0(){return el||C_()}function tl(t){return`config${N}${t}`}async function Gt(t){let e=ie();try{return await e.get(tl(t))}catch(r){if(r.status===404)return;throw r}}async function F0(t){return t._id||(t._id=tl(t.type)),ie().put(t)}async function Qc(){let t=await Gt("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 Vm(){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 Gt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Gc=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 Gt("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 B0(){return await Gt("google")}async function rl(){return(await B0())?.config}async function qm(){if(!h.SELF_HOSTED)return Gm();let t=await rl();return(!t||!t.activated)&&(t=Gm()),t}function Gm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function G0(){return Gt("logos_oidc")}async function $0(){return Gt("oidc")}async function V0(){let t=(await $0())?.config;return t?.configs&&t.configs[0]}async function Wm(t){let e=(await Gt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function v_(){return Gt("smtp")}async function q0(t){let e=await v_();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 W0(){return(await Gt("scim"))?.config}async function Q0(){return Gt("ai")}var eh={};v(eh,{AccessController:()=>Hm,BUILTIN_ROLE_IDS:()=>Ym,Role:()=>sn,RoleHierarchyTraversal:()=>nl,RoleIDVersion:()=>Km,builtinRoleToNumber:()=>La,checkForRoleResourceArray:()=>L_,externalRole:()=>z0,findRole:()=>Ma,getAllRoleIds:()=>tk,getAllRoles:()=>Xm,getBuiltinRole:()=>P_,getBuiltinRoles:()=>zm,getDBRoleID:()=>M_,getExternalRoleID:()=>on,getExternalRoleIDs:()=>k_,getRole:()=>Z0,getUserRoleHierarchy:()=>Zm,getUserRoleIdHierarchy:()=>U_,isBuiltin:()=>yi,lowerBuiltinRoleID:()=>J0,prefixRoleIDNoBuiltin:()=>jm,roleIDsAreEqual:()=>_t,roleToNumber:()=>K0,saveRoles:()=>X0,validInherits:()=>Y0});var Qm=Q(require("semver"));var il=Q(require("lodash/fp/cloneDeep"));var N_=require("lodash");var Ym={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...Ym,BUILDER:"BUILDER"},Km={UUID:void 0,NAME:"name"};function H0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var sn=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=Km.NAME}addInheritance(e){return e&&typeof e=="string"?e=jm(e):e&&Array.isArray(e)&&(e=e.map(jm)),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&&!H0(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),Ht.roles.checkForRoleInheritanceLoops(i))break}}return(0,N_.uniqBy)(i,s=>s._id)}},Jm={ADMIN:new sn(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 sn(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 sn(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 sn(fe.PUBLIC,fe.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new sn(fe.BUILDER,fe.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function zm(){return(0,il.default)(Jm)}function yi(t){return Object.values(Ym).includes(t)}function jm(t){return yi(t)?t:lr(t)}function P_(t){let e=Object.values(Jm).find(r=>t.includes(r._id));if(e)return(0,il.default)(e)}function Y0(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=zm(),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 K0(t){if(yi(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(yi(n.inherits))return La(n.inherits)+1;return 0};return Math.max(...e.map(r))}function J0(t,e){return t?e&&La(t)>La(e)?e:t:e}function _t(t,e){return lr(t)===lr(e)}function z0(t){let e;return t._id&&(e=on(t._id)),{...t,_id:e,inherits:k_(t.inherits,t.version)}}function Ma(t,e,r){let n=P_(t);n||(t=lr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!yi(t)&&r?.defaultPublic?(0,il.default)(Jm.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=on(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function Z0(t,e){let r=ts(),n=[];if(!yi(t)){let i=await r.tryGet(M_(t));i&&n.push(i)}return Ma(t,n,e)}async function X0(t){await ts().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function ek(t,e){let r=await Xm();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 U_(t){return(await Zm(t)).map(r=>r._id)}async function Zm(t,e){return ek(t,e)}function L_(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 tk(t){return(await Xm(t)).map(r=>r._id)}async function Xm(t){if(t)return ut(t,e);{let r;try{r=ts()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(yc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=on(a._id,a.version)));let i=zm(),s=[];!r||await rk(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=on(a._id,u.version),n.push({...a,...u,name:a.name,_id:on(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=L_(o.permissions,a);return n}}async function rk(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Qm.default.valid(r)?!0:!Qm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Hm=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 U_(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 M_(t){return t?.startsWith("role")?t:lr(t)}function on(t,e){if(t.startsWith(`role${N}`)&&(yi(t)||e===Km.NAME)){let r=t.split(N);return r.shift(),r.join(N)}return t}function k_(t,e){return t&&(typeof t=="string"?on(t,e):t.map(r=>on(r,e)))}var th={};v(th,{BUILDER:()=>ak,BUILTIN_PERMISSIONS:()=>sl,CREATOR:()=>uk,GLOBAL_BUILDER:()=>ck,PermissionImpl:()=>me,PermissionLevel:()=>bs,PermissionType:()=>Qa,doesHaveBasePermission:()=>sk,getAllowedLevels:()=>$_,getBuiltinPermissionByID:()=>ik,getBuiltinPermissions:()=>nk,isPermissionLevelHigherThanRead:()=>ok,levelToNumber:()=>G_});var F_=Q(require("lodash/flatten")),B_=Q(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function G_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function $_(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 nk(){return(0,B_.default)(sl)}function ik(t){return Object.values(sl).find(r=>r._id===t)}function sk(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(sl),s=(0,F_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&$_(o.level).indexOf(e)!==-1)return!0;return!1}function ok(t){return G_(t)>1}var ak="builder",uk="creator",ck="globalBuilder";var ih={};v(ih,{FlagSet:()=>al,all:()=>fk,flags:()=>rh,init:()=>lk,isEnabled:()=>pk,parseEnvFlags:()=>cl,shutdown:()=>dk,testutils:()=>nh});var ul=Q(require("crypto"));var V_=require("posthog-node"),q_=Q(require("dd-trace"));var W_=require("lodash");var ol;function lk(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),ol=new V_.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 dk(){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,W_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await q_.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:d,key:m,value:p}of cl(h.TENANT_FEATURE_FLAGS||""))if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,p===!1&&o.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=p,n[`flags.${m}.source`]="environment"}let a=ur(),u=a?._id;if(!u){let d=zp();d&&(u=ul.createHash("sha512").update(d).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 d={tenantId:c},m=await ol.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[p,f]of Object.entries(m))if(this.isFlagName(p)){if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${f}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=f,n[`flags.${p}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${p}": ${f}`,g)}}}let l=tf();for(let[d,m]of Object.entries(l))this.isFlagName(d)&&typeof m=="boolean"&&(i[d]=m,n[`flags.${d}.source`]="override");ef(this.setId,i);for(let[d,m]of Object.entries(i))n[`flags.${d}.value`]=m;return e?.addTags(n),i})}},rh=new al(Fh);async function pk(t){return await rh.isEnabled(t)}async function fk(){return await rh.fetch()}var nh={};v(nh,{setFeatureFlags:()=>Q_,withFeatureFlags:()=>gk});function mk(){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 hk(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 Q_(t,e){let r=mk();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=hk(r);return bo({TENANT_FEATURE_FLAGS:n})}function gk(t,e,r){let n=Q_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var gh={};v(gh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,buildAuthMiddleware:()=>iF,buildCsrfMiddleware:()=>oF,buildTenancyMiddleware:()=>sF,builderOnly:()=>_l,builderOrAdmin:()=>Sl,google:()=>Sr,internalApi:()=>El,joiValidator:()=>Fa,oidc:()=>_r,passport:()=>aF,platformLogout:()=>pF,refreshOAuthToken:()=>lF,ssoCallbackUrl:()=>an,updateUserOAuth:()=>dF});var hh={};v(hh,{adminOnly:()=>Al,auditLog:()=>gl,authError:()=>Me,authenticated:()=>hl,builderOnly:()=>_l,builderOrAdmin:()=>Sl,correlation:()=>sI,csp:()=>dI,csrf:()=>Tl,datasource:()=>rF,errorHandling:()=>aI,featureFlagCookie:()=>pI,google:()=>Sr,internalApi:()=>El,ip:()=>mI,joiValidator:()=>Fa,local:()=>Os,oidc:()=>_r,pino:()=>nI,querystringToBody:()=>uI,ssoCallbackUrl:()=>an,tenancy:()=>yl});var Os={};v(Os,{authenticate:()=>Tk,options:()=>Ek});function Me(t,e,r){return t(r,null,{message:e})}async function an(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Vm(),n="/api/global/auth";return qr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var sh="Invalid credentials",yk="This account has expired. Please reset your password",Ek={passReqToCallback:!0};async function Tk(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Bt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,sh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,sh)):i.password?await Kf(r,i.password)?(delete i.password,n(null,i)):Me(n,sh):(console.info(`user=${e} has no password set`,i),Me(n,yk))}var Sr={};v(Sr,{buildVerifyFn:()=>Y_,getCallbackUrl:()=>_k,strategyFactory:()=>oh});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 gi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Bt(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 Ak(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 Ak(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 Sk=require("passport-google-oauth").OAuth2Strategy;function Y_(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 oh(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=Y_(r);return new Sk({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function _k(t){return an("google",t)}var _r={};v(_r,{buildVerifyFn:()=>J_,fetchStrategyConfig:()=>Rk,getCallbackUrl:()=>wk,strategyFactory:()=>xk});var K_=Q(require("node-fetch"));var Ik=require("@techpass/passport-openidconnect").Strategy;function J_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:Ok(n,i),oauth2:{accessToken:s,refreshToken:o}};return ll(l,!1,c,t)}}function Ok(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Xf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function xk(t,e){try{let r=J_(e),n=new Ik(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function Rk(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,K_.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 wk(){return an("oidc")}var ah={};v(ah,{postAuth:()=>Ck,preAuth:()=>Dk});var bk=require("passport-google-oauth").OAuth2Strategy;async function z_(){let t=await qm();if(!t)throw new Error("No google configuration found");return t}async function Dk(t,e,r){let n=await z_(),s=`${await Ua({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await oh(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 Ck(t,e,r){let n=await z_(),s=`${await Ua({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=hr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new bk({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 vk=/\/:(.*?)(\/.*)?$/g,Ei=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(vk);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}}):[],Ti=(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 fh={};v(fh,{SecretOption:()=>eI,decrypt:()=>ph,decryptFile:()=>kk,encrypt:()=>Uk,encryptFile:()=>Lk,getSecret:()=>dh});var Ir=Q(require("crypto")),un=Q(require("fs")),ch=Q(require("zlib"));var uh=require("path"),dl="aes-256-ctr",X_="-",Nk=1e4,Pk=32,pl=16,lh=16,eI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(eI||{});function dh(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 Ir.default.pbkdf2Sync(t,e,Nk,Pk,"sha512")}function Uk(t,e="api"){let r=Ir.default.randomBytes(pl),n=fl(dh(e),r),i=Ir.default.createCipheriv(dl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${X_}${a}`}function ph(t,e="api"){let[r,n]=t.split(X_),i=Buffer.from(r,"hex"),s=fl(dh(e),i),o=Ir.default.createDecipheriv(dl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function Lk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,uh.join)(t,e);if(un.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=un.default.createReadStream(i),o=un.default.createWriteStream((0,uh.join)(t,n)),a=Ir.default.randomBytes(pl),u=Ir.default.randomBytes(lh),c=fl(r,a),l=Ir.default.createCipheriv(dl,c,u);return o.write(a),o.write(u),s.pipe(ch.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function Mk(t){let e=un.default.createReadStream(t),r=await Z_(e,pl),n=await Z_(e,lh);return e.close(),{salt:r,iv:n}}async function kk(t,e,r){if(un.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await Mk(t),s=un.default.createReadStream(t,{start:pl+lh}),o=un.default.createWriteStream(e),a=fl(r,n),u=Ir.default.createDecipheriv(dl,a,i),c=ch.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 rI=Q(require("dd-trace")),Fk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function Bk(){return new Date(Date.now()-Fk).toISOString()}function tI(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 Gk(t,e){if(la(t))return{valid:!0,user:void 0};let n=ph(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?Ei(t):[];return async(n,i)=>{let s=!1,o=ml(n,"x-budibase-api-version");Ti(n,r)&&(s=!0);try{let u=ml(n,"x-budibase-token"),c=hr(n,"budibase:auth")||xc(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 Rm(_,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<Bk()&&await xm(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 Gk(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)&&rI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),tI(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 tI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var $k=async(t,e)=>e(),gl=$k;function yl(t,e,r={noTenancyRequired:!1}){let n=Ei(t),i=Ei(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ti(s,i)};!!Ti(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 Vk=["GET","HEAD","OPTIONS"],qk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Tl(t={noCsrfPatterns:[]}){let e=Ei(t.noCsrfPatterns);return async(r,n)=>{if(Ti(r,e)||Vk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!qk.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&&!en(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)&&!en(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 Wk=require("koa-pino-logger"),Qk=require("correlation-id");function jk(){return{logger:Sc,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 Hk(){return h.HTTP_LOGGING?Wk(jk()):(t,e)=>e()}var Yk=Hk(),nI=Yk;var iI=require("uuid"),Kk=require("correlation-id"),Jk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,iI.v4)()),Kk.withId(r,()=>e())},sI=Jk;function oI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of kT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function zk(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(oI(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 aI=zk;function uI(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 lI=Q(require("crypto"));var cI={"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'"]},Zk=/^[A-Za-z0-9-*:/.]+$/,Xk=async(t,e)=>{let r=lI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...cI};if(n["script-src"]=[...cI["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=>Zk.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()},dI=Xk;var pI=async(t,e)=>{let n=hr(t,"budibase:featureflags")?.flags||{};await rf(n,async()=>{await e()})};var Fa={};v(Fa,{body:()=>eF,params:()=>tF});var mh=Q(require("joi"));function fI(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:mh.default.any().optional(),updatedAt:mh.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 eF(t,e){return fI(t,"body",e)}function tF(t,e){return fI(t,"params",e)}var mI=async(t,e)=>t.ip?await Zp(t.ip,()=>e()):e();var rF={google:ah};var hI=require("koa-passport"),nF=require("passport-local").Strategy,Il=require("passport-oauth2-refresh"),iF=hl,sF=yl,oF=Tl,aF=hI;hI.use(new nF(Os.options,Os.authenticate));async function uF(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,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 cF(t,e){let r=await Sr.getCallbackUrl(t),n;try{n=await Sr.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 lF(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Wm(r);return n?uF(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await rl();return n?cF(n,t):{err:{data:"Google configuration not found"}}}}}async function dF(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 pF(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=hr(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 hi(r,{sessionIds:o,reason:"logout"}),await Yc.logout(e.user?.email),await va(r)}var Eh={};v(Eh,{validate:()=>yF});var D=Q(require("joi")),fF=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function yh(t,e){let{error:r}=t.validate(e);if(r)throw r}function mF(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)});yh(e,t)}function hF(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(...fF),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()}))})});yh(n,t)}function gF(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(...Bh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});yh(n,t)}function yF(t){switch(t?.type){case"component":mF(t);break;case"datasource":hF(t);break;case"automation":gF(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Th={};v(Th,{Client:()=>qe,clients:()=>Jr,locks:()=>di,utils:()=>cc});var Ah={};v(Ah,{isBlacklisted:()=>TF,refreshBlacklist:()=>TI});var gI=Q(require("dns")),xl=Q(require("net"));var yI=require("util"),Ol,EF=(0,yI.promisify)(gI.default.lookup);async function EI(t){return xl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await EF(t,{all:!0})).map(r=>r.address)}async function TI(){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 EI(i);r=r.concat(s)}}Ol=r}async function TF(t){if(Ol||await TI(),Ol?.length===0)return!1;let e;return xl.default.isIP(t)?e=[t]:e=await EI(t),!!Ol?.find(r=>e.includes(r))}var _h={};v(_h,{init:()=>SF});var AF={"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 AI(t,e){let r=AF[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=AI(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 zS()}};var SI,Sh;function SF(t){Ar||Hc(),Sh||(Sh=new Ba(t)),SI||(SI=Ar.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Sh.processEvent(r,n,i)}))}var vh={};v(vh,{COUNT_FIELD_NAME:()=>Dh,Sql:()=>CI,SqlTable:()=>Rl,designDoc:()=>Ch,utils:()=>Qp});var xI=require("knex");var _F=require("knex");function Ih(t){return["link","formula","ai"].indexOf(t)!==-1}function _I(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":Ht.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:Ni.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Ih(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!Ih(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||Ih(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function OF(t,e,r){return t.createTable(e.name,n=>{_I(n,e,r)})}function xF(t,e,r,n,i){return t.alterTable(e.name,s=>{_I(s,e,r,n,i)})}function RF(t,e){return t.dropTable(e.name)}var Oh=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,_F.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=OF(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=xF(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=RF(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Zi(n)}},Rl=Oh;var RI=require("lodash"),Dh="__bb_total";function II(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function xh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function wF(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 wI(t){return Array.isArray(t)?t.map(e=>wI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function OI(t){return t.sourceType==="internal"||t.sourceId===Pl}function bF(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function bI(t,e='"'){return`${e}${bF(t,e)}${e}`}function Rh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=bI(t[r],e));return`[${t.join(",")}]`}function DI(t){return Gh.includes(t.type)&&!Ht.schema.isDeprecatedSingleUserColumn(t)}var DF={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},wh=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()&&DI(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(sc(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,RI.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(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(pn)){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=$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,DF[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(Rh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(Rh(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(bI(Rh(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 _=oc(E.low),S=oc(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 OI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;OI(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 ${Dh}`)}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=wF(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(","),cn=`${S}.${y||f}`,$=s.from(I).orderBy(cn),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(xh()),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 ${xh()})`));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(xh())});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())}},bh=class extends Rl{constructor(r,n=II()){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=wI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,xI.knex)(s),a,u=new wh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:II()}});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(!DI(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)}},CI=bh;var Ch={};v(Ch,{base:()=>CF});function CF(t){return{_id:ar,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var vF={...ca,...Ae},NF=(t={})=>{nc(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,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});
|
|
36
|
+
}`,"platform_users_lowercase_2")},Yo=async(t,e)=>{let r={account_by_email:DA,platform_users_lowercase_2:CA};return ut(Ee.PLATFORM_INFO.name,async n=>{let i=r[t];return If(t,e,n,i,{arrayResponse:!0})})},vA={by_email2:xA,by_api_key:wA,by_app:RA},dr=async(t,e,r,n)=>{r||(r=ie());let i=vA[t];return If(t,e,r,i,n)};async function Of(t,e,r){let n=ie(),i=vA[t];return Ko(t,e,n,i,r)}var xf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([bo(this.source),bo(this.target)])}replicate(e={}){return new Promise(r=>{this.source.replicate.to(this.target,e).on("denied",function(n){throw new Error(`Denied: Document failed to replicate ${n}`)}).on("complete",function(n){return r(n)}).on("error",function(n){throw n})})}appReplicateOpts(e={}){if(typeof e.filter=="string")return e;let r=e.filter,i=this.direction==="toDev";return delete e.filter,{...e,filter:(s,o)=>i&&s._id?.startsWith("_design")||s._id?.startsWith("log_au")||s._id==="app_metadata"?!1:r?r(s,o):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},NA=xf;var UA=W(require("node-fetch"));var Jo=Fr.removeKeyNumbering;function oi(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=Jo(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)=>oi(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,E="AND")=>{if(oi(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)=>oi(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(oi(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)){_=Jo(_),_=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)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&p(this.#e.range,(f,g)=>{if(oi(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)=>oi(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&p(this.#e.oneOf,m),this.#e.contains&&p(this.#e.contains,u),this.#e.notContains&&p(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&p(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,p({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=vt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await PA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await PA(n,i,r);throw s}}};async function PA(t,e,r){let n=await(0,UA.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 LA(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 LA(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,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 qN(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 LA(t,e,r,n)}}var Rf={};N(Rf,{createUserIndex:()=>WN});async function WN(){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 MA(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 QN(t){return MA(t,409)}var pc=W(require("jsonwebtoken")),wf="app"+C,kA="/app/",BA="/app/preview",jN="/builder",GA=`${jN}/app/`,HN="/api/public/v";function is(t){return t&&t.startsWith(wf)?t:void 0}async function $A(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=qo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Ho({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function KN(t){return t.path.startsWith(`/${wf}`)?!0:t.path.startsWith(kA)}function YN(t){return t.path.startsWith(GA)}function JN(t){return t.path.startsWith(BA)}function zN(t){return t.path.startsWith(HN)}async function ZN(t){let e=[t.request.headers["x-budibase-app-id"]],r;for(let a of e)if(r=is(a),r)break;!r&&t.request.body&&t.request.body.appId&&(r=is(t.request.body.appId));let n=FA(t.path);!r&&n&&(r=is(n)),!r&&t.query?.appId&&(r=is(t.query?.appId));let i=t.path.startsWith(BA),s=t.path.startsWith(kA)&&!i;!r&&s&&(r=is(await $A(t)));let o=t.request.headers.referer;if(!r&&o?.includes(GA)){let a=FA(t.request.headers.referer);r=is(a)}return r}function FA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(wf))}function fc(t){if(t)try{return pc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return pc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function zo(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function fr(t,e){let r=t.cookies.get(e);if(r)return fc(r)}function VA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=pc.default.sign(e,h.JWT_SECRET));let i={expires:Wu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Hr(t,e){VA(t,null,e)}function XN(t){return t.headers["x-budibase-type"]==="client"}function bf(t){return new Promise(e=>setTimeout(e,t))}function Df(t){return!!Dh[t]}function eP(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 tP(t){return!!t.match(/^.+:\/\/.+$/)}function Cf(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 vf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(vf||{}),mc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/mc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*mc[e]/mc[r]}static from(e,r){return new t(r*mc[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 rP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function nP(t,e){if(t==="custom")return ai(e);switch(t){case"try_once":return ai(os.TRY_ONCE);case"try_twice":return ai(os.TRY_TWICE);case"default":return ai(os.DEFAULT);case"delay_500":return ai(os.DELAY_500);case"auto_extend":return ai(os.AUTO_EXTEND);default:throw Ci.unreachable(t)}}var os={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 ai(t={}){let e={...os.DEFAULT,...t},n=(await cf()).client;return new WA.default([n],e)}function iP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var QA=be.fromSeconds(10).toMs();async function as(t,e){let r=await nP(t.type,t.customOptions),n,i;try{let s=iP(t),o=t.type==="auto_extend"?QA: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 Nf=Ee.PLATFORM_INFO.docs.tenants,Pf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function oP(){return(await hc()).tenantIds}async function hc(){let t=ct(),e;try{e=await t.get(Nf)}catch(r){if(r.status===404)e=await cP();else throw r}return e}async function aP(t){return(await hc()).tenantIds.indexOf(t)!==-1}function uP(){return{_id:Nf,tenantIds:[]}}async function cP(){let t=ct(),e=uP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Nf);throw r}return e}async function lP(t){let e=ct();await as(Pf,async()=>{let r=await hc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function dP(t){try{await as(Pf,async()=>{let e=ct(),r=await hc();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={};N(li,{getAccount:()=>Zr,getAccountByTenantId:()=>ls,getStatus:()=>WP});var OS=W(require("node-fetch"));var Ic={};N(Ic,{correlation:()=>Xo,logAlert:()=>ia,logAlertWithInfo:()=>qP,logWarn:()=>cs,logger:()=>_c,system:()=>Yf});var Xo={};N(Xo,{getId:()=>Lf,setHeader:()=>pP});var jA=require("correlation-id"),pP=t=>{let e=jA.getId();e&&(t["x-budibase-correlation-id"]=e)};function Lf(){return jA.getId()}var Sc=W(require("pino")),_S=W(require("pino-pretty"));var Jf=W(require("dd-trace")),IS=require("dd-trace/ext");var Yf={};N(Yf,{getLogReadStream:()=>FP,getSingleFileMaxSizeInfo:()=>SS,localFileDestination:()=>Kf});var na=W(require("fs")),Hf=W(require("path")),yS=W(require("rotating-file-stream"));var jf={};N(jf,{ObjectStore:()=>Mt,ObjectStoreBuckets:()=>mP,SIGNED_FILE_PREFIX:()=>Vf,bucketTTLConfig:()=>gc,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>CP,clientLibraryPath:()=>uS,clientLibraryUrl:()=>vP,createBucketIfNotExists:()=>ra,deleteFile:()=>IP,deleteFiles:()=>OP,deleteFolder:()=>sS,downloadTarball:()=>RP,downloadTarballDirect:()=>xP,enrichPWAImages:()=>NP,enrichPluginURLs:()=>UP,extractBucketAndPath:()=>Mf,getAppFileUrl:()=>cS,getGlobalFileS3Key:()=>lS,getGlobalFileUrl:()=>PP,getObjectMetadata:()=>wP,getPluginIconKey:()=>fS,getPluginJSKey:()=>pS,getPluginS3Dir:()=>hS,getPresignedUrl:()=>Jr,getReadStream:()=>yc,listAllObjects:()=>iS,processAutomationAttachment:()=>gP,processObjectStoreAttachment:()=>zA,retrieve:()=>nS,retrieveDirectory:()=>_P,retrieveToTmp:()=>SP,sanitizeBucket:()=>Ye,sanitizeKey:()=>Le,streamUpload:()=>rS,upload:()=>AP,uploadDirectory:()=>qf});var Tc=require("@aws-sdk/client-s3"),Ff=require("@aws-sdk/lib-storage"),ZA=require("@aws-sdk/s3-request-presigner"),ta=W(require("stream")),kf=W(require("node-fetch")),Bf=W(require("tar-fs")),Gf=W(require("zlib")),XA=require("util"),Yr=require("path"),mr=W(require("fs"));var ea=W(require("path")),HA=require("os"),KA=W(require("fs"));var YA=W(require("stream")),mP={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},JA=(0,ea.join)((0,HA.tmpdir)(),".budibase");try{KA.default.mkdirSync(JA)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return JA}var gc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function hP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ea.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:YA.default.Readable.fromWeb(e.body)}}async function zA(t){let e=Mf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await yc(r,n),s=ea.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function gP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await hP(t):await zA(t)}var $f=require("uuid");var eS=W(require("fs/promises")),yP=require("sanitize-s3-objectkey"),tS=(0,XA.promisify)(ta.default.pipeline),EP={bucketCreationPromises:{}},Vf="/files/signed",Kr={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"},TP=[Kr.html,Kr.css,Kr.js,Kr.json];function Le(t){return yP(Ye(t)).replace(/\\/g,"/")}function Ye(t){return t.replace(new RegExp(yt,"g"),gt)}function Mt(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 Tc.S3(e)}async function ra(t,e){e=Ye(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=EP.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 AP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await eS.default.open(r)).createReadStream():s,c=Mt(),l=await ra(c,t);if(o&&l.created){let g=gc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,m=d||(a?Kr[a.toLowerCase()]:Kr.txt),p={Bucket:Ye(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 Ff.Upload({client:c,params:p}).done()}async function rS({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=Mt(),u=await ra(a,t);if(s&&u.created){let E=gc(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?Kr[o.toLowerCase()]:Kr.txt);let l=Ye(t),d=Le(r),m={Bucket:l,Key:d,Body:e,ContentType:c,...i},f=await new Ff.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:d});return{...f,ContentLength:g.ContentLength}}async function nS(t,e){let r=Mt(),n={Bucket:Ye(t),Key:Le(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(TP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ta.default.Readable.fromWeb(s)}}async function iS(t,e){let r=Mt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ye(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=Mt({presigning:!0}),i={Bucket:Ye(t),Key:Le(e)},s=await(0,ZA.getSignedUrl)(n,new Tc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Vf}${a}${u}`}else return s}async function SP(t,e){t=Ye(t),e=Le(e);let r=await nS(t,e),n=(0,Yr.join)(ci(),(0,$f.v4)());return r instanceof ta.default.Readable?r.pipe(mr.default.createWriteStream(n)):mr.default.writeFileSync(n,r),n}async function _P(t,e){let r=(0,Yr.join)(ci(),(0,$f.v4)());mr.default.mkdirSync(r);let n=await iS(t,e),i=await Promise.all(n.map(a=>yc(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,Yr.join)(r,...d);l.length>1&&!mr.default.existsSync(m)&&mr.default.mkdirSync(m,{recursive:!0});let p=mr.default.createWriteStream((0,Yr.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 IP(t,e){let r=Mt();await ra(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function OP(t,e){let r=Mt();await ra(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function sS(t,e){t=Ye(t),e=Le(e);let r=Mt(),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 sS(t,e)}async function qf(t,e,r){t=Ye(t);let n=[],i=mr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Le((0,Yr.join)(r,s.name)),a=(0,Yr.join)(e,s.name);s.isDirectory()?n.push(qf(t,a,o)):n.push(rS({bucket:t,filename:o,stream:mr.default.createReadStream(a)}))}return await Promise.all(n),i}async function xP(t,e,r={}){e=Le(e);let n=await(0,kf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await tS(n.body,Gf.default.createUnzip(),Bf.default.extract(e))}async function RP(t,e,r){e=Ye(e),r=Le(r);let n=await(0,kf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(ci(),r);return await tS(n.body,Gf.default.createUnzip(),Bf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await qf(e,i,r),i}async function yc(t,e){t=Ye(t),e=Le(e);let r=Mt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ta.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function wP(t,e){t=Ye(t),e=Le(e);let r=Mt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Mf(t){let e=t.split("?")[0],r=new RegExp(`^${Vf}/(?<bucket>[^/]+)/(?<path>.+)$`),n=e.match(r);if(n&&n.groups){let{bucket:i,path:s}=n.groups;return{bucket:i,path:s}}return null}var oS=W(require("aws-cloudfront-sign")),Ac;function bP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ac||(Ac=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ac)}var DP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:bP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=Wf(t);return oS.getSignedUrl(e,DP())},Wf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var aS=W(require("querystring"));function uS(t){return`${Le(t)}/budibase-client.js`}async function CP(t,e){let r=uS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Wf(r)):await Jr(h.APPS_BUCKET_NAME,r)}function vP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${aS.default.encode(n)}`}async function cS(t){return h.CLOUDFRONT_CDN?us(t):await Jr(h.APPS_BUCKET_NAME,t)}async function NP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await cS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var PP=async(t,e,r)=>{let n=lS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await Jr(h.GLOBAL_BUCKET_NAME,n)},lS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function UP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await LP(e),n=await MP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function LP(t){let e=pS(t);return dS(e)}async function MP(t){let e=fS(t);if(e)return dS(e)}async function dS(t){return h.CLOUDFRONT_CDN?us(t):await Jr(h.PLUGIN_BUCKET_NAME,t)}function pS(t){return mS(t,"plugin.min.js")}function fS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return mS(t,e)}function mS(t,e){return`${hS(t.name)}/${e}`}function hS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var ES="budibase.log",TS="budibase-logs-history.txt",AS=Hf.default.join(ci(),"systemlogs");function gS(t){return Hf.default.join(AS,t)}function SS(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 Kf(){let t=SS(h.ROLLING_LOG_MAX_SIZE);return yS.createStream(ES,{size:t?.size,path:AS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:TS,initialRotation:!1})}function FP(){let t=[],e=gS(TS);if(na.default.existsSync(e)){let i=na.default.readFileSync(e,"utf-8").split(`
|
|
37
|
+
`);for(let s of i.filter(o=>o))t.push(na.default.readFileSync(s))}return t.push(na.default.readFileSync(gS(ES))),Buffer.concat(t)}function kP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function BP(t){return t instanceof Error}function GP(t){return typeof t=="string"}var zr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,_S.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Kf(),level:t}),zr=r.length?(0,Sc.default)(e,Sc.default.multistream(r)):(0,Sc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{GP(E)&&(d=`${d} ${E}`.trimStart()),kP(E)&&l.push(E),BP(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Lf()};let f=Jf.default.scope().active();f&&Jf.default.inject(f.context(),IS.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);zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);zr?.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=Kp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var _c=zr;var $P=["AccountError"];function VP(t){return t&&t.suppressAlert}function ia(t,e){e&&$P.includes(e.name)&&VP(e)||console.error(`bb-alert: ${t}`,e)}function qP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,ia(t,n)}function cs(t,e){console.warn(`bb-warn: ${t}`,e)}var sa=class{constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Xo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,OS.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var zf=new sa(h.ACCOUNT_PORTAL_URL),Zf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(Zf)return;let e={email:t},r=await zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ls=async t=>{if(Zf)return;let e={tenantId:t},r=await zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},WP=async()=>{if(Zf)return;let t=await zf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};N(Es,{UserDB:()=>Kt,addAppBuilder:()=>y0,bulkGetGlobalUsersById:()=>Kc,bulkUpdateGlobalUsers:()=>Sa,cleanseUserObject:()=>wm,creatorsInList:()=>di,doesUserExist:()=>p0,getAccountHolderFromUsers:()=>Pc,getAllUserIds:()=>l0,getAllUsers:()=>d0,getById:()=>mi,getCreatorCount:()=>h0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>bS,getExistingTenantUsers:()=>wS,getFirstPlatformUser:()=>oa,getGlobalUserByAppPage:()=>A_,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>Oc,getUserCount:()=>m0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>vS,hasBuilderPermissions:()=>Tt,isAdmin:()=>Xr,isAdminOrBuilder:()=>CS,isBuilder:()=>ms,isCreatorAsync:()=>aa,isCreatorSync:()=>vc,isGlobalBuilder:()=>DS,paginatedUsers:()=>__,removeAppBuilder:()=>E0,removePortalUserPermissions:()=>g0,searchExistingEmails:()=>tm,searchGlobalUsersByApp:()=>Yc,searchGlobalUsersByAppAccess:()=>Rm,searchGlobalUsersByEmail:()=>S_,validateUniqueUser:()=>Nc});var rm={};N(rm,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>Pc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>vS,hasBuilderPermissions:()=>Tt,isAdmin:()=>Xr,isAdminOrBuilder:()=>CS,isBuilder:()=>ms,isCreatorAsync:()=>aa,isCreatorSync:()=>vc,isGlobalBuilder:()=>DS,validateUniqueUser:()=>Nc});var em={};N(em,{createCode:()=>jP,deleteCode:()=>KP,getCode:()=>HP,getExistingInvites:()=>Xf,getInviteCodes:()=>RS,updateCode:()=>QP});var xS=be.fromDays(7).toSeconds();async function QP(t,e){await(await Xn()).store(t,e,xS)}async function jP(t,e){let r=Se();return await(await Xn()).store(r,{email:t,info:e},xS),r}async function HP(t){let r=await(await Xn()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function KP(t){await(await Xn()).delete(t)}async function RS(){let r=(await(await Xn()).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 Xf(t){return(await RS()).filter(e=>t.includes(e.email))}async function tm(t){let e=[],r=await wS(t);e.push(...r.map(o=>o.email));let n=await bS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await Xf(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Oc(t){return await Yo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function oa(t){return(await Oc(t))[0]??null}async function wS(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 bS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Yo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Yo("account_by_email",r)}var Cc={};N(Cc,{BadRequestError:()=>Rc,BudibaseError:()=>ps,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>bc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>xc,UsageLimitError:()=>wc,getPublicError:()=>Dc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Dc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},lt=class t extends ps{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)}},xc=class extends lt{constructor(e){super(e,404)}},Rc=class extends lt{constructor(e){super(e,400)}},wc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},bc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},fs=class extends ps{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 ms=ot.users.isBuilder,Xr=ot.users.isAdmin,DS=ot.users.isGlobalBuilder,CS=ot.users.isAdminOrBuilder,en=ot.users.hasAdminPermissions,Tt=ot.users.hasBuilderPermissions,vS=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=>vc(i,e))}async function aa(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),vc(t,e)}function vc(t,e){let r=ot.users.isCreator(t);return!r&&t?JP(t,e):r}function JP(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 Nc(t,e){if(h.MULTI_TENANCY){let r=await oa(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 Pc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};N(ys,{account:()=>KS,ai:()=>XS,analytics:()=>Lc,app:()=>YS,auditLog:()=>m_,auth:()=>Qc,automation:()=>JS,backfill:()=>c_,backfillCache:()=>qc,backup:()=>p_,datasource:()=>zS,email:()=>ZS,environmentVariable:()=>f_,group:()=>l_,identification:()=>Ft,initAsyncEvents:()=>JM,installation:()=>ha,layout:()=>t_,license:()=>e_,org:()=>r_,plugin:()=>d_,processors:()=>cm,publishEvent:()=>A,query:()=>n_,role:()=>Aa,rowAction:()=>h_,rows:()=>s_,screen:()=>i_,serve:()=>a_,shutdown:()=>zM,table:()=>o_,user:()=>Je,view:()=>u_});var cm={};N(cm,{analyticsProcessor:()=>qS,init:()=>gU,processors:()=>Er});var Lc={};N(Lc,{enabled:()=>Uc});var Uc=async()=>Mc();var MS=require("posthog-node");var zP=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",ZP=t=>t==="served:app:preview"||t==="served:app";var PS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},US=async t=>{if(!zP(t))return!1;let e=await XP(t);if(e){let r=new Date(e.timestamp);switch(PS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await NS(t,{timestamp:Date.now()}),!1):!0}}else return await NS(t,{timestamp:Date.now()}),!1},LS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return ZP(t)&&(e=e+":"+Ue()),e},XP=async t=>{let e=LS(t);return await ni(e)},NS=async(t,e)=>{let r=LS(t),n=PS[t],i;switch(n){case"calendarDay":i=86400}await cr(r,e,i)};var tU=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ua=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new MS.PostHog(e)}async processEvent(e,r,n,i){if(tU.includes(e)||await US(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 FS=ua;var rU=["installation:version:upgraded","installation:version:downgraded"],nU=["installation","tenant"],ca=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new FS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!rU.includes(e)&&!await Uc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!nU.includes(e.type)&&!await Uc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}shutdown(){this.posthog&&this.posthog.shutdown()}};var nm=h.SELF_HOSTED&&!h.isDev(),la=class{async processEvent(e,r,n){nm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){nm||console.log("[audit] identified",e)}async identifyGroup(e){nm||console.log("[audit] group identified",e)}shutdown(){}};var um={};N(um,{BudibaseQueue:()=>yr,InMemoryQueue:()=>Fc,JobQueue:()=>hs,shutdown:()=>fU});var kS=W(require("events"));function iU(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 Fc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new kS.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:Se(),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=>iU(e))}async whenCurrentJobsFinished(){do await bf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},BS=Fc;var om=W(require("bull"));var hs=(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))(hs||{});function GS(t,e,r){aU(t,e),r&&sU(t,r)}function sU(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var oU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function aU(t,e){let r=oU[e];function n(i,s){let o=i.data.event?.appId;if(o)return Hp(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...At(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...At(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...At(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...At(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...At(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...At(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...At(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...At(r,"paused"))}).on("resumed",()=>{console.info(...At(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...At(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...At(r,"drained"))}).on("removed",i=>{console.info(...At(r,"removed",{job:i}))})}var kc={};N(kc,{cleanup:()=>uU,clear:()=>sm,set:()=>im});var da=[];function im(t,e){let r=setInterval(t,e);return da.push(r),r}function sm(t){let e=da.indexOf(t);e!==-1&&da.splice(e,1),clearInterval(t)}function uU(){for(let t of da)clearInterval(t);da=[]}var gr=W(require("dd-trace")),pa=W(require("object-sizeof")),cU=be.fromMinutes(5).toMs(),lU=be.fromSeconds(30).toMs(),am=be.fromSeconds(60).toMs(),fa=[],Bc;async function $S(){for(let t of fa)await t.clean(am,"completed"),await t.clean(am,"failed")}async function dU(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 VS(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,pa.default)(t.data),...VS(t.opts||{})}}var yr=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}initQueue(){let r={redis:zn(),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 om.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new BS(this.jobQueue,r):n=new om.default(this.jobQueue,r),GS(n,this.jobQueue,this.opts.removeStalledCb),fa.push(n),!Bc&&!h.isTest()&&(Bc=im($S,am),$S().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,...pU(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),gr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,pa.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,pa.default)(e),...VS(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,pa.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(Bc&&sm(Bc),fa.length){for(let t of fa)await t.close();fa=[]}console.log("Queues shutdown")}var gs=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 qe(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&&Df(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 ma=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 qS=new ca,mU=new la,hU=new gs;function gU(t){return gs.init(t)}var Er=new ma([qS,mU,hU]);var Gc={};N(Gc,{checkInstallVersion:()=>TU,getInstall:()=>ga,getInstallFromDB:()=>dm});var lm=W(require("semver"));var ga=async()=>Qr(Ce.INSTALLATION,86400,dm,{useTenancy:!1});async function yU(t){let e={_id:Ee.PLATFORM_INFO.docs.install,installId:Se(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return dm();throw r}}var dm=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 ga();r.version=t,await e.put(r),await ts(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},TU=async()=>{let t=await ga(),e=t.version,r=h.VERSION;try{if(e!==r){let n=lm.default.gt(r,e),i=lm.default.lt(r,e);await EU(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ha.upgraded(e,r):i&&await ha.downgraded(e,r)}),await Ft.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?ia(`Invalid version "${r}" - is it semver?`):ia("Failed to retrieve version",n)}};var AU=async()=>{let t=bp(),e=Ta(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=ya();return{id:WS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await $c(j()),s=ya();return{id:WS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await $c(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=ya(),{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=ya(),s=h.VERSION,o=Ta(),a={id:r,type:n,hosting:i,version:s,environment:o};await pm(a,e),await Ea({...a,id:`$${n}_${r}`},e)},_U=async(t,e,r)=>{let n=await $c(t),i="tenant",s=await pi(),o=Ta(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await pm(a,r),await Ea({...a,id:`$${i}_${n}`},r)},IU=async(t,e,r)=>{let n=t._id,i=await $c(t.tenantId),s="user",o=Tt(t),a=en(t),u;Va(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,m=await pi(),p=e?e.hosting:ya(),f=Ta();await Ea({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=$a(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=Ta();if(Ga(t)){let d=await kt(t.email);d?._id&&(e=d._id)}await Ea({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ea=async(t,e)=>{await Er.identify(t,e)},pm=async(t,e)=>{await Er.identifyGroup(t,e)},Ta=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,ya=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>xU()?"account-portal":(await ga()).installId,$c=async t=>h.SELF_HOSTED?QS(t):t,QS=async t=>qe(t,()=>Qr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Vc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${Se()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),xU=()=>h.SERVICE==="account-portal",WS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ft={getCurrentIdentity:AU,identifyInstallationGroup:SU,identifyTenantGroup:_U,identifyUser:IU,identifyAccount:OU,identify:Ea,identifyGroup:pm,getInstallationId:pi,getUniqueTenantId:QS};var qc={};N(qc,{end:()=>wU,isAlreadySent:()=>hm,isBackfillingEvent:()=>mm,recordEvent:()=>fm,start:()=>RU});var RU=async t=>DU({eventWhitelist:t}),fm=async(t,e)=>{let r=gm(t,e);await cr(r,e,void 0,{useTenancy:!1})},wU=async()=>{await CU(),await vU()},bU=async()=>ni(Ce.BACKFILL_METADATA),DU=async t=>cr(Ce.BACKFILL_METADATA,t),CU=async()=>{await $o(Ce.BACKFILL_METADATA)},vU=async()=>{let t=gm(),e=await ac(t);for(let r of e)await $o(r,{useTenancy:!1})},mm=async t=>{let r=(await bU())?.eventWhitelist;return!!(r&&r.includes(t))},hm=async(t,e)=>{let r=gm(t,e);return!!await ni(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}`},gm=(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 Tr;function Wc(){Tr=new yr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function jS(){Tr&&await Tr.close()}async function HS(t){Tr||Wc();let{event:e,identity:r}=t;bh.indexOf(e)!==-1&&r.tenantId&&await Tr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Ft.getCurrentIdentity();if(!(n?!1:await mm(t))){await HS({event:t,identity:i,properties:e,timestamp:r}),await Er.processEvent(t,i,e,r);return}await hm(t,e)||(await Er.processEvent(t,i,e,r),await fm(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 KS={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 FU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function kU(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 YS={created:MU,updated:FU,deleted:kU,published:BU,unpublished:GU,fileImported:$U,duplicated:VU,templateImported:qU,versionUpdated:WU,versionReverted:QU,reverted:jU,exported:HU};async function KU(t,e){let n={userId:(await Ft.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function YU(t){let r={userId:(await Ft.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 Qc={login:KU,logout:YU,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 JS={created:eL,triggerUpdated:tL,deleted:rL,tested:nL,run:iL,stepCreated:sL,stepDeleted:oL};function ym(t){return!Object.values(Ma).includes(t.source)}async function aL(t,e){let r={datasourceId:t._id,source:t.source,custom:ym(t)};await A("datasource:created",r,e)}async function uL(t){let e={datasourceId:t._id,source:t.source,custom:ym(t)};await A("datasource:updated",e)}async function cL(t){let e={datasourceId:t._id,source:t.source,custom:ym(t)};await A("datasource:deleted",e)}var zS={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 ZS={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 XS={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 e_={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 t_={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 r_={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)},n_={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 FL(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function kL(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Aa={created:UL,updated:LL,deleted:ML,assigned:FL,unassigned:kL};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 i_={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)},s_={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 o_={created:qL,updated:WL,deleted:QL,exported:jL,imported:HL};async function KL(t){let e={timezone:t};await A("served:builder",e)}async function YL(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 a_={servedBuilder:KL,servedApp:YL,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,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function tM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function rM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function nM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function iM(t){let e={audited:{email:t}};await A("user:invited",e)}async function sM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function oM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function aM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function uM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function cM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function lM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:zL,updated:ZL,deleted:XL,permissionAdminAssigned:eM,permissionAdminRemoved:tM,permissionBuilderAssigned:rM,permissionBuilderRemoved:nM,invited:iM,inviteAccepted:sM,passwordForceReset:oM,passwordUpdated:aM,passwordResetRequested:uM,passwordReset:cM,dataCollaboration:lM};async function dM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function pM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function fM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function mM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function hM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function gM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function yM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function EM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function TM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function AM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function SM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var u_={created:dM,updated:pM,deleted:fM,exported:mM,filterCreated:hM,filterUpdated:gM,filterDeleted:yM,calculationCreated:EM,calculationUpdated:TM,calculationDeleted:AM,viewJoinCreated:SM};async function _M(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function IM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function OM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function xM(){let t={};await A("installation:firstStartup",t)}var ha={versionChecked:_M,upgraded:IM,downgraded:OM,firstStartup:xM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function RM(t){Ts||await A("app:backfill:succeeded",t)}async function wM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function bM(t){Ts||await A("tenant:backfill:succeeded",t)}async function DM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function CM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function vM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var c_={appSucceeded:RM,appFailed:wM,tenantSucceeded:bM,tenantFailed:DM,installationSucceeded:CM,installationFailed:vM};async function NM(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function PM(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function UM(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function LM(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function MM(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 kM(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var l_={created:NM,updated:PM,deleted:UM,usersAdded:LM,usersDeleted:MM,createdOnboarding:FM,permissionsEdited:kM};async function BM(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function GM(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 $M(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 d_={init:BM,imported:GM,deleted:$M};async function VM(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function qM(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var p_={appBackupRestored:VM,appBackupTriggered:qM};async function WM(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function QM(t){let e={name:t};await A("environment_variable:deleted",e)}async function jM(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var f_={created:WM,deleted:QM,upgradePanelOpened:jM};async function HM(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 m_={filtered:HM,downloaded:KM};async function YM(t,e){await A("row_action:created",t,e)}var h_={created:YM};function JM(){}var zM=()=>{Er.shutdown(),console.log("Events shutdown")};var Em=async t=>{await Je.deleted(t),Tt(t)&&await Je.permissionBuilderRemoved(t),en(t)&&await Je.permissionAdminRemoved(t)},ZM=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Aa.assigned(t,i)},XM=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Aa.unassigned(t,i)},e0=async(t,e)=>{let r=t.roles,n=e?.roles;await ZM(t,r,n),await XM(t,r,n)},Tm=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await ls(r)),await Ft.identifyUser(t,n),e?(await Je.updated(t),r0(t,e)&&await Je.permissionBuilderRemoved(t),i0(t,e)&&await Je.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Je.passwordForceReset(t),t.password!==e.password&&await Je.passwordUpdated(t)):await Je.created(t),t0(t,e)&&await Je.permissionBuilderAssigned(t),n0(t,e)&&await Je.permissionAdminAssigned(t),await e0(t,e)},t0=(t,e)=>g_(t,e,Tt),r0=(t,e)=>y_(t,e,Tt),n0=(t,e)=>g_(t,e,en),i0=(t,e)=>y_(t,e,en),g_=(t,e,r)=>!(!r(t)||e&&r(e)),y_=(t,e,r)=>!(r(t)||!e||!r(e));var Hc={};N(Hc,{createASession:()=>o0,endSession:()=>a0,getSession:()=>Sm,getSessionsForUser:()=>jc,invalidateSessions:()=>fi,updateSessionTTL:()=>Am});var E_=require("uuid");var T_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function jc(t){return t?(await(await qr()).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 jc(t)).map(o=>({key:As(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:As(t,s)}))),i&&i.length>0){let s=await qr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||cs(`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 o0(t,e){await fi(t,{reason:"creation"});let r=await qr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,E_.v4)(),s=As(t,n),o={...e,csrfToken:i,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await r.store(s,o,T_),o}async function Am(t){let e=await qr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,T_)}async function a0(t,e){await(await qr()).delete(As(t,e))}async function Sm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await qr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var xm={};N(xm,{PASSWORD_MAX_LENGTH:()=>Im,PASSWORD_MIN_LENGTH:()=>_m,validatePassword:()=>Om});var _m=+(h.PASSWORD_MIN_LENGTH||12),Im=+(h.PASSWORD_MAX_LENGTH||512);function Om(t){return!t||t.length<_m?{valid:!1,error:`Password invalid. Minimum ${_m} characters.`}:t.length>Im?{valid:!1,error:`Password invalid. Maximum ${Im} characters.`}:{valid:!0}}var u0=async t=>{let e=t._id;await Lt.removeUser(t),await Em(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()||Va(e)?!0:(r||(r=await ls(j())),!!(r&&r.email===e.email&&$a(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=Om(o);if(!d.valid)throw new lt(d.error,400)}u=r.hashPassword?await ff(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||rs();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ie().allDocs(si(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await Yc(e,{})).length}}static async getUsersByAppAccess(e){return await Rm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await Kc(e)}static async bulkUpdate(e){return await Sa(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 kt(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 Nc(s,n);let m=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(m=wm(m,c)),!c&&u?.length&&(m.roles={...u});let 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 Tm(m,c),c&&m.email!==c.email&&await Lt.removeUser({email:c.email}),await Lt.addUser(n,m._id,m.email,m.ssoId),await rn.invalidateUser(f.id),await Promise.all(p),i.get(m._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(d=>d.email),u=await tm(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 aa(d)&&o.push(d)}let l=await ls(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 Sa(d);for(let p of d)await Lt.addUser(n,p._id,p.email),await Tm(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 Pc(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 Sa(a),l=(await di(o)).filter(p=>p).length,d=[];for(let p of o){let g=(await oa(p._id)).ssoId;g&&(await Oc(g)).filter(y=>y.ssoId==null).forEach(y=>{d.push({...y,_deleted:!0})}),await u0(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===ar()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Lt.removeUser(n),await r.remove(i,n._rev);let s=await aa(n)?1:0;await t.quotas.removeUsers(1,s),await Em(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 ts(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 Ia(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Kc(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ia(n)),n}async function l0(){let t=ie(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Be}`})).rows.map(n=>n.id)}async function d0(){let t=ie(),e=`us${C}`;return(await t.allDocs({startkey:e,endkey:`${e}${Be}`,include_docs:!0})).rows.map(n=>n.doc)}async function Sa(t){return await ie().bulkDocs(t)}async function mi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Ia(n)),n}async function kt(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=Ia(n)),n}async function p0(t){try{let e=await kt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function Yc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=lc(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=Ia(s)),s}async function Rm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}let i={selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50};return(await Qp(ur(),i)).rows}function A_(t,e){if(e)return cc(at(t),e._id)}async function S_(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}${Be}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Ia(o)),o}var f0=8;async function __({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??f0,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 Yc(r,a),l=d=>A_(r,d)):e?.string?.email?(u=await S_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Kc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(si(null,{...a,limit:void 0}))).rows.map(m=>m.doc),u=Fr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(si(null,a))).rows.map(m=>m.doc),Sf(u,s,{paginate:!0,property:c,getKey:l})}async function m0(){return(await Of("by_email2",{limit:0,include_docs:!1})).total_rows}async function h0(){let t=0;async function e(r){let n=await __({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function g0(t){return delete t.admin,delete t.builder,t}function wm(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}async function y0(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 E0(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 I_=3600;async function T0(t,e){let n=await lf(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 A0(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 Oa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=T0),!e)try{e=j()}catch{e=await Lt.lookupTenantId(t)}let i=await Bo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,I_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(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 S0(t){let e=await Bo(),r=await e.bulkGet(t),n=t.filter(o=>!r[o]),i=Object.values(r).filter(o=>!!o),s;if(n.length){let o=await A0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,I_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function xa(t){await(await Bo()).delete(t)}var vm={};N(vm,{Writethrough:()=>Dm});var O_=1e4,bm=null;async function Jc(){if(!bm){let t=await uf();bm=new ei(t)}return bm}function Ra(t,e){return t.name+e}function Cm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function _0(t,e,r=O_){let n=await Jc(),i=e._id,s;i&&(s=await n.get(Ra(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await as({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;cs("Ignoring conflict in write-through cache")}})).executed||cs("Ignoring redlock conflict in write-through cache")),s=Cm(a,o?null:s?.lastWrite),a._id&&await n.store(Ra(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function I0(t,e){let r=await Jc(),n=Ra(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Cm(s),await r.store(n,i)}return i.doc}async function O0(t,e){let r=await Jc(),n=Ra(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Cm(s),await r.store(n,i)}return i.doc}async function x0(t,e,r){let n=await Jc();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(Ra(t,i))}finally{await t.remove(i,r)}}var Dm=class{constructor(e,r=O_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return _0(this.db,e,r)}async get(e){return I0(this.db,e)}async tryGet(e){return O0(this.db,e)}async remove(e,r){return x0(this.db,e,r)}};var Nm={};N(Nm,{createCode:()=>w0,getCode:()=>b0,invalidateCode:()=>D0});var R0=be.fromHours(1).toSeconds();async function w0(t,e){let r=Se();return await(await Go()).store(r,{userId:t,info:e},R0),r}async function b0(t){let r=await(await Go()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function D0(t){await(await Go()).delete(t)}var Um={};N(Um,{DocWritethrough:()=>Pm,DocWritethroughProcessor:()=>wa,getProcessor:()=>v0,init:()=>x_});var C0=100,zc,wa=class t{static get queue(){return t._queue||(t._queue=new yr("docWritethroughQueue",{jobOptions:{attempts:C0}})),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=Ve(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Pm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await wa.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function x_(){return zc=new wa().init(),zc}function v0(){return zc||x_()}function Zc(t){return`config${C}${t}`}async function Bt(t){let e=ie();try{return await e.get(Zc(t))}catch(r){if(r.status===404)return;throw r}}async function N0(t){return t._id||(t._id=Zc(t.type)),ie().put(t)}async function Vc(){let t=await Bt("settings");return t||(t={_id:Zc("settings"),type:"settings",config:{}}),t.config.platformUrl=await ba({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Mc({config:t.config}),t}async function Fm(){return(await Vc()).config}async function ba(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 Mc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Qr(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 P0(){return await Bt("google")}async function Xc(){return(await P0())?.config}async function km(){if(!h.SELF_HOSTED)return Lm();let t=await Xc();return(!t||!t.activated)&&(t=Lm()),t}function Lm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function U0(){return Bt("logos_oidc")}async function L0(){return Bt("oidc")}async function M0(){let t=(await L0())?.config;return t?.configs&&t.configs[0]}async function Bm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function R_(){return Bt("smtp")}async function F0(t){let e=await R_();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 k0(){return(await Bt("scim"))?.config}async function B0(){return Bt("ai")}var Ym={};N(Ym,{AccessController:()=>Vm,BUILTIN_ROLE_IDS:()=>qm,Role:()=>nn,RoleHierarchyTraversal:()=>el,RoleIDVersion:()=>Wm,builtinRoleToNumber:()=>Da,checkForRoleResourceArray:()=>C_,externalRole:()=>Q0,findRole:()=>Ca,getAllRoleIds:()=>Y0,getAllRoles:()=>Km,getBuiltinRole:()=>b_,getBuiltinRoles:()=>jm,getDBRoleID:()=>v_,getExternalRoleID:()=>sn,getExternalRoleIDs:()=>N_,getRole:()=>j0,getUserRoleHierarchy:()=>Hm,getUserRoleIdHierarchy:()=>D_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>W0,prefixRoleIDNoBuiltin:()=>$m,roleIDsAreEqual:()=>St,roleToNumber:()=>q0,saveRoles:()=>H0,validInherits:()=>V0});var Gm=W(require("semver"));var tl=W(require("lodash/fp/cloneDeep"));var w_=require("lodash");var qm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},fe={...qm,BUILDER:"BUILDER"},Wm={UUID:void 0,NAME:"name"};function $0(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=Wm.NAME}addInheritance(e){return e&&typeof e=="string"?e=$m(e):e&&Array.isArray(e)&&(e=e.map($m)),this.inherits=e,this}},el=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=Ca(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!$0(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ca(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,w_.uniqBy)(i,s=>s._id)}},Qm={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,tl.default)(Qm)}function hi(t){return Object.values(qm).includes(t)}function $m(t){return hi(t)?t:lr(t)}function b_(t){let e=Object.values(Qm).find(r=>t.includes(r._id));if(e)return(0,tl.default)(e)}function V0(t,e){if(!e)return!1;let r=n=>t.find(i=>St(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 Da(t){let e=jm(),r=Object.values(e).length+1;if(St(t,fe.ADMIN)||St(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 Da(t);let e=await Hm(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=>St(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 Da(n.inherits)+1;return 0};return Math.max(...e.map(r))}function W0(t,e){return t?e&&Da(t)>Da(e)?e:t:e}function St(t,e){return lr(t)===lr(e)}function Q0(t){let e;return t._id&&(e=sn(t._id)),{...t,_id:e,inherits:N_(t.inherits,t.version)}}function Ca(t,e,r){let n=b_(t);n||(t=lr(t));let i=e.find(s=>s._id&&St(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,tl.default)(Qm.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=Xi(),n=[];if(!hi(t)){let i=await r.tryGet(v_(t));i&&n.push(i)}return Ca(t,n,e)}async function H0(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function K0(t,e){let r=await Km();if(St(t,fe.ADMIN))return r;let n=Ca(t,r,e),i=[];return n&&(i=new el(r,e).walk(n)),i}async function D_(t){return(await Hm(t)).map(r=>r._id)}async function Hm(t,e){return K0(t,e)}function C_(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 Y0(t){return(await Km(t)).map(r=>r._id)}async function Km(t){if(t)return ut(t,e);{let r;try{r=Xi()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(dc(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 J0(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=>St(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=C_(o.permissions,a);return n}}async function J0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Gm.default.valid(r)?!0:!Gm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Vm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||St(e,fe.BUILDER)||St(r,e)||St(r,fe.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await D_(r),this.userHierarchies[r]=n),n?.find(i=>St(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 v_(t){return t?.startsWith("role")?t:lr(t)}function sn(t,e){if(t.startsWith(`role${C}`)&&(hi(t)||e===Wm.NAME)){let r=t.split(C);return r.shift(),r.join(C)}return t}function N_(t,e){return t&&(typeof t=="string"?sn(t,e):t.map(r=>sn(r,e)))}var Jm={};N(Jm,{BUILDER:()=>tF,BUILTIN_PERMISSIONS:()=>rl,CREATOR:()=>rF,GLOBAL_BUILDER:()=>nF,PermissionImpl:()=>me,PermissionLevel:()=>xs,PermissionType:()=>Ba,doesHaveBasePermission:()=>X0,getAllowedLevels:()=>M_,getBuiltinPermissionByID:()=>Z0,getBuiltinPermissions:()=>z0,isPermissionLevelHigherThanRead:()=>eF,levelToNumber:()=>L_});var P_=W(require("lodash/flatten")),U_=W(require("lodash/fp/cloneDeep")),me=class{constructor(e,r){this.type=e,this.level=r}};function L_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function M_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var rl={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 z0(){return(0,U_.default)(rl)}function Z0(t){return Object.values(rl).find(r=>r._id===t)}function X0(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(rl),s=(0,P_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&M_(o.level).indexOf(e)!==-1)return!0;return!1}function eF(t){return L_(t)>1}var tF="builder",rF="creator",nF="globalBuilder";var Xm={};N(Xm,{FlagSet:()=>il,all:()=>aF,flags:()=>zm,init:()=>iF,isEnabled:()=>oF,parseEnvFlags:()=>ol,shutdown:()=>sF,testutils:()=>Zm});var sl=W(require("crypto"));var F_=require("posthog-node"),k_=W(require("dd-trace"));var B_=require("lodash");var nl;function iF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),nl=new F_.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 sF(){nl?.shutdown()}function ol(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 il=class{constructor(e){this.flagSchema=e;this.setId=sl.randomUUID()}defaults(){return(0,B_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await k_.default.trace("features.fetch",async e=>{let r=zp(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:d,key:m,value:p}of ol(h.TENANT_FEATURE_FLAGS||""))if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,p===!1&&o.add(m),!!this.isFlagName(m))){if(typeof i[m]!="boolean")throw new Error(`Feature: ${m} is not a boolean`);i[m]=p,n[`flags.${m}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let d=Yp();d&&(u=sl.createHash("sha512").update(d).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,nl&&u){n.readFromPostHog=!0;let d={tenantId:c},m=await nl.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[p,f]of Object.entries(m))if(this.isFlagName(p)){if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${f}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=f,n[`flags.${p}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${p}": ${f}`,g)}}}let l=Xp();for(let[d,m]of Object.entries(l))this.isFlagName(d)&&typeof m=="boolean"&&(i[d]=m,n[`flags.${d}.source`]="override");Zp(this.setId,i);for(let[d,m]of Object.entries(i))n[`flags.${d}.value`]=m;return e?.addTags(n),i})}},zm=new il(Ph);async function oF(t){return await zm.isEnabled(t)}async function aF(){return await zm.fetch()}var Zm={};N(Zm,{setFeatureFlags:()=>G_,withFeatureFlags:()=>lF});function uF(){let t={};for(let{tenantId:e,key:r,value:n}of ol(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function cF(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 G_(t,e){let r=uF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=cF(r);return xo({TENANT_FEATURE_FLAGS:n})}function lF(t,e,r){let n=G_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var dh={};N(dh,{adminOnly:()=>yl,auditLog:()=>fl,authError:()=>Me,buildAuthMiddleware:()=>ZF,buildCsrfMiddleware:()=>ek,buildTenancyMiddleware:()=>XF,builderOnly:()=>Tl,builderOrAdmin:()=>El,google:()=>Ar,internalApi:()=>hl,joiValidator:()=>Na,oidc:()=>Sr,passport:()=>tk,platformLogout:()=>ok,refreshOAuthToken:()=>ik,ssoCallbackUrl:()=>on,updateUserOAuth:()=>sk});var lh={};N(lh,{adminOnly:()=>yl,auditLog:()=>fl,authError:()=>Me,authenticated:()=>pl,builderOnly:()=>Tl,builderOrAdmin:()=>El,correlation:()=>eI,csp:()=>oI,csrf:()=>gl,datasource:()=>JF,errorHandling:()=>rI,featureFlagCookie:()=>aI,google:()=>Ar,internalApi:()=>hl,ip:()=>cI,joiValidator:()=>Na,local:()=>Ss,oidc:()=>Sr,pino:()=>Z_,querystringToBody:()=>nI,ssoCallbackUrl:()=>on,tenancy:()=>ml});var Ss={};N(Ss,{authenticate:()=>fF,options:()=>pF});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 Fm(),n="/api/global/auth";return Vr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var eh="Invalid credentials",dF="This account has expired. Please reset your password",pF={passReqToCallback:!0};async function fF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await kt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,eh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,eh)):i.password?await mf(r,i.password)?(delete i.password,n(null,i)):Me(n,eh):(console.info(`user=${e} has no password set`,i),Me(n,dF))}var Ar={};N(Ar,{buildVerifyFn:()=>q_,getCallbackUrl:()=>gF,strategyFactory:()=>th});var va=t=>Promise.resolve(t);async function al(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=rs(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 kt(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 mF(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 mF(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 hF=require("passport-google-oauth").OAuth2Strategy;function q_(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 al(s,!0,i,t)}}async function th(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=q_(r);return new hF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function gF(t){return on("google",t)}var Sr={};N(Sr,{buildVerifyFn:()=>Q_,fetchStrategyConfig:()=>AF,getCallbackUrl:()=>SF,strategyFactory:()=>TF});var W_=W(require("node-fetch"));var yF=require("@techpass/passport-openidconnect").Strategy;function Q_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:EF(n,i),oauth2:{accessToken:s,refreshToken:o}};return al(l,!1,c,t)}}function EF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Cf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function TF(t,e){try{let r=Q_(e),n=new yF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function AF(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,W_.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 SF(){return on("oidc")}var rh={};N(rh,{postAuth:()=>OF,preAuth:()=>IF});var _F=require("passport-google-oauth").OAuth2Strategy;async function j_(){let t=await km();if(!t)throw new Error("No google configuration found");return t}async function IF(t,e,r){let n=await j_(),s=`${await ba({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await th(n,s,va);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 OF(t,e,r){let n=await j_(),s=`${await ba({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=fr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new _F({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Hr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=Se();await cr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var xF=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(xF);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 uh={};N(uh,{SecretOption:()=>Y_,decrypt:()=>ah,decryptFile:()=>vF,encrypt:()=>bF,encryptFile:()=>DF,getSecret:()=>oh});var _r=W(require("crypto")),an=W(require("fs")),ih=W(require("zlib"));var nh=require("path"),ul="aes-256-ctr",K_="-",RF=1e4,wF=32,cl=16,sh=16,Y_=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(Y_||{});function oh(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 ll(t,e){return _r.default.pbkdf2Sync(t,e,RF,wF,"sha512")}function bF(t,e="api"){let r=_r.default.randomBytes(cl),n=ll(oh(e),r),i=_r.default.createCipheriv(ul,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${K_}${a}`}function ah(t,e="api"){let[r,n]=t.split(K_),i=Buffer.from(r,"hex"),s=ll(oh(e),i),o=_r.default.createDecipheriv(ul,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function DF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,nh.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,nh.join)(t,n)),a=_r.default.randomBytes(cl),u=_r.default.randomBytes(sh),c=ll(r,a),l=_r.default.createCipheriv(ul,c,u);return o.write(a),o.write(u),s.pipe(ih.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function CF(t){let e=an.default.createReadStream(t),r=await H_(e,cl),n=await H_(e,sh);return e.close(),{salt:r,iv:n}}async function vF(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await CF(t),s=an.default.createReadStream(t,{start:cl+sh}),o=an.default.createWriteStream(e),a=ll(r,n),u=_r.default.createDecipheriv(ul,a,i),c=ih.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 H_(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 z_=W(require("dd-trace")),NF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function PF(){return new Date(Date.now()-NF).toISOString()}function J_(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 UF(t,e){if(zo(t))return{valid:!0,user:void 0};let n=ah(t).split(C)[0];return qe(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 Oa({userId:i,tenantId:n,populateUser:e})};throw new fs})}function dl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function pl(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=dl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=dl(n,"x-budibase-token"),c=fr(n,"budibase:auth")||fc(u),l=dl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=dl(n,"x-budibase-tenant-id"),m=!1,p,f=!1,g;if(c&&!l){let y=c.sessionId,_=c.userId,S;try{S=await Sm(_,y),e&&e.populateUser?p=await Oa({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):p=await Oa({userId:_,tenantId:S.tenantId,email:S.email}),p.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<PF()&&await Am(S),m=!0}catch(M){m=!1,console.error(`Auth Error: ${M.message}`),Hr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await UF(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)&&z_.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),J_(n,{authenticated:m,user:p,internal:f,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Cp(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Hr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return J_(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var LF=async(t,e)=>e(),fl=LF;function ml(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=qo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var hl=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"),zo(r)||t.throw(403,"Unauthorized"),e()};var MF=["GET","HEAD","OPTIONS"],FF=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function gl(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||MF.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!FF.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 yl=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var El=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?Tt:h.isApps()?ms: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 Tl=async(t,e)=>{let r=Ue(),n=h.isWorker()||!r?Tt:h.isApps()?ms: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 kF=require("koa-pino-logger"),BF=require("correlation-id");function GF(){return{logger:_c,genReqId:BF.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 $F(){return h.HTTP_LOGGING?kF(GF()):(t,e)=>e()}var VF=$F(),Z_=VF;var X_=require("uuid"),qF=require("correlation-id"),WF=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,X_.v4)()),qF.withId(r,()=>e())},eI=WF;function tI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of NT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function QF(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Dc(r)};if(tI(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 rI=QF;function nI(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 sI=W(require("crypto"));var iI={"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'"]},jF=/^[A-Za-z0-9-*:/.]+$/,HF=async(t,e)=>{let r=sI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...iI};if(n["script-src"]=[...iI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Qo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
|
|
38
|
+
`).filter(c=>jF.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()},oI=HF;var aI=async(t,e)=>{let n=fr(t,"budibase:featureflags")?.flags||{};await ef(n,async()=>{await e()})};var Na={};N(Na,{body:()=>KF,params:()=>YF});var ch=W(require("joi"));function uI(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:ch.default.any().optional(),updatedAt:ch.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 KF(t,e){return uI(t,"body",e)}function YF(t,e){return uI(t,"params",e)}var cI=async(t,e)=>t.ip?await Jp(t.ip,()=>e()):e();var JF={google:rh};var lI=require("koa-passport"),zF=require("passport-local").Strategy,Al=require("passport-oauth2-refresh"),ZF=pl,XF=ml,ek=gl,tk=lI;lI.use(new zF(Ss.options,Ss.authenticate));async function rk(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,va)}catch{throw new Error("Could not refresh OAuth Token")}return Al.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Al.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function nk(t,e){let r=await Ar.getCallbackUrl(t),n;try{n=await Ar.strategyFactory(t,r,va)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Al.use(n),new Promise(i=>{Al.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function ik(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Bm(r);return n?rk(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await Xc();return n?nk(n,t):{err:{data:"Google configuration not found"}}}}}async function sk(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 xa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function ok(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=fr(e,"budibase:auth"),s=await jc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Hr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await Qc.logout(e.user?.email),await xa(r)}var fh={};N(fh,{validate:()=>dk});var D=W(require("joi")),ak=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function ph(t,e){let{error:r}=t.validate(e);if(r)throw r}function uk(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)});ph(e,t)}function ck(t){let e=D.default.object({type:D.default.string().allow(...Object.values(xl)).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(Ol)),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(Rl).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(...ak),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()}))})});ph(n,t)}function lk(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(...Uh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});ph(n,t)}function dk(t){switch(t?.type){case"component":uk(t);break;case"datasource":ck(t);break;case"automation":lk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var mh={};N(mh,{Client:()=>We,clients:()=>Wr,locks:()=>ui,utils:()=>nc});var hh={};N(hh,{isBlacklisted:()=>fk,refreshBlacklist:()=>mI});var dI=W(require("dns")),_l=W(require("net"));var pI=require("util"),Sl,pk=(0,pI.promisify)(dI.default.lookup);async function fI(t){return _l.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await pk(t,{all:!0})).map(r=>r.address)}async function mI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(_l.default.isIP(i))r.push(i);else{let s=await fI(i);r=r.concat(s)}}Sl=r}async function fk(t){if(Sl||await mI(),Sl?.length===0)return!1;let e;return _l.default.isIP(t)?e=[t]:e=await fI(t),!!Sl?.find(r=>e.includes(r))}var yh={};N(yh,{init:()=>hk});var mk={"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 hI(t,e){let r=mk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Pa=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=hI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await qe(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return jS()}};var gI,gh;function hk(t){Tr||Wc(),gh||(gh=new Pa(t)),gI||(gI=Tr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await gh.processEvent(r,n,i)}))}var Rh={};N(Rh,{COUNT_FIELD_NAME:()=>Oh,Sql:()=>xI,SqlTable:()=>Il,designDoc:()=>xh,utils:()=>qp});var AI=require("knex");var gk=require("knex");function Eh(t){return["link","formula","ai"].indexOf(t)!==-1}function yI(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}=kp(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&&!Eh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,f])=>!Eh(f.type)&&e.schema[p]==null).forEach(([p,f])=>{i?.old===p||Eh(f.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Ek(t,e,r){return t.createTable(e.name,n=>{yI(n,e,r)})}function Tk(t,e,r,n,i){return t.alterTable(e.name,s=>{yI(s,e,r,n,i)})}function Ak(t,e){return t.dropTable(e.name)}var Th=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,gk.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=Ek(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=Tk(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=Ji(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=Ak(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},Il=Th;var SI=require("lodash"),Oh="__bb_total";function EI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Ah(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Sk(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 _I(t){return Array.isArray(t)?t.map(e=>_I(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function TI(t){return t.sourceType==="internal"||t.sourceId===Cl}function _k(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function II(t,e='"'){return`${e}${_k(t,e)}${e}`}function Sh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=II(t[r],e));return`[${t.join(",")}]`}function OI(t){return Lh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var Ik={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},_h=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new 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()&&OI(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(!$p(e))return null}else if(r.dateOnly){let n=Gp(e);return n?new Date(n):null}else{if(Bp(e))return null;if(Xu(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,SI.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(Yt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(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(),_=Vp(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=Jo(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,Ik[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(Sh(S,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(_),this.knex.raw(Sh(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(II(Sh(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 _=ec(E.low),S=ec(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&&!Fp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${xr(r.documentType)}%`),e}isSqs(){return TI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;TI(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${Oh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(d):m=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}return!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)&&(e=e.orderBy(`${s}.${i[0]}`)),e}tableNameWithSchema(e,r){let n=r?.schema?`${r.schema}.${e}`:e;return r?.alias&&(n+=` as ${r.alias}`),n}buildJsonField(e,r){let n=r.split("."),i=n[n.length-1],s,o;if(n.length>1){let c=n.shift();s=n.join("."),o=`${c}.${s}`}else s=n.join("."),o=s;this.query.meta?.columnPrefix&&(i=i.replace(this.query.meta.columnPrefix,""));let a=this.rawQuotedIdentifier(o),u=e.schema[i];return u&&u.type==="bigint"&&(a=this.castIntToString(a)),[s,a]}maxFunctionParameters(){switch(this.client){case"sqlite3":return 127;case"pg":return 100;default:return 200}}addJsonRelationships(e,r,n){let i=this.client,s=this.knex,{resource:o,tableAliases:a,schema:u,tables:c}=this.query,l=o?.fields||[];for(let d of n){let{tableName:m,through:p,to:f,from:g,fromPrimary:E,toPrimary:y}=d;if(!m||!r)continue;let _=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=Sk(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),k=p&&y&&E,v=k?`${T}.${g}`:`${S}.${f}`,q=k?`${M}.${E}`:`${M}.${g}`;if(k){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${S}.${y}`,"=",`${T}.${f}`)})}$=$.where(this.rawQuotedIdentifier(v),"=",this.rawQuotedIdentifier(q));let L=V=>($=$.select(w.map(se=>this.rawQuotedIdentifier(se))).limit(Ah()),s.select(V).from({[S]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),Y=L(this.knex.raw(`json_group_array(json_object(${le}))`));break;case"pg":Y=L(this.knex.raw(`json_agg(json_build_object(${le}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${le}) LIMIT ${Ah()})`));break;case"mysql2":case"oracledb":Y=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(Ah())});Y=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]:Y})}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())}},Ih=class extends Il{constructor(r,n=EI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Ji(r);return i==="sqlite3"&&(s=_I(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,AI.knex)(s),a,u=new _h(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:EI()}});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===Cl){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(!OI(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){Do(this.getSqlClient(),r,n)}},xI=Ih;var xh={};N(xh,{base:()=>Ok});function Ok(t){return{_id:or,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var xk={...Wo,...Ae},Rk=(t={})=>{zu(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,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
|