@budibase/backend-core 3.12.13 → 3.12.15

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.
Files changed (37) hide show
  1. package/dist/index.js +15 -15
  2. package/dist/index.js.map +4 -4
  3. package/dist/package.json +2 -2
  4. package/dist/plugins.js +1 -1
  5. package/dist/plugins.js.map +4 -4
  6. package/dist/src/accounts/accounts.js +1 -1
  7. package/dist/src/accounts/accounts.js.map +1 -1
  8. package/dist/src/db/couch/DatabaseImpl.d.ts +1 -0
  9. package/dist/src/db/couch/DatabaseImpl.js +9 -0
  10. package/dist/src/db/couch/DatabaseImpl.js.map +1 -1
  11. package/dist/src/db/db.d.ts +1 -5
  12. package/dist/src/db/db.js +0 -7
  13. package/dist/src/db/db.js.map +1 -1
  14. package/dist/src/db/instrumentation.d.ts +2 -1
  15. package/dist/src/db/instrumentation.js +12 -0
  16. package/dist/src/db/instrumentation.js.map +1 -1
  17. package/dist/src/docIds/params.d.ts +0 -11
  18. package/dist/src/docIds/params.js +1 -34
  19. package/dist/src/docIds/params.js.map +1 -1
  20. package/dist/src/environment.d.ts +1 -0
  21. package/dist/src/environment.js +3 -1
  22. package/dist/src/environment.js.map +1 -1
  23. package/dist/src/events/publishers/action.d.ts +10 -0
  24. package/dist/src/events/publishers/action.js +34 -0
  25. package/dist/src/events/publishers/action.js.map +1 -0
  26. package/dist/src/events/publishers/index.d.ts +1 -0
  27. package/dist/src/events/publishers/index.js +3 -1
  28. package/dist/src/events/publishers/index.js.map +1 -1
  29. package/dist/src/security/sessions.d.ts +4 -1
  30. package/dist/src/security/sessions.js +19 -3
  31. package/dist/src/security/sessions.js.map +1 -1
  32. package/dist/src/users/users.d.ts +4 -1
  33. package/dist/src/users/users.js +4 -4
  34. package/dist/src/users/users.js.map +1 -1
  35. package/dist/tests/core/utilities/structures/workspaceApp.js +2 -2
  36. package/dist/tests/core/utilities/structures/workspaceApp.js.map +1 -1
  37. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- "use strict";var FI=Object.create;var Ma=Object.defineProperty;var kI=Object.getOwnPropertyDescriptor;var BI=Object.getOwnPropertyNames;var GI=Object.getPrototypeOf,$I=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Ma(t,r,{get:e[r],enumerable:!0})},Nh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of BI(e))!$I.call(t,i)&&i!==r&&Ma(t,i,{get:()=>e[i],enumerable:!(n=kI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?FI(GI(t)):{},Nh(e||!t||!t.__esModule?Ma(r,"default",{value:t,enumerable:!0}):r,t)),VI=t=>Nh(Ma({},"__esModule",{value:!0}),t);var ig=H((Vl,ql)=>{"use strict";(function(t,e){typeof Vl=="object"&&typeof ql<"u"?ql.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Vl,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",f="year",m="date",p="Invalid Date",d=/^(\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"],I=$%100;return"["+$+(F[(I-20)%10]||F[I]||F[0])+"]"}},y=function($,F,I){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(I)+$},S={s:y,z:function($){var F=-$.utcOffset(),I=Math.abs(F),q=Math.floor(I/60),U=I%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(U,2,"0")},m:function $(F,I){if(F.date()<I.date())return-$(I,F);var q=12*(I.year()-F.year())+(I.month()-F.month()),U=F.clone().add(q,c),Y=I-U<0,V=F.clone().add(q+(Y?-1:1),c);return+(-(q+(I-U)/(Y?U-V:V-U))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:f,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}},O="en",R={};R[O]=E;var T="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[T])},B=function $(F,I,q){var U;if(!F)return O;if(typeof F=="string"){var Y=F.toLowerCase();R[Y]&&(U=Y),I&&(R[Y]=I,U=Y);var V=F.split("-");if(!U&&V.length>1)return $(V[0])}else{var ae=F.name;R[ae]=F,U=ae}return!q&&U&&(O=U),U||!q&&O},b=function($,F){if(_($))return $.clone();var I=typeof F=="object"?F:{};return I.date=$,I.args=arguments,new de(I)},k=S;k.l=B,k.i=_,k.w=function($,F){return b($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function $(I){this.$L=B(I.locale,null,!0),this.parse(I),this.$x=this.$x||I.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(I){this.$d=function(q){var U=q.date,Y=q.utc;if(U===null)return new Date(NaN);if(k.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var V=U.match(d);if(V){var ae=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return Y?new Date(Date.UTC(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(U)}(I),this.init()},F.init=function(){var I=this.$d;this.$y=I.getFullYear(),this.$M=I.getMonth(),this.$D=I.getDate(),this.$W=I.getDay(),this.$H=I.getHours(),this.$m=I.getMinutes(),this.$s=I.getSeconds(),this.$ms=I.getMilliseconds()},F.$utils=function(){return k},F.isValid=function(){return this.$d.toString()!==p},F.isSame=function(I,q){var U=b(I);return this.startOf(q)<=U&&U<=this.endOf(q)},F.isAfter=function(I,q){return b(I)<this.startOf(q)},F.isBefore=function(I,q){return this.endOf(q)<b(I)},F.$g=function(I,q,U){return k.u(I)?this[q]:this.set(U,I)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(I,q){var U=this,Y=!!k.u(q)||q,V=k.p(I),ae=function(dn,Qe){var Ir=k.w(U.$u?Date.UTC(U.$y,Qe,dn):new Date(U.$y,Qe,dn),U);return Y?Ir:Ir.endOf(a)},Oe=function(dn,Qe){return k.w(U.toDate()[dn].apply(U.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(Qe)),U)},ve=this.$W,Fe=this.$M,Q=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case f:return Y?ae(1,0):ae(31,11);case c:return Y?ae(1,Fe):ae(0,Fe+1);case u:var ln=this.$locale().weekStart||0,_s=(ve<ln?ve+7:ve)-ln;return ae(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()}},F.endOf=function(I){return this.startOf(I,!1)},F.$set=function(I,q){var U,Y=k.p(I),V="set"+(this.$u?"UTC":""),ae=(U={},U[a]=V+"Date",U[m]=V+"Date",U[c]=V+"Month",U[f]=V+"FullYear",U[o]=V+"Hours",U[s]=V+"Minutes",U[i]=V+"Seconds",U[n]=V+"Milliseconds",U)[Y],Oe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===f){var ve=this.clone().set(m,1);ve.$d[ae](Oe),ve.init(),this.$d=ve.set(m,Math.min(this.$D,ve.daysInMonth())).$d}else ae&&this.$d[ae](Oe);return this.init(),this},F.set=function(I,q){return this.clone().$set(I,q)},F.get=function(I){return this[k.p(I)]()},F.add=function(I,q){var U,Y=this;I=Number(I);var V=k.p(q),ae=function(Fe){var Q=b(Y);return k.w(Q.date(Q.date()+Math.round(Fe*I)),Y)};if(V===c)return this.set(c,this.$M+I);if(V===f)return this.set(f,this.$y+I);if(V===a)return ae(1);if(V===u)return ae(7);var Oe=(U={},U[s]=e,U[o]=r,U[i]=t,U)[V]||1,ve=this.$d.getTime()+I*Oe;return k.w(ve,this)},F.subtract=function(I,q){return this.add(-1*I,q)},F.format=function(I){var q=this,U=this.$locale();if(!this.isValid())return U.invalidDate||p;var Y=I||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ae=this.$H,Oe=this.$m,ve=this.$M,Fe=U.weekdays,Q=U.months,Ei=U.meridiem,ln=function(Qe,Ir,Is,Ua){return Qe&&(Qe[Ir]||Qe(q,Y))||Is[Ir].slice(0,Ua)},_s=function(Qe){return k.s(ae%12||12,Qe,"0")},dn=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 k.s(q.$y,4,"0");case"M":return ve+1;case"MM":return k.s(ve+1,2,"0");case"MMM":return ln(U.monthsShort,ve,Q,3);case"MMMM":return ln(Q,ve);case"D":return q.$D;case"DD":return k.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return ln(U.weekdaysMin,q.$W,Fe,2);case"ddd":return ln(U.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(ae);case"HH":return k.s(ae,2,"0");case"h":return _s(1);case"hh":return _s(2);case"a":return dn(ae,Oe,!0);case"A":return dn(ae,Oe,!1);case"m":return String(Oe);case"mm":return k.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return k.s(q.$s,2,"0");case"SSS":return k.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(I,q,U){var Y,V=this,ae=k.p(q),Oe=b(I),ve=(Oe.utcOffset()-this.utcOffset())*e,Fe=this-Oe,Q=function(){return k.m(V,Oe)};switch(ae){case f: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 U?Y:k.a(Y)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return R[this.$L]},F.locale=function(I,q){if(!I)return this.$L;var U=this.clone(),Y=B(I,q,!0);return Y&&(U.$L=Y),U},F.clone=function(){return k.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=de.prototype;return b.prototype=cn,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",f],["$D",m]].forEach(function($){cn[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),b.extend=function($,F){return $.$i||($(F,de,b),$.$i=!0),b},b.locale=B,b.isDayjs=_,b.unix=function($){return b(1e3*$)},b.en=R[O],b.Ls=R,b.p={},b})});var Ot=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var hx=t=>new nu(t);He.valid=hx;var gx=t=>new iu(t);He.err=gx;var nu=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,He.valid)(e(this.value))}mapErr(e){return(0,He.valid)(this.value)}};He.Valid=nu;var iu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,He.err)(this.error)}mapErr(e){return(0,He.err)(e(this.error))}};He.Err=iu});var xt=H(ug=>{"use strict";Object.defineProperty(ug,"__esModule",{value:!0})});var vr=H(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Vt();var ie=Ot();xt();var yx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Ex=["sun","mon","tue","wed","thu","fri","sat"],Tx=(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&&yx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Ex.indexOf(t.toLowerCase())!==-1)return(0,ie.valid)(!0);let n=Number(t);if(isNaN(n))return(0,ie.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,ie.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,ie.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,ie.valid)(!0)},Ax=(t,e,r)=>{if(t==="*")return Tx(e,r)?(0,ie.valid)(!0):(0,ie.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,ie.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,ie.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,ie.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,ie.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,ie.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,ie.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,ie.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,ie.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},cg=(t,e,r,n)=>t==="*"?(0,ie.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,ie.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,ie.valid)(!0):Ns(t,e,r),Sx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Ax(n[0],e,r);if(n.length===2){let i=cg(n[0],e,r,0),s=cg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,ie.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,ie.valid)(!0)}return(0,ie.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},_x=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,ie.err)(`List element '${t}' is not valid. (More than one '/')`);let i=Sx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,ie.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,ie.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,ie.valid)(!0)},Ix=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,ie.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,ie.valid)(!0):(0,ie.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,ie.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(_x(o,e,r))}),i.every(o=>o.isValid()))return(0,ie.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,ie.err)(s)};Hl.default=Ix});var lg=H(Ps=>{"use strict";var Ox=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Vt();var xx=Ot(),Rx=Ox(vr());xt();var wx=(t,e)=>{if(!t.seconds)return(0,xx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Rx.default)(r,"seconds",e)};Ps.default=wx});var dg=H(Ls=>{"use strict";var bx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Vt();var Dx=Ot(),Cx=bx(vr());xt();var vx=(t,e)=>{if(!t.minutes)return(0,Dx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Cx.default)(r,"minutes",e)};Ls.default=vx});var pg=H(Us=>{"use strict";var Nx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Vt();var Px=Ot(),Lx=Nx(vr());xt();var Ux=(t,e)=>{if(!t.hours)return(0,Px.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Lx.default)(r,"hours",e)};Us.default=Ux});var fg=H(Fs=>{"use strict";var Mx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Ms=Ot(),Fx=Mx(vr());xt();var kx=(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,Fx.default)(r,"daysOfMonth",e)};Fs.default=kx});var mg=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 Gx=Ot(),$x=Bx(vr());xt();var Vx=(t,e)=>{if(!t.months)return(0,Gx.err)(["months field is undefined."]);let{months:r}=t;return(0,$x.default)(r,"months",e)};ks.default=Vx});var hg=H(Gs=>{"use strict";var qx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=Ot(),Wx=qx(vr());xt();var Qx=(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,Wx.default)(r,"daysOfWeek",e)};Gs.default=Qx});var gg=H($s=>{"use strict";var jx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var Hx=Ot(),Kx=jx(vr());xt();var Yx=(t,e)=>{if(!t.years)return(0,Hx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Kx.default)(r,"years",e)};$s.default=Yx});var Ag=H((uQ,Tg)=>{"use strict";var Kl;try{Kl=Map}catch{}var Yl;try{Yl=Set}catch{}function yg(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(Eg);if(Kl&&t instanceof Kl)return new Map(Array.from(t.entries()));if(Yl&&t instanceof Yl)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:yg(t[i],e,r)}return n}return t}function Eg(t){return yg(t,[],[])}Tg.exports=Eg});var Vs=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.default=rR;var Jx=Object.prototype.toString,zx=Error.prototype.toString,Zx=RegExp.prototype.toString,Xx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",eR=/^Symbol\((.*)\)(.*)$/;function tR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Sg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return tR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Xx.call(t).replace(eR,"Symbol($1)");let n=Jx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+zx.call(t)+"]":n==="RegExp"?Zx.call(t):null}function rR(t,e){let r=Sg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Sg(this[n],e);return s!==null?s:i},2)}});var 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 _g=nR(Vs());function nR(t){return t&&t.__esModule?t:{default:t}}var Ig={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,_g.default)(r,!0)}\``+(i?` (cast from the value \`${(0,_g.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=Ig;var Og={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=Og;var xg={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=xg;var Rg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Rg;var wg={isValue:"${path} field must be ${value}"};Ne.boolean=wg;var bg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=bg;var Dg={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=Dg;var iR=Object.assign(Object.create(null),{mixed:Ig,string:Og,number:xg,date:Rg,object:bg,array:Dg,boolean:wg});Ne.default=iR});var vi=H(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});su.default=void 0;var sR=t=>t&&t.__isYupSchema__;su.default=sR});var vg=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var oR=Cg(require("lodash/has")),aR=Cg(vi());function Cg(t){return t&&t.__esModule?t:{default:t}}var zl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,oR.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,aR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},uR=zl;ou.default=uR});var Xl=H(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=cR;function cR(t){return t==null?[]:[].concat(t)}});var Cn=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var lR=Ng(Vs()),dR=Ng(Xl());function Ng(t){return t&&t.__esModule?t:{default:t}}function ed(){return ed=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},ed.apply(this,arguments)}var pR=/\$\{\s*(\w+)\s*\}/g,td=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ed({},r,{path:n})),typeof e=="string"?e.replace(pR,(i,s)=>(0,lR.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,dR.default)(e).forEach(s=>{t.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,t)}};au.default=td});var uu=H(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=hR;var rd=fR(Cn());function fR(t){return t&&t.__esModule?t:{default:t}}var mR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function hR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=mR(e),l=n.length,f=[];if(o=o||[],!l)return o.length?c(new rd.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(!rd.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);f.push(g)}if(--l<=0){if(f.length&&(a&&f.sort(a),o.length&&f.push(...o),o=f),o.length){c(new rd.default(o,s,u),s);return}c(null,s)}})}}});var qs=H((gQ,Fg)=>{"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 gR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Mg=/^\d+$/,yR=/^\d/,ER=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,TR=/^\s*(['"]?)(.*?)(\1)\s*$/,od=512,Pg=new vn(od),Lg=new vn(od),Ug=new vn(od);Fg.exports={Cache:vn,split:sd,normalizePath:id,setter:function(t){var e=id(t);return Lg.get(t)||Lg.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=id(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+(ad(r)||Mg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){AR(Array.isArray(t)?t:sd(t),e,r)}};function id(t){return Pg.get(t)||Pg.set(t,sd(t).map(function(e){return e.replace(TR,"$2")}))}function sd(t){return t.match(gR)||[""]}function AR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(IR(i)&&(i='"'+i+'"'),a=ad(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ad(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function SR(t){return t.match(yR)&&!t.match(Mg)}function _R(t){return ER.test(t)}function IR(t){return!ad(t)&&(SR(t)||_R(t))}});var Nn=H(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=xR;Qs.default=void 0;var OR=qs(),cu={context:"$",value:"."};function xR(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]===cu.context,this.isValue=this.key[0]===cu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?cu.context:this.isValue?cu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,OR.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 kg=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=DR;var RR=ud(require("lodash/mapValues")),lu=ud(Cn()),wR=ud(Nn());function ud(t){return t&&t.__esModule?t:{default:t}}function du(){return du=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},du.apply(this,arguments)}function bR(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 DR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=bR(r,["value","path","label","options","originalValue","sync"]),{name:f,test:m,params:p,message:d}=t,{parent:g,context:E}=a;function y(_){return wR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,RR.default)(du({value:i,originalValue:u,label:o,path:_.path||s},p,_.params),y),b=new lu.default(lu.default.formatError(_.message||d,B),i,B.path,_.type||f);return b.params=B,b}let O=du({path:s,parent:g,type:f,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(m.call(O,i,O)).then(_=>{lu.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=m.call(O,i,O),typeof((T=R)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}lu.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var ld=H(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=Bg;js.default=void 0;var CR=qs(),vR=t=>t.substr(0,t.length-1).substr(1);function Bg(t,e,r,n=r){let i,s,o;return e?((0,CR.forEach)(e,(a,u,c)=>{let l=u?vR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let f=c?parseInt(l,10):0;if(r&&f>=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[f],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 NR=(t,e,r,n)=>Bg(t,e,r,n).schema,PR=NR;js.default=PR});var $g=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var Gg=LR(Nn());function LR(t){return t&&t.__esModule?t:{default:t}}var dd=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){Gg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Gg.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let n,i=this.refs.values();for(;n=i.next(),!n.done;)if(r(n.value)===e)return!0;return!1}clone(){let e=new t;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let n=this.clone();return e.list.forEach(i=>n.add(i)),e.refs.forEach(i=>n.add(i)),r.list.forEach(i=>n.delete(i)),r.refs.forEach(i=>n.delete(i)),n}};pu.default=dd});var rr=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var Vg=tr(Ag()),Ni=er(),UR=tr(vg()),qg=tr(uu()),fu=tr(kg()),Wg=tr(Vs()),MR=tr(Nn()),FR=ld(),kR=tr(Xl()),Qg=tr(Cn()),jg=tr($g());function tr(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 jg.default,this._blacklist=new jg.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,Vg.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,Wg.default)(e),o=(0,Wg.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 LI=Object.create;var Fa=Object.defineProperty;var UI=Object.getOwnPropertyDescriptor;var MI=Object.getOwnPropertyNames;var FI=Object.getPrototypeOf,kI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Fa(t,r,{get:e[r],enumerable:!0})},vh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of MI(e))!kI.call(t,i)&&i!==r&&Fa(t,i,{get:()=>e[i],enumerable:!(n=UI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?LI(FI(t)):{},vh(e||!t||!t.__esModule?Fa(r,"default",{value:t,enumerable:!0}):r,t)),BI=t=>vh(Fa({},"__esModule",{value:!0}),t);var ng=H((Vl,ql)=>{"use strict";(function(t,e){typeof Vl=="object"&&typeof ql<"u"?ql.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Vl,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",m="year",p="date",f="Invalid Date",d=/^(\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"],I=$%100;return"["+$+(F[(I-20)%10]||F[I]||F[0])+"]"}},y=function($,F,I){var q=String($);return!q||q.length>=F?$:""+Array(F+1-q.length).join(I)+$},S={s:y,z:function($){var F=-$.utcOffset(),I=Math.abs(F),q=Math.floor(I/60),U=I%60;return(F<=0?"+":"-")+y(q,2,"0")+":"+y(U,2,"0")},m:function $(F,I){if(F.date()<I.date())return-$(I,F);var q=12*(I.year()-F.year())+(I.month()-F.month()),U=F.clone().add(q,c),Y=I-U<0,V=F.clone().add(q+(Y?-1:1),c);return+(-(q+(I-U)/(Y?U-V:V-U))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:m,w:u,d:a,D:p,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},O="en",R={};R[O]=E;var T="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[T])},B=function $(F,I,q){var U;if(!F)return O;if(typeof F=="string"){var Y=F.toLowerCase();R[Y]&&(U=Y),I&&(R[Y]=I,U=Y);var V=F.split("-");if(!U&&V.length>1)return $(V[0])}else{var ae=F.name;R[ae]=F,U=ae}return!q&&U&&(O=U),U||!q&&O},b=function($,F){if(_($))return $.clone();var I=typeof F=="object"?F:{};return I.date=$,I.args=arguments,new de(I)},k=S;k.l=B,k.i=_,k.w=function($,F){return b($,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function $(I){this.$L=B(I.locale,null,!0),this.parse(I),this.$x=this.$x||I.x||{},this[T]=!0}var F=$.prototype;return F.parse=function(I){this.$d=function(q){var U=q.date,Y=q.utc;if(U===null)return new Date(NaN);if(k.u(U))return new Date;if(U instanceof Date)return new Date(U);if(typeof U=="string"&&!/Z$/i.test(U)){var V=U.match(d);if(V){var ae=V[2]-1||0,xe=(V[7]||"0").substring(0,3);return Y?new Date(Date.UTC(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,xe)):new Date(V[1],ae,V[3]||1,V[4]||0,V[5]||0,V[6]||0,xe)}}return new Date(U)}(I),this.init()},F.init=function(){var I=this.$d;this.$y=I.getFullYear(),this.$M=I.getMonth(),this.$D=I.getDate(),this.$W=I.getDay(),this.$H=I.getHours(),this.$m=I.getMinutes(),this.$s=I.getSeconds(),this.$ms=I.getMilliseconds()},F.$utils=function(){return k},F.isValid=function(){return this.$d.toString()!==f},F.isSame=function(I,q){var U=b(I);return this.startOf(q)<=U&&U<=this.endOf(q)},F.isAfter=function(I,q){return b(I)<this.startOf(q)},F.isBefore=function(I,q){return this.endOf(q)<b(I)},F.$g=function(I,q,U){return k.u(I)?this[q]:this.set(U,I)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(I,q){var U=this,Y=!!k.u(q)||q,V=k.p(I),ae=function(ln,Qe){var _r=k.w(U.$u?Date.UTC(U.$y,Qe,ln):new Date(U.$y,Qe,ln),U);return Y?_r:_r.endOf(a)},xe=function(ln,Qe){return k.w(U.toDate()[ln].apply(U.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(Qe)),U)},ve=this.$W,Fe=this.$M,Q=this.$D,Ei="set"+(this.$u?"UTC":"");switch(V){case m:return Y?ae(1,0):ae(31,11);case c:return Y?ae(1,Fe):ae(0,Fe+1);case u:var cn=this.$locale().weekStart||0,_s=(ve<cn?ve+7:ve)-cn;return ae(Y?Q-_s:Q+(6-_s),Fe);case a:case p:return xe(Ei+"Hours",0);case o:return xe(Ei+"Minutes",1);case s:return xe(Ei+"Seconds",2);case i:return xe(Ei+"Milliseconds",3);default:return this.clone()}},F.endOf=function(I){return this.startOf(I,!1)},F.$set=function(I,q){var U,Y=k.p(I),V="set"+(this.$u?"UTC":""),ae=(U={},U[a]=V+"Date",U[p]=V+"Date",U[c]=V+"Month",U[m]=V+"FullYear",U[o]=V+"Hours",U[s]=V+"Minutes",U[i]=V+"Seconds",U[n]=V+"Milliseconds",U)[Y],xe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===m){var ve=this.clone().set(p,1);ve.$d[ae](xe),ve.init(),this.$d=ve.set(p,Math.min(this.$D,ve.daysInMonth())).$d}else ae&&this.$d[ae](xe);return this.init(),this},F.set=function(I,q){return this.clone().$set(I,q)},F.get=function(I){return this[k.p(I)]()},F.add=function(I,q){var U,Y=this;I=Number(I);var V=k.p(q),ae=function(Fe){var Q=b(Y);return k.w(Q.date(Q.date()+Math.round(Fe*I)),Y)};if(V===c)return this.set(c,this.$M+I);if(V===m)return this.set(m,this.$y+I);if(V===a)return ae(1);if(V===u)return ae(7);var xe=(U={},U[s]=e,U[o]=r,U[i]=t,U)[V]||1,ve=this.$d.getTime()+I*xe;return k.w(ve,this)},F.subtract=function(I,q){return this.add(-1*I,q)},F.format=function(I){var q=this,U=this.$locale();if(!this.isValid())return U.invalidDate||f;var Y=I||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ae=this.$H,xe=this.$m,ve=this.$M,Fe=U.weekdays,Q=U.months,Ei=U.meridiem,cn=function(Qe,_r,Is,Ma){return Qe&&(Qe[_r]||Qe(q,Y))||Is[_r].slice(0,Ma)},_s=function(Qe){return k.s(ae%12||12,Qe,"0")},ln=Ei||function(Qe,_r,Is){var Ma=Qe<12?"AM":"PM";return Is?Ma.toLowerCase():Ma};return Y.replace(g,function(Qe,_r){return _r||function(Is){switch(Is){case"YY":return String(q.$y).slice(-2);case"YYYY":return k.s(q.$y,4,"0");case"M":return ve+1;case"MM":return k.s(ve+1,2,"0");case"MMM":return cn(U.monthsShort,ve,Q,3);case"MMMM":return cn(Q,ve);case"D":return q.$D;case"DD":return k.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return cn(U.weekdaysMin,q.$W,Fe,2);case"ddd":return cn(U.weekdaysShort,q.$W,Fe,3);case"dddd":return Fe[q.$W];case"H":return String(ae);case"HH":return k.s(ae,2,"0");case"h":return _s(1);case"hh":return _s(2);case"a":return ln(ae,xe,!0);case"A":return ln(ae,xe,!1);case"m":return String(xe);case"mm":return k.s(xe,2,"0");case"s":return String(q.$s);case"ss":return k.s(q.$s,2,"0");case"SSS":return k.s(q.$ms,3,"0");case"Z":return V}return null}(Qe)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(I,q,U){var Y,V=this,ae=k.p(q),xe=b(I),ve=(xe.utcOffset()-this.utcOffset())*e,Fe=this-xe,Q=function(){return k.m(V,xe)};switch(ae){case m: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 U?Y:k.a(Y)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return R[this.$L]},F.locale=function(I,q){if(!I)return this.$L;var U=this.clone(),Y=B(I,q,!0);return Y&&(U.$L=Y),U},F.clone=function(){return k.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},$}(),un=de.prototype;return b.prototype=un,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",m],["$D",p]].forEach(function($){un[$[1]]=function(F){return this.$g(F,$[0],$[1])}}),b.extend=function($,F){return $.$i||($(F,de,b),$.$i=!0),b},b.locale=B,b.isDayjs=_,b.unix=function($){return b(1e3*$)},b.en=R[O],b.Ls=R,b.p={},b})});var Ot=H(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Err=He.Valid=He.err=He.valid=void 0;var px=t=>new iu(t);He.valid=px;var fx=t=>new su(t);He.err=fx;var iu=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=iu;var su=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=su});var xt=H(ag=>{"use strict";Object.defineProperty(ag,"__esModule",{value:!0})});var Cr=H(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Vt();var se=Ot();xt();var mx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],hx=["sun","mon","tue","wed","thu","fri","sat"],gx=(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&&mx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&hx.indexOf(t.toLowerCase())!==-1)return(0,se.valid)(!0);let n=Number(t);if(isNaN(n))return(0,se.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,se.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,se.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,se.valid)(!0)},yx=(t,e,r)=>{if(t==="*")return gx(e,r)?(0,se.valid)(!0):(0,se.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,se.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,se.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,se.valid)(!0):Ns(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,se.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,se.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,se.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,se.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,se.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ns(n,e,r)}return Ns(t,e,r)},ug=(t,e,r,n)=>t==="*"?(0,se.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,se.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,se.valid)(!0):Ns(t,e,r),Ex=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,se.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return yx(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,se.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,se.valid)(!0)}return(0,se.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},Tx=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,se.err)(`List element '${t}' is not valid. (More than one '/')`);let i=Ex(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,se.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,se.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,se.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,se.valid)(!0)},Ax=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,se.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,se.valid)(!0):(0,se.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,se.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(Tx(o,e,r))}),i.every(o=>o.isValid()))return(0,se.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,se.err)(s)};Hl.default=Ax});var cg=H(Ps=>{"use strict";var Sx=Ps&&Ps.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ps,"__esModule",{value:!0});Vt();var _x=Ot(),Ix=Sx(Cr());xt();var Ox=(t,e)=>{if(!t.seconds)return(0,_x.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Ix.default)(r,"seconds",e)};Ps.default=Ox});var lg=H(Ls=>{"use strict";var xx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});Vt();var Rx=Ot(),wx=xx(Cr());xt();var bx=(t,e)=>{if(!t.minutes)return(0,Rx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,wx.default)(r,"minutes",e)};Ls.default=bx});var dg=H(Us=>{"use strict";var Dx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});Vt();var Cx=Ot(),vx=Dx(Cr());xt();var Nx=(t,e)=>{if(!t.hours)return(0,Cx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,vx.default)(r,"hours",e)};Us.default=Nx});var pg=H(Fs=>{"use strict";var Px=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});Vt();var Ms=Ot(),Lx=Px(Cr());xt();var Ux=(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,Lx.default)(r,"daysOfMonth",e)};Fs.default=Ux});var fg=H(ks=>{"use strict";var Mx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});Vt();var Fx=Ot(),kx=Mx(Cr());xt();var Bx=(t,e)=>{if(!t.months)return(0,Fx.err)(["months field is undefined."]);let{months:r}=t;return(0,kx.default)(r,"months",e)};ks.default=Bx});var mg=H(Gs=>{"use strict";var Gx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});Vt();var Bs=Ot(),$x=Gx(Cr());xt();var Vx=(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,$x.default)(r,"daysOfWeek",e)};Gs.default=Vx});var hg=H($s=>{"use strict";var qx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});Vt();var Wx=Ot(),Qx=qx(Cr());xt();var jx=(t,e)=>{if(!t.years)return(0,Wx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,Qx.default)(r,"years",e)};$s.default=jx});var Tg=H((uQ,Eg)=>{"use strict";var Kl;try{Kl=Map}catch{}var Yl;try{Yl=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(Kl&&t instanceof Kl)return new Map(Array.from(t.entries()));if(Yl&&t instanceof Yl)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var n=Object.create(t);r.push(n);for(var i in t){var s=e.findIndex(function(o){return o===t[i]});n[i]=s>-1?r[s]:gg(t[i],e,r)}return n}return t}function yg(t){return gg(t,[],[])}Eg.exports=yg});var Vs=H(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.default=Xx;var Hx=Object.prototype.toString,Kx=Error.prototype.toString,Yx=RegExp.prototype.toString,Jx=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",zx=/^Symbol\((.*)\)(.*)$/;function Zx(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 Zx(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return Jx.call(t).replace(zx,"Symbol($1)");let n=Hx.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+Kx.call(t)+"]":n==="RegExp"?Yx.call(t):null}function Xx(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=eR(Vs());function eR(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 tR=Object.assign(Object.create(null),{mixed:_g,string:Ig,number:Og,date:xg,object:wg,array:bg,boolean:Rg});Ne.default=tR});var vi=H(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.default=void 0;var rR=t=>t&&t.__isYupSchema__;ou.default=rR});var Cg=H(au=>{"use strict";Object.defineProperty(au,"__esModule",{value:!0});au.default=void 0;var nR=Dg(require("lodash/has")),iR=Dg(vi());function Dg(t){return t&&t.__esModule?t:{default:t}}var zl=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,nR.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,iR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},sR=zl;au.default=sR});var Xl=H(Zl=>{"use strict";Object.defineProperty(Zl,"__esModule",{value:!0});Zl.default=oR;function oR(t){return t==null?[]:[].concat(t)}});var Dn=H(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.default=void 0;var aR=vg(Vs()),uR=vg(Xl());function vg(t){return t&&t.__esModule?t:{default:t}}function ed(){return ed=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},ed.apply(this,arguments)}var cR=/\$\{\s*(\w+)\s*\}/g,td=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ed({},r,{path:n})),typeof e=="string"?e.replace(cR,(i,s)=>(0,aR.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,uR.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)}};uu.default=td});var cu=H(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});nd.default=pR;var rd=lR(Dn());function lR(t){return t&&t.__esModule?t:{default:t}}var dR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function pR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=dR(e),l=n.length,m=[];if(o=o||[],!l)return o.length?c(new rd.default(o,s,u)):c(null,s);for(let p=0;p<n.length;p++){let f=n[p];f(i,function(g){if(g){if(!rd.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);m.push(g)}if(--l<=0){if(m.length&&(a&&m.sort(a),o.length&&m.push(...o),o=m),o.length){c(new rd.default(o,s,u),s);return}c(null,s)}})}}});var qs=H((gQ,Mg)=>{"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 fR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Ug=/^\d+$/,mR=/^\d/,hR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,gR=/^\s*(['"]?)(.*?)(\1)\s*$/,od=512,Ng=new Cn(od),Pg=new Cn(od),Lg=new Cn(od);Mg.exports={Cache:Cn,split:sd,normalizePath:id,setter:function(t){var e=id(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=id(t);return Lg.get(t)||Lg.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+(ad(r)||Ug.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){yR(Array.isArray(t)?t:sd(t),e,r)}};function id(t){return Ng.get(t)||Ng.set(t,sd(t).map(function(e){return e.replace(gR,"$2")}))}function sd(t){return t.match(fR)||[""]}function yR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(AR(i)&&(i='"'+i+'"'),a=ad(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function ad(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function ER(t){return t.match(mR)&&!t.match(Ug)}function TR(t){return hR.test(t)}function AR(t){return!ad(t)&&(ER(t)||TR(t))}});var vn=H(Qs=>{"use strict";Object.defineProperty(Qs,"__esModule",{value:!0});Qs.create=_R;Qs.default=void 0;var SR=qs(),lu={context:"$",value:"."};function _R(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]===lu.context,this.isValue=this.key[0]===lu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?lu.context:this.isValue?lu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,SR.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 Fg=H(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.default=RR;var IR=ud(require("lodash/mapValues")),du=ud(Dn()),OR=ud(vn());function ud(t){return t&&t.__esModule?t:{default:t}}function pu(){return pu=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},pu.apply(this,arguments)}function xR(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 RR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=xR(r,["value","path","label","options","originalValue","sync"]),{name:m,test:p,params:f,message:d}=t,{parent:g,context:E}=a;function y(_){return OR.default.isRef(_)?_.getValue(i,g,E):_}function S(_={}){let B=(0,IR.default)(pu({value:i,originalValue:u,label:o,path:_.path||s},f,_.params),y),b=new du.default(du.default.formatError(_.message||d,B),i,B.path,_.type||m);return b.params=B,b}let O=pu({path:s,parent:g,type:m,createError:S,resolve:y,options:a,originalValue:u},l);if(!c){try{Promise.resolve(p.call(O,i,O)).then(_=>{du.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var T;if(R=p.call(O,i,O),typeof((T=R)==null?void 0:T.then)=="function")throw new Error(`Validation test of type: "${O.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(_){n(_);return}du.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var ld=H(js=>{"use strict";Object.defineProperty(js,"__esModule",{value:!0});js.getIn=kg;js.default=void 0;var wR=qs(),bR=t=>t.substr(0,t.length-1).substr(1);function kg(t,e,r,n=r){let i,s,o;return e?((0,wR.forEach)(e,(a,u,c)=>{let l=u?bR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let m=c?parseInt(l,10):0;if(r&&m>=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[m],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 DR=(t,e,r,n)=>kg(t,e,r,n).schema,CR=DR;js.default=CR});var Gg=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var Bg=vR(vn());function vR(t){return t&&t.__esModule?t:{default:t}}var dd=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}};fu.default=dd});var rr=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var $g=tr(Tg()),Ni=er(),NR=tr(Cg()),Vg=tr(cu()),mu=tr(Fg()),qg=tr(Vs()),PR=tr(vn()),LR=ld(),UR=tr(Xl()),Wg=tr(Dn()),Qg=tr(Gg());function tr(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 Qg.default,this._blacklist=new Qg.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,$g.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,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}".
2
2
 
3
3
  attempted value: ${s}
4
- `+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,ft({assert:!1},r)));let f={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,qg.default)({args:f,value:l,path:s,sync:i,tests:m,endEarly:c},p=>{if(p)return void n(p,l);(0,qg.default)({tests:this.tests,args:f,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(Qg.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(Qg.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Vg.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,fu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,kR.default)(e).map(s=>new MR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new UR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,fu.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Ni.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,fu.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Ni.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,fu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};mu.default=Rt;Rt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Rt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,FR.getIn)(this,e,r,n.context);return o[t](i&&i[s],ft({},n,{parent:i,path:e}))};for(let t of["equals","is"])Rt.prototype[t]=Rt.prototype.oneOf;for(let t of["not","nope"])Rt.prototype[t]=Rt.prototype.notOneOf;Rt.prototype.optional=Rt.prototype.notRequired});var Kg=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=Hg;Hs.default=void 0;var BR=GR(rr());function GR(t){return t&&t.__esModule?t:{default:t}}var pd=BR.default,$R=pd;Hs.default=$R;function Hg(){return new pd}Hg.prototype=pd.prototype});var Pi=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var VR=t=>t==null;hu.default=VR});var Xg=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=Zg;Ys.default=void 0;var qR=zg(rr()),Yg=er(),Jg=zg(Pi());function zg(t){return t&&t.__esModule?t:{default:t}}function Zg(){return new Ks}var Ks=class extends qR.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,Jg.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,Jg.default)(r)||r===!1}})}};Ys.default=Ks;Zg.prototype=Ks.prototype});var ry=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=ty;zs.default=void 0;var qt=er(),nr=ey(Pi()),WR=ey(rr());function ey(t){return t&&t.__esModule?t:{default:t}}var QR=/^((([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,jR=/^((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,HR=/^(?:[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,KR=t=>(0,nr.default)(t)||t===t.trim(),YR={}.toString();function ty(){return new Js}var Js=class extends WR.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===YR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nr.default)(n)||n.length===this.resolve(e)}})}min(e,r=qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,nr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||qt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(QR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(jR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(HR,{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:KR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};zs.default=Js;ty.prototype=Js.prototype});var sy=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=iy;Xs.default=void 0;var Pn=er(),Ln=ny(Pi()),JR=ny(rr());function ny(t){return t&&t.__esModule?t:{default:t}}var zR=t=>t!=+t;function iy(){return new Zs}var Zs=class extends JR.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"&&!zR(e)}min(e,r=Pn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ln.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,Ln.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,Ln.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,Ln.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,Ln.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Ln.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,Ln.default)(i)?i:Math[e](i))}};Xs.default=Zs;iy.prototype=Zs.prototype});var oy=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=XR;var ZR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function XR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=ZR.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 cy=H(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=hd;eo.default=void 0;var ew=gu(oy()),ay=er(),uy=gu(Pi()),tw=gu(Nn()),rw=gu(rr());function gu(t){return t&&t.__esModule?t:{default:t}}var md=new Date(""),nw=t=>Object.prototype.toString.call(t)==="[object Date]";function hd(){return new Li}var Li=class extends rw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,ew.default)(e),isNaN(e)?md:new Date(e))})})}_typeCheck(e){return nw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(tw.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=ay.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,uy.default)(i)||i>=this.resolve(n)}})}max(e,r=ay.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,uy.default)(i)||i<=this.resolve(n)}})}};eo.default=Li;Li.INVALID_DATE=md;hd.prototype=Li.prototype;hd.INVALID_DATE=md});var dy=H((DQ,gd)=>{"use strict";gd.exports=function(t){return ly(iw(t),t)};gd.exports.array=ly;function ly(t,e){var r=t.length,n=new Array(r),i={},s=r,o=sw(e),a=ow(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,f){if(f.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){f.add(c);do{var d=p[--l];u(d,a.get(d),f)}while(l);f.delete(c)}n[--r]=c}}}function iw(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 sw(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 ow(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var py=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=pw;var aw=yu(require("lodash/has")),uw=yu(dy()),cw=qs(),lw=yu(Nn()),dw=yu(vi());function yu(t){return t&&t.__esModule?t:{default:t}}function pw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,cw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,aw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),lw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,dw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return uw.default.array(n,r).reverse()}});var my=H(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.default=fw;function fy(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function fw(t){return(e,r)=>fy(t,e)-fy(t,r)}});var Sy=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Ay;ro.default=void 0;var hy=Wt(require("lodash/has")),gy=Wt(require("lodash/snakeCase")),mw=Wt(require("lodash/camelCase")),hw=Wt(require("lodash/mapKeys")),gw=Wt(require("lodash/mapValues")),yw=qs(),yy=er(),Ew=Wt(py()),Ty=Wt(my()),Tw=Wt(uu()),Aw=Wt(Cn()),Td=Wt(rr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Ui(){return Ui=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},Ui.apply(this,arguments)}var Ey=t=>Object.prototype.toString.call(t)==="[object Object]";function Sw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var _w=(0,Ty.default)([]),to=class extends Td.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=_w,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 Ey(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(f=>this._nodes.indexOf(f)===-1)),u={},c=Ui({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let f of a){let m=s[f],p=(0,hy.default)(i,f);if(m){let d,g=i[f];c.path=(r.path?`${r.path}.`:"")+f,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||f in i;continue}d=!r.__validating||!y?m.cast(i[f],c):i[f],d!==void 0&&(u[f]=d)}else p&&!o&&(u[f]=i[f]);u[f]!==i[f]&&(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,f)=>{if(l){if(!Aw.default.isError(l)||u)return void n(l,f);i.push(l)}if(!c||!Ey(f)){n(i[0]||null,f);return}a=a||f;let m=this._nodes.map(p=>(d,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(f[p],Ui({},r,{path:E,from:o,strict:!0,parent:f,originalValue:a[p]}),g);return}g(null)});(0,Tw.default)({sync:s,tests:m,value:f,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ui({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof Td.default&&s instanceof Td.default&&(n[i]=s.concat(o))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,Ty.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,Ew.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,yw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,hy.default)(s,e)&&(o=Ui({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=yy.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=Sw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=yy.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,hw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(mw.default)}snakeCase(){return this.transformKeys(gy.default)}constantCase(){return this.transformKeys(e=>(0,gy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,gw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function Ay(t){return new to(t)}Ay.prototype=to.prototype});var Iy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=_y;io.default=void 0;var Ad=Mi(Pi()),Iw=Mi(vi()),Ow=Mi(Vs()),Sd=er(),xw=Mi(uu()),Rw=Mi(Cn()),ww=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Eu(){return Eu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Eu.apply(this,arguments)}function _y(t){return new no(t)}var no=class extends ww.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch{r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let n=super._cast(e,r);if(!this._typeCheck(n)||!this.innerType)return n;let i=!1,s=n.map((o,a)=>{let u=this.innerType.cast(o,Eu({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,f=(s=r.recursive)!=null?s:this.spec.recursive,m=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(p,d)=>{if(p){if(!Rw.default.isError(p)||l)return void n(p,d);o.push(p)}if(!f||!c||!this._typeCheck(d)){n(o[0]||null,d);return}m=m||d;let g=new Array(d.length);for(let E=0;E<d.length;E++){let y=d[E],S=`${r.path||""}[${E}]`,O=Eu({},r,{path:S,strict:!0,parent:d,index:E,originalValue:m[E]});g[E]=(R,T)=>c.validate(y,O,T)}(0,xw.default)({sync:a,path:u,value:d,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,Iw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Ow.default)(e));return r.innerType=e,r}length(e,r=Sd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Ad.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Sd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ad.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Sd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ad.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};io.default=no;_y.prototype=no.prototype});var Oy=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=Cw;so.default=void 0;var bw=Dw(vi());function Dw(t){return t&&t.__esModule?t:{default:t}}function Cw(t){return new Tu(t)}var Tu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,bw.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)}},vw=Tu;so.default=vw});var xy=H(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.default=Lw;var Nw=Pw(er());function Pw(t){return t&&t.__esModule?t:{default:t}}function Lw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Nw.default[e][r]=t[e][r]})})}});var Od=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=$w;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Id.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return Cy.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return vy.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return vy.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return Uw.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Mw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return Fw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return kw.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return Ny.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Bw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return Gw.default}});var Ry=Un(Kg()),Id=Un(Xg()),wy=Un(ry()),by=Un(sy()),Dy=Un(cy()),Cy=Un(Sy()),vy=Un(Iy()),Uw=Nn(),Mw=Oy(),Fw=oo(Cn()),kw=oo(ld()),Ny=oo(vi()),Bw=oo(xy()),Gw=oo(rr());function oo(t){return t&&t.__esModule?t:{default:t}}function Py(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Py=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=Py();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 $w(t,e,r){if(!t||!(0,Ny.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 Ly=H(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});var xd=wd();Rd.default=()=>{(0,xd.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,xd.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,xd.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 wd=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]}),qw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ww=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 qw(e,t),e},Qw=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 w=Ww(Od());Od();var ao=Ot(),jw=Qw(Ly());xt();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=w.object({presetId:w.string().required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),minutes:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),hours:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfMonth:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),months:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfWeek:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),years:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required()}).required(),Hw=t=>Mn[t]?(0,ao.valid)(Mn[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Hw;var Kw=()=>Mn;Pe.getOptionPresets=Kw;var Yw=(t,e)=>{Mn[t]=Uy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=Yw;var Jw=t=>{var e,r,n,i,s,o,a,u,c,l,f,m,p,d,g,E,y,S,O,R;try{(0,jw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Mn[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);T=Mn[t.preset]}else T=t.preset;else T=Mn.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(f=T.hours.lowerLimit)!==null&&f!==void 0?f: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:(d=T.daysOfMonth.upperLimit)!==null&&d!==void 0?d: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:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(R=T.years.upperLimit)!==null&&R!==void 0?R:T.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:Uy.required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({lowerLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:w.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:w.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ao.valid)(b)}catch(T){return(0,ao.err)(T.errors)}};Pe.validateOptions=Jw});var Vt=H((uo,Dd)=>{"use strict";var kn=uo&&uo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uo,"__esModule",{value:!0});var Fn=Ot(),zw=kn(lg()),Zw=kn(dg()),Xw=kn(pg()),eb=kn(fg()),tb=kn(mg()),rb=kn(hg()),nb=kn(gg()),ib=wd();xt();var sb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,Fn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,Fn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,Fn.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,Fn.valid)(n)},bd=(t,e={})=>{let r=(0,ib.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=sb(t,n);if(i.isError())return(0,Fn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,zw.default)(s,n)),o.push((0,Zw.default)(s,n)),o.push((0,Xw.default)(s,n)),o.push((0,eb.default)(s,n)),o.push((0,tb.default)(s,n)),o.push((0,rb.default)(s,n)),n.useYears&&o.push((0,nb.default)(s,n)),o.every(u=>u.isValid()))return(0,Fn.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,Fn.err)(a)};uo.default=bd;Dd.exports=bd;Dd.exports.default=bd});var sT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},kd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Bd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Gd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},$n=class extends sr{},Ru=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends sr{},Qt=class extends sr{constructor(){super("Zone is an abstract class")}},C="numeric",Dt="short",nt="long",wu={year:C,month:C,day:C},aE={year:C,month:Dt,day:C},ob={year:C,month:Dt,day:C,weekday:Dt},uE={year:C,month:nt,day:C},cE={year:C,month:nt,day:C,weekday:nt},lE={hour:C,minute:C},dE={hour:C,minute:C,second:C},pE={hour:C,minute:C,second:C,timeZoneName:Dt},fE={hour:C,minute:C,second:C,timeZoneName:nt},mE={hour:C,minute:C,hourCycle:"h23"},hE={hour:C,minute:C,second:C,hourCycle:"h23"},gE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Dt},yE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},EE={year:C,month:C,day:C,hour:C,minute:C},TE={year:C,month:C,day:C,hour:C,minute:C,second:C},AE={year:C,month:Dt,day:C,hour:C,minute:C},SE={year:C,month:Dt,day:C,hour:C,minute:C,second:C},ab={year:C,month:Dt,day:C,weekday:Dt,hour:C,minute:C},_E={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Dt},IE={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Dt},OE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},xE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,timeZoneName:nt},Ur=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}},Cd=null,go=class t extends Ur{static get instance(){return Cd===null&&(Cd=new t),Cd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return wE(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}},Ou={};function ub(t){return Ou[t]||(Ou[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"})),Ou[t]}var cb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function lb(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 db(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=cb[s];s==="era"?n[a]=o:se(a)||(n[a]=parseInt(o,10))}return n}var Au={},or=class t extends Ur{static create(e){return Au[e]||(Au[e]=new t(e)),Au[e]}static resetCache(){Au={},Ou={}}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 wE(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=ub(this.name),[i,s,o,a,u,c,l]=n.formatToParts?db(n,r):lb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let m=Zd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),p=+r,d=p%1e3;return p-=d>=0?d:1e3+d,(m-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},My={};function pb(t,e={}){let r=JSON.stringify([t,e]),n=My[r];return n||(n=new Intl.ListFormat(t,e),My[r]=n),n}var $d={};function Vd(t,e={}){let r=JSON.stringify([t,e]),n=$d[r];return n||(n=new Intl.DateTimeFormat(t,e),$d[r]=n),n}var qd={};function fb(t,e={}){let r=JSON.stringify([t,e]),n=qd[r];return n||(n=new Intl.NumberFormat(t,e),qd[r]=n),n}var Wd={};function mb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Wd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Wd[i]=s),s}var fo=null;function hb(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function gb(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=Vd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Vd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function yb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Eb(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function Tb(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 Su(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Ab(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=fb(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):zd(e,3);return Re(r,this.padTo)}}},jd=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: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=Vd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Hd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&RE()&&(this.rtf=mb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Mb(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||Ee.defaultLocale,o=s||(i?"en-US":hb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,$d={},qd={},Wd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=gb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=yb(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=Ab(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 Su(this,e,n,CE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Eb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Su(this,e,n,PE,()=>{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]=Tb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Su(this,void 0,e,()=>LE,()=>{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 Su(this,e,r,UE,()=>{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 Qd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new jd(e,this.intl,r)}relFormatter(e={}){return new Hd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return pb(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}},vd=null,it=class t extends Ur{static get utcInstance(){return vd===null&&(vd=new t(0)),vd}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Pu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${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}},bu=class extends Ur{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(se(t)||t===null)return e;if(t instanceof Ur)return t;if(Sb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.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 bu(t)}var Fy=()=>Date.now(),ky="system",By=null,Gy=null,$y=null,Vy=60,qy,Ee=class{static get now(){return Fy}static set now(e){Fy=e}static set defaultZone(e){ky=e}static get defaultZone(){return Lr(ky,go.instance)}static get defaultLocale(){return By}static set defaultLocale(e){By=e}static get defaultNumberingSystem(){return Gy}static set defaultNumberingSystem(e){Gy=e}static get defaultOutputCalendar(){return $y}static set defaultOutputCalendar(e){$y=e}static get twoDigitCutoffYear(){return Vy}static set twoDigitCutoffYear(e){Vy=e%100}static get throwOnInvalid(){return qy}static set throwOnInvalid(e){qy=e}static resetCaches(){_e.resetCache(),or.resetCache()}};function se(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function Nu(t){return typeof t=="number"&&t%1===0}function Sb(t){return typeof t=="string"}function _b(t){return Object.prototype.toString.call(t)==="[object Date]"}function RE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Ib(t){return Array.isArray(t)?t:[t]}function Wy(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 Ob(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return Nu(t)&&t>=e&&t<=r}function xb(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(!(se(t)||t===null||t===""))return parseInt(t,10)}function Bn(t){if(!(se(t)||t===null||t===""))return parseFloat(t)}function Jd(t){if(!(se(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function zd(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 Du(t,e){let r=xb(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 Zd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function Cu(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 Kd(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function wE(t,e,r,n=null){let i=new Date(t),s={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(s.timeZone=n);let o={timeZoneName:e,...s},a=new Intl.DateTimeFormat(r,o).formatToParts(i).find(u=>u.type.toLowerCase()==="timezonename");return a?a.value:null}function Pu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function bE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ke(`Invalid unit value ${t}`);return e}function vu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=bE(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 Lu(t){return Ob(t,["hour","minute","second","millisecond"])}var Rb=["January","February","March","April","May","June","July","August","September","October","November","December"],DE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wb=["J","F","M","A","M","J","J","A","S","O","N","D"];function CE(t){switch(t){case"narrow":return[...wb];case"short":return[...DE];case"long":return[...Rb];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var vE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],NE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],bb=["M","T","W","T","F","S","S"];function PE(t){switch(t){case"narrow":return[...bb];case"short":return[...NE];case"long":return[...vE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var LE=["AM","PM"],Db=["Before Christ","Anno Domini"],Cb=["BC","AD"],vb=["B","A"];function UE(t){switch(t){case"narrow":return[...vb];case"short":return[...Cb];case"long":return[...Db];default:return null}}function Nb(t){return LE[t.hour<12?0:1]}function Pb(t,e){return PE(e)[t.weekday-1]}function Lb(t,e){return CE(e)[t.month-1]}function Ub(t,e){return UE(e)[t.year<0?0:1]}function Mb(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 f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${i[t][0]}`;case-1:return f?"yesterday":`last ${i[t][0]}`;case 0:return f?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function Qy(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Fb={D:wu,DD:aE,DDD:uE,DDDD:cE,t:lE,tt:dE,ttt:pE,tttt:fE,T:mE,TT:hE,TTT:gE,TTTT:yE,f:EE,ff:AE,fff:_E,ffff:OE,F:TE,FF:SE,FFF:IE,FFFF:xE},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 Fb[e]}constructor(e,r){this.opts=r,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,r){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTime(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).format()}formatDateTimeParts(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).formatToParts()}formatInterval(e,r={}){return this.loc.dtFormatter(e.start,{...this.opts,...r}).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r}).resolvedOptions()}num(e,r=0){if(this.opts.forceSimple)return 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,d)=>this.loc.extract(e,p,d),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",a=()=>n?Nb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(p,d)=>n?Lb(e,p):s(d?{month:p}:{month:p,day:"numeric"},"month"),c=(p,d)=>n?Pb(e,p):s(d?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),l=p=>{let d=t.macroTokenToFormatOpts(p);return d?this.formatWithSystemDefault(e,d):p},f=p=>n?Ub(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 f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(p)}};return Qy(t.parseFormat(r),m)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return Qy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},ME=/[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 FE(...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 kE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,kb=`(?:${kE.source}?(?:\\[(${ME.source})\\])?)?`,Xd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,BE=RegExp(`${Xd.source}${kb}`),ep=RegExp(`(?:T${BE.source})?`),Bb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Gb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,$b=/(\d{4})-?(\d{3})/,Vb=FE("weekYear","weekNumber","weekDay"),qb=FE("year","ordinal"),Wb=/(\d{4})-(\d\d)-(\d\d)/,GE=RegExp(`${Xd.source} ?(?:${kE.source}|(${ME.source}))?`),Qb=RegExp(`(?: ${GE.source})?`);function Bi(t,e,r){let n=t[e];return se(n)?r:Pr(n)}function jb(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:Jd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Pu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var Hb=RegExp(`^T?${Xd.source}$`),Kb=/^-?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 Yb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",f=u&&u[0]==="-",m=(p,d=!1)=>p!==void 0&&(d||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(Jd(c),f)}]}var Jb={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 tp(t,e,r,n,i,s,o){let a={year:e.length===2?Kd(Pr(e)):Pr(e),month:DE.indexOf(r)+1,day:Pr(n),hour:Pr(i),minute:Pr(s)};return o&&(a.second=Pr(o)),t&&(a.weekday=t.length>3?vE.indexOf(t)+1:NE.indexOf(t)+1),a}var zb=/^(?:(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 Zb(t){let[,e,r,n,i,s,o,a,u,c,l,f]=t,m=tp(e,i,n,r,s,o,a),p;return u?p=Jb[u]:c?p=0:p=Pu(l,f),[m,new it(p)]}function Xb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var eD=/^(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$/,tD=/^(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$/,rD=/^(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 jy(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,i,n,r,s,o,a),it.utcInstance]}function nD(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,a,r,n,i,s,o),it.utcInstance]}var iD=$i(Bb,ep),sD=$i(Gb,ep),oD=$i($b,ep),aD=$i(BE),$E=Vi(jb,Wi,Eo,To),uD=Vi(Vb,Wi,Eo,To),cD=Vi(qb,Wi,Eo,To),lD=Vi(Wi,Eo,To);function dD(t){return qi(t,[iD,$E],[sD,uD],[oD,cD],[aD,lD])}function pD(t){return qi(Xb(t),[zb,Zb])}function fD(t){return qi(t,[eD,jy],[tD,jy],[rD,nD])}function mD(t){return qi(t,[Kb,Yb])}var hD=Vi(Wi);function gD(t){return qi(t,[Hb,hD])}var yD=$i(Wb,Qb),ED=$i(GE),TD=Vi(Wi,Eo,To);function AD(t){return qi(t,[yD,$E],[ED,TD])}var SD="Invalid Duration",VE={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}},_D={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},...VE},mt=146097/400,Fi=146097/4800,ID={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},...VE},Gn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],OD=Gn.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 xD(t){return t<0?Math.floor(t):Math.ceil(t)}function qE(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?xD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function RD(t,e){OD.reduce((r,n)=>se(e[n])?r:(r&&qE(t,e,r,e,n),n),null)}function wD(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?ID:_D;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:vu(e,t.normalizeUnit),loc:_e.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 Ke(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=mD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=gD(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(Ee.throwOnInvalid)throw new Gd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Ru(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?tt.create(this.loc,n).formatDurationFromString(this,e):SD}toHuman(e={}){let r=Gn.map(n=>{let i=this.values[n];return se(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+=zd(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)(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]=bE(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,...vu(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 RD(this.matrix,e),Nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=wD(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 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)&&qE(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 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 Gn)if(!r(this.values[n],e.values[n]))return!1;return!0}},ki="Invalid Interval";function bD(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 Ke("need to specify a reason the Interval is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Bd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=bD(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=wu,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))}},Vn=class{static hasDST(e=Ee.defaultZone){let r=Ie.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,Ee.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:RE()}}};function Hy(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 DD(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=Hy(u,c);return(l-l%7)/7}],["days",Hy]],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 CD(t,e,r,n){let[i,s,o,a]=DD(t,e,r),u=e-i,c=r.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=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 rp={arab:"[\u0660-\u0669]",arabext:"[\u06F0-\u06F9]",bali:"[\u1B50-\u1B59]",beng:"[\u09E6-\u09EF]",deva:"[\u0966-\u096F]",fullwide:"[\uFF10-\uFF19]",gujr:"[\u0AE6-\u0AEF]",hanidec:"[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]",khmr:"[\u17E0-\u17E9]",knda:"[\u0CE6-\u0CEF]",laoo:"[\u0ED0-\u0ED9]",limb:"[\u1946-\u194F]",mlym:"[\u0D66-\u0D6F]",mong:"[\u1810-\u1819]",mymr:"[\u1040-\u1049]",orya:"[\u0B66-\u0B6F]",tamldec:"[\u0BE6-\u0BEF]",telu:"[\u0C66-\u0C6F]",thai:"[\u0E50-\u0E59]",tibt:"[\u0F20-\u0F29]",latn:"\\d"},Ky={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},vD=rp.hanidec.replace(/[\[|\]]/g,"").split("");function ND(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(rp.hanidec)!==-1)e+=vD.indexOf(t[r]);else for(let i in Ky){let[s,o]=Ky[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${rp[t||"latn"]}${e}`)}var PD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(ND(r))}}var LD=String.fromCharCode(160),WE=`[ ${LD}]`,QE=new RegExp(WE,"g");function UD(t){return t.replace(/\./g,"\\.?").replace(QE,WE)}function Yy(t){return t.replace(/\./g,"").replace(QE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(UD).join("|")),deser:([r])=>t.findIndex(n=>Yy(r)===Yy(n))+e}}function Jy(t,e){return{regex:t,deser:([,r,n])=>Pu(r,n),groups:e}}function Nd(t){return{regex:t,deser:([e])=>e}}function MD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function FD(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),f=wt(e,"{2,4}"),m=wt(e,"{4,6}"),p=E=>({regex:RegExp(MD(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 le(c);case"yy":return le(f,Kd);case"yyyy":return le(s);case"yyyyy":return le(m);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return le(a);case"dd":return le(n);case"o":return le(u);case"ooo":return le(i);case"HH":return le(n);case"H":return le(a);case"hh":return le(n);case"h":return le(a);case"mm":return le(n);case"m":return le(a);case"q":return le(a);case"qq":return le(n);case"s":return le(a);case"ss":return le(n);case"S":return le(u);case"SSS":return le(i);case"u":return Nd(l);case"uu":return Nd(a);case"uuu":return le(r);case"a":return bt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(f,Kd);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(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 Jy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Jy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Nd(/[a-z_+-/]{1,256}?/i);default:return p(E)}})(t)||{invalidReason:PD};return g.token=t,g}var kD={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=kD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function GD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function $D(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 se(t.z)||(r=or.create(t.z)),se(t.Z)||(r||(r=new it(t.Z)),n=t.Z),se(t.q)||(t.M=(t.q-1)*3+1),se(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),se(t.u)||(t.S=Jd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Pd=null;function qD(){return Pd||(Pd=Ie.fromMillis(1555555555555)),Pd}function WD(t,e){if(t.literal)return t;let r=tt.macroTokenToFormatOpts(t.val),n=KE(r,e);return n==null||n.includes(void 0)?t:n}function jE(t,e){return Array.prototype.concat(...t.map(r=>WD(r,e)))}function HE(t,e,r){let n=jE(tt.parseFormat(r),t),i=n.map(o=>FD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=GD(i),u=RegExp(o,"i"),[c,l]=$D(e,u,a),[f,m,p]=l?VD(l):[null,null,void 0];if(Gi(l,"a")&&Gi(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:f,zone:m,specificOffset:p}}}function QD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=HE(t,e,r);return[n,i,s,o]}function KE(t,e){return t?tt.create(e,t).formatDateTimeParts(qD()).map(i=>BD(i,t)):null}var YE=[0,31,59,90,120,151,181,212,243,273,304,334],JE=[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 zE(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+(yo(t)?JE:YE)[e-1]}function XE(t,e){let r=yo(t)?JE:YE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Yd(t){let{year:e,month:r,day:n}=t,i=ZE(e,r,n),s=zE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Cu(a)):o>Cu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Lu(t)}}function zy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=zE(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}=XE(a,o);return{year:a,month:u,day:c,...Lu(t)}}function Ld(t){let{year:e,month:r,day:n}=t,i=ZE(e,r,n);return{year:e,ordinal:i,...Lu(t)}}function Zy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=XE(e,r);return{year:e,month:n,day:i,...Lu(t)}}function jD(t){let e=Nu(t.weekYear),r=ir(t.weekNumber,1,Cu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function HD(t){let e=Nu(t.year),r=ir(t.ordinal,1,mo(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function eT(t){let e=Nu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Du(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("year",t.year)}function tT(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:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Ud="Invalid DateTime",Xy=864e13;function _u(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Md(t){return t.weekData===null&&(t.weekData=Yd(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 rT(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 eE(t,e){t+=e*60*1e3;let r=new Date(t);return{year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hour:r.getUTCHours(),minute:r.getUTCMinutes(),second:r.getUTCSeconds(),millisecond:r.getUTCMilliseconds()}}function xu(t,e,r){return rT(Zd(t),e,r)}function tE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Du(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=Zd(s),[u,c]=rT(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 Iu(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Fd(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 rE(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 nT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},KD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},YD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},iT=["year","month","day","hour","minute","second","millisecond"],JD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],zD=["year","ordinal","hour","minute","second","millisecond"];function nE(t){let e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new Ru(t);return e}function iE(t,e){let r=Lr(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(se(t.year))s=i;else{for(let c of iT)se(t[c])&&(t[c]=nT[c]);let a=eT(t)||tT(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=xu(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function sE(t,e,r){let n=se(r.round)?!0:r.round,i=(o,a)=>(o=zd(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 oE(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||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:_u(r));this.ts=se(e.ts)?Ee.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=eE(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]=oE(arguments),[n,i,s,o,a,u,c]=r;return iE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=oE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=it.utcInstance,iE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=_b(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Lr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(_u(i))}static fromMillis(e,r={}){if(qn(e))return e<-Xy||e>Xy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Lr(r.zone,Ee.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(qn(e))return new t({ts:e*1e3,zone:Lr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ke("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Lr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(_u(n));let i=Ee.now(),s=se(r.specificOffset)?n.offset(i):r.specificOffset,o=vu(e,nE),a=!se(o.ordinal),u=!se(o.year),c=!se(o.month)||!se(o.day),l=u||c,f=o.weekYear||o.weekNumber,m=_e.fromObject(r);if((l||a)&&f)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=f||o.weekday&&!l,d,g,E=eE(i,s);p?(d=JD,g=KD,E=Yd(E)):a?(d=zD,g=YD,E=Ld(E)):(d=iT,g=nT);let y=!1;for(let b of d){let k=o[b];se(k)?y?o[b]=g[b]:o[b]=E[b]:y=!0}let S=p?jD(o):a?HD(o):eT(o),O=S||tT(o);if(O)return t.invalid(O);let R=p?zy(o):a?Zy(o):o,[T,_]=xu(R,s,n),B=new t({ts:T,zone:n,o:_,loc:m});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=dD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=pD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=fD(e);return lo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(se(e)||se(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]=QD(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]=AD(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(Ee.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=KE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return jE(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?Md(this).weekYear:NaN}get weekNumber(){return this.isValid?Md(this).weekNumber:NaN}get weekday(){return this.isValid?Md(this).weekday:NaN}get ordinal(){return this.isValid?Ld(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 yo(this.year)}get daysInMonth(){return Du(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?Cu(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(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Lr(e,Ee.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=xu(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(_u(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=vu(e,nE),n=!se(r.weekYear)||!se(r.weekNumber)||!se(r.weekday),i=!se(r.ordinal),s=!se(r.year),o=!se(r.month)||!se(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=zy({...Yd(this.c),...r}):se(r.ordinal)?(c={...this.toObject(),...r},se(r.day)&&(c.day=Math.min(Du(c.year,c.month),c.day))):c=Zy({...Ld(this.c),...r});let[l,f]=xu(c,this.o,this.zone);return co(this,{ts:l,o:f})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,tE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(this,tE(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=De.normalizeUnit(e);switch(n){case"years":r.month=1;case"quarters":case"months":r.day=1;case"weeks":case"days":r.hour=0;case"hours":r.minute=0;case"minutes":r.second=0;case"seconds":r.millisecond=0;break}if(n==="weeks"&&(r.weekday=1),n==="quarters"){let i=Math.ceil(this.month/3);r.month=(i-1)*3+1}return this.set(r)}endOf(e){return this.isValid?this.plus({[e]:1}).startOf(e).minus(1):this}toFormat(e,r={}){return this.isValid?tt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Ud}toLocaleString(e=wu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Ud}toLocaleParts(e={}){return this.isValid?tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Fd(this,o);return a+="T",a+=rE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Fd(this,e==="extended"):null}toISOWeekDate(){return Iu(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":"")+rE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Iu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Iu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Fd(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")),Iu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ud}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Ib(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=CD(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),sE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?sE(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 Wy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("max requires all arguments be DateTimes");return Wy(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 HE(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return wu}static get DATE_MED(){return aE}static get DATE_MED_WITH_WEEKDAY(){return ob}static get DATE_FULL(){return uE}static get DATE_HUGE(){return cE}static get TIME_SIMPLE(){return lE}static get TIME_WITH_SECONDS(){return dE}static get TIME_WITH_SHORT_OFFSET(){return pE}static get TIME_WITH_LONG_OFFSET(){return fE}static get TIME_24_SIMPLE(){return mE}static get TIME_24_WITH_SECONDS(){return hE}static get TIME_24_WITH_SHORT_OFFSET(){return gE}static get TIME_24_WITH_LONG_OFFSET(){return yE}static get DATETIME_SHORT(){return EE}static get DATETIME_SHORT_WITH_SECONDS(){return TE}static get DATETIME_MED(){return AE}static get DATETIME_MED_WITH_SECONDS(){return SE}static get DATETIME_MED_WITH_WEEKDAY(){return ab}static get DATETIME_FULL(){return _E}static get DATETIME_FULL_WITH_SECONDS(){return IE}static get DATETIME_HUGE(){return OE}static get DATETIME_HUGE_WITH_SECONDS(){return xE}};function po(t){if(Ie.isDateTime(t))return t;if(t&&t.valueOf&&qn(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 ZD="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=Vn;st.Interval=Wn;st.InvalidZone=bu;st.Settings=Ee;st.SystemZone=go;st.VERSION=ZD;st.Zone=Ur});var aT=H((GQ,oT)=>{"use strict";var Qn=sT();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))}oT.exports=z});var lT=H(($Q,cT)=>{"use strict";function jn(t){return{start:t,count:1}}function uT(t,e){t.end=e,t.step=e-t.start,t.count=2}function np(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 XD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(np(e,r,jn(i)),r=void 0):r?r.count===1?uT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(jn(r.start)),r=jn(r.end),uT(r,i)):(np(e,r),r=jn(i)):r=jn(i)}return np(e,r),e}cT.exports=XD});var pT=H((VQ,dT)=>{"use strict";var eC=lT();function tC(t,e,r){var n=eC(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 d=c.start+p;return(d-c.start)%c.step===0?d: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(",")}dT.exports=tC});var hT=H((qQ,mT)=>{"use strict";var Hn=aT(),rC=pT(),fT=1e4;function L(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=L._freezeFields(t)}L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.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"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.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}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};L._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.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(!L.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(d){if(d instanceof Array)for(var g=0,E=d.length;g<E;g++){var y=d[g];if(L._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(L._isValidConstraintChar(n,d)){c.push(d);return}var S=+d;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+d+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var f=u.split(",");if(!f.every(function(d){return d.length>0}))throw new Error("Invalid list value format");if(f.length>1)for(var m=0,p=f.length;m<p;m++)l(o(f[m]));else l(o(u));return c.sort(L._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=[],f=u.split("-");if(f.length>1){if(f.length<2)return+u;if(!f[0].length){if(!f[1].length)throw new Error("Invalid range: "+u);return+u}var m=+f[0],p=+f[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 d=+c;if(Number.isNaN(d)||d<=0)throw new Error("Constraint error, cannot repeat at every "+d+" 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&&d>0&&d%c===0?(d=1,l.push(g)):d++}return l}return Number.isNaN(+u)?u:+u}return s(r)};L._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)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.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(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.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)}};L.prototype._findSchedule=function(e){function r(y,S){for(var O=0,R=S.length;O<R;O++)if(S[O]>=y)return S[O]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var O=y.getDate()%7?1:0,R=y.getDate()-y.getDate()%7,T=Math.floor(R/7)+O;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.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 f(y){return y.some(function(S){if(!i([S]))return!1;var O=Number.parseInt(S[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===O&&o.isLastWeekdayOfMonth()})}for(;l<fT;){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||f(this.fields.dayOfWeek));var d=this.fields.dayOfMonth.length>=L.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,E=o.getHours();if(!m&&(!p||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!d&&g&&!m){this._applyTimezoneShift(o,s,"Day");continue}if(d&&!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>=fT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Hn(o,this._tz),this._hasIterated=!0,o};L.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};L.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};L.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}};L.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}};L.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};L.prototype.reset=function(e){this._currentDate=new Hn(e||this._options.currentDate)};L.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var s=L.map[n],o=this.fields[s],a=L.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:L.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(rC(o,a.min,a.max))}return r.join(" ")};L.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)),L.predefined[s]&&(s=L.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=L.map.length-u.length,l=0,f=L.map.length;l<f;++l){var m=L.map[l],p=u[u.length>f?l:l-c];if(l<c||!p)a.push(L._parseField(m,L.parseDefaults[l],L.constraints[l]));else{var d=m==="dayOfWeek"?S(p):p;a.push(L._parseField(m,d,L.constraints[l]))}}for(var g={},l=0,f=L.map.length;l<f;l++){var E=L.map[l];g[E]=a[l]}var y=L._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new L(g,o);function S(O){var R=O.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,R[0]}return O}}return i(e,r)};L.fieldsToExpression=function(e,r){function n(m,p,d){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(!L._isValidConstraintChar(d,y)&&(typeof y!="number"||Number.isNaN(y)||y<d.min||y>d.max))throw new Error("Constraint error, got value "+y+" expected range "+d.min+"-"+d.max)}}for(var i={},s=0,o=L.map.length;s<o;++s){var a=L.map[s],u=e[a];n(a,u,L.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(L._sortCompareFn).filter(function(m,p,d){return!p||m!==d[p-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var f=L._handleMaxDaysInMonth(i);return i.dayOfMonth=f||i.dayOfMonth,new L(i,r||{})};mT.exports=L});var yT=H((WQ,gT)=>{"use strict";var Uu=hT();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()))})};gT.exports=Mr});var Kk={};N(Kk,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>xp,BadRequestError:()=>bc,BudibaseError:()=>ps,Config:()=>vp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>Wu,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Mf,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>Cc,GlobalRole:()=>Cp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>Rr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>NT,NotFoundError:()=>wc,RedisClient:()=>We,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>Dc,UserStatus:()=>Qu,ViewName:()=>Br,accounts:()=>li,auth:()=>gh,blacklist:()=>Ah,cache:()=>Ia,configs:()=>rn,constants:()=>Np,context:()=>Se,db:()=>Hr,docIds:()=>xf,docUpdates:()=>_h,encryption:()=>fh,env:()=>h,errors:()=>Nc,events:()=>ys,features:()=>ih,getPublicError:()=>vc,init:()=>Hk,installation:()=>Vc,locks:()=>ui,logging:()=>xc,middleware:()=>hh,objectStore:()=>zf,permissions:()=>th,platform:()=>Xo,plugins:()=>Eh,queue:()=>fm,redis:()=>Th,roles:()=>eh,security:()=>Cm,sessions:()=>Yc,setEnv:()=>Ro,sql:()=>vh,tenancy:()=>jk,timers:()=>Gc,userUtils:()=>am,users:()=>Es,utils:()=>ss,withEnv:()=>kT});module.exports=VI(Kk);var rn={};N(rn,{analyticsEnabled:()=>kc,generateConfigID:()=>el,getAIConfig:()=>oF,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Gm,getGoogleConfig:()=>tl,getGoogleDatasourceConfig:()=>qm,getOIDCConfig:()=>nF,getOIDCConfigById:()=>Wm,getOIDCLogosDoc:()=>tF,getPlatformUrl:()=>Da,getSCIMConfig:()=>sF,getSMTPConfig:()=>iF,getSMTPConfigDoc:()=>M_,getSettingsConfig:()=>Vm,getSettingsConfigDoc:()=>Wc,save:()=>X0});var qI=["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=[...qI],Lh={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0};var Rl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Rl||{}),wl=(m=>(m.STRING="string",m.CODE="code",m.LONGFORM="longForm",m.BOOLEAN="boolean",m.NUMBER="number",m.PASSWORD="password",m.LIST="list",m.OBJECT="object",m.JSON="json",m.FILE="file",m.FIELD_GROUP="fieldGroup",m.SELECT="select",m))(wl||{}),Fa=(y=>(y.POSTGRES="POSTGRES",y.DYNAMODB="DYNAMODB",y.MONGODB="MONGODB",y.ELASTICSEARCH="ELASTICSEARCH",y.COUCHDB="COUCHDB",y.SQL_SERVER="SQL_SERVER",y.S3="S3",y.AIRTABLE="AIRTABLE",y.MYSQL="MYSQL",y.ARANGODB="ARANGODB",y.REST="REST",y.ORACLE="ORACLE",y.GOOGLE_SHEETS="GOOGLE_SHEETS",y.FIRESTORE="FIRESTORE",y.REDIS="REDIS",y.SNOWFLAKE="SNOWFLAKE",y.BUDIBASE="BUDIBASE",y))(Fa||{});var bl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(bl||{});var WI=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||{}),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||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function ka(t){return Object.values(Ti).includes(t)}function Uh(t){return Object.values(Or).includes(t)}function Mh(t){return Object.values(Jt).includes(t)}function Ba(t){return Object.values(pn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Fh=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 kh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACE_APPS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var YB={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 Ga=(f=>(f.APP="app",f.TABLE="table",f.USER="user",f.AUTOMATION="automation",f.WEBHOOK="webhook",f.BUILDER="builder",f.CREATOR="creator",f.GLOBAL_BUILDER="globalBuilder",f.QUERY="query",f.VIEW="view",f.LEGACY_VIEW="legacy_view",f))(Ga||{});var $a=t=>t.hosting==="cloud";var Va=t=>t.authType==="sso";var D="_",Ge="\uFFF0",xr=t=>`${t}${D}`,ye=(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.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.SCIM_LOG="scimlog",Q.ROW_ACTIONS="ra",Q.OAUTH2_CONFIG="oauth2",Q.OAUTH2_CONFIG_LOG="oauth2log",Q.AGENT_CHAT="agentchat",Q.AGENT_TOOL_SOURCE="agenttoolsource",Q.WORKSPACE_APP="workspace_app",Q))(ye||{}),MG=Object.values(ye).sort((t,e)=>e.length-t.length);var Rr=(e=>(e.USER_METADATA="ta_users",e))(Rr||{}),Dl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Dl||{}),FG=Object.values(Dl).sort((t,e)=>e.length-t.length);var ee=(l=>(l.OBJECT="object",l.STRING="string",l.BOOLEAN="boolean",l.NUMBER="number",l.ARRAY="array",l.JSON="json",l.DATE="date",l.DATETIME="datetime",l.ATTACHMENT="attachment",l.LONGFORM="longform",l))(ee||{}),pe=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R))(pe||{}),_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 ue=(I=>(I.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",I.CREATE_ROW="CREATE_ROW",I.UPDATE_ROW="UPDATE_ROW",I.DELETE_ROW="DELETE_ROW",I.EXECUTE_BASH="EXECUTE_BASH",I.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",I.EXECUTE_SCRIPT="EXECUTE_SCRIPT",I.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",I.EXECUTE_QUERY="EXECUTE_QUERY",I.SERVER_LOG="SERVER_LOG",I.DELAY="DELAY",I.FILTER="FILTER",I.API_REQUEST="API_REQUEST",I.QUERY_ROWS="QUERY_ROWS",I.LOOP="LOOP",I.COLLECT="COLLECT",I.OPENAI="OPENAI",I.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",I.BRANCH="BRANCH",I.CLASSIFY_CONTENT="CLASSIFY_CONTENT",I.PROMPT_LLM="PROMPT_LLM",I.TRANSLATE="TRANSLATE",I.SUMMARISE="SUMMARISE",I.GENERATE_TEXT="GENERATE_TEXT",I.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",I.discord="discord",I.slack="slack",I.zapier="zapier",I.integromat="integromat",I.n8n="n8n",I))(ue||{}),Bh=[...Object.values(ue),...Object.values(_t)];var Cl=(a=>(a.EMAIL="email",a.DOCUMENT="document",a.BLOG_POST="blog_post",a.CHAT_MESSAGE="chat_message",a.LETTER="letter",a.PROPOSAL="proposal",a.OTHER="other",a))(Cl||{}),Gh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},vl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(vl||{}),Nl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Nl||{});var Pl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Pl||{});var Ll=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Ll||{});var Ul="bb_internal";var $h=["attachment_single","attachment","signature_single","bb_reference","json","array"];function qa(t){return!!t.providerType}var Ml=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ml||{});var tV=Object.values(Ml);var oV=["rows","queries","automations"],aV=["queries","automations"];var ne;(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})(ne||(ne={}));var kl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(kl||(kl={}));var M=ne.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 M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},x=ne.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"]),KI=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,ne.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 x.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ne.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${ne.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ne.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${ne.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.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}"`:ne.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.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 x.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 x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,ne.assertNever(t)}return{message:r}},Wh=Ii;function YI(t){Wh=t}function Wa(){return Wh}var Qa=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}},JI=[];function P(t,e){let r=Wa(),n=Qa({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}),$e=t=>({status:"valid",value:t}),Bl=t=>t.status==="aborted",Gl=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function ja(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function Qh(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var 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}},Vh=(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 Vh(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 Vh(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:x.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 Xt.create(this,this._def)}promise(){return Cr.create(this,this._def)}or(e){return An.create([this,e],this._def)}and(e){return Sn.create(this,e,this._def)}transform(e){return new Ze({...Z(this._def),schema:this,typeName:K.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Rn({...Z(this._def),innerType:this,defaultValue:r,typeName: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 wn({...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 bn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},zI=/^c[^\s-]{8,}$/i,ZI=/^[0-9a-z]+$/,XI=/^[0-9A-HJKMNP-TV-Z]{26}$/,eO=/^[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,tO=/^[a-z0-9_-]{21}$/i,rO=/^[-+]?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)?)??$/,nO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,iO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Fl,sO=/^(?:(?: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])$/,oO=/^(([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})))$/,aO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,jh="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",uO=new RegExp(`^${jh}$`);function Hh(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 cO(t){return new RegExp(`^${Hh(t)}$`)}function Kh(t){let e=`${jh}T${Hh(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 lO(t,e){return!!((e==="v4"||!e)&&sO.test(t)||(e==="v6"||!e)&&oO.test(t))}var br=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.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:x.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:x.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:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")nO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Fl||(Fl=new RegExp(iO,"u")),Fl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")eO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")tO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")zI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")ZI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:x.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:x.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:x.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:x.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:x.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:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?Kh(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?uO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?cO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?rO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?lO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?aO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):ne.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.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 dO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var mn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?ne.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.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:x.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:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?dO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.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:x.not_finite,message:s.message}),i.dirty()):ne.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"&&ne.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};mn.create=t=>new mn({checks:[],typeName:K.ZodNumber,coerce:t?.coerce||!1,...Z(t)});var hn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce&&(e.data=BigInt(e.data)),this._getType(e)!==M.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.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:x.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:x.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:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ne.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};hn.create=t=>{var e;return new hn({checks:[],typeName:K.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};var gn=class extends X{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.boolean,received:n.parsedType}),J}return $e(e.data)}};gn.create=t=>new gn({typeName:K.ZodBoolean,coerce:t?.coerce||!1,...Z(t)});var yn=class t extends X{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:x.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:x.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:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ne.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};yn.create=t=>new yn({checks:[],coerce:t?.coerce||!1,typeName:K.ZodDate,...Z(t)});var Oi=class extends X{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.symbol,received:n.parsedType}),J}return $e(e.data)}};Oi.create=t=>new Oi({typeName:K.ZodSymbol,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.undefined,received:n.parsedType}),J}return $e(e.data)}};En.create=t=>new En({typeName:K.ZodUndefined,...Z(t)});var Tn=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.null,received:n.parsedType}),J}return $e(e.data)}};Tn.create=t=>new Tn({typeName:K.ZodNull,...Z(t)});var Dr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(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 $e(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:x.invalid_type,expected:M.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)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.void,received:n.parsedType}),J}return $e(e.data)}};xi.create=t=>new xi({typeName:K.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!==M.array)return P(r,{code:x.invalid_type,expected:M.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?x.too_big:x.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:x.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:x.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)}};Xt.create=(t,e)=>new Xt({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 Xt?new Xt({...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=ne.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return P(c,{code:x.invalid_type,expected:M.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],f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,f,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:x.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 f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,f,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let f=await l.key,m=await l.value;c.push({key:f,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 ne.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 ne.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 ne.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 ne.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 Yh(ne.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 An=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=this._def.options;function i(s){for(let a of s)if(a.result.status==="valid")return a.result;for(let a of s)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=s.map(a=>new ze(a.ctx.common.issues));return P(r,{code:x.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:x.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};An.create=(t,e)=>new An({options:t,typeName:K.ZodUnion,...Z(e)});var zt=t=>t instanceof _n?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof In?[t.value]:t instanceof On?t.options:t instanceof xn?ne.objectValues(t.enum):t instanceof Rn?zt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof dt?[void 0,...zt(t.unwrap())]:t instanceof $t?[null,...zt(t.unwrap())]:t instanceof Cs||t instanceof bn?zt(t.unwrap()):t instanceof wn?zt(t._def.innerType):[],Ha=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return P(r,{code:x.invalid_type,expected:M.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:x.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:K.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function $l(t,e){let r=wr(t),n=wr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=ne.objectKeys(e),s=ne.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=$l(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=$l(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var Sn=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Bl(s)||Bl(o))return J;let a=$l(s.value,o.value);return a.valid?((Gl(s)||Gl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:x.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Sn.create=(t,e,r)=>new Sn({left:t,right:e,typeName:K.ZodIntersection,...Z(r)});var Gt=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return P(n,{code:x.invalid_type,expected:M.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:x.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:x.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 Ka=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return P(n,{code:x.invalid_type,expected:M.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!==M.map)return P(n,{code:x.invalid_type,expected:M.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!==M.set)return P(n,{code:x.invalid_type,expected:M.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:x.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:x.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 Ya=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return P(r,{code:x.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Qa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Wa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Cr){let a=this;return $e(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(p=>{throw c.addIssue(n(u,p)),c}),f=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(f,s).catch(p=>{throw c.addIssue(i(f,p)),c})})}else{let a=this;return $e(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),f=a._def.returns.safeParse(l,s);if(!f.success)throw new ze([i(l,f.error)]);return f.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)})}},_n=class extends X{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:K.ZodLazy,...Z(e)});var In=class extends X{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return P(r,{received:r.data,code:x.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};In.create=(t,e)=>new In({value:t,typeName:K.ZodLiteral,...Z(e)});function Yh(t,e){return new On({values:t,typeName:K.ZodEnum,...Z(e)})}var On=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:ne.joinValues(n),received:r.parsedType,code:x.invalid_type}),J}if(ja(this,Rs,"f")||Qh(this,Rs,new Set(this._def.values),"f"),!ja(this,Rs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:x.invalid_enum_value,options:n}),J}return $e(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;On.create=Yh;var xn=class extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){let r=ne.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=ne.objectValues(r);return P(n,{expected:ne.joinValues(i),received:n.parsedType,code:x.invalid_type}),J}if(ja(this,ws,"f")||Qh(this,ws,new Set(ne.getValidEnumValues(this._def.values)),"f"),!ja(this,ws,"f").has(e.data)){let i=ne.objectValues(r);return P(n,{received:n.data,code:x.invalid_enum_value,options:i}),J}return $e(e.data)}get enum(){return this._def.values}};ws=new WeakMap;xn.create=(t,e)=>new xn({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!==M.promise&&r.common.async===!1)return P(r,{code:x.invalid_type,expected:M.promise,received:r.parsedType}),J;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return $e(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);ne.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)===M.undefined?$e(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)===M.null?$e(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 Rn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Rn.create=(t,e)=>new Rn({innerType:t,typeName:K.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Z(e)});var wn=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return 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}};wn.create=(t,e)=>new wn({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)!==M.nan){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:K.ZodNaN,...Z(t)});var pO=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})}},bn=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}};bn.create=(t,e)=>new bn({innerType:t,typeName:K.ZodReadonly,...Z(e)});function Jh(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 fO={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 mO=(t,e={message:`Input not instance of ${t.name}`})=>Jh(r=>r instanceof t,e),zh=br.create,Zh=mn.create,hO=bi.create,gO=hn.create,Xh=gn.create,yO=yn.create,EO=Oi.create,TO=En.create,AO=Tn.create,SO=Dr.create,_O=Zt.create,IO=It.create,OO=xi.create,xO=Xt.create,RO=je.create,wO=je.strictCreate,bO=An.create,DO=Ha.create,CO=Sn.create,vO=Gt.create,NO=Ka.create,PO=Ri.create,LO=wi.create,UO=Ya.create,MO=_n.create,FO=In.create,kO=On.create,BO=xn.create,GO=Cr.create,qh=Ze.create,$O=dt.create,VO=$t.create,qO=Ze.createWithPreprocess,WO=vs.create,QO=()=>zh().optional(),jO=()=>Zh().optional(),HO=()=>Xh().optional(),KO={string:t=>br.create({...t,coerce:!0}),number:t=>mn.create({...t,coerce:!0}),boolean:t=>gn.create({...t,coerce:!0}),bigint:t=>hn.create({...t,coerce:!0}),date:t=>yn.create({...t,coerce:!0})},YO=J,re=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:YI,getErrorMap:Wa,makeIssue:Qa,EMPTY_PATH:JI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:$e,isAborted:Bl,isDirty:Gl,isValid:bs,isAsync:Ds,get util(){return ne},get objectUtil(){return kl},ZodParsedType:M,getParsedType:wr,ZodType:X,datetimeRegex:Kh,ZodString:br,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Oi,ZodUndefined:En,ZodNull:Tn,ZodAny:Dr,ZodUnknown:Zt,ZodNever:It,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:An,ZodDiscriminatedUnion:Ha,ZodIntersection:Sn,ZodTuple:Gt,ZodRecord:Ka,ZodMap:Ri,ZodSet:wi,ZodFunction:Ya,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:Cr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:dt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:wn,ZodNaN:bi,BRAND:pO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:bn,custom:Jh,Schema:X,ZodSchema:X,late:fO,get ZodFirstPartyTypeKind(){return K},coerce:KO,any:SO,array:xO,bigint:gO,boolean:Xh,date:yO,discriminatedUnion:DO,effect:qh,enum:kO,function:UO,instanceof:mO,intersection:CO,lazy:MO,literal:FO,map:PO,nan:hO,nativeEnum:BO,never:IO,null:AO,nullable:VO,number:Zh,object:RO,oboolean:HO,onumber:jO,optional:$O,ostring:QO,pipeline:WO,preprocess:qO,promise:GO,record:NO,set:LO,strictObject:wO,string:zh,symbol:EO,transformer:qh,tuple:vO,undefined:TO,union:bO,unknown:_O,void:OO,NEVER:YO,ZodIssueCode:x,quotelessJson:KI,ZodError:ze});var Dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Dn||{}),Ja=(r=>(r.STRING="string",r.NUMBER="number",r))(Ja||{});var eu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),eg=re.record(eu,re.string()),za=re.record(eu,re.any()),Za=re.record(eu,re.union([re.any().array(),re.string()])),tg=re.lazy(()=>re.object({conditions:re.array(re.object(rg))})),Xa=re.union([re.string(),re.number()]),rg={string:eg.optional(),fuzzy:eg.optional(),range:re.record(eu,re.union([re.object({high:Xa,low:Xa}),re.object({high:Xa}),re.object({low:Xa})])).optional(),equal:za.optional(),notEqual:za.optional(),empty:za.optional(),notEmpty:za.optional(),oneOf:Za.optional(),contains:Za.optional(),notContains:Za.optional(),containsAny:Za.optional(),$and:tg.optional(),$or:tg.optional()},rq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Ai).optional(),...rg}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(Dn).optional(),sortType:re.nativeEnum(Ja).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Np={};N(Np,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>xp,Config:()=>vp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>Wu,DocumentType:()=>ye,GlobalRole:()=>Cp,Header:()=>Xe,InternalTable:()=>Rr,MAX_VALID_DATE:()=>ju,MIN_VALID_DATE:()=>NT,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Qu,ViewName:()=>Br});var AW={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=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Xe||{});var OW={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 CW="darkest",vW="light",ZO=[{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"}},ng={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:()=>lp,NoEmptyFilterStrings:()=>OT,buildQuery:()=>xT,cleanupQuery:()=>fp,fixupFilterArrays:()=>hp,getKeyNumbering:()=>mp,getValidOperatorsForType:()=>OC,hasFilters:()=>dp,limit:()=>wT,recurseLogicalOperators:()=>pp,removeKeyNumbering:()=>tu,runQuery:()=>Mu,search:()=>wC,sort:()=>RT,splitFiltersArray:()=>ru});var Qi=W(ig());var Ci={};N(Ci,{filterValueToLabel:()=>ix,hasSchema:()=>sx,isSupportedUserSearch:()=>og,parallelForeach:()=>nx,processSearchFilters:()=>Wl,toMap:()=>ax,trimOtherProps:()=>ox,unreachable:()=>rx});var sg=W(require("lodash")),tx=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function rx(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function nx(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 ix(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function sx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function ox(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function og(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(ka(s)){for(let c of t[s].conditions)if(!og(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 Wl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=ru(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=sg.default.pick(i,tx);return s.field=tu(s.field),s})}]}}function ax(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var jt={};N(jt,{cancelableTimeout:()=>ag,cron:()=>ip,deepGet:()=>Ql,duplicateName:()=>AC,getSequentialName:()=>SC,getUserColor:()=>cx,getUserInitials:()=>ux,getUserLabel:()=>lx,isGoogleSheets:()=>px,isSQL:()=>fx,lists:()=>cp,retry:()=>mx,roles:()=>up,schema:()=>Ao,views:()=>ap,wait:()=>jl,withTimeout:()=>dx});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},ux=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"},cx=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%)`},lx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function ag(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function dx(t,e){let[r,n]=ag(t),i=await Promise.race([e(),r]);return n(),i}function px(t){return t==="GOOGLE_SHEETS"}function fx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function jl(t){return new Promise(e=>setTimeout(e,t))}async function mx(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 jl(s);try{return await t()}catch(o){n=o}}throw n}var ip={};N(ip,{getNextExecutionDates:()=>sC,validate:()=>oC});var TT=W(Vt()),AT=W(yT()),ET="(Input cron: ",nC={"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 iC(t){let e=[];for(let r of t){r.includes(ET)&&(r=r.split(ET)[0].trim());for(let[n,i]of Object.entries(nC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function sC(t,e=4){let r=AT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function oC(t){let e=(0,TT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:iC(e.getError())}}var Ao={};N(Ao,{decodeNonAscii:()=>sp,encodeNonAscii:()=>cC,isDeprecatedSingleUserColumn:()=>aC,isNumeric:()=>lC,isRequired:()=>uC});function aC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function uC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function cC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function sp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function lC(t){return t.type==="number"||t.type==="bigint"}var ap={};N(ap,{basicFields:()=>hC,calculationFields:()=>mC,hasCalculationFields:()=>fC,isBasicViewField:()=>dC,isCalculationField:()=>So,isCalculationView:()=>pC,isV2:()=>gC,isVisible:()=>ST});var op=require("lodash");function So(t){return"calculationType"in t}function dC(t){return!So(t)}function pC(t){return t.type==="calculation"}function fC(t){return Object.values(t.schema||{}).some(So)}function mC(t){return(0,op.pickBy)(t.schema||{},So)}function ST(t){return t.visible!==!1}function hC(t,e){let{visible:r=!0}=e||{};return(0,op.pickBy)(t.schema||{},n=>!So(n)&&(!r||ST(n)))}function gC(t){return t.version===2}var up={};N(up,{checkForRoleInheritanceLoops:()=>EC});function yC(t){return`role${D}${t}`}function EC(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=yC(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 cp={};N(cp,{punctuateList:()=>TC});function TC(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 AC=(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}`},SC=(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 f=parseInt(l[1]);f>a&&(a=f)}),a===0?o:`${e}${i}${a+1}`};var Kn=require("lodash");var _C=/{{([^{].*?)}}/g,IT=Object.values(Ti),IC=[...Object.values(Or),...Object.values(Jt),...Object.values(pn)],OC=(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]:a==="barcodeqr"&&(o=i);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},OT=[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 pp(t,e){for(let r of IT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var fp=t=>{for(let e of OT)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===""||xC(s))&&delete t[e][i]}return t=pp(t,fp),t};function xC(t){return Array.isArray(t)&&t.length===0}var tu=t=>mp(t).key,mp=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}},lp=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}=mp(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=sp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function RC(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(_C)||[]).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(Ba(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(Ba(r)){let c=ng[s]||{min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER};e[r]??={},e[r][n]={low:i==="number"?c.min:"0000-00-00T00:00:00.000Z",high:i==="number"?c.max:"9999-00-00T00:00:00.000Z"}}else if(r==="rangeHigh"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],high:o};else if(r==="rangeLow"&&o!=null&&o!=="")e.range??={},e.range[n]={...e.range[n],low:o};else if(Uh(r)||Mh(r)||Ba(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function ru(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function xT(t){if(!t)return{};if(Array.isArray(t)&&(t=Wl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=_T(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=xT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=ru(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=_T(n.logicalOperator)),{[a]:{conditions:o.map(RC).filter(u=>u)}}})},e}function _T(t){return t==="all"?"$and":"$or"}function hp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Kn.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 pp(t,hp),t}function wC(t,e){let r=Mu(t,e.query);e.sort&&(r=RT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=wT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Mu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=fp(e),e=hp(e),!dp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=ka(T)?B:Ql(B,tu(b)),cn=_(de,k);if(e.allOr&&cn)return!0;if(!e.allOr&&!cn)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,Kn.isPlainObject)(_.low)&&(0,Kn.isEmpty)(_.low)&&(_.low=void 0),(0,Kn.isPlainObject)(_.high)&&(0,Kn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let k=+_.low,de=+_.high;if(!isNaN(k)&&!isNaN(de))return B>=k&&B<=de;if(isNaN(k)){if(!isNaN(de))return B<=de}else return B>=k}let b=(0,Qi.default)(T);if(b.isValid()){let k=(0,Qi.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,Qi.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&de.isValid())return b.isAfter(k)&&b.isBefore(de)||b.isSame(k)||b.isSame(de);if(k.isValid())return b.isAfter(k)||b.isSame(k);if(de.isValid())return b.isBefore(de)||b.isSame(de)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let b of T)if(o(b,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,Qi.default)(T);if(B.isValid()){let b=(0,Qi.default)(_);if(b.isValid())return B.isSame(b)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,f=r("empty",l),m=r("notEmpty",a(l)),p=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),d=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(b=>parseFloat(b)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](b=>o(_,b)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:d("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(d("every"))(T,_)),y=r("containsAny",d("some")),S=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Mu([T],B).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Mu([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:f,notEmpty:m,oneOf:p,contains:g,containsAny:y,notContains:E,$and:S,$or:O},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(T)??!1);return dp(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function RT(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 wT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var dp=t=>{if(!t)return!1;let e=r=>{for(let n of IT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of IC){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:()=>yp,automations:()=>Ep,screens:()=>Ip,users:()=>_p});var yp={};N(yp,{getDevAppID:()=>bC,getProdAppID:()=>Fu});var gp=xr("app"),_o=xr("app_dev");function bC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(gp);e.shift();let r=e.join(gp);return`${_o}${r}`}function Fu(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`${gp}${r}`}var Ep={};N(Ep,{isAppAction:()=>vC,isRowAction:()=>DC,isWebhookAction:()=>CC});function DC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function CC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function vC(t){return t.definition.trigger?.stepId==="APP"}var _p={};N(_p,{canCreateApps:()=>NC,containsUserID:()=>kC,getGlobalUserID:()=>FC,getUserAppGroups:()=>BC,getUserGroups:()=>Sp,hasAdminPermissions:()=>Ap,hasAppBuilderPermissions:()=>Gu,hasAppCreatorPermissions:()=>bT,hasBuilderPermissions:()=>UC,hasCreatorPermissions:()=>$u,isAdmin:()=>Bu,isAdminOrBuilder:()=>PC,isAdminOrGlobalBuilder:()=>LC,isBuilder:()=>Tp,isCreator:()=>MC,isGlobalBuilder:()=>ku,userAppAccessList:()=>GC});var kr=W(require("lodash/fp"));function Tp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Fu(e))):!1}function ku(t){return Tp(t)&&!Gu(t)||Bu(t)}function NC(t){return ku(t)||$u(t)}function Bu(t){return t?Ap(t):!1}function PC(t,e){return Tp(t,e)||Bu(t)}function LC(t){return ku(t)||Bu(t)}function Gu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function bT(t){return t?kr.flow(kr.get("roles"),kr.values,kr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function UC(t){return t?t.builder?.global||Gu(t)||$u(t):!1}function Ap(t){return t?!!t.admin?.global:!1}function $u(t){return t?!!t.builder?.creator:!1}function MC(t){return t?ku(t)||Ap(t)||$u(t)||Gu(t)||bT(t):!1}function FC(t){if(typeof t!="string")return t;let e=`ro${D}ta_users${D}`;return t.startsWith(e)?t.split(e)[1]:t}function kC(t){return typeof t!="string"?!1:t.includes(`us${D}`)}function Sp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function BC(t,e,r){let n=Fu(t);return Sp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function GC(t,e){let n=Sp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ip={};N(Ip,{findInSettings:()=>$C});function $C(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 $j={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},Vj={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},qj={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 zj={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 eH={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 nH={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 oH={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 cH={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 pH={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 hH={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 EH={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 SH={name:"API Request",tagline:"Execute a REST request",icon:"GlobeGrid",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,new:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},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 OH={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 wH={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 XC={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},CH={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(Pl),pretty:Object.values(XC)},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 PH={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 MH={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 BH={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(Ll)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var DT=(i=>(i.GPT_4O_MINI="gpt-4o-mini",i.GPT_4O="gpt-4o",i.GPT_4="gpt-4",i.GPT_35_TURBO="gpt-3.5-turbo",i))(DT||{}),VH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,stepId:"OPENAI",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"string",title:"Prompt"},model:{type:"string",title:"Model",enum:Object.values(DT)}},required:["prompt","model"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was output"}},required:["success","response"]}}};var CT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(CT||{}),QH={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(CT),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 ov={ascending:"Ascending",descending:"Descending"},KH={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(Dn),pretty:Object.values(ov)},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 zH={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:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},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 eK={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 nK={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 oK={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 cK={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 pK={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 hK={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var EK={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},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 SK={name:"Translate",tagline:"Translate text to a different language",icon:"GlobeGrid",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var vT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(vT||{}),OK={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(vT)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var wK={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(Cl),pretty:Object.values(Gh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var CK={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(vl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Nl),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var Sv={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var Iv={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 xv={name:"Row Deleted",event:"row:delete",icon:"TableRowRemoveCenter",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var wv={name:"Row Created",event:"row:save",icon:"TableRowAddBottom",tagline:"Row is added to {{inputs.enriched.table.name}}",description:"Fired when a row is added to your database",stepId:"ROW_SAVED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"},filters:{type:"object",customType:"trigger_filter",title:"Filtering"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The new row that was created"},id:{type:"string",description:"Row ID - can be used for updating"},revision:{type:"string",description:"Revision of row"}},required:["row","id"]}},type:"TRIGGER"};var 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 vv={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 Pv={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 Vu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Vu||{}),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"]},Te={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"),qu=xr("app_dev"),yt=qu,Op="internal",xp="budibase",Ht="_design/sqlite",Rp="ta_bb_jobs",wp="ta_bb_inventory",bp="ta_bb_expenses",Dp="ta_bb_employee",Wu=(r=>(r[r.SQLITE=Ht]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Wu||{});var Qu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Qu||{}),Yn=(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))(Yn||{}),Cp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Cp||{}),vp=(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))(vp||{}),NT=new Date(-2147483647e3),ju=new Date(2147483647e3),Ae="default";var Ia={};N(Ia,{CacheKey:()=>Ce,TTL:()=>ni,app:()=>jo,bustCache:()=>ts,destroy:()=>Vo,docWritethrough:()=>Bm,generic:()=>qo,get:()=>ii,invite:()=>sm,keys:()=>cc,passwordReset:()=>Fm,store:()=>cr,user:()=>nn,withCache:()=>Qr,withCacheWithDynamicTTL:()=>oA,writethrough:()=>Mm});var qo={};N(qo,{CacheKey:()=>Ce,TTL:()=>ni,bustCache:()=>ts,destroy:()=>Vo,get:()=>ii,keys:()=>cc,store:()=>cr,withCache:()=>Qr,withCacheWithDynamicTTL:()=>oA});var Se={};N(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>vo,doInAppContext:()=>_N,doInAppMigrationContext:()=>ON,doInAutomationContext:()=>yN,doInContext:()=>Zp,doInEnvironmentContext:()=>RN,doInFeatureFlagOverrideContext:()=>of,doInIPContext:()=>tf,doInIdentityContext:()=>Oo,doInLicenseContext:()=>TN,doInScimContext:()=>wN,doInSelfHostTenantUsingCloud:()=>EN,doInTenant:()=>qe,ensureSnippetContext:()=>rA,getAppDB:()=>Xi,getAppId:()=>Le,getAuditLogDBName:()=>XT,getAuditLogsDB:()=>DN,getAutomationId:()=>Xp,getCurrentContext:()=>zn,getDevAppDB:()=>vN,getEnvironmentVariables:()=>bN,getFeatureFlagOverrides:()=>sf,getFeatureFlags:()=>rf,getGlobalDB:()=>oe,getGlobalDBName:()=>ur,getIP:()=>ef,getIdentity:()=>ar,getLicense:()=>AN,getPlatformURL:()=>zp,getProdAppDB:()=>CN,getProdAppId:()=>xN,getScimDBName:()=>fN,getSelfHostCloudDB:()=>SN,getTableForView:()=>NN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>j,identity:()=>Io,isMultiTenant:()=>Vr,isScim:()=>Pt,isSelfHostUsingCloud:()=>eA,isTenancyEnabled:()=>hN,isTenantIdSet:()=>mN,setFeatureFlags:()=>nf,setTableForView:()=>PN});var Io={};N(Io,{doInAccountContext:()=>Fv,doInIdentityContext:()=>Lp,doInUserContext:()=>Up,getAccountUserId:()=>PT,getIdentity:()=>Pp});function Pp(){return ar()}function Lp(t,e){return Oo(t,e)}function Up(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Lp(n,r)}function Fv(t,e){let r=PT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Lp(i,e)}function PT(t){let e;return $a(t)?e=t.budibaseUserId:e=t.accountId,e}var Yu=require("fs");var MT=require("lodash"),Mp=require("crypto"),xo=require("path"),kv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,xo.resolve)((0,xo.join)(__dirname,"..","..","..")),LT=!1;!LT&&Ku()&&!Fp()&&(require("dotenv").config({path:(0,xo.join)(kv,".env")}),LT=!0);function Fp(){return FT()}function FT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function Ku(){return process.env.NODE_ENV!=="production"}function Bv(t){if(t)return parseInt(t)}var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},UT=!!parseInt(process.env.SELF_HOSTED||"");function Gv(){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 Vv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,Yu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,Yu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Ku()&&!Fp())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 qv(){return Ct.SERVICE_TYPE==="worker"}function Wv(){return Ct.SERVICE_TYPE==="apps"}function Qv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}function jv(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}var Ct={isTest:Fp,isJest:FT,isDev:Ku,isWorker:qv,isApps:Wv,isQA:Qv,isProd:()=>!Ku(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Mp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Mp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Gv(),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:UT,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:jv(),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:UT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Vv(),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:Bv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,MT.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 kT(t,e){let r=Ro(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var BT=["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 GT=require("async_hooks"),we=class t{static{this.storage=new GT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var kp="No app provided";function Gr(t){if(!t)throw kp;return t.startsWith(yt)}function Hv(t){if(!t)throw kp;return t.startsWith(gt)&&!Gr(t)}function wo(t){if(!t)throw kp;return Gr(t.appId)}function Ju(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var Kv=Ju;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 Yv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Bp(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:Bp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Bp=(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 f=l.split(":");r=f[0],n=f.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var zT=W(require("@budibase/nano"));var $T=W(require("node-fetch"));function zu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function VT(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await bo({url:s,cookie:i,method:e,body:r})}async function bo({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,$T.default)(zu(encodeURI(t)),i)}async function Zu(t,e="GET",r){let n=await VT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Jn=W(require("pouchdb"));var qT,WT=!1,Gp=(t={})=>{let{url:e,cookie:r}=vt(),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 Xu(t){qT=Gp(t),WT=!0}var zv=()=>{if(!WT)throw new Error("init has not been called")};function Et(t,e){zv();let r=new qT(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 Do(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var QT=require("uuid");function me(){return(0,QT.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 Kp={};N(Kp,{breakExternalTableId:()=>qp,breakRowIdField:()=>lN,buildExternalTableId:()=>iN,convertRowId:()=>cN,encodeTableId:()=>sN,encodeViewId:()=>oN,extractDate:()=>Qp,generateRowIdField:()=>aN,getNativeSql:()=>Ji,isExternalTable:()=>Vp,isExternalTableID:()=>ec,isInternalTableID:()=>nN,isRowId:()=>uN,isValidFilter:()=>rc,isValidISODateString:()=>tc,isValidISODateStringWithoutTimezone:()=>Wp,isValidTime:()=>jp,sqlLog:()=>Co,validateManyToMany:()=>Hp});var $p=`${D}${D}`,HT=/^\[.*]$/g,Zv=encodeURIComponent(" "),Xv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,eN=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,tN=/(\d{4}-\d{2}-\d{2})/,rN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ec(t){return t.startsWith("datasource"+D)}function nN(t){return!ec(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 Vp(t){return t?.sourceId&&t.sourceId.includes("datasource"+D)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&ec(t._id))}function iN(t,e){return`${t}${$p}${encodeURIComponent(e)}`}function sN(t){return ec(t)?encodeURIComponent(t):t}function oN(t){return encodeURIComponent(t)}function qp(t){let e=t.split($p),r=e.shift(),n=e.join($p);if(n.includes(Zv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function aN(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 uN(t){return Array.isArray(t)||typeof t=="string"&&t.match(HT)!=null}function cN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(HT)!=null?t.substring(1,t.length-1):t}function lN(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 tc(t){let e=t.trim();if(!Xv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Wp(t){let e=t.trim();if(!eN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Qp(t){let e=t.match(tN);if(e)return e[0]}function rc(t){return t!=null&&t!==""}function jp(t){return rN.test(t)}function Co(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function dN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Hp(t){if(dN(t))return t}var KT="Database does not exist.";function YT(t){return(0,zT.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 pN(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=YT(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=YT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await bo({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===KT)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(Fh(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=me()),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===KT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=zu(`${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 bo(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}/${Ht}`;return Co("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(Ht)){let e=await this.get(Ht);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 Yp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Zu(e)}async function Jp(t,e){let r=await Zu(`${t}/_find`,"POST",e);return{rows:r.docs,bookmark:r.bookmark}}var ZT=null;function ur(t){return t||(t=j()),vo(t)}function XT(t){return t||(t=j()),t===Ae?Te.AUDIT_LOGS.name:`${t}${D}${Te.AUDIT_LOGS.name}`}function fN(t){return t||(t=j()),t===Ae?Te.SCIM_LOGS.name:`${t}${D}${Te.SCIM_LOGS.name}`}function vo(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${D}${Te.GLOBAL.name}`}function zp(){return h.PLATFORM_URL}function Vr(){return!!h.MULTI_TENANCY}function mN(){return!!we.get()?.tenantId}function hN(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!Vr())return Ae;let e=t.split(D),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function gN(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Nt(t,e){IN();let r=gN(t);return we.run(r,e)}async function yN(t){return await rA(),await Nt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Zp(t,e){let r=Zi(t);return Nt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Ae),Nt(t?{tenantId:t}:{},e)}async function EN(t,e){return Nt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function TN(t,e){return Nt({license:t},e)}function AN(){return we.get()?.license}function eA(){return!!we.get()?.isSelfHostUsingCloud}function SN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return Ve(Te.SELF_HOST_CLOUD.name)}async function _N(t,e){return tA(t,e)}async function tA(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 IN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function ON(t,e){return tA(t,e,{isMigrating:!0})}function ar(){try{return we.get()?.identity}catch{}}function j(){if(!Vr())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Xp(){return we.get()?.automationId}function Le(){let e=we.get()?.appId;return!e&&h.isTest()&&ZT?ZT:e}function ef(){return we.get()?.ip}var xN=()=>{let t=Le();if(!t)throw new Error("Could not get appId");return at(t)};function RN(t,e){if(!t)throw new Error("Must supply environment variables.");return Nt({environmentVariables:t},e)}function wN(t){return Nt({isScim:!0},t)}function tf(t,e){return Nt({ip:t},e)}async function rA(){let t=zn();if(!t||t.snippets)return;let e,r=Xi();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function bN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function oe(){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(vo(t?.tenantId))}function DN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(XT())}function Xi(t){let e=Le();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(eA())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=Le();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function vN(t){let e=Le();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Ju(e),t)}function Pt(){return!!we.get()?.isScim}function zn(){try{return we.get()}catch{return}}function rf(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function nf(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function sf(){return zn()?.featureFlagOverrides||{}}async function of(t,e){return await Nt({featureFlagOverrides:t},e)}function NN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function PN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Wr={};N(Wr,{getAppClient:()=>uc,getCacheClient:()=>pf,getDocWritethroughClient:()=>kN,getInviteClient:()=>ei,getLockClient:()=>mf,getPasswordResetClient:()=>$o,getSessionClient:()=>qr,getSocketClient:()=>FN,getUserClient:()=>Go,getWritethroughClient:()=>ff,init:()=>Lt,shutdown:()=>sA});var ac=W(require("ioredis"));var sc={};N(sc,{Databases:()=>af,SEPARATOR:()=>es,SelectableDatabase:()=>nc,getRedisClusterOptions:()=>uf,getRedisConnectionDetails:()=>ic,getRedisOptions:()=>Zn,removeDbPrefix:()=>cf});var es="-",af=(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))(af||{}),nc=(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))(nc||{});function ic(){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 uf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zn(),tls:{}}}}function Zn(){let{host:t,password:e,port:r}=ic();return{connectTimeout:3e4,port:r,host:t,password:e}}function cf(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var oc=require("dd-trace"),iA=require("lodash"),nA;if(h.MOCK_REDIS)try{nA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function LN(t=0){return await oc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new nA(Zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=ic();r=new ac.Cluster([{host:n,port:i}],uf())}else r=new ac.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 UN(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:cf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function MN(t){return t.isCluster}var lf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await oc.tracer.trace("RedisWrapper.init",async n=>{let i=await LN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return oc.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;MN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await UN(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,iA.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=`
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 m={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,Vg.default)({args:m,value:l,path:s,sync:i,tests:p,endEarly:c},f=>{if(f)return void n(f,l);(0,Vg.default)({tests:this.tests,args:m,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(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=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,mu.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,UR.default)(e).map(s=>new PR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new NR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,mu.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,mu.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,mu.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)}}};hu.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,LR.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 Hg=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=jg;Hs.default=void 0;var MR=FR(rr());function FR(t){return t&&t.__esModule?t:{default:t}}var pd=MR.default,kR=pd;Hs.default=kR;function jg(){return new pd}jg.prototype=pd.prototype});var Pi=H(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.default=void 0;var BR=t=>t==null;gu.default=BR});var Zg=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=zg;Ys.default=void 0;var GR=Jg(rr()),Kg=er(),Yg=Jg(Pi());function Jg(t){return t&&t.__esModule?t:{default:t}}function zg(){return new Ks}var Ks=class extends GR.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=Kg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,Yg.default)(r)||r===!0}})}isFalse(e=Kg.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,Yg.default)(r)||r===!1}})}};Ys.default=Ks;zg.prototype=Ks.prototype});var ty=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=ey;zs.default=void 0;var qt=er(),nr=Xg(Pi()),$R=Xg(rr());function Xg(t){return t&&t.__esModule?t:{default:t}}var VR=/^((([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,qR=/^((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,WR=/^(?:[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,QR=t=>(0,nr.default)(t)||t===t.trim(),jR={}.toString();function ey(){return new Js}var Js=class extends $R.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===jR?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nr.default)(n)||n.length===this.resolve(e)}})}min(e,r=qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,nr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||qt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=qt.string.email){return this.matches(VR,{name:"email",message:e,excludeEmptyString:!0})}url(e=qt.string.url){return this.matches(qR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=qt.string.uuid){return this.matches(WR,{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:QR})}lowercase(e=qt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=qt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};zs.default=Js;ey.prototype=Js.prototype});var iy=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=ny;Xs.default=void 0;var Nn=er(),Pn=ry(Pi()),HR=ry(rr());function ry(t){return t&&t.__esModule?t:{default:t}}var KR=t=>t!=+t;function ny(){return new Zs}var Zs=class extends HR.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"&&!KR(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;ny.prototype=Zs.prototype});var sy=H(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=JR;var YR=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function JR(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=YR.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(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=hd;eo.default=void 0;var zR=yu(sy()),oy=er(),ay=yu(Pi()),ZR=yu(vn()),XR=yu(rr());function yu(t){return t&&t.__esModule?t:{default:t}}var md=new Date(""),ew=t=>Object.prototype.toString.call(t)==="[object Date]";function hd(){return new Li}var Li=class extends XR.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,zR.default)(e),isNaN(e)?md:new Date(e))})})}_typeCheck(e){return ew(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(ZR.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)}})}};eo.default=Li;Li.INVALID_DATE=md;hd.prototype=Li.prototype;hd.INVALID_DATE=md});var ly=H((DQ,gd)=>{"use strict";gd.exports=function(t){return cy(tw(t),t)};gd.exports.array=cy;function cy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=rw(e),a=nw(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,m){if(m.has(c)){var p;try{p=", node was:"+JSON.stringify(c)}catch{p=""}throw new Error("Cyclic dependency"+p)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var f=o.get(c)||new Set;if(f=Array.from(f),l=f.length){m.add(c);do{var d=f[--l];u(d,a.get(d),m)}while(l);m.delete(c)}n[--r]=c}}}function tw(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 rw(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 nw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var dy=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=cw;var iw=Eu(require("lodash/has")),sw=Eu(ly()),ow=qs(),aw=Eu(vn()),uw=Eu(vi());function Eu(t){return t&&t.__esModule?t:{default:t}}function cw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,ow.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,iw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),aw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,uw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return sw.default.array(n,r).reverse()}});var fy=H(Ed=>{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.default=lw;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 lw(t){return(e,r)=>py(t,e)-py(t,r)}});var Ay=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Ty;ro.default=void 0;var my=Wt(require("lodash/has")),hy=Wt(require("lodash/snakeCase")),dw=Wt(require("lodash/camelCase")),pw=Wt(require("lodash/mapKeys")),fw=Wt(require("lodash/mapValues")),mw=qs(),gy=er(),hw=Wt(dy()),Ey=Wt(fy()),gw=Wt(cu()),yw=Wt(Dn()),Td=Wt(rr());function Wt(t){return t&&t.__esModule?t:{default:t}}function Ui(){return Ui=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},Ui.apply(this,arguments)}var yy=t=>Object.prototype.toString.call(t)==="[object Object]";function Ew(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Tw=(0,Ey.default)([]),to=class extends Td.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Tw,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(m=>this._nodes.indexOf(m)===-1)),u={},c=Ui({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let m of a){let p=s[m],f=(0,my.default)(i,m);if(p){let d,g=i[m];c.path=(r.path?`${r.path}.`:"")+m,p=p.resolve({value:g,context:r.context,parent:u});let E="spec"in p?p.spec:void 0,y=E?.strict;if(E?.strip){l=l||m in i;continue}d=!r.__validating||!y?p.cast(i[m],c):i[m],d!==void 0&&(u[m]=d)}else f&&!o&&(u[m]=i[m]);u[m]!==i[m]&&(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,m)=>{if(l){if(!yw.default.isError(l)||u)return void n(l,m);i.push(l)}if(!c||!yy(m)){n(i[0]||null,m);return}a=a||m;let p=this._nodes.map(f=>(d,g)=>{let E=f.indexOf(".")===-1?(r.path?`${r.path}.`:"")+f:`${r.path||""}["${f}"]`,y=this.fields[f];if(y&&"validate"in y){y.validate(m[f],Ui({},r,{path:E,from:o,strict:!0,parent:m,originalValue:a[f]}),g);return}g(null)});(0,gw.default)({sync:s,tests:p,value:m,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Ui({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),n=r.fields;for(let[i,s]of Object.entries(this.fields)){let o=n[i];o===void 0?n[i]=s:o instanceof Td.default&&s instanceof Td.default&&(n[i]=s.concat(o))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,Ey.default)(Object.keys(i)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);n._excludedEdges=n._excludedEdges.concat(s)}return n._nodes=(0,hw.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,mw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,my.default)(s,e)&&(o=Ui({},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=Ew(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,pw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(dw.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,fw.default)(this.fields,r=>r.describe()),e}};ro.default=to;function Ty(t){return new to(t)}Ty.prototype=to.prototype});var _y=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Sy;io.default=void 0;var Ad=Mi(Pi()),Aw=Mi(vi()),Sw=Mi(Vs()),Sd=er(),_w=Mi(cu()),Iw=Mi(Dn()),Ow=Mi(rr());function Mi(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=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},Tu.apply(this,arguments)}function Sy(t){return new no(t)}var no=class extends Ow.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,Tu({},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,m=(s=r.recursive)!=null?s:this.spec.recursive,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(f,d)=>{if(f){if(!Iw.default.isError(f)||l)return void n(f,d);o.push(f)}if(!m||!c||!this._typeCheck(d)){n(o[0]||null,d);return}p=p||d;let g=new Array(d.length);for(let E=0;E<d.length;E++){let y=d[E],S=`${r.path||""}[${E}]`,O=Tu({},r,{path:S,strict:!0,parent:d,index:E,originalValue:p[E]});g[E]=(R,T)=>c.validate(y,O,T)}(0,_w.default)({sync:a,path:u,value:d,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,Aw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Sw.default)(e));return r.innerType=e,r}length(e,r=Sd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Ad.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Sd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ad.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Sd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ad.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};io.default=no;Sy.prototype=no.prototype});var Iy=H(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=ww;so.default=void 0;var xw=Rw(vi());function Rw(t){return t&&t.__esModule?t:{default:t}}function ww(t){return new Au(t)}var Au=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,xw.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},bw=Au;so.default=bw});var Oy=H(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.default=vw;var Dw=Cw(er());function Cw(t){return t&&t.__esModule?t:{default:t}}function vw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Dw.default[e][r]=t[e][r]})})}});var Od=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=kw;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return xy.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return xy.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return Id.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return Id.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return Ry.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return Ry.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return wy.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return wy.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return by.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return by.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return Dy.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return Dy.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return Cy.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return Cy.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return Nw.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Pw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return Lw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return Uw.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return vy.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Mw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return Fw.default}});var xy=Ln(Hg()),Id=Ln(Zg()),Ry=Ln(ty()),wy=Ln(iy()),by=Ln(uy()),Dy=Ln(Ay()),Cy=Ln(_y()),Nw=vn(),Pw=Iy(),Lw=oo(Dn()),Uw=oo(ld()),vy=oo(vi()),Mw=oo(Oy()),Fw=oo(rr());function oo(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 kw(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(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});var xd=wd();Rd.default=()=>{(0,xd.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,xd.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,xd.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 wd=H(Pe=>{"use strict";var Bw=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]}),Gw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),$w=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)&&Bw(e,t,r);return Gw(e,t),e},Vw=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 w=$w(Od());Od();var ao=Ot(),qw=Vw(Py());xt();var Un={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Ly=w.object({presetId:w.string().required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),minutes:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),hours:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfMonth:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),months:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),daysOfWeek:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required(),years:w.object({minValue:w.number().min(0).required(),maxValue:w.number().min(0).required(),lowerLimit:w.number().min(0),upperLimit:w.number().min(0)}).required()}).required(),Ww=t=>Un[t]?(0,ao.valid)(Un[t]):(0,ao.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Ww;var Qw=()=>Un;Pe.getOptionPresets=Qw;var jw=(t,e)=>{Un[t]=Ly.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=jw;var Hw=t=>{var e,r,n,i,s,o,a,u,c,l,m,p,f,d,g,E,y,S,O,R;try{(0,qw.default)();let T;if(t.preset)if(typeof t.preset=="string"){if(!Un[t.preset])return(0,ao.err)([`Option preset ${t.preset} does not exist.`]);T=Un[t.preset]}else T=t.preset;else T=Un.default;let _=Object.assign(Object.assign({presetId:T.presetId,preset:T},{useSeconds:T.useSeconds,useYears:T.useYears,useAliases:(e=T.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:T.useBlankDay,allowOnlyOneBlankDayField:T.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=T.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=T.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=T.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=T.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=T.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=T.seconds.lowerLimit)!==null&&a!==void 0?a:T.seconds.minValue,upperLimit:(u=T.seconds.upperLimit)!==null&&u!==void 0?u:T.seconds.maxValue},minutes:{lowerLimit:(c=T.minutes.lowerLimit)!==null&&c!==void 0?c:T.minutes.minValue,upperLimit:(l=T.minutes.upperLimit)!==null&&l!==void 0?l:T.minutes.maxValue},hours:{lowerLimit:(m=T.hours.lowerLimit)!==null&&m!==void 0?m:T.hours.minValue,upperLimit:(p=T.hours.upperLimit)!==null&&p!==void 0?p:T.hours.maxValue},daysOfMonth:{lowerLimit:(f=T.daysOfMonth.lowerLimit)!==null&&f!==void 0?f:T.daysOfMonth.minValue,upperLimit:(d=T.daysOfMonth.upperLimit)!==null&&d!==void 0?d: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:(S=T.daysOfWeek.upperLimit)!==null&&S!==void 0?S:T.daysOfWeek.maxValue},years:{lowerLimit:(O=T.years.lowerLimit)!==null&&O!==void 0?O:T.years.minValue,upperLimit:(R=T.years.upperLimit)!==null&&R!==void 0?R:T.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:Ly.required(),useSeconds:w.boolean().required(),useYears:w.boolean().required(),useAliases:w.boolean(),useBlankDay:w.boolean().required(),allowOnlyOneBlankDayField:w.boolean().required(),mustHaveBlankDayField:w.boolean(),useLastDayOfMonth:w.boolean(),useLastDayOfWeek:w.boolean(),useNearestWeekday:w.boolean(),useNthWeekdayOfMonth:w.boolean(),seconds:w.object({lowerLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue),upperLimit:w.number().min(T.seconds.minValue).max(T.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue),upperLimit:w.number().min(T.minutes.minValue).max(T.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue),upperLimit:w.number().min(T.hours.minValue).max(T.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue),upperLimit:w.number().min(T.daysOfMonth.minValue).max(T.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(T.months.minValue).max(T.months.maxValue),upperLimit:w.number().min(T.months.minValue).max(T.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue),upperLimit:w.number().min(T.daysOfWeek.minValue).max(T.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(T.years.minValue).max(T.years.maxValue),upperLimit:w.number().min(T.years.minValue).max(T.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,ao.valid)(b)}catch(T){return(0,ao.err)(T.errors)}};Pe.validateOptions=Hw});var Vt=H((uo,Dd)=>{"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(),Kw=Fn(cg()),Yw=Fn(lg()),Jw=Fn(dg()),zw=Fn(pg()),Zw=Fn(fg()),Xw=Fn(mg()),eb=Fn(hg()),tb=wd();xt();var rb=(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)},bd=(t,e={})=>{let r=(0,tb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=rb(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,Kw.default)(s,n)),o.push((0,Yw.default)(s,n)),o.push((0,Jw.default)(s,n)),o.push((0,zw.default)(s,n)),o.push((0,Zw.default)(s,n)),o.push((0,Xw.default)(s,n)),n.useYears&&o.push((0,eb.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=bd;Dd.exports=bd;Dd.exports.default=bd});var iT=H(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var sr=class extends Error{},kd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Bd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Gd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Gn=class extends sr{},wu=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends sr{},Qt=class extends sr{constructor(){super("Zone is an abstract class")}},C="numeric",Dt="short",nt="long",bu={year:C,month:C,day:C},oE={year:C,month:Dt,day:C},nb={year:C,month:Dt,day:C,weekday:Dt},aE={year:C,month:nt,day:C},uE={year:C,month:nt,day:C,weekday:nt},cE={hour:C,minute:C},lE={hour:C,minute:C,second:C},dE={hour:C,minute:C,second:C,timeZoneName:Dt},pE={hour:C,minute:C,second:C,timeZoneName:nt},fE={hour:C,minute:C,hourCycle:"h23"},mE={hour:C,minute:C,second:C,hourCycle:"h23"},hE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Dt},gE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:nt},yE={year:C,month:C,day:C,hour:C,minute:C},EE={year:C,month:C,day:C,hour:C,minute:C,second:C},TE={year:C,month:Dt,day:C,hour:C,minute:C},AE={year:C,month:Dt,day:C,hour:C,minute:C,second:C},ib={year:C,month:Dt,day:C,weekday:Dt,hour:C,minute:C},SE={year:C,month:nt,day:C,hour:C,minute:C,timeZoneName:Dt},_E={year:C,month:nt,day:C,hour:C,minute:C,second:C,timeZoneName:Dt},IE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,timeZoneName:nt},OE={year:C,month:nt,day:C,weekday:nt,hour:C,minute:C,second:C,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}},Cd=null,go=class t extends Lr{static get instance(){return Cd===null&&(Cd=new t),Cd}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 ho(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},xu={};function sb(t){return xu[t]||(xu[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"})),xu[t]}var ob={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ab(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 ub(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=ob[s];s==="era"?n[a]=o:oe(a)||(n[a]=parseInt(o,10))}return n}var Su={},or=class t extends Lr{static create(e){return Su[e]||(Su[e]=new t(e)),Su[e]}static resetCache(){Su={},xu={}}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 ho(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=sb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?ub(n,r):ab(n,r);a==="BC"&&(i=-Math.abs(i)+1);let p=Zd({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),f=+r,d=f%1e3;return f-=d>=0?d:1e3+d,(p-f)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Uy={};function cb(t,e={}){let r=JSON.stringify([t,e]),n=Uy[r];return n||(n=new Intl.ListFormat(t,e),Uy[r]=n),n}var $d={};function Vd(t,e={}){let r=JSON.stringify([t,e]),n=$d[r];return n||(n=new Intl.DateTimeFormat(t,e),$d[r]=n),n}var qd={};function lb(t,e={}){let r=JSON.stringify([t,e]),n=qd[r];return n||(n=new Intl.NumberFormat(t,e),qd[r]=n),n}var Wd={};function db(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Wd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Wd[i]=s),s}var fo=null;function pb(){return fo||(fo=new Intl.DateTimeFormat().resolvedOptions().locale,fo)}function fb(t){let e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));let r=t.indexOf("-u-");if(r===-1)return[t];{let n,i;try{n=Vd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Vd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function mb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function hb(t){let e=[];for(let r=1;r<=12;r++){let n=Ie.utc(2016,r,1);e.push(t(n))}return e}function gb(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 _u(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function yb(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=lb(e,a)}}format(e){if(this.inf){let r=this.floor?Math.floor(e):e;return this.inf.format(r)}else{let r=this.floor?Math.floor(e):zd(e,3);return Re(r,this.padTo)}}},jd=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: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=Vd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},Hd=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&xE()&&(this.rtf=db(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Pb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},_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||Ee.defaultLocale,o=s||(i?"en-US":pb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){fo=null,$d={},qd={},Wd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=fb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=mb(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=yb(this)),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),r=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&r?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:t.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1,n=!0){return _u(this,e,n,DE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=hb(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return _u(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]=gb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return _u(this,void 0,e,()=>PE,()=>{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 _u(this,e,r,LE,()=>{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 Qd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new jd(e,this.intl,r)}relFormatter(e={}){return new Hd(this.intl,this.isEnglish(),e)}listFormatter(e={}){return cb(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}},vd=null,it=class t extends Lr{static get utcInstance(){return vd===null&&(vd=new t(0)),vd}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(Lu(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}},Du=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 Pr(t,e){if(oe(t)||t===null)return e;if(t instanceof Lr)return t;if(Eb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?go.instance:r==="utc"||r==="gmt"?it.utcInstance:it.parseSpecifier(r)||or.create(t)}else return Vn(t)?it.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Du(t)}var My=()=>Date.now(),Fy="system",ky=null,By=null,Gy=null,$y=60,Vy,Ee=class{static get now(){return My}static set now(e){My=e}static set defaultZone(e){Fy=e}static get defaultZone(){return Pr(Fy,go.instance)}static get defaultLocale(){return ky}static set defaultLocale(e){ky=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(){_e.resetCache(),or.resetCache()}};function oe(t){return typeof t>"u"}function Vn(t){return typeof t=="number"}function Pu(t){return typeof t=="number"&&t%1===0}function Eb(t){return typeof t=="string"}function Tb(t){return Object.prototype.toString.call(t)==="[object Date]"}function xE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Ab(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 Sb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Gi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return Pu(t)&&t>=e&&t<=r}function _b(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 Nr(t){if(!(oe(t)||t===null||t===""))return parseInt(t,10)}function kn(t){if(!(oe(t)||t===null||t===""))return parseFloat(t)}function Jd(t){if(!(oe(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function zd(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 Cu(t,e){let r=_b(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 Zd(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(e.getUTCFullYear()-1900)),+e}function vu(t){let e=(t+Math.floor(t/4)-Math.floor(t/100)+Math.floor(t/400))%7,r=t-1,n=(r+Math.floor(r/4)-Math.floor(r/100)+Math.floor(r/400))%7;return e===4||n===3?53:52}function Kd(t){return t>99?t:t>Ee.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 Lu(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 Ke(`Invalid unit value ${t}`);return e}function Nu(t,e){let r={};for(let n in t)if(Gi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=wE(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 Uu(t){return Sb(t,["hour","minute","second","millisecond"])}var Ib=["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"],Ob=["J","F","M","A","M","J","J","A","S","O","N","D"];function DE(t){switch(t){case"narrow":return[...Ob];case"short":return[...bE];case"long":return[...Ib];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"],xb=["M","T","W","T","F","S","S"];function NE(t){switch(t){case"narrow":return[...xb];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"],Rb=["Before Christ","Anno Domini"],wb=["BC","AD"],bb=["B","A"];function LE(t){switch(t){case"narrow":return[...bb];case"short":return[...wb];case"long":return[...Rb];default:return null}}function Db(t){return PE[t.hour<12?0:1]}function Cb(t,e){return NE(e)[t.weekday-1]}function vb(t,e){return DE(e)[t.month-1]}function Nb(t,e){return LE(e)[t.year<0?0:1]}function Pb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let m=t==="days";switch(e){case 1:return m?"tomorrow":`next ${i[t][0]}`;case-1:return m?"yesterday":`last ${i[t][0]}`;case 0:return m?"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 Lb={D:bu,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 Lb[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=(f,d)=>this.loc.extract(e,f,d),o=f=>e.isOffsetFixed&&e.offset===0&&f.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,f.format):"",a=()=>n?Db(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(f,d)=>n?vb(e,f):s(d?{month:f}:{month:f,day:"numeric"},"month"),c=(f,d)=>n?Cb(e,f):s(d?{weekday:f}:{weekday:f,month:"long",day:"numeric"},"weekday"),l=f=>{let d=t.macroTokenToFormatOpts(f);return d?this.formatWithSystemDefault(e,d):f},m=f=>n?Nb(e,f):s({era:f},"era"),p=f=>{switch(f){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return m("short");case"GG":return m("long");case"GGGGG":return m("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(f)}};return Wy(t.parseFormat(r),p)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return Wy(s,i(a))}},rt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},UE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function $i(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Vi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function qi(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}function ME(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Nr(e[r+i]);return[n,null,r+i]}}var FE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Ub=`(?:${FE.source}?(?:\\[(${UE.source})\\])?)?`,Xd=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,kE=RegExp(`${Xd.source}${Ub}`),ep=RegExp(`(?:T${kE.source})?`),Mb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Fb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,kb=/(\d{4})-?(\d{3})/,Bb=ME("weekYear","weekNumber","weekDay"),Gb=ME("year","ordinal"),$b=/(\d{4})-(\d\d)-(\d\d)/,BE=RegExp(`${Xd.source} ?(?:${FE.source}|(${UE.source}))?`),Vb=RegExp(`(?: ${BE.source})?`);function Bi(t,e,r){let n=t[e];return oe(n)?r:Nr(n)}function qb(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:Jd(t[e+3])},null,e+4]}function Eo(t,e){let r=!t[e]&&!t[e+1],n=Lu(t[e+1],t[e+2]),i=r?null:it.instance(n);return[{},i,e+3]}function To(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var Wb=RegExp(`^T?${Xd.source}$`),Qb=/^-?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 jb(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",m=u&&u[0]==="-",p=(f,d=!1)=>f!==void 0&&(d||f&&l)?-f:f;return[{years:p(kn(r)),months:p(kn(n)),weeks:p(kn(i)),days:p(kn(s)),hours:p(kn(o)),minutes:p(kn(a)),seconds:p(kn(u),u==="-0"),milliseconds:p(Jd(c),m)}]}var Hb={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 tp(t,e,r,n,i,s,o){let a={year:e.length===2?Kd(Nr(e)):Nr(e),month:bE.indexOf(r)+1,day:Nr(n),hour:Nr(i),minute:Nr(s)};return o&&(a.second=Nr(o)),t&&(a.weekday=t.length>3?CE.indexOf(t)+1:vE.indexOf(t)+1),a}var Kb=/^(?:(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 Yb(t){let[,e,r,n,i,s,o,a,u,c,l,m]=t,p=tp(e,i,n,r,s,o,a),f;return u?f=Hb[u]:c?f=0:f=Lu(l,m),[p,new it(f)]}function Jb(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var zb=/^(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$/,Zb=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Xb=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Qy(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,i,n,r,s,o,a),it.utcInstance]}function eD(t){let[,e,r,n,i,s,o,a]=t;return[tp(e,a,r,n,i,s,o),it.utcInstance]}var tD=$i(Mb,ep),rD=$i(Fb,ep),nD=$i(kb,ep),iD=$i(kE),GE=Vi(qb,Wi,Eo,To),sD=Vi(Bb,Wi,Eo,To),oD=Vi(Gb,Wi,Eo,To),aD=Vi(Wi,Eo,To);function uD(t){return qi(t,[tD,GE],[rD,sD],[nD,oD],[iD,aD])}function cD(t){return qi(Jb(t),[Kb,Yb])}function lD(t){return qi(t,[zb,Qy],[Zb,Qy],[Xb,eD])}function dD(t){return qi(t,[Qb,jb])}var pD=Vi(Wi);function fD(t){return qi(t,[Wb,pD])}var mD=$i($b,Vb),hD=$i(BE),gD=Vi(Wi,Eo,To);function yD(t){return qi(t,[mD,GE],[hD,gD])}var ED="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}},TD={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},mt=146097/400,Fi=146097/4800,AD={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},...$E},Bn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],SD=Bn.slice(0).reverse();function vr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new De(n)}function _D(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?_D(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function ID(t,e){SD.reduce((r,n)=>oe(e[n])?r:(r&&VE(t,e,r,e,n),n),null)}function OD(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?AD:TD;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:Nu(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]=dD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=fD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new Ke("need to specify a reason the Duration is invalid");let n=e instanceof rt?e:new rt(e,r);if(Ee.throwOnInvalid)throw new Gd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new wu(e);return r}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,r={}){let n={...r,floor:r.round!==!1&&r.floor!==!1};return this.isValid?tt.create(this.loc,n).formatDurationFromString(this,e):ED}toHuman(e={}){let r=Bn.map(n=>{let i=this.values[n];return oe(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+=zd(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 vr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=wE(e(this.values[n],n));return vr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Nu(e,t.normalizeUnit)};return vr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return vr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return ID(this.matrix,e),vr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=OD(this.normalize().shiftToAll().toObject());return vr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of 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)&&VE(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 vr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return vr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Bn)if(!r(this.values[n],e.values[n]))return!1;return!0}},ki="Invalid Interval";function xD(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(Ee.throwOnInvalid)throw new Bd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=po(e),i=po(r),s=xD(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=bu,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=Ee.defaultZone){let r=Ie.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 Pr(e,Ee.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: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 RD(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 wD(t,e,r,n){let[i,s,o,a]=RD(t,e,r),u=e-i,c=r.filter(m=>["hours","minutes","seconds","milliseconds"].indexOf(m)>=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 rp={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]},bD=rp.hanidec.replace(/[\[|\]]/g,"").split("");function DD(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(rp.hanidec)!==-1)e+=bD.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 wt({numberingSystem:t},e=""){return new RegExp(`${rp[t||"latn"]}${e}`)}var CD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(DD(r))}}var vD=String.fromCharCode(160),qE=`[ ${vD}]`,WE=new RegExp(qE,"g");function ND(t){return t.replace(/\./g,"\\.?").replace(WE,qE)}function Ky(t){return t.replace(/\./g,"").replace(WE," ").toLowerCase()}function bt(t,e){return t===null?null:{regex:RegExp(t.map(ND).join("|")),deser:([r])=>t.findIndex(n=>Ky(r)===Ky(n))+e}}function Yy(t,e){return{regex:t,deser:([,r,n])=>Lu(r,n),groups:e}}function Nd(t){return{regex:t,deser:([e])=>e}}function PD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function LD(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}"),m=wt(e,"{2,4}"),p=wt(e,"{4,6}"),f=E=>({regex:RegExp(PD(E.val)),deser:([y])=>y,literal:!0}),g=(E=>{if(t.literal)return f(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 le(c);case"yy":return le(m,Kd);case"yyyy":return le(s);case"yyyyy":return le(p);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return bt(e.months("short",!0,!1),1);case"MMMM":return bt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return bt(e.months("short",!1,!1),1);case"LLLL":return bt(e.months("long",!1,!1),1);case"d":return le(a);case"dd":return le(n);case"o":return le(u);case"ooo":return le(i);case"HH":return le(n);case"H":return le(a);case"hh":return le(n);case"h":return le(a);case"mm":return le(n);case"m":return le(a);case"q":return le(a);case"qq":return le(n);case"s":return le(a);case"ss":return le(n);case"S":return le(u);case"SSS":return le(i);case"u":return Nd(l);case"uu":return Nd(a);case"uuu":return le(r);case"a":return bt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(m,Kd);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(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 Yy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return Yy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Nd(/[a-z_+-/]{1,256}?/i);default:return f(E)}})(t)||{invalidReason:CD};return g.token=t,g}var UD={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function MD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=UD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function FD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function kD(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 BD(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 oe(t.z)||(r=or.create(t.z)),oe(t.Z)||(r||(r=new it(t.Z)),n=t.Z),oe(t.q)||(t.M=(t.q-1)*3+1),oe(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),oe(t.u)||(t.S=Jd(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Pd=null;function GD(){return Pd||(Pd=Ie.fromMillis(1555555555555)),Pd}function $D(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=>$D(r,e)))}function jE(t,e,r){let n=QE(tt.parseFormat(r),t),i=n.map(o=>LD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=FD(i),u=RegExp(o,"i"),[c,l]=kD(e,u,a),[m,p,f]=l?BD(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:m,zone:p,specificOffset:f}}}function VD(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(GD()).map(i=>MD(i,t)):null}var KE=[0,31,59,90,120,151,181,212,243,273,304,334],YE=[0,31,60,91,121,152,182,213,244,274,305,335];function ht(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+(yo(t)?YE:KE)[e-1]}function ZE(t,e){let r=yo(t)?YE:KE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function Yd(t){let{year:e,month:r,day:n}=t,i=zE(e,r,n),s=JE(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=vu(a)):o>vu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Uu(t)}}function Jy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=JE(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}=ZE(a,o);return{year:a,month:u,day:c,...Uu(t)}}function Ld(t){let{year:e,month:r,day:n}=t,i=zE(e,r,n);return{year:e,ordinal:i,...Uu(t)}}function zy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=ZE(e,r);return{year:e,month:n,day:i,...Uu(t)}}function qD(t){let e=Pu(t.weekYear),r=ir(t.weekNumber,1,vu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:ht("weekday",t.weekday):ht("week",t.week):ht("weekYear",t.weekYear)}function WD(t){let e=Pu(t.year),r=ir(t.ordinal,1,mo(t.year));return e?r?!1:ht("ordinal",t.ordinal):ht("year",t.year)}function XE(t){let e=Pu(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Cu(t.year,t.month));return e?r?n?!1:ht("day",t.day):ht("month",t.month):ht("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:ht("millisecond",i):ht("second",n):ht("minute",r):ht("hour",e)}var Ud="Invalid DateTime",Zy=864e13;function Iu(t){return new rt("unsupported zone",`the zone "${t.name}" is not supported`)}function Md(t){return t.weekData===null&&(t.weekData=Yd(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 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 Ru(t,e,r){return tT(Zd(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,Cu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=Zd(s),[u,c]=tT(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 Ou(t,e,r=!0){return t.isValid?tt.create(_e.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Fd(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},QD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},jD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},nT=["year","month","day","hour","minute","second","millisecond"],HD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],KD=["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 wu(t);return e}function nE(t,e){let r=Pr(e.zone,Ee.defaultZone),n=_e.fromObject(e),i=Ee.now(),s,o;if(oe(t.year))s=i;else{for(let c of nT)oe(t[c])&&(t[c]=rT[c]);let a=XE(t)||eT(t);if(a)return Ie.invalid(a);let u=r.offset(i);[s,o]=Ru(t,u,r)}return new Ie({ts:s,zone:r,loc:n,o})}function iE(t,e,r){let n=oe(r.round)?!0:r.round,i=(o,a)=>(o=zd(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 Ie=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new rt("invalid input"):null)||(r.isValid?null:Iu(r));this.ts=oe(e.ts)?Ee.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||_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]=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=Tb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Pr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:_e.fromObject(r)}):t.invalid(Iu(i))}static fromMillis(e,r={}){if(Vn(e))return e<-Zy||e>Zy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Pr(r.zone,Ee.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:Pr(r.zone,Ee.defaultZone),loc:_e.fromObject(r)});throw new Ke("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Pr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(Iu(n));let i=Ee.now(),s=oe(r.specificOffset)?n.offset(i):r.specificOffset,o=Nu(e,rE),a=!oe(o.ordinal),u=!oe(o.year),c=!oe(o.month)||!oe(o.day),l=u||c,m=o.weekYear||o.weekNumber,p=_e.fromObject(r);if((l||a)&&m)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 f=m||o.weekday&&!l,d,g,E=Xy(i,s);f?(d=HD,g=QD,E=Yd(E)):a?(d=KD,g=jD,E=Ld(E)):(d=nT,g=rT);let y=!1;for(let b of d){let k=o[b];oe(k)?y?o[b]=g[b]:o[b]=E[b]:y=!0}let S=f?qD(o):a?WD(o):XE(o),O=S||eT(o);if(O)return t.invalid(O);let R=f?Jy(o):a?zy(o):o,[T,_]=Ru(R,s,n),B=new t({ts:T,zone:n,o:_,loc:p});return o.weekday&&l&&e.weekday!==B.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${B.toISO()}`):B}static fromISO(e,r={}){let[n,i]=uD(e);return lo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=cD(e);return lo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=lD(e);return lo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(oe(e)||oe(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]=VD(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]=yD(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(Ee.throwOnInvalid)throw new kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=HE(e,_e.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return QE(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?Md(this).weekYear:NaN}get weekNumber(){return this.isValid?Md(this).weekNumber:NaN}get weekday(){return this.isValid?Md(this).weekday:NaN}get ordinal(){return this.isValid?Ld(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 Cu(this.year,this.month)}get daysInYear(){return this.isValid?mo(this.year):NaN}get weeksInWeekYear(){return this.isValid?vu(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(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Pr(e,Ee.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]=Ru(o,s,e)}return co(this,{ts:i,zone:e})}else return t.invalid(Iu(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=Nu(e,rE),n=!oe(r.weekYear)||!oe(r.weekNumber)||!oe(r.weekday),i=!oe(r.ordinal),s=!oe(r.year),o=!oe(r.month)||!oe(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=Jy({...Yd(this.c),...r}):oe(r.ordinal)?(c={...this.toObject(),...r},oe(r.day)&&(c.day=Math.min(Cu(c.year,c.month),c.day))):c=zy({...Ld(this.c),...r});let[l,m]=Ru(c,this.o,this.zone);return co(this,{ts:l,o:m})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return co(this,eE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return co(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):Ud}toLocaleString(e=bu,r={}){return this.isValid?tt.create(this.loc.clone(r),e).formatDateTime(this):Ud}toLocaleParts(e={}){return this.isValid?tt.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:r=!1,suppressMilliseconds:n=!1,includeOffset:i=!0,extendedZone:s=!1}={}){if(!this.isValid)return null;let o=e==="extended",a=Fd(this,o);return a+="T",a+=tE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Fd(this,e==="extended"):null}toISOWeekDate(){return Ou(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+tE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Ou(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Ou(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Fd(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:r=!1,includeOffsetSpace:n=!0}={}){let i="HH:mm:ss.SSS";return(r||e)&&(n&&(i+=" "),r?i+="z":e&&(i+="ZZ")),Ou(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ud}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return De.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Ab(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=wD(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),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 Ke("min requires all arguments be DateTimes");return qy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("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=_e.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 bu}static get DATE_MED(){return oE}static get DATE_MED_WITH_WEEKDAY(){return nb}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 ib}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 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 YD="3.2.1";st.DateTime=Ie;st.Duration=De;st.FixedOffsetZone=it;st.IANAZone=or;st.Info=$n;st.Interval=qn;st.InvalidZone=Du;st.Settings=Ee;st.SystemZone=go;st.VERSION=YD;st.Zone=Lr});var oT=H((GQ,sT)=>{"use strict";var Wn=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=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))}sT.exports=z});var cT=H(($Q,uT)=>{"use strict";function Qn(t){return{start:t,count:1}}function aT(t,e){t.end=e,t.step=e-t.start,t.count=2}function np(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 JD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(np(e,r,Qn(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(Qn(r.start)),r=Qn(r.end),aT(r,i)):(np(e,r),r=Qn(i)):r=Qn(i)}return np(e,r),e}uT.exports=JD});var dT=H((VQ,lT)=>{"use strict";var zD=cT();function ZD(t,e,r){var n=zD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(p,f){var d=c.start+f;return(d-c.start)%c.step===0?d:null}).filter(function(p){return p!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}lT.exports=ZD});var mT=H((qQ,fT)=>{"use strict";var jn=oT(),XD=dT(),pT=1e4;function L(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=L._freezeFields(t)}L.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];L.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};L.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"]}];L.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];L.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}};L.parseDefaults=["0","*","*","*","*","*"];L.standardValidCharacters=/^[,*\d/-]+$/;L.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;L.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;L.validCharacters={second:L.standardValidCharacters,minute:L.standardValidCharacters,hour:L.standardValidCharacters,dayOfMonth:L.dayOfMonthValidCharacters,month:L.standardValidCharacters,dayOfWeek:L.dayOfWeekValidCharacters};L._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};L._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=L.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(!L.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(d){if(d instanceof Array)for(var g=0,E=d.length;g<E;g++){var y=d[g];if(L._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(L._isValidConstraintChar(n,d)){c.push(d);return}var S=+d;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+d+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var m=u.split(",");if(!m.every(function(d){return d.length>0}))throw new Error("Invalid list value format");if(m.length>1)for(var p=0,f=m.length;p<f;p++)l(o(m[p]));else l(o(u));return c.sort(L._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=[],m=u.split("-");if(m.length>1){if(m.length<2)return+u;if(!m[0].length){if(!m[1].length)throw new Error("Invalid range: "+u);return+u}var p=+m[0],f=+m[1];if(Number.isNaN(p)||Number.isNaN(f)||p<n.min||f>n.max)throw new Error("Constraint error, got range "+p+"-"+f+" expected range "+n.min+"-"+n.max);if(p>f)throw new Error("Invalid range: "+u);var d=+c;if(Number.isNaN(d)||d<=0)throw new Error("Constraint error, cannot repeat at every "+d+" time.");e==="dayOfWeek"&&f%7===0&&l.push(0);for(var g=p,E=f;g<=E;g++){var y=l.indexOf(g)!==-1;!y&&d>0&&d%c===0?(d=1,l.push(g)):d++}return l}return Number.isNaN(+u)?u:+u}return s(r)};L._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)};L._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=L.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(L._sortCompareFn)}};L._freezeFields=function(t){for(var e=0,r=L.map.length;e<r;++e){var n=L.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};L.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)}};L.prototype._findSchedule=function(e){function r(y,S){for(var O=0,R=S.length;O<R;O++)if(S[O]>=y)return S[O]===y;return S[0]===y}function n(y,S){if(S<6){if(y.getDate()<8&&S===1)return!0;var O=y.getDate()%7?1:0,R=y.getDate()-y.getDate()%7,T=Math.floor(R/7)+O;return T===S}return!1}function i(y){return y.length>0&&y.some(function(S){return typeof S=="string"&&S.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 m(y){return y.some(function(S){if(!i([S]))return!1;var O=Number.parseInt(S[0])%7;if(Number.isNaN(O))throw new Error("Invalid last weekday of the month expression: "+S);return o.getDay()===O&&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 p=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||o.isLastDayOfMonth());var f=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(f=f||m(this.fields.dayOfWeek));var d=this.fields.dayOfMonth.length>=L.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===L.constraints[5].max-L.constraints[5].min+1,E=o.getHours();if(!p&&(!f||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!d&&g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(d&&!g&&!f){this._applyTimezoneShift(o,s,"Day");continue}if(this._nthDayOfWeek>0&&!n(o,this._nthDayOfWeek)){this._applyTimezoneShift(o,s,"Day");continue}if(!r(o.getMonth()+1,this.fields.month)){this._applyTimezoneShift(o,s,"Month");continue}if(r(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 jn(o,this._tz),this._hasIterated=!0,o};L.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};L.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};L.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}};L.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}};L.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};L.prototype.reset=function(e){this._currentDate=new jn(e||this._options.currentDate)};L.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=L.map.length;n<i;++n){var s=L.map[n],o=this.fields[s],a=L.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:L.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(XD(o,a.min,a.max))}return r.join(" ")};L.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)),L.predefined[s]&&(s=L.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=L.map.length-u.length,l=0,m=L.map.length;l<m;++l){var p=L.map[l],f=u[u.length>m?l:l-c];if(l<c||!f)a.push(L._parseField(p,L.parseDefaults[l],L.constraints[l]));else{var d=p==="dayOfWeek"?S(f):f;a.push(L._parseField(p,d,L.constraints[l]))}}for(var g={},l=0,m=L.map.length;l<m;l++){var E=L.map[l];g[E]=a[l]}var y=L._handleMaxDaysInMonth(g);return g.dayOfMonth=y||g.dayOfMonth,new L(g,o);function S(O){var R=O.split("#");if(R.length>1){var T=+R[R.length-1];if(/,/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(O))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(R.length>2||Number.isNaN(T)||T<1||T>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=T,R[0]}return O}}return i(e,r)};L.fieldsToExpression=function(e,r){function n(p,f,d){if(!f)throw new Error("Validation error, Field "+p+" is missing");if(f.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,E=f.length;g<E;g++){var y=f[g];if(!L._isValidConstraintChar(d,y)&&(typeof y!="number"||Number.isNaN(y)||y<d.min||y>d.max))throw new Error("Constraint error, got value "+y+" expected range "+d.min+"-"+d.max)}}for(var i={},s=0,o=L.map.length;s<o;++s){var a=L.map[s],u=e[a];n(a,u,L.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(L._sortCompareFn).filter(function(p,f,d){return!f||p!==d[f-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var m=L._handleMaxDaysInMonth(i);return i.dayOfMonth=m||i.dayOfMonth,new L(i,r||{})};fT.exports=L});var gT=H((WQ,hT)=>{"use strict";var Mu=mT();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Mu.parse(e)};if(r.length>6)return{interval:Mu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return Mu.parse(e,r)};Ur.fieldsToExpression=function(e,r){return Mu.fieldsToExpression(e,r)};Ur.parseString=function(e){for(var r=e.split(`
5
+ `),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Ur._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Ur.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Ur.parseString(i.toString()))})};hT.exports=Ur});var Hk={};N(Hk,{APP_DEV:()=>Qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Wu,BUDIBASE_DATASOURCE_TYPE:()=>xp,BadRequestError:()=>Dc,BudibaseError:()=>ps,Config:()=>vp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>ju,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>Uf,EmailUnavailableError:()=>mr,FeatureDisabledError:()=>vc,GlobalRole:()=>Cp,HTTPError:()=>lt,Header:()=>Xe,InternalTable:()=>xr,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>vT,NotFoundError:()=>bc,RedisClient:()=>We,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UsageLimitError:()=>Cc,UserStatus:()=>Hu,ViewName:()=>kr,accounts:()=>li,auth:()=>hh,blacklist:()=>Th,cache:()=>Oa,configs:()=>tn,constants:()=>Np,context:()=>Se,db:()=>jr,docIds:()=>Of,docUpdates:()=>Sh,encryption:()=>ph,env:()=>h,errors:()=>Pc,events:()=>ys,features:()=>nh,getPublicError:()=>Nc,init:()=>jk,installation:()=>qc,locks:()=>ui,logging:()=>Rc,middleware:()=>mh,objectStore:()=>Jf,permissions:()=>eh,platform:()=>Xo,plugins:()=>yh,queue:()=>pm,redis:()=>Eh,roles:()=>Xm,security:()=>Dm,sessions:()=>Yc,setEnv:()=>Ro,sql:()=>Ch,tenancy:()=>Qk,timers:()=>$c,userUtils:()=>om,users:()=>Es,utils:()=>ss,withEnv:()=>FT});module.exports=BI(Hk);var tn={};N(tn,{analyticsEnabled:()=>Bc,generateConfigID:()=>el,getAIConfig:()=>sF,getConfig:()=>Bt,getDefaultGoogleConfig:()=>Bm,getGoogleConfig:()=>tl,getGoogleDatasourceConfig:()=>Vm,getOIDCConfig:()=>rF,getOIDCConfigById:()=>qm,getOIDCLogosDoc:()=>eF,getPlatformUrl:()=>Ca,getSCIMConfig:()=>iF,getSMTPConfig:()=>nF,getSMTPConfigDoc:()=>P_,getSettingsConfig:()=>$m,getSettingsConfigDoc:()=>Qc,save:()=>Z0});var GI=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],Nh=[...GI],Ph={"user:created":'User "{{ email }}" created{{#if viaScim}} via SCIM{{/if}}',"user:updated":'User "{{ email }}" updated{{#if viaScim}} via SCIM{{/if}}',"user:deleted":'User "{{ email }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user:admin:assigned":'User "{{ email }}" admin role assigned',"user:admin:removed":'User "{{ email }}" admin role removed',"user:builder:assigned":'User "{{ email }}" builder role assigned',"user:builder:removed":'User "{{ email }}" builder role removed',"user:invited":'User "{{ email }}" invited',"user:invite:accepted":'User "{{ email }}" accepted invite',"user:password:updated":'User "{{ email }}" password updated',"user:password:reset:requested":'User "{{ email }}" password reset requested',"user:password:reset":'User "{{ email }}" password reset',"user_group:created":'User group "{{ name }}" created{{#if viaScim}} via SCIM{{/if}}',"user_group:updated":'User group "{{ name }}" updated{{#if viaScim}} via SCIM{{/if}}',"user_group:deleted":'User group "{{ name }}" deleted{{#if viaScim}} via SCIM{{/if}}',"user_group:user_added":'User group "{{ name }}" {{ count }} users added{{#if viaScim}} via SCIM{{/if}}',"user_group:users_deleted":'User group "{{ name }}" {{ count }} users removed{{#if viaScim}} via SCIM{{/if}}',"user_group:permissions_edited":'User group "{{ name }}" permissions edited',"user:password:force:reset":void 0,"user_group:onboarding_added":void 0,"user:onboarding:complete":void 0,"user:data:collaboration":void 0,"email:smtp:created":"Email configuration created","email:smtp:updated":"Email configuration updated","ai:config:created":"AI configuration created","ai:config:updated":"AI configuration updated","auth:sso:created":"SSO configuration created","auth:sso:updated":"SSO configuration updated","auth:sso:activated":"SSO configuration activated","auth:sso:deactivated":"SSO configuration deactivated","auth:login":'User "{{ email }}" logged in',"auth:logout":'User "{{ email }}" logged out',"org:info:name:updated":"Organisation name updated","org:info:logo:updated":"Organisation logo updated","org:platformurl:updated":"Organisation platform URL updated","app:created":'App "{{ name }}" created',"app:updated":'App "{{ name }}" updated',"app:deleted":'App "{{ name }}" deleted',"app:duplicated":'App "{{ name }}" duplicated',"app:published":'App "{{ name }}" published',"app:unpublished":'App "{{ name }}" unpublished',"app:template:imported":'App "{{ name }}" template imported',"app:file:imported":'App "{{ name }}" file imported',"app:version:updated":'App "{{ name }}" version updated',"app:version:reverted":'App "{{ name }}" version reverted',"app:reverted":'App "{{ name }}" reverted',"app:exported":'App "{{ name }}" exported',"app:backup:restored":'App backup "{{ name }}" restored',"app:backup:triggered":'App backup "{{ name }}" triggered',"datasource:created":"Datasource created","datasource:updated":"Datasource updated","datasource:deleted":"Datasource deleted","query:created":"Query created","query:updated":"Query updated","query:deleted":"Query deleted","query:import":"Query import","queries:run":void 0,"query:previewed":void 0,"table:created":'Table "{{ name }}" created',"table:updated":'Table "{{ name }}" updated',"table:deleted":'Table "{{ name }}" deleted',"table:exported":'Table "{{ name }}" exported',"table:imported":'Table "{{ name }}" imported',"table:data:imported":"Data imported to table","rows:created":"Rows created","rows:imported":"Rows imported","automation:created":'Automation "{{ name }}" created',"automation:deleted":'Automation "{{ name }}" deleted',"automation:step:created":'Automation "{{ name }}" step added',"automation:step:deleted":'Automation "{{ name }}" step removed',"automation:tested":void 0,"automations:run":void 0,"automation:trigger:updated":void 0,"screen:created":'Screen "{{ name }}" created',"screen:deleted":'Screen "{{ name }}" deleted',"component:created":"Component created","component:deleted":"Component deleted","environment_variable:created":"Environment variable created","environment_variable:deleted":"Environment variable deleted","environment_variable:upgrade_panel_opened":void 0,"plugin:imported":"Plugin imported","plugin:deleted":"Plugin deleted","plugin:init":void 0,"action:automation_step:executed":void 0,"action:crud:executed":void 0,"action:ai_agent:executed":void 0,"role:created":void 0,"role:updated":void 0,"role:deleted":void 0,"role:assigned":void 0,"role:unassigned":void 0,"license:plan:changed":void 0,"license:activated":void 0,"license:payment:failed":void 0,"license:payment:recovered":void 0,"license:checkout:opened":void 0,"license:checkout:success":void 0,"license:portal:opened":void 0,"account:created":void 0,"account:deleted":void 0,"account:verified":void 0,"app:backfill:succeeded":void 0,"app:backfill:failed":void 0,"tenant:backfill:succeeded":void 0,"tenant:backfill:failed":void 0,"installation:backfill:succeeded":void 0,"installation:backfill:failed":void 0,"layout:created":void 0,"layout:deleted":void 0,"view:created":void 0,"view:updated":void 0,"view:deleted":void 0,"view:exported":void 0,"view:filter:created":void 0,"view:filter:updated":void 0,"view:filter:deleted":void 0,"view:calculation:created":void 0,"view:calculation:updated":void 0,"view:calculation:deleted":void 0,"view:join:created":void 0,"served:builder":void 0,"served:app":void 0,"served:app:preview":void 0,"analytics:opt:out":void 0,"analytics:opt:in":void 0,"installation:version:checked":void 0,"installation:version:upgraded":void 0,"installation:version:downgraded":void 0,"installation:firstStartup":void 0,"audit_log:filtered":void 0,"audit_log:downloaded":void 0,"row_action:created":void 0};var Rl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Rl||{}),wl=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(wl||{}),ka=(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))(ka||{});var bl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(bl||{});var $I=W(require("lodash")),Ir=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Ir||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),dn=(e=>(e.RANGE="range",e))(dn||{}),Ti=(r=>(r.AND="$and",r.OR="$or",r))(Ti||{});function Ba(t){return Object.values(Ti).includes(t)}function Lh(t){return Object.values(Ir).includes(t)}function Uh(t){return Object.values(Jt).includes(t)}function Ga(t){return Object.values(dn).includes(t)}var Ai=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Ai||{});var Mh=t=>typeof t=="object"&&t._id&&t._rev;var Os=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Os||{});var Fh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACE_APPS:!1,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var YB={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 $a=(m=>(m.APP="app",m.TABLE="table",m.USER="user",m.AUTOMATION="automation",m.WEBHOOK="webhook",m.BUILDER="builder",m.CREATOR="creator",m.GLOBAL_BUILDER="globalBuilder",m.QUERY="query",m.VIEW="view",m.LEGACY_VIEW="legacy_view",m))($a||{});var Va=t=>t.hosting==="cloud";var qa=t=>t.authType==="sso";var v="_",Ge="\uFFF0",Or=t=>`${t}${v}`,ye=(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.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.SCIM_LOG="scimlog",Q.ROW_ACTIONS="ra",Q.OAUTH2_CONFIG="oauth2",Q.OAUTH2_CONFIG_LOG="oauth2log",Q.AGENT_CHAT="agentchat",Q.AGENT_TOOL_SOURCE="agenttoolsource",Q.WORKSPACE_APP="workspace_app",Q))(ye||{});var xr=(e=>(e.USER_METADATA="ta_users",e))(xr||{}),Dl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Dl||{});var ee=(l=>(l.OBJECT="object",l.STRING="string",l.BOOLEAN="boolean",l.NUMBER="number",l.ARRAY="array",l.JSON="json",l.DATE="date",l.DATETIME="datetime",l.ATTACHMENT="attachment",l.LONGFORM="longform",l))(ee||{}),pe=(R=>(R.TABLE="table",R.ROW="row",R.ROWS="rows",R.WIDE="wide",R.QUERY="query",R.QUERY_PARAMS="queryParams",R.QUERY_LIMIT="queryLimit",R.LOOP_OPTION="loopOption",R.ITEM="item",R.CODE="code",R.FILTERS="filters",R.COLUMN="column",R.TRIGGER_SCHEMA="triggerSchema",R.CRON="cron",R.WEBHOOK_URL="webhookUrl",R.AUTOMATION="automation",R.AUTOMATION_FIELDS="automationFields",R.MULTI_ATTACHMENTS="multi_attachments",R.TRIGGER_FILTER="trigger_filter",R.CATEGORIES="categories",R))(pe||{}),_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 ue=(I=>(I.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",I.CREATE_ROW="CREATE_ROW",I.UPDATE_ROW="UPDATE_ROW",I.DELETE_ROW="DELETE_ROW",I.EXECUTE_BASH="EXECUTE_BASH",I.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",I.EXECUTE_SCRIPT="EXECUTE_SCRIPT",I.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",I.EXECUTE_QUERY="EXECUTE_QUERY",I.SERVER_LOG="SERVER_LOG",I.DELAY="DELAY",I.FILTER="FILTER",I.API_REQUEST="API_REQUEST",I.QUERY_ROWS="QUERY_ROWS",I.LOOP="LOOP",I.COLLECT="COLLECT",I.OPENAI="OPENAI",I.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",I.BRANCH="BRANCH",I.CLASSIFY_CONTENT="CLASSIFY_CONTENT",I.PROMPT_LLM="PROMPT_LLM",I.TRANSLATE="TRANSLATE",I.SUMMARISE="SUMMARISE",I.GENERATE_TEXT="GENERATE_TEXT",I.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",I.discord="discord",I.slack="slack",I.zapier="zapier",I.integromat="integromat",I.n8n="n8n",I))(ue||{}),kh=[...Object.values(ue),...Object.values(_t)];var Cl=(a=>(a.EMAIL="email",a.DOCUMENT="document",a.BLOG_POST="blog_post",a.CHAT_MESSAGE="chat_message",a.LETTER="letter",a.PROPOSAL="proposal",a.OTHER="other",a))(Cl||{}),Bh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},vl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(vl||{}),Nl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Nl||{});var Pl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Pl||{});var Ll=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Ll||{});var Ul="bb_internal";var Gh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Wa(t){return!!t.providerType}var Ml=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ml||{});var X$=Object.values(Ml);var iV=["rows","queries","automations"],sV=["queries","automations"];var ie;(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})(ie||(ie={}));var kl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(kl||(kl={}));var M=ie.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Rr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},x=ie.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"]),QI=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,ie.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 x.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ie.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${ie.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ie.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${ie.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.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}"`:ie.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.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 x.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 x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,ie.assertNever(t)}return{message:r}},qh=Ii;function jI(t){qh=t}function Qa(){return qh}var ja=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},HI=[];function P(t,e){let r=Qa(),n=ja({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===Ii?void 0:Ii].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),_i=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Bl=t=>t.status==="aborted",Gl=t=>t.status==="dirty",bs=t=>t.status==="valid",Ds=t=>typeof Promise<"u"&&t instanceof Promise;function Ha(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function 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 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}},$h=(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 Rr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Rr(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:Rr(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:Rr(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:Rr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ds(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:x.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 Xt.create(this,this._def)}promise(){return Dr.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}},KI=/^c[^\s-]{8,}$/i,YI=/^[0-9a-z]+$/,JI=/^[0-9A-HJKMNP-TV-Z]{26}$/,zI=/^[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,ZI=/^[a-z0-9_-]{21}$/i,XI=/^[-+]?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)?)??$/,eO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,tO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Fl,rO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,nO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,iO=/^([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])))",sO=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 oO(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 aO(t,e){return!!((e==="v4"||!e)&&rO.test(t)||(e==="v6"||!e)&&nO.test(t))}var wr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.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:x.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:x.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:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&P(i,{code:x.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")eO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Fl||(Fl=new RegExp(tO,"u")),Fl.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")zI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")ZI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")KI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")YI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")JI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ulid",code:x.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:x.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:x.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:x.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:x.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:x.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:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?sO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?oO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?XI.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?aO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?iO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):ie.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.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}};wr.create=t=>{var e;return new wr({checks:[],typeName:K.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function uO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var fn=class t extends X{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==M.number){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.number,received:s.parsedType}),J}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?ie.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:x.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:x.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:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?uO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),P(n,{code:x.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:x.not_finite,message:s.message}),i.dirty()):ie.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"&&ie.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)!==M.bigint){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.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:x.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:x.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:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ie.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)!==M.boolean){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.boolean,received:n.parsedType}),J}return $e(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)!==M.date){let s=this._getOrReturnCtx(e);return P(s,{code:x.invalid_type,expected:M.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return P(s,{code:x.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:x.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:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ie.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)!==M.symbol){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.symbol,received:n.parsedType}),J}return $e(e.data)}};Oi.create=t=>new Oi({typeName:K.ZodSymbol,...Z(t)});var yn=class extends X{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.undefined,received:n.parsedType}),J}return $e(e.data)}};yn.create=t=>new yn({typeName:K.ZodUndefined,...Z(t)});var En=class extends X{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.null,received:n.parsedType}),J}return $e(e.data)}};En.create=t=>new En({typeName:K.ZodNull,...Z(t)});var br=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};br.create=t=>new br({typeName:K.ZodAny,...Z(t)});var Zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(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:x.invalid_type,expected:M.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)!==M.undefined){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.void,received:n.parsedType}),J}return $e(e.data)}};xi.create=t=>new xi({typeName:K.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!==M.array)return P(r,{code:x.invalid_type,expected:M.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?x.too_big:x.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:x.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:x.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)}};Xt.create=(t,e)=>new Xt({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 Xt?new Xt({...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=ie.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return P(c,{code:x.invalid_type,expected:M.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],m=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,m,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:x.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 m=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new pt(i,m,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let m=await l.key,p=await l.value;c.push({key:m,value:p,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 ie.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 ie.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 ie.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 ie.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 Kh(ie.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:x.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:x.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 zt=t=>t instanceof Sn?zt(t.schema):t instanceof Ze?zt(t.innerType()):t instanceof _n?[t.value]:t instanceof In?t.options:t instanceof On?ie.objectValues(t.enum):t instanceof xn?zt(t._def.innerType):t instanceof yn?[void 0]:t instanceof En?[null]:t instanceof dt?[void 0,...zt(t.unwrap())]:t instanceof $t?[null,...zt(t.unwrap())]:t instanceof Cs||t instanceof wn?zt(t.unwrap()):t instanceof Rn?zt(t._def.innerType):[],Ka=class t extends X{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return P(r,{code:x.invalid_type,expected:M.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:x.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:K.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...Z(n)})}};function $l(t,e){let r=Rr(t),n=Rr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=ie.objectKeys(e),s=ie.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=$l(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===M.array&&n===M.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let s=0;s<t.length;s++){let o=t[s],a=e[s],u=$l(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===M.date&&n===M.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var An=class extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Bl(s)||Bl(o))return J;let a=$l(s.value,o.value);return a.valid?((Gl(s)||Gl(o))&&r.dirty(),{status:r.value,value:a.data}):(P(n,{code:x.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!==M.array)return P(n,{code:x.invalid_type,expected:M.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return P(n,{code:x.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:x.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 Ya=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.object)return P(n,{code:x.invalid_type,expected:M.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:wr.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!==M.map)return P(n,{code:x.invalid_type,expected:M.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!==M.set)return P(n,{code:x.invalid_type,expected:M.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(P(n,{code:x.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:x.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 Ja=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return P(r,{code:x.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return ja({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Qa(),Ii].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof Dr){let a=this;return $e(async function(...u){let c=new ze([]),l=await a._def.args.parseAsync(u,s).catch(f=>{throw c.addIssue(n(u,f)),c}),m=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(m,s).catch(f=>{throw c.addIssue(i(m,f)),c})})}else{let a=this;return $e(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),m=a._def.returns.safeParse(l,s);if(!m.success)throw new ze([i(l,m.error)]);return m.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:x.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 Kh(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:ie.joinValues(n),received:r.parsedType,code:x.invalid_type}),J}if(Ha(this,Rs,"f")||Wh(this,Rs,new Set(this._def.values),"f"),!Ha(this,Rs,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{received:r.data,code:x.invalid_enum_value,options:n}),J}return $e(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=Kh;var On=class extends X{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){let r=ie.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=ie.objectValues(r);return P(n,{expected:ie.joinValues(i),received:n.parsedType,code:x.invalid_type}),J}if(Ha(this,ws,"f")||Wh(this,ws,new Set(ie.getValidEnumValues(this._def.values)),"f"),!Ha(this,ws,"f").has(e.data)){let i=ie.objectValues(r);return P(n,{received:n.data,code:x.invalid_enum_value,options:i}),J}return $e(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 Dr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return P(r,{code:x.invalid_type,expected:M.promise,received:r.parsedType}),J;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return $e(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Dr.create=(t,e)=>new Dr({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);ie.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)===M.undefined?$e(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)===M.null?$e(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===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};xn.create=(t,e)=>new xn({innerType:t,typeName: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)!==M.nan){let n=this._getOrReturnCtx(e);return P(n,{code:x.invalid_type,expected:M.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};bi.create=t=>new bi({typeName:K.ZodNaN,...Z(t)});var cO=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 Yh(t,e={},r){return t?br.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})}}):br.create()}var lO={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 dO=(t,e={message:`Input not instance of ${t.name}`})=>Yh(r=>r instanceof t,e),Jh=wr.create,zh=fn.create,pO=bi.create,fO=mn.create,Zh=hn.create,mO=gn.create,hO=Oi.create,gO=yn.create,yO=En.create,EO=br.create,TO=Zt.create,AO=It.create,SO=xi.create,_O=Xt.create,IO=je.create,OO=je.strictCreate,xO=Tn.create,RO=Ka.create,wO=An.create,bO=Gt.create,DO=Ya.create,CO=Ri.create,vO=wi.create,NO=Ja.create,PO=Sn.create,LO=_n.create,UO=In.create,MO=On.create,FO=Dr.create,Vh=Ze.create,kO=dt.create,BO=$t.create,GO=Ze.createWithPreprocess,$O=vs.create,VO=()=>Jh().optional(),qO=()=>zh().optional(),WO=()=>Zh().optional(),QO={string:t=>wr.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})},jO=J,re=Object.freeze({__proto__:null,defaultErrorMap:Ii,setErrorMap:jI,getErrorMap:Qa,makeIssue:ja,EMPTY_PATH:HI,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:_i,OK:$e,isAborted:Bl,isDirty:Gl,isValid:bs,isAsync:Ds,get util(){return ie},get objectUtil(){return kl},ZodParsedType:M,getParsedType:Rr,ZodType:X,datetimeRegex:Hh,ZodString:wr,ZodNumber:fn,ZodBigInt:mn,ZodBoolean:hn,ZodDate:gn,ZodSymbol:Oi,ZodUndefined:yn,ZodNull:En,ZodAny:br,ZodUnknown:Zt,ZodNever:It,ZodVoid:xi,ZodArray:Xt,ZodObject:je,ZodUnion:Tn,ZodDiscriminatedUnion:Ka,ZodIntersection:An,ZodTuple:Gt,ZodRecord:Ya,ZodMap:Ri,ZodSet:wi,ZodFunction:Ja,ZodLazy:Sn,ZodLiteral:_n,ZodEnum:In,ZodNativeEnum:On,ZodPromise:Dr,ZodEffects:Ze,ZodTransformer:Ze,ZodOptional:dt,ZodNullable:$t,ZodDefault:xn,ZodCatch:Rn,ZodNaN:bi,BRAND:cO,ZodBranded:Cs,ZodPipeline:vs,ZodReadonly:wn,custom:Yh,Schema:X,ZodSchema:X,late:lO,get ZodFirstPartyTypeKind(){return K},coerce:QO,any:EO,array:_O,bigint:fO,boolean:Zh,date:mO,discriminatedUnion:RO,effect:Vh,enum:UO,function:NO,instanceof:dO,intersection:wO,lazy:PO,literal:LO,map:CO,nan:pO,nativeEnum:MO,never:AO,null:yO,nullable:BO,number:zh,object:IO,oboolean:WO,onumber:qO,optional:kO,ostring:VO,pipeline:$O,preprocess:GO,promise:FO,record:DO,set:vO,strictObject:OO,string:Jh,symbol:hO,transformer:Vh,tuple:bO,undefined:gO,union:xO,unknown:TO,void:SO,NEVER:jO,ZodIssueCode:x,quotelessJson:QI,ZodError:ze});var bn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(bn||{}),za=(r=>(r.STRING="string",r.NUMBER="number",r))(za||{});var tu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Xh=re.record(tu,re.string()),Za=re.record(tu,re.any()),Xa=re.record(tu,re.union([re.any().array(),re.string()])),eg=re.lazy(()=>re.object({conditions:re.array(re.object(tg))})),eu=re.union([re.string(),re.number()]),tg={string:Xh.optional(),fuzzy:Xh.optional(),range:re.record(tu,re.union([re.object({high:eu,low:eu}),re.object({high:eu}),re.object({low:eu})])).optional(),equal:Za.optional(),notEqual:Za.optional(),empty:Za.optional(),notEmpty:Za.optional(),oneOf:Xa.optional(),contains:Xa.optional(),notContains:Xa.optional(),containsAny:Xa.optional(),$and:eg.optional(),$or:eg.optional()},eq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(Ai).optional(),...tg}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(bn).optional(),sortType:re.nativeEnum(za).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Np={};N(Np,{APP_DEV:()=>Qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Wu,BUDIBASE_DATASOURCE_TYPE:()=>xp,Config:()=>vp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DEFAULT_TENANT_ID:()=>Ae,DeprecatedViews:()=>Hi,DesignDocuments:()=>ju,DocumentType:()=>ye,GlobalRole:()=>Cp,Header:()=>Xe,InternalTable:()=>xr,MAX_VALID_DATE:()=>Ku,MIN_VALID_DATE:()=>vT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,UserStatus:()=>Hu,ViewName:()=>kr});var AW={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=(S=>(S.API_KEY="x-budibase-api-key",S.LICENSE_KEY="x-budibase-license-key",S.API_VER="x-budibase-api-version",S.APP_ID="x-budibase-app-id",S.SESSION_ID="x-budibase-session-id",S.TYPE="x-budibase-type",S.PREVIEW_ROLE="x-budibase-role",S.TENANT_ID="x-budibase-tenant-id",S.VERIFICATION_CODE="x-budibase-verification-code",S.RETURN_VERIFICATION_CODE="x-budibase-return-verification-code",S.RESET_PASSWORD_CODE="x-budibase-reset-password-code",S.RETURN_RESET_PASSWORD_CODE="x-budibase-return-reset-password-code",S.TOKEN="x-budibase-token",S.CSRF_TOKEN="x-csrf-token",S.CORRELATION_ID="x-budibase-correlation-id",S.AUTHORIZATION="authorization",S.MIGRATING_APP="x-budibase-migrating-app",S.COOKIE="cookie",S))(Xe||{});var OW={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 CW="darkest",vW="light",YO=[{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 Di="datasource_internal_bb_default";var Mr={};N(Mr,{ColumnSplitter:()=>lp,NoEmptyFilterStrings:()=>IT,buildQuery:()=>OT,cleanupQuery:()=>fp,fixupFilterArrays:()=>hp,getKeyNumbering:()=>mp,getValidOperatorsForType:()=>SC,hasFilters:()=>dp,limit:()=>RT,recurseLogicalOperators:()=>pp,removeKeyNumbering:()=>ru,runQuery:()=>Fu,search:()=>OC,sort:()=>xT,splitFiltersArray:()=>nu});var Qi=W(ng());var Ci={};N(Ci,{filterValueToLabel:()=>tx,hasSchema:()=>rx,isSupportedUserSearch:()=>sg,parallelForeach:()=>ex,processSearchFilters:()=>Wl,toMap:()=>ix,trimOtherProps:()=>nx,unreachable:()=>XO});var ig=W(require("lodash")),ZO=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function XO(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function ex(t,e,r){let n=[],i=0,s=async()=>{for(;i<t.length;){let o=i++,a=t[o];await e(a)}};for(let o=0;o<Math.min(r,t.length);o++)n.push(s());await Promise.all(n)}function tx(){return Object.keys(et).reduce((t,e)=>{let n=et[e];return t[n.value]=n.label,t},{})}function rx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function nx(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(Ba(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 Wl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=nu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=ig.default.pick(i,ZO);return s.field=ru(s.field),s})}]}}function ix(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var jt={};N(jt,{cancelableTimeout:()=>og,cron:()=>ip,deepGet:()=>Ql,duplicateName:()=>yC,getSequentialName:()=>EC,getUserColor:()=>ox,getUserInitials:()=>sx,getUserLabel:()=>ax,isGoogleSheets:()=>cx,isSQL:()=>lx,lists:()=>cp,retry:()=>dx,roles:()=>up,schema:()=>Ao,views:()=>ap,wait:()=>jl,withTimeout:()=>ux});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},sx=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"},ox=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%)`},ax=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 ux(t,e){let[r,n]=og(t),i=await Promise.race([e(),r]);return n(),i}function cx(t){return t==="GOOGLE_SHEETS"}function lx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function jl(t){return new Promise(e=>setTimeout(e,t))}async function dx(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 jl(s);try{return await t()}catch(o){n=o}}throw n}var ip={};N(ip,{getNextExecutionDates:()=>rC,validate:()=>nC});var ET=W(Vt()),TT=W(gT()),yT="(Input cron: ",eC={"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 tC(t){let e=[];for(let r of t){r.includes(yT)&&(r=r.split(yT)[0].trim());for(let[n,i]of Object.entries(eC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function rC(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 nC(t){let e=(0,ET.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:tC(e.getError())}}var Ao={};N(Ao,{decodeNonAscii:()=>sp,encodeNonAscii:()=>oC,isDeprecatedSingleUserColumn:()=>iC,isNumeric:()=>aC,isRequired:()=>sC});function iC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function sC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function oC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function sp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function aC(t){return t.type==="number"||t.type==="bigint"}var ap={};N(ap,{basicFields:()=>pC,calculationFields:()=>dC,hasCalculationFields:()=>lC,isBasicViewField:()=>uC,isCalculationField:()=>So,isCalculationView:()=>cC,isV2:()=>fC,isVisible:()=>AT});var op=require("lodash");function So(t){return"calculationType"in t}function uC(t){return!So(t)}function cC(t){return t.type==="calculation"}function lC(t){return Object.values(t.schema||{}).some(So)}function dC(t){return(0,op.pickBy)(t.schema||{},So)}function AT(t){return t.visible!==!1}function pC(t,e){let{visible:r=!0}=e||{};return(0,op.pickBy)(t.schema||{},n=>!So(n)&&(!r||AT(n)))}function fC(t){return t.version===2}var up={};N(up,{checkForRoleInheritanceLoops:()=>hC});function mC(t){return`role${v}${t}`}function hC(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=mC(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 cp={};N(cp,{punctuateList:()=>gC});function gC(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 yC=(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}`},EC=(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 m=parseInt(l[1]);m>a&&(a=m)}),a===0?o:`${e}${i}${a+1}`};var Hn=require("lodash");var TC=/{{([^{].*?)}}/g,_T=Object.values(Ti),AC=[...Object.values(Ir),...Object.values(Jt),...Object.values(dn)],SC=(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]:a==="barcodeqr"&&(o=i);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 pp(t,e){for(let r of _T)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var fp=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===""||_C(s))&&delete t[e][i]}return t=pp(t,fp),t};function _C(t){return Array.isArray(t)&&t.length===0}var ru=t=>mp(t).key,mp=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}},lp=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}=mp(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=sp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function IC(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(TC)||[]).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(Ga(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(Ga(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)||Uh(r)||Ga(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 nu(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=Wl(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}=nu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=ST(n.logicalOperator)),{[a]:{conditions:o.map(IC).filter(u=>u)}}})},e}function ST(t){return t==="all"?"$and":"$or"}function hp(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Hn.isPlainObject)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return pp(t,hp),t}function OC(t,e){let r=Fu(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 Fu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=fp(e),e=hp(e),!dp(e)&&e.onEmptyFilter==="none")return[];let r=(T,_)=>B=>{for(let[b,k]of Object.entries(e[T]||{})){let de=Ba(T)?B:Ql(B,ru(b)),un=_(de,k);if(e.allOr&&un)return!0;if(!e.allOr&&!un)return!1}return!e.allOr},n=r("string",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(T,_)=>typeof T!="string"||typeof _!="string"?!1:T.toLowerCase().includes(_.toLowerCase())),s=r("range",(T,_)=>{if(T==null||T===""||((0,Hn.isPlainObject)(_.low)&&(0,Hn.isEmpty)(_.low)&&(_.low=void 0),(0,Hn.isPlainObject)(_.high)&&(0,Hn.isEmpty)(_.high)&&(_.high=void 0),_.low==null&&_.high==null))return!1;let B=+T;if(!isNaN(B)){let k=+_.low,de=+_.high;if(!isNaN(k)&&!isNaN(de))return B>=k&&B<=de;if(isNaN(k)){if(!isNaN(de))return B<=de}else return B>=k}let b=(0,Qi.default)(T);if(b.isValid()){let k=(0,Qi.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,Qi.default)(_.high||"9999-00-00T00:00:00.000Z");if(k.isValid()&&de.isValid())return b.isAfter(k)&&b.isBefore(de)||b.isSame(k)||b.isSame(de);if(k.isValid())return b.isAfter(k)||b.isSame(k);if(de.isValid())return b.isBefore(de)||b.isSame(de)}return _.low!=null&&_.high!=null?T>=_.low&&T<=_.high:_.low!=null?T>=_.low:_.high!=null?T<=_.high:!1}),o=(T,_)=>{if(Array.isArray(T)){for(let b of T)if(o(b,_))return!0;return!1}if(T&&typeof T=="object"&&typeof _=="string")return T._id===_;if(T===_)return!0;if(T==null&&_!=null||T!=null&&_==null)return!1;let B=(0,Qi.default)(T);if(B.isValid()){let b=(0,Qi.default)(_);if(b.isValid())return B.isSame(b)}return!1},a=T=>(..._)=>!T(..._),u=r("equal",o),c=r("notEqual",a(o)),l=T=>typeof T=="string"?T==="":Array.isArray(T)?T.length===0:T&&typeof T=="object"?Object.keys(T).length===0:T==null,m=r("empty",l),p=r("notEmpty",a(l)),f=r("oneOf",(T,_)=>(typeof _=="string"&&(_=_.split(",")),typeof T=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(T,B)):!1)),d=T=>(_,B)=>!Array.isArray(_)||(typeof B=="string"&&(B=B.split(","),typeof _[0]=="number"&&(B=B.map(b=>parseFloat(b)))),!Array.isArray(B))?!1:B.length===0?!0:B[T](b=>o(_,b)),g=r("contains",(T,_)=>Array.isArray(_)&&_.length===0?!0:d("every")(T,_)),E=r("notContains",(T,_)=>Array.isArray(_)&&_.length===0?!0:a(d("every"))(T,_)),y=r("containsAny",d("some")),S=r("$and",(T,_)=>{if(!_.length)return!1;for(let B of _)if(!Fu([T],B).length)return!1;return!0}),O=r("$or",(T,_)=>{if(!_.length)return!1;for(let B of _)if(Fu([T],{...B,allOr:!0}).length)return!0;return!1}),R=T=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:m,notEmpty:p,oneOf:f,contains:g,containsAny:y,notContains:E,$and:S,$or:O},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(T)??!1);return dp(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}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 dp=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 AC){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:()=>yp,automations:()=>Ep,screens:()=>Ip,users:()=>_p});var yp={};N(yp,{getDevAppID:()=>xC,getProdAppID:()=>ku});var gp=Or("app"),_o=Or("app_dev");function xC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(_o))return t;let e=t.split(gp);e.shift();let r=e.join(gp);return`${_o}${r}`}function ku(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`${gp}${r}`}var Ep={};N(Ep,{isAppAction:()=>bC,isRowAction:()=>RC,isWebhookAction:()=>wC});function RC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function wC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function bC(t){return t.definition.trigger?.stepId==="APP"}var _p={};N(_p,{canCreateApps:()=>DC,containsUserID:()=>UC,getGlobalUserID:()=>LC,getUserAppGroups:()=>MC,getUserGroups:()=>Sp,hasAdminPermissions:()=>Ap,hasAppBuilderPermissions:()=>$u,hasAppCreatorPermissions:()=>wT,hasBuilderPermissions:()=>NC,hasCreatorPermissions:()=>Vu,isAdmin:()=>Gu,isAdminOrBuilder:()=>CC,isAdminOrGlobalBuilder:()=>vC,isBuilder:()=>Tp,isCreator:()=>PC,isGlobalBuilder:()=>Bu,userAppAccessList:()=>FC});var Fr=W(require("lodash/fp"));function Tp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(ku(e))):!1}function Bu(t){return Tp(t)&&!$u(t)||Gu(t)}function DC(t){return Bu(t)||Vu(t)}function Gu(t){return t?Ap(t):!1}function CC(t,e){return Tp(t,e)||Gu(t)}function vC(t){return Bu(t)||Gu(t)}function $u(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function wT(t){return t?Fr.flow(Fr.get("roles"),Fr.values,Fr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function NC(t){return t?t.builder?.global||$u(t)||Vu(t):!1}function Ap(t){return t?!!t.admin?.global:!1}function Vu(t){return t?!!t.builder?.creator:!1}function PC(t){return t?Bu(t)||Ap(t)||Vu(t)||$u(t)||wT(t):!1}function LC(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function UC(t){return typeof t!="string"?!1:t.includes(`us${v}`)}function Sp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function MC(t,e,r){let n=ku(t);return Sp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function FC(t,e){let n=Sp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Ip={};N(Ip,{findInSettings:()=>kC});function kC(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 $j={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},Vj={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},qj={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 zj={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 eH={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 nH={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 oH={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 cH={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 pH={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 hH={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 EH={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 SH={name:"API Request",tagline:"Execute a REST request",icon:"GlobeGrid",description:"Execute a HTTP query from a REST datasource",type:"ACTION",stepId:"API_REQUEST",internal:!0,new:!0,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{query:{type:"object",properties:{queryId:{type:"string"}},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 OH={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 wH={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"},CH={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(Pl),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 PH={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 MH={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 BH={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(Ll)},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||{}),VH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"Algorithm",description:"Interact with the OpenAI ChatGPT API.",type:"ACTION",internal:!0,features:{},deprecated:!1,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||{}),QH={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 nv={ascending:"Ascending",descending:"Descending"},KH={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(nv)},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 zH={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:"longform",title:"Message",description:"Use markdown or HTML for rich text formatting: **bold**, _italics_, # Headings, * Bullets, <br> for line breaks, and more."},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 eK={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 nK={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 oK={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 cK={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 pK={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 hK={name:"Classify Text",icon:"PageTag",tagline:"Classify text into predefined categories using AI",description:"Analyzes text and assigns it to one of the categories you provide.",stepId:"CLASSIFY_CONTENT",internal:!0,inputs:{},schema:{inputs:{properties:{textInput:{type:"longform",title:"Text",description:"The text content you want the AI to classify."},categoryItems:{type:"array",customType:"categories",title:"Categories",description:"Add categories for the AI to use when classifying text."}},required:["textInput","categoryItems"]},outputs:{properties:{category:{type:"string",description:"The category assigned by the AI."},success:{type:"boolean",description:"Whether the classification was successful."}},required:["category","success"]}},type:"ACTION"};var EK={name:"LLM Prompt",tagline:"Send prompts to LLM",icon:"Algorithm",description:"Interact with an LLM.",type:"ACTION",internal:!0,features:{},stepId:"PROMPT_LLM",inputs:{prompt:""},schema:{inputs:{properties:{prompt:{type:"longform",title:"Prompt"}},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 SK={name:"Translate",tagline:"Translate text to a different language",icon:"GlobeGrid",description:"Translate text to a different language.",type:"ACTION",internal:!0,features:{},stepId:"TRANSLATE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"string",title:"Text"},language:{type:"string",title:"Language"}},required:["text","language"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the translated text"}},required:["success","response"]}}};var CT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(CT||{}),OK={name:"Summarise",tagline:"Summarise text",icon:"Summarize",description:"Summarise text.",type:"ACTION",internal:!0,features:{},stepId:"SUMMARISE",inputs:{prompt:""},schema:{inputs:{properties:{text:{type:"longform",title:"Text"},length:{type:"string",title:"Length",enum:Object.values(CT)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var wK={name:"Generate Text",icon:"Edit",tagline:"Generate contentusing AI",description:"Uses AI to generate text content based on your instructions and chosen format",stepId:"GENERATE_TEXT",internal:!0,inputs:{contentType:"document"},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(Cl),pretty:Object.values(Bh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var CK={name:"Extract Document Data",icon:"Document",tagline:"Extract structured data from documents using AI",description:"Extracts structured data from PDF or image according to provided schema.",stepId:"EXTRACT_FILE_DATA",internal:!0,inputs:{},schema:{inputs:{properties:{file:{type:"string",title:"Document",description:"Attachment or Link to the document to extract data from."},source:{type:"string",enum:Object.values(vl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Nl),title:"File Type",description:"The type of file at the URL."},schema:{customType:"triggerSchema",title:"Data schema",description:'Schema defining the structure of data to extract. Example: {"name": "string", "price": "number"}.'}},required:["file","schema"]},outputs:{properties:{data:{type:"json",description:"The structured data extracted from the document."},success:{type:"boolean",description:"Whether the extraction was successful."}},required:["data","success"]}},type:"ACTION"};var Ev={name:"App Action",event:"app:trigger",icon:"Apps",tagline:"Automation fired from the frontend",description:"Trigger an automation from an action inside your app",stepId:"APP",inputs:{},schema:{inputs:{properties:{fields:{type:"object",customType:"triggerSchema",title:"Fields"}},required:[]},outputs:{properties:{fields:{type:"object",description:"Fields submitted from the app frontend",customType:"triggerSchema"}},required:["fields"]}},type:"TRIGGER"};var Av={name:"Cron Trigger",event:"cron:trigger",icon:"Clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var _v={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 Ov={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 Rv={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 bv={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 Cv={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:"row action workflow",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 jK=Object.values(ye).sort((t,e)=>e.length-t.length);var HK=Object.values(Dl).sort((t,e)=>e.length-t.length);var KK=new RegExp("^datasource_plus_(.+)__(.+)$"),qu=t=>e=>!!e&&e.startsWith(`${t}${v}`);var YK=qu("ta"),JK=qu("view"),zK=qu("datasource"),ZK=qu("query");var Wu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Wu||{}),kr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes",l.AUTOMATION_LOGS="automation_logs",l.ACCOUNT_BY_EMAIL="account_by_email",l.PLATFORM_USERS_LOWERCASE="platform_users_lowercase_2",l.USER_BY_GROUP="user_by_group",l.APP_BACKUP_BY_TRIGGER="by_trigger",l))(kr||{}),Hi={by_email2:["by_email"]},Te={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=Or("app"),Qu=Or("app_dev"),yt=Qu,Op="internal",xp="budibase",Ht="_design/sqlite",Rp="ta_bb_jobs",wp="ta_bb_inventory",bp="ta_bb_expenses",Dp="ta_bb_employee",ju=(r=>(r[r.SQLITE=Ht]="SQLITE",r.MIGRATIONS="_design/migrations",r))(ju||{});var Hu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Hu||{}),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||{}),Cp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Cp||{}),vp=(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))(vp||{}),vT=new Date(-2147483647e3),Ku=new Date(2147483647e3),Ae="default";var Oa={};N(Oa,{CacheKey:()=>Ce,TTL:()=>ni,app:()=>jo,bustCache:()=>ts,destroy:()=>Vo,docWritethrough:()=>km,generic:()=>qo,get:()=>ii,invite:()=>im,keys:()=>lc,passwordReset:()=>Mm,store:()=>ur,user:()=>rn,withCache:()=>Wr,withCacheWithDynamicTTL:()=>sA,writethrough:()=>Um});var qo={};N(qo,{CacheKey:()=>Ce,TTL:()=>ni,bustCache:()=>ts,destroy:()=>Vo,get:()=>ii,keys:()=>lc,store:()=>ur,withCache:()=>Wr,withCacheWithDynamicTTL:()=>sA});var Se={};N(Se,{DEFAULT_TENANT_ID:()=>Ae,baseGlobalDBName:()=>vo,doInAppContext:()=>TN,doInAppMigrationContext:()=>SN,doInAutomationContext:()=>mN,doInContext:()=>Zp,doInEnvironmentContext:()=>IN,doInFeatureFlagOverrideContext:()=>of,doInIPContext:()=>tf,doInIdentityContext:()=>Oo,doInLicenseContext:()=>gN,doInScimContext:()=>ON,doInSelfHostTenantUsingCloud:()=>hN,doInTenant:()=>qe,ensureSnippetContext:()=>tA,getAppDB:()=>Xi,getAppId:()=>Le,getAuditLogDBName:()=>ZT,getAuditLogsDB:()=>RN,getAutomationId:()=>Xp,getCurrentContext:()=>zn,getDevAppDB:()=>bN,getEnvironmentVariables:()=>xN,getFeatureFlagOverrides:()=>sf,getFeatureFlags:()=>rf,getGlobalDB:()=>ne,getGlobalDBName:()=>Jn,getIP:()=>ef,getIdentity:()=>ar,getLicense:()=>yN,getPlatformURL:()=>zp,getProdAppDB:()=>wN,getProdAppId:()=>_N,getScimDBName:()=>lN,getSelfHostCloudDB:()=>EN,getTableForView:()=>DN,getTenantIDFromAppID:()=>Zi,getTenantId:()=>j,identity:()=>Io,isMultiTenant:()=>$r,isScim:()=>Pt,isSelfHostUsingCloud:()=>XT,isTenancyEnabled:()=>pN,isTenantIdSet:()=>dN,setFeatureFlags:()=>nf,setTableForView:()=>CN});var Io={};N(Io,{doInAccountContext:()=>Lv,doInIdentityContext:()=>Lp,doInUserContext:()=>Up,getAccountUserId:()=>NT,getIdentity:()=>Pp});function Pp(){return ar()}function Lp(t,e){return Oo(t,e)}function Up(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Lp(n,r)}function Lv(t,e){let r=NT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Lp(i,e)}function NT(t){let e;return Va(t)?e=t.budibaseUserId:e=t.accountId,e}var zu=require("fs");var UT=require("lodash"),Mp=require("crypto"),xo=require("path"),Uv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,xo.resolve)((0,xo.join)(__dirname,"..","..","..")),PT=!1;!PT&&Ju()&&!Fp()&&(require("dotenv").config({path:(0,xo.join)(Uv,".env")}),PT=!0);function Fp(){return MT()}function MT(){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 Mv(t){if(t)return parseInt(t)}var Ki={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},LT=!!parseInt(process.env.SELF_HOSTED||"");function Fv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function kv(){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,zu.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,zu.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(Ju()&&!Fp())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 Gv(){return Ct.SERVICE_TYPE==="worker"}function $v(){return Ct.SERVICE_TYPE==="apps"}function Vv(){return Ct.BUDIBASE_ENVIRONMENT==="QA"}function qv(){return process.env.SERVICE?process.env.SERVICE:process.env.APPS_SERVICE?process.env.APPS_SERVICE:process.env.WORKER_SERVICE?process.env.WORKER_SERVICE:"budibase"}var Ct={isTest:Fp,isJest:MT,isDev:Ju,isWorker:Gv,isApps:$v,isQA:Vv,isProd:()=>!Ju(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Mp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Mp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Fv(),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",INTERNAL_ACCOUNT_PORTAL_URL:process.env.INTERNAL_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:LT,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:qv(),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:kv(),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:LT?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,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:Mv(process.env.BSON_BUFFER_SIZE)};function Ro(t){let e=(0,UT.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 FT(t,e){let r=Ro(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(Ct))e==="0"&&(Ct[t]=0),e==="false"&&(Ct[t]=0);var h=Ct;var BT=require("async_hooks"),we=class t{static{this.storage=new BT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var kp="No app provided";function Br(t){if(!t)throw kp;return t.startsWith(yt)}function Wv(t){if(!t)throw kp;return t.startsWith(gt)&&!Br(t)}function wo(t){if(!t)throw kp;return Br(t.appId)}function Zu(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var Qv=Zu;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 jv(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var vt=t=>{let e=Bp(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:Bp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Bp=(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 m=l.split(":");r=m[0],n=m.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var JT=W(require("@budibase/nano"));var GT=W(require("node-fetch"));function Xu(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function $T(t,e="GET",r){let{url:n,cookie:i}=vt(),s=`${n}/${t}`;return await bo({url:s,cookie:i,method:e,body:r})}async function bo({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,GT.default)(Xu(encodeURI(t)),i)}async function Gp(t,e="GET",r){let n=await $T(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Yn=W(require("pouchdb"));var VT,qT=!1,$p=(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 ec(t){VT=$p(t),qT=!0}var Kv=()=>{if(!qT)throw new Error("init has not been called")};function Et(t,e){Kv();let r=new VT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function Do(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var WT=require("uuid");function me(){return(0,WT.v4)().replace(/-/g,"")}var Oe=W(require("dd-trace")),Yi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Oe.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 Oe.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Oe.default.trace("db.find",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.find(e);return r.addTags({rows_length:n.docs.length}),n})}allDocs(e){return Oe.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 Oe.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 Oe.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 Oe.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 Oe.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 Oe.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Oe.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Oe.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Oe.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Oe.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 Oe.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 Oe.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var Yp={};N(Yp,{breakExternalTableId:()=>Wp,breakRowIdField:()=>aN,buildExternalTableId:()=>tN,convertRowId:()=>oN,encodeTableId:()=>rN,encodeViewId:()=>nN,extractDate:()=>jp,generateRowIdField:()=>iN,getNativeSql:()=>Ji,isExternalTable:()=>qp,isExternalTableID:()=>tc,isInternalTableID:()=>eN,isRowId:()=>sN,isValidFilter:()=>nc,isValidISODateString:()=>rc,isValidISODateStringWithoutTimezone:()=>Qp,isValidTime:()=>Hp,sqlLog:()=>Co,validateManyToMany:()=>Kp});var Vp=`${v}${v}`,jT=/^\[.*]$/g,Yv=encodeURIComponent(" "),Jv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,zv=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,Zv=/(\d{4}-\d{2}-\d{2})/,Xv=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function tc(t){return t.startsWith("datasource"+v)}function eN(t){return!tc(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 qp(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==Di||t?.sourceType==="external"?!0:!!(t?._id&&tc(t._id))}function tN(t,e){return`${t}${Vp}${encodeURIComponent(e)}`}function rN(t){return tc(t)?encodeURIComponent(t):t}function nN(t){return encodeURIComponent(t)}function Wp(t){let e=t.split(Vp),r=e.shift(),n=e.join(Vp);if(n.includes(Yv)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function iN(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 sN(t){return Array.isArray(t)||typeof t=="string"&&t.match(jT)!=null}function oN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(jT)!=null?t.substring(1,t.length-1):t}function aN(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function rc(t){let e=t.trim();if(!Jv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Qp(t){let e=t.trim();if(!zv.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function jp(t){let e=t.match(Zv);if(e)return e[0]}function nc(t){return t!=null&&t!==""}function Hp(t){return Xv.test(t)}function Co(t,e,r){if(!h.SQL_LOGGING_ENABLE)return;let n=`[SQL] [${t.toUpperCase()}] query="${e}"`;r&&(n+=` values="${r.join(", ")}"`),console.log(n)}function uN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function Kp(t){if(uN(t))return t}var HT="Database does not exist.";function KT(t){return(0,JT.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Gr=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 cN(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=KT(this.couchInfo)),t.nano||t.init()}static init(){let e=vt();t.nano=KT(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await bo({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 Gr(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===HT)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Gr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Gr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Mh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Gr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=me()),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 find(e){return this.performCall(r=>async()=>r.find(e))}async allDocs(e){return this.performCall(r=>async()=>{try{return await r.list(e)}catch(n){if(n.reason===HT)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=Xu(`${this.couchInfo.sqlUrl}/${e}`);let i={url:e,method:r,cookie:this.couchInfo.cookie};return n&&(i.body=n),this.performCall(()=>async()=>{let s=await bo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Gr("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}/${Ht}`;return Co("sqlite3",e,r),await this._sqlQuery(i,"POST",{query:e,args:r})}async sqlDiskCleanup(){let r=`/${this.name}/_cleanup`;try{await this._sqlQuery(r,"POST")}catch(n){if(n.status!==500)throw n}}async sqlPurgeDocument(e){Array.isArray(e)||(e=[e]);let n=`/${this.name}/_purge`;return await this._sqlQuery(n,"POST",{docs:e})}async query(e,r){return this.performCall(n=>{let[i,s]=e.split("/");return()=>n.view(i,s,r)})}async destroy(){if(await this.exists(Ht)){let e=await this.get(Ht);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 Gr(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 Jp(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Gp(e)}var zT=null;function Jn(t){return t||(t=j()),vo(t)}function ZT(t){return t||(t=j()),t===Ae?Te.AUDIT_LOGS.name:`${t}${v}${Te.AUDIT_LOGS.name}`}function lN(t){return t||(t=j()),t===Ae?Te.SCIM_LOGS.name:`${t}${v}${Te.SCIM_LOGS.name}`}function vo(t){return!t||t===Ae?Te.GLOBAL.name:`${t}${v}${Te.GLOBAL.name}`}function zp(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function dN(){return!!we.get()?.tenantId}function pN(){return h.MULTI_TENANCY}function Zi(t){if(!t)return;if(!$r())return Ae;let e=t.split(v),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function fN(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Nt(t,e){AN();let r=fN(t);return we.run(r,e)}async function mN(t){return await tA(),await Nt({tenantId:Zi(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Zp(t,e){let r=Zi(t);return Nt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Ae),Nt(t?{tenantId:t}:{},e)}async function hN(t,e){return Nt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function gN(t,e){return Nt({license:t},e)}function yN(){return we.get()?.license}function XT(){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(Te.SELF_HOST_CLOUD.name)}async function TN(t,e){return eA(t,e)}async function eA(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 AN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function SN(t,e){return eA(t,e,{isMigrating:!0})}function ar(){try{return we.get()?.identity}catch{}}function j(){if(!$r())return Ae;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Xp(){return we.get()?.automationId}function Le(){let e=we.get()?.appId;return!e&&h.isTest()&&zT?zT:e}function ef(){return we.get()?.ip}var _N=()=>{let t=Le();if(!t)throw new Error("Could not get appId");return at(t)};function IN(t,e){if(!t)throw new Error("Must supply environment variables.");return Nt({environmentVariables:t},e)}function ON(t){return Nt({isScim:!0},t)}function tf(t,e){return Nt({ip:t},e)}async function tA(){let t=zn();if(!t||t.snippets)return;let e,r=Xi();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function xN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function ne(){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(vo(t?.tenantId))}function RN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return Ve(ZT())}function Xi(t){let e=Le();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(XT())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return Ve(e,t)}function wN(t){let e=Le();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return Ve(at(e),t)}function bN(t){let e=Le();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return Ve(Zu(e),t)}function Pt(){return!!we.get()?.isScim}function zn(){try{return we.get()}catch{return}}function rf(t){let e=zn();if(e)return e.featureFlagCache?.[t]}function nf(t,e){let r=zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function sf(){return zn()?.featureFlagOverrides||{}}async function of(t,e){return await Nt({featureFlagOverrides:t},e)}function DN(t){let e=zn();if(e)return e.viewToTableCache?.[t]}function CN(t,e){let r=zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var qr={};N(qr,{getAppClient:()=>cc,getCacheClient:()=>pf,getDocWritethroughClient:()=>UN,getInviteClient:()=>ei,getLockClient:()=>mf,getPasswordResetClient:()=>$o,getSessionClient:()=>Vr,getSocketClient:()=>LN,getUserClient:()=>Go,getWritethroughClient:()=>ff,init:()=>Lt,shutdown:()=>iA});var uc=W(require("ioredis"));var oc={};N(oc,{Databases:()=>af,SEPARATOR:()=>es,SelectableDatabase:()=>ic,getRedisClusterOptions:()=>uf,getRedisConnectionDetails:()=>sc,getRedisOptions:()=>Zn,removeDbPrefix:()=>cf});var es="-",af=(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))(af||{}),ic=(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))(ic||{});function sc(){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 uf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Zn(),tls:{}}}}function Zn(){let{host:t,password:e,port:r}=sc();return{connectTimeout:3e4,port:r,host:t,password:e}}function cf(t){let e=t.split(es);return e.length>=2?(e.shift(),e.join(es)):e[0]}var ac=require("dd-trace"),nA=require("lodash"),rA;if(h.MOCK_REDIS)try{rA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function vN(t=0){return await ac.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new rA(Zn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=sc();r=new uc.Cluster([{host:n,port:i}],uf())}else r=new uc.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 NN(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:cf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function PN(t){return t.isCluster}var lf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await ac.tracer.trace("RedisWrapper.init",async n=>{let i=await vN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return ac.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;PN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await NN(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,nA.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
6
  if redis.call('GET', KEYS[1]) == ARGV[1] then
7
7
  redis.call('DEL', KEYS[1])
8
8
  end
9
- `;await this.client.eval(i,1,this.prefixed(e),r)})}},We=lf;var No,Po,Lo,Uo,Xn,Mo,Fo,ko,Bo,df;async function Lt(){No=await We.init("users"),Po=await We.init("session"),Lo=await We.init("appMetadata"),Uo=await We.init("data_cache"),Mo=await We.init("locks"),Xn=await We.init("writeThrough"),ko=await We.init("invitation"),Bo=await We.init("pwReset"),Fo=await We.init("socket_io",1),df=await We.init("docWriteThrough")}async function sA(){No&&await No.finish(),Po&&await Po.finish(),Lo&&await Lo.finish(),Uo&&await Uo.finish(),Xn&&await Xn.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),Fo&&await Fo.finish(),df&&await df.finish()}process.on("exit",async()=>{await sA()});async function Go(){return No||await Lt(),No}async function qr(){return Po||await Lt(),Po}async function uc(){return Lo||await Lt(),Lo}async function pf(){return Uo||await Lt(),Uo}async function ff(){return Xn||await Lt(),Xn}async function mf(){return Mo||await Lt(),Mo}async function FN(){return Fo||await Lt(),Fo}async function ei(){return ko||await Lt(),ko}async function $o(){return Bo||await Lt(),Bo}async function kN(){return Xn||await Lt(),Xn}function Kt(t){let e=j();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await pf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Kt(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[Kt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(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(Kt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Kt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ri=new ti,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}`},ni=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ni||{}),cc=(...t)=>ri.keys(...t),ii=(...t)=>ri.get(...t),cr=(...t)=>ri.store(...t),Vo=(...t)=>ri.delete(...t),Qr=(...t)=>ri.withCache(...t),oA=(...t)=>ri.withCacheWithDynamicTTL(...t),ts=(...t)=>ri.bustCache(...t);var nn={};N(nn,{getUser:()=>xa,getUsers:()=>V0,invalidateUser:()=>Ra});var Qo={};N(Qo,{addTenantToUrl:()=>BN,getTenantDB:()=>hf,getTenantIDFromCtx:()=>Wo,isUserInAppTenant:()=>GN});function hf(t){return Ve(ur(t))}function BN(t){let e=j();if(Vr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var GN=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=j(),(Zi(t)||Ae)===r},$N=Object.values(Os),Wo=(t,e)=>{if(!Vr())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=$N),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(zp()).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 Xo={};N(Xo,{getPlatformDB:()=>ct,tenants:()=>Bf,users:()=>Ut});var Ut={};N(Ut,{addSsoUser:()=>uA,addUser:()=>HN,getUserDoc:()=>aA,lookupTenantId:()=>VN,removeUser:()=>KN,updateUserDoc:()=>qN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function VN(t){return h.MULTI_TENANCY?(await aA(t)).tenantId:Ae}async function aA(t){return ct().get(t)}async function qN(t){await ct().put(t)}function WN(t,e){return{_id:t,tenantId:e}}function QN(t,e,r){return{_id:e,userId:t,tenantId:r}}function jN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function gf(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 uA(t,e,r,n){return gf(t,()=>jN(t,e,r,n))}async function HN(t,e,r,n){let i=[gf(e,()=>WN(e,t)),gf(r,()=>QN(e,r,t))];n&&i.push(uA(n,r,e,t)),await Promise.all(i)}async function KN(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 Bf={};N(Bf,{addTenant:()=>vP,exists:()=>bP,getTenantIds:()=>wP,removeTenant:()=>NP,tenacyLockOptions:()=>kf});var ui={};N(ui,{AUTO_EXTEND_POLLING_MS:()=>tS,doWithLock:()=>as,newRedlock:()=>ai});var eS=W(require("redlock"));var ss={};N(ss,{Duration:()=>be,DurationType:()=>Mf,clearCookie:()=>Kr,compare:()=>Tf,getAppIdFromCtx:()=>TP,getCookie:()=>fr,hasCircularStructure:()=>SP,hash:()=>Ef,isAudited:()=>Lf,isClient:()=>AP,isPublicApiRequest:()=>EP,isServingApp:()=>hP,isServingBuilder:()=>gP,isServingBuilderPreview:()=>yP,isValidInternalAPIKey:()=>Zo,newid:()=>me,openJwt:()=>hc,resolveAppUrl:()=>zA,setCookie:()=>ZA,time:()=>IP,timeout:()=>Pf,urlHasProtocol:()=>_P,validEmail:()=>Uf});var yf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),YN=h.SALT_ROUNDS||10;async function Ef(t){let e=await yf.genSalt(YN);return yf.hash(t,e)}async function Tf(t,e){return yf.compare(t,e)}var Hr={};N(Hr,{APP_DEV:()=>qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Vu,BUDIBASE_DATASOURCE_TYPE:()=>xp,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>pN,DeprecatedViews:()=>Hi,DesignDocuments:()=>Wu,DocumentType:()=>ye,InternalTable:()=>Rr,QueryBuilder:()=>pr,Replication:()=>VA,SEPARATOR:()=>D,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>Br,baseGlobalDBName:()=>vo,checkErrorCode:()=>jA,closePouchDB:()=>Do,createApiKeyView:()=>FA,createNewUserEmailView:()=>UA,createPlatformAccountEmailView:()=>BA,createPlatformUserView:()=>GA,createUserAppView:()=>MA,createView:()=>ns,dbExists:()=>oP,directCouchAllDbs:()=>Yp,directCouchCall:()=>VT,directCouchFind:()=>Jp,directCouchQuery:()=>Zu,directCouchUrlCall:()=>bo,doWithDB:()=>ut,extractAppUUID:()=>Yv,fullSearch:()=>lP,generateAgentChatID:()=>AA,generateAgentToolSourceID:()=>SA,generateAppID:()=>lA,generateAppUserID:()=>dc,generateDevInfoID:()=>yA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>TA,generatePluginID:()=>EA,generateRoleID:()=>_f,generateRowID:()=>Sf,generateTableID:()=>dA,generateTemplateID:()=>gA,generateUserMetadataID:()=>mA,generateWorkspaceAppID:()=>_A,generateWorkspaceID:()=>pA,getAllApps:()=>Ko,getAllDbs:()=>LA,getAppsByIDs:()=>rP,getCouchInfo:()=>vt,getDB:()=>Ve,getDevAppID:()=>Kv,getDevAppIDs:()=>iP,getDevelopmentAppID:()=>Ju,getDocParams:()=>jr,getGlobalDBName:()=>ur,getGlobalIDFromUserMetadataID:()=>hA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>NA,getPluginParams:()=>vA,getPouch:()=>Gp,getPouchDB:()=>Et,getProdAppID:()=>at,getProdAppIDs:()=>nP,getQueryIndex:()=>IA,getRoleParams:()=>fc,getRowParams:()=>If,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>CA,getUrlInfo:()=>Bp,getUserMetadataParams:()=>DA,getUsersByAppParams:()=>pc,getWorkspaceAppParams:()=>PA,getWorkspaceParams:()=>bA,init:()=>Xu,isDatasourceId:()=>RA,isDevApp:()=>wo,isDevAppID:()=>Gr,isDocumentConflictError:()=>pP,isExternalTableId:()=>Of,isGlobalUserID:()=>fA,isProdAppID:()=>Hv,isQueryId:()=>wA,isSameAppID:()=>sP,isTableId:()=>OA,isViewId:()=>xA,paginatedSearch:()=>cP,pagination:()=>Rf,prefixRoleID:()=>lr,queryGlobalView:()=>dr,queryGlobalViewRaw:()=>Df,queryPlatformView:()=>Jo,queryView:()=>bf,queryViewRaw:()=>Yo,removeKeyNumbering:()=>zo,searchIndexes:()=>vf});var jo={};N(jo,{AppState:()=>Af,getAppMetadata:()=>lc,invalidateAppMetadata:()=>XN});var Af=(e=>(e.INVALID="invalid",e))(Af||{}),cA=3600,JN=60;async function zN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function ZN(t){return!t||t.state==="invalid"}async function lc(t){let e=await uc(),r=await e.get(t);if(!r){let n=cA;try{r=await zN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=JN;else throw i}if(ZN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function XN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await uc();await r.delete(t),e&&await r.store(t,e,cA)}var xf={};N(xf,{generateAgentChatID:()=>AA,generateAgentToolSourceID:()=>SA,generateAppID:()=>lA,generateAppUserID:()=>dc,generateDevInfoID:()=>yA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>TA,generatePluginID:()=>EA,generateRoleID:()=>_f,generateRowID:()=>Sf,generateTableID:()=>dA,generateTemplateID:()=>gA,generateUserMetadataID:()=>mA,generateWorkspaceAppID:()=>_A,generateWorkspaceID:()=>pA,getDocParams:()=>jr,getGlobalIDFromUserMetadataID:()=>hA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>NA,getPluginParams:()=>vA,getQueryIndex:()=>IA,getRoleParams:()=>fc,getRowParams:()=>If,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>CA,getUserMetadataParams:()=>DA,getUsersByAppParams:()=>pc,getWorkspaceAppParams:()=>PA,getWorkspaceParams:()=>bA,isDatasourceId:()=>RA,isExternalTableId:()=>Of,isGlobalUserID:()=>fA,isQueryId:()=>wA,isTableId:()=>OA,isViewId:()=>xA,prefixRoleID:()=>lr});var lA=t=>{let e=gt;return t&&(e+=`${t}${D}`),`${e}${me()}`};function dA(){return`ta${D}${me()}`}function Sf(t,e){return e=e||me(),`ro${D}${t}${D}${e}`}function pA(){return`workspace${D}${me()}`}function rs(t){return`us${D}${t||me()}`}var eP=new RegExp(`^us${D}.+`);function fA(t){return eP.test(t)}function mA(t){return Sf("ta_users",t)}function hA(t){let e=`ro${D}ta_users${D}`;return!t||!t.includes(e)?t:t.split(e)[1]}function gA(t){return`template${D}${t}${D}${me()}`}function dc(t,e){return`${t}${D}${e}`}function _f(t){let e=`role${D}`;return t.startsWith(e)?t:`${e}${t}`}function lr(t){return _f(t)}var yA=t=>`devinfo${D}${t}`,EA=t=>`plg${D}${t}`,TA=t=>`oauth2log${D}${t}`,AA=()=>`agentchat${D}${me()}`,SA=()=>`agenttoolsource${D}${me()}`,_A=()=>`workspace_app${D}${me()}`;var tP=new RegExp("^datasource_plus_(.+)__(.+)$");function jr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${D}${e}`,endkey:`${t}${D}${e}${Ge}`}}function If(t,e,r={}){if(t==null)return jr("ro",null,r);let n=e??`${t}${D}`;return jr("ro",n,r)}function IA(t){return`database/${t}`}var Of=t=>{let e=t.match(tP);return!!t&&e!==null},OA=t=>!!t&&(t.startsWith(`ta${D}`)||Of(t));function xA(t){return!!t&&t.startsWith(`view${D}`)}function RA(t){return!!t&&t.startsWith(`datasource${D}`)}function wA(t){return!!t&&t.startsWith(`query${D}`)}function bA(t="",e={}){return{...e,startkey:`workspace${D}${t}`,endkey:`workspace${D}${t}${Ge}`}}function si(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${D}${t}`,endkey:`us${D}${t}${Ge}`}}function DA(t,e={}){return If("ta_users",t,e)}function pc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function CA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${D}${t}${D}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function fc(t,e={}){return jr("role",t,e)}function Ho(t,e){let r=e?`${D}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var vA=(t,e={})=>jr("plg",t,e),NA=(t,e={})=>jr("oauth2",t,e),PA=(t,e={})=>jr("workspace_app",t,e);async function LA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await Yp(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Ae?await n():(await n(Ho("app",i)),await n(Ho("app_dev",i)),r.push(ur(i))),r}async function Ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await LA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(D);if(c[0]==="app"){let l=c[c.length-2],f=c.length===2||l==="dev";return i===Ae&&f||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=>lc(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:wo(l)?"development":"published"})):c.filter(l=>t?wo(l):!wo(l))}}async function rP(t){return(await Promise.allSettled(t.map(r=>lc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function nP(){return(await Ko({idsOnly:!0})).filter(e=>!Gr(e))}async function iP(){return(await Ko({idsOnly:!0})).filter(e=>Gr(e))}function sP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function oP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function Rf(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 wf="_design/database";function aP(){return{_id:wf,views:{}}}async function uP(t,e){if(Hi[e])try{let r=await t.get(wf);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(wf)}catch{n=aP()}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 UA=async()=>{let t=oe(),e=`function(doc) {
10
- if (doc._id.startsWith("us${D}")) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},We=lf;var No,Po,Lo,Uo,Xn,Mo,Fo,ko,Bo,df;async function Lt(){No=await We.init("users"),Po=await We.init("session"),Lo=await We.init("appMetadata"),Uo=await We.init("data_cache"),Mo=await We.init("locks"),Xn=await We.init("writeThrough"),ko=await We.init("invitation"),Bo=await We.init("pwReset"),Fo=await We.init("socket_io",1),df=await We.init("docWriteThrough")}async function iA(){No&&await No.finish(),Po&&await Po.finish(),Lo&&await Lo.finish(),Uo&&await Uo.finish(),Xn&&await Xn.finish(),Mo&&await Mo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),Fo&&await Fo.finish(),df&&await df.finish()}process.on("exit",async()=>{await iA()});async function Go(){return No||await Lt(),No}async function Vr(){return Po||await Lt(),Po}async function cc(){return Lo||await Lt(),Lo}async function pf(){return Uo||await Lt(),Uo}async function ff(){return Xn||await Lt(),Xn}async function mf(){return Mo||await Lt(),Mo}async function LN(){return Fo||await Lt(),Fo}async function ei(){return ko||await Lt(),ko}async function $o(){return Bo||await Lt(),Bo}async function UN(){return Xn||await Lt(),Xn}function Kt(t){let e=j();return`${t}:${e}`}var ti=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await pf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Kt(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[Kt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Kt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Kt(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(Kt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Kt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ri=new ti,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}`},ni=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ni||{}),lc=(...t)=>ri.keys(...t),ii=(...t)=>ri.get(...t),ur=(...t)=>ri.store(...t),Vo=(...t)=>ri.delete(...t),Wr=(...t)=>ri.withCache(...t),sA=(...t)=>ri.withCacheWithDynamicTTL(...t),ts=(...t)=>ri.bustCache(...t);var rn={};N(rn,{getUser:()=>Ra,getUsers:()=>$0,invalidateUser:()=>wa});var Qo={};N(Qo,{addTenantToUrl:()=>MN,getTenantDB:()=>hf,getTenantIDFromCtx:()=>Wo,isUserInAppTenant:()=>FN});function hf(t){return Ve(Jn(t))}function MN(t){let e=j();if($r()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var FN=(t,e)=>{let r;return e?r=e.tenantId||Ae:r=j(),(Zi(t)||Ae)===r},kN=Object.values(Os),Wo=(t,e)=>{if(!$r())return Ae;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=kN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(zp()).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 Xo={};N(Xo,{getPlatformDB:()=>ct,tenants:()=>kf,users:()=>Ut});var Ut={};N(Ut,{addSsoUser:()=>aA,addUser:()=>WN,getUserDoc:()=>oA,lookupTenantId:()=>BN,removeUser:()=>QN,updateUserDoc:()=>GN});function ct(){return Ve(Te.PLATFORM_INFO.name)}async function BN(t){return h.MULTI_TENANCY?(await oA(t)).tenantId:Ae}async function oA(t){return ct().get(t)}async function GN(t){await ct().put(t)}function $N(t,e){return{_id:t,tenantId:e}}function VN(t,e,r){return{_id:e,userId:t,tenantId:r}}function qN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function gf(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 aA(t,e,r,n){return gf(t,()=>qN(t,e,r,n))}async function WN(t,e,r,n){let i=[gf(e,()=>$N(e,t)),gf(r,()=>VN(e,r,t))];n&&i.push(aA(n,r,e,t)),await Promise.all(i)}async function QN(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 kf={};N(kf,{addTenant:()=>wP,exists:()=>OP,getTenantIds:()=>IP,removeTenant:()=>bP,tenacyLockOptions:()=>Ff});var ui={};N(ui,{AUTO_EXTEND_POLLING_MS:()=>JA,doWithLock:()=>as,newRedlock:()=>ai});var YA=W(require("redlock"));var ss={};N(ss,{Duration:()=>be,DurationType:()=>Uf,clearCookie:()=>Hr,compare:()=>Tf,getAppIdFromCtx:()=>hP,getCookie:()=>pr,hasCircularStructure:()=>yP,hash:()=>Ef,isAudited:()=>Pf,isClient:()=>gP,isPublicApiRequest:()=>mP,isServingApp:()=>dP,isServingBuilder:()=>pP,isServingBuilderPreview:()=>fP,isValidInternalAPIKey:()=>Zo,newid:()=>me,openJwt:()=>gc,resolveAppUrl:()=>jA,setCookie:()=>HA,time:()=>TP,timeout:()=>Nf,urlHasProtocol:()=>EP,validEmail:()=>Lf});var yf=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),jN=h.SALT_ROUNDS||10;async function Ef(t){let e=await yf.genSalt(jN);return yf.hash(t,e)}async function Tf(t,e){return yf.compare(t,e)}var jr={};N(jr,{APP_DEV:()=>Qu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Wu,BUDIBASE_DATASOURCE_TYPE:()=>xp,DEFAULT_BB_DATASOURCE_ID:()=>Di,DEFAULT_EMPLOYEE_TABLE_ID:()=>Dp,DEFAULT_EXPENSES_TABLE_ID:()=>bp,DEFAULT_INVENTORY_TABLE_ID:()=>wp,DEFAULT_JOBS_TABLE_ID:()=>Rp,DatabaseImpl:()=>zi,DatabaseWithConnection:()=>cN,DeprecatedViews:()=>Hi,DesignDocuments:()=>ju,DocumentType:()=>ye,InternalTable:()=>xr,QueryBuilder:()=>dr,Replication:()=>FA,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Op,StaticDatabases:()=>Te,UNICODE_MAX:()=>Ge,ViewName:()=>kr,baseGlobalDBName:()=>vo,checkErrorCode:()=>$A,closePouchDB:()=>Do,createApiKeyView:()=>NA,createNewUserEmailView:()=>CA,createPlatformAccountEmailView:()=>LA,createPlatformUserView:()=>UA,createUserAppView:()=>vA,createView:()=>ns,dbExists:()=>rP,directCouchAllDbs:()=>Jp,directCouchCall:()=>$T,directCouchQuery:()=>Gp,directCouchUrlCall:()=>bo,doWithDB:()=>ut,extractAppUUID:()=>jv,fullSearch:()=>oP,generateAgentChatID:()=>TA,generateAgentToolSourceID:()=>AA,generateAppID:()=>cA,generateAppUserID:()=>pc,generateDevInfoID:()=>gA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>EA,generatePluginID:()=>yA,generateRoleID:()=>_f,generateRowID:()=>Sf,generateTableID:()=>lA,generateTemplateID:()=>hA,generateUserMetadataID:()=>fA,generateWorkspaceAppID:()=>SA,generateWorkspaceID:()=>dA,getAllApps:()=>Ko,getAllDbs:()=>DA,getAppsByIDs:()=>ZN,getCouchInfo:()=>vt,getDB:()=>Ve,getDevAppID:()=>Qv,getDevAppIDs:()=>eP,getDevelopmentAppID:()=>Zu,getDocParams:()=>Qr,getGlobalDBName:()=>Jn,getGlobalIDFromUserMetadataID:()=>mA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getPouch:()=>$p,getPouchDB:()=>Et,getProdAppID:()=>at,getProdAppIDs:()=>XN,getQueryIndex:()=>_A,getRoleParams:()=>mc,getRowParams:()=>If,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>xA,getUrlInfo:()=>Bp,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>fc,getWorkspaceAppParams:()=>bA,getWorkspaceParams:()=>IA,init:()=>ec,isDevApp:()=>wo,isDevAppID:()=>Br,isDocumentConflictError:()=>uP,isGlobalUserID:()=>pA,isProdAppID:()=>Wv,isSameAppID:()=>tP,paginatedSearch:()=>sP,pagination:()=>xf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>bf,queryPlatformView:()=>Jo,queryView:()=>wf,queryViewRaw:()=>Yo,removeKeyNumbering:()=>zo,searchIndexes:()=>Cf});var jo={};N(jo,{AppState:()=>Af,getAppMetadata:()=>dc,invalidateAppMetadata:()=>JN});var Af=(e=>(e.INVALID="invalid",e))(Af||{}),uA=3600,HN=60;async function KN(t){return ut(t,e=>e.get("app_metadata"),{skip_setup:!0})}function YN(t){return!t||t.state==="invalid"}async function dc(t){let e=await cc(),r=await e.get(t);if(!r){let n=uA;try{r=await KN(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=HN;else throw i}if(YN(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function JN(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await cc();await r.delete(t),e&&await r.store(t,e,uA)}var Of={};N(Of,{generateAgentChatID:()=>TA,generateAgentToolSourceID:()=>AA,generateAppID:()=>cA,generateAppUserID:()=>pc,generateDevInfoID:()=>gA,generateGlobalUserID:()=>rs,generateOAuth2LogID:()=>EA,generatePluginID:()=>yA,generateRoleID:()=>_f,generateRowID:()=>Sf,generateTableID:()=>lA,generateTemplateID:()=>hA,generateUserMetadataID:()=>fA,generateWorkspaceAppID:()=>SA,generateWorkspaceID:()=>dA,getDocParams:()=>Qr,getGlobalIDFromUserMetadataID:()=>mA,getGlobalUserParams:()=>si,getOAuth2ConfigParams:()=>wA,getPluginParams:()=>RA,getQueryIndex:()=>_A,getRoleParams:()=>mc,getRowParams:()=>If,getStartEndKeyURL:()=>Ho,getTemplateParams:()=>xA,getUserMetadataParams:()=>OA,getUsersByAppParams:()=>fc,getWorkspaceAppParams:()=>bA,getWorkspaceParams:()=>IA,isGlobalUserID:()=>pA,prefixRoleID:()=>cr});var cA=t=>{let e=gt;return t&&(e+=`${t}${v}`),`${e}${me()}`};function lA(){return`ta${v}${me()}`}function Sf(t,e){return e=e||me(),`ro${v}${t}${v}${e}`}function dA(){return`workspace${v}${me()}`}function rs(t){return`us${v}${t||me()}`}var zN=new RegExp(`^us${v}.+`);function pA(t){return zN.test(t)}function fA(t){return Sf("ta_users",t)}function mA(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function hA(t){return`template${v}${t}${v}${me()}`}function pc(t,e){return`${t}${v}${e}`}function _f(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return _f(t)}var gA=t=>`devinfo${v}${t}`,yA=t=>`plg${v}${t}`,EA=t=>`oauth2log${v}${t}`,TA=()=>`agentchat${v}${me()}`,AA=()=>`agenttoolsource${v}${me()}`,SA=()=>`workspace_app${v}${me()}`;function Qr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${Ge}`}}function If(t,e,r={}){if(t==null)return Qr("ro",null,r);let n=e??`${t}${v}`;return Qr("ro",n,r)}function _A(t){return`database/${t}`}function IA(t="",e={}){return{...e,startkey:`workspace${v}${t}`,endkey:`workspace${v}${t}${Ge}`}}function si(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${v}${t}`,endkey:`us${v}${t}${Ge}`}}function OA(t,e={}){return If("ta_users",t,e)}function fc(t,e={}){let r=at(t);return{...e,startkey:r,endkey:`${r}${Ge}`}}function xA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${Ge}`}}function mc(t,e={}){return Qr("role",t,e)}function Ho(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ge}"`}var RA=(t,e={})=>Qr("plg",t,e),wA=(t,e={})=>Qr("oauth2",t,e),bA=(t,e={})=>Qr("workspace_app",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===Ae?await n():(await n(Ho("app",i)),await n(Ho("app_dev",i)),r.push(Jn(i))),r}async function Ko({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Ae);let o=(await DA({efficient:n})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(v);if(c[0]==="app"){let l=c[c.length-2],m=c.length===2||l==="dev";return i===Ae&&m||l===i}return!1});if(r){let u=o.filter(l=>Br(l)),c=o.filter(l=>!Br(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>dc(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:wo(l)?"development":"published"})):c.filter(l=>t?wo(l):!wo(l))}}async function ZN(t){return(await Promise.allSettled(t.map(r=>dc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function XN(){return(await Ko({idsOnly:!0})).filter(e=>!Br(e))}async function eP(){return(await Ko({idsOnly:!0})).filter(e=>Br(e))}function tP(t,e){return t==null||e==null?!1:at(t)===at(e)}async function rP(t){return ut(t,async e=>await e.exists(),{skip_setup:!0})}function xf(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 Rf="_design/database";function nP(){return{_id:Rf,views:{}}}async function iP(t,e){if(Hi[e])try{let r=await t.get(Rf);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(Rf)}catch{n=nP()}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 CA=async()=>{let t=ne(),e=`function(doc) {
10
+ if (doc._id.startsWith("us${v}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await ns(t,e,"by_email2")},MA=async()=>{let t=oe(),e=`function(doc) {
14
- if (doc._id.startsWith("us${D}") && doc.roles) {
13
+ }`;await ns(t,e,"by_email2")},vA=async()=>{let t=ne(),e=`function(doc) {
14
+ if (doc._id.startsWith("us${v}") && doc.roles) {
15
15
  for (let prodAppId of Object.keys(doc.roles)) {
16
- let emitted = prodAppId + "${D}" + doc._id
16
+ let emitted = prodAppId + "${v}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await ns(t,e,"by_app")},FA=async()=>{let t=oe(),e=`function(doc) {
20
+ }`;await ns(t,e,"by_app")},NA=async()=>{let t=ne(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await ns(t,e,"by_api_key")};async function Yo(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 uP(r,t),await n(),Yo(t,e,r,n,i);if(s.status===409)return Yo(t,e,r,n,i);throw s}}var bf=async(t,e,r,n,i)=>{let a=(await Yo(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 kA(t,e){try{await ut(Te.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var BA=async()=>{let t=`function(doc) {
25
- if (doc._id.startsWith("acc_metadata${D}")) {
24
+ }`;await ns(t,e,"by_api_key")};async function Yo(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 iP(r,t),await n(),Yo(t,e,r,n,i);if(s.status===409)return Yo(t,e,r,n,i);throw s}}var wf=async(t,e,r,n,i)=>{let a=(await Yo(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 PA(t,e){try{await ut(Te.PLATFORM_INFO.name,async r=>{await ns(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var LA=async()=>{let t=`function(doc) {
25
+ if (doc._id.startsWith("acc_metadata${v}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await kA(t,"account_by_email")},GA=async()=>{await kA(`function(doc) {
28
+ }`;await PA(t,"account_by_email")},UA=async()=>{await PA(`function(doc) {
29
29
  if (doc.tenantId) {
30
30
  emit(doc._id.toLowerCase(), doc._id)
31
31
  }
@@ -33,7 +33,7 @@ attempted value: ${s}
33
33
  if (doc.ssoId) {
34
34
  emit(doc.ssoId, doc._id)
35
35
  }
36
- }`,"platform_users_lowercase_2")},Jo=async(t,e)=>{let r={account_by_email:BA,platform_users_lowercase_2:GA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return bf(t,e,n,i,{arrayResponse:!0})})},$A={by_email2:UA,by_api_key:FA,by_app:MA},dr=async(t,e,r,n)=>{r||(r=oe());let i=$A[t];return bf(t,e,r,i,n)};async function Df(t,e,r){let n=oe(),i=$A[t];return Yo(t,e,n,i,r)}var Cf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Do(this.source),Do(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()}},VA=Cf;var WA=W(require("node-fetch"));var zo=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=zo(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=(d,g)=>oi(g)?null:`${d}:${e.preprocess(g,s)}`,u=(d,g,E="AND")=>{if(oi(g))return null;if(!Array.isArray(g))return`${d}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${d}:(${y})`},c=(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${d}:/.*${g}.*/`),l=(d,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(d,g,y)},f=(d,g)=>u(d,g,"OR"),m=(d,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`${d}:(${E})`};function p(d,g,E){let y="";for(let[S,O]of Object.entries(d)){S=zo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,O);if(R!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=R,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==o&&O!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&p(this.#e.string,(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${d}:${g}*`)),this.#e.range&&p(this.#e.range,(d,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`${d}:[${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,(d,g)=>oi(g)?null:typeof g=="boolean"?`(*:* AND !${d}:${g})`:`!${d}:${e.preprocess(g,s)}`),this.#e.empty&&p(this.#e.empty,d=>(i=!1,`(*:* -${d}:["" TO *])`)),this.#e.notEmpty&&p(this.#e.notEmpty,d=>(i=!1,`${d}:["" 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,f),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 qA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await qA(n,i,r);throw s}}};async function qA(t,e,r){let n=await(0,WA.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 QA(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 QA(t,e,r,c)}async function cP(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 lP(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 QA(t,e,r,n)}}var vf={};N(vf,{createUserIndex:()=>dP});async function dP(){let t=oe(),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 jA(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 pP(t){return jA(t,409)}var mc=W(require("jsonwebtoken")),Nf="app"+D,KA="/app/",YA="/app/preview",fP="/builder",JA=`${fP}/app/`,mP="/api/public/v";function is(t){return t&&t.startsWith(Nf)?t:void 0}async function zA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Wo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function hP(t){return t.path.startsWith(`/${Nf}`)?!0:t.path.startsWith(KA)}function gP(t){return t.path.startsWith(JA)}function yP(t){return t.path.startsWith(YA)}function EP(t){return t.path.startsWith(mP)}async function TP(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=HA(t.path);!r&&n&&(r=is(n)),!r&&t.query?.appId&&(r=is(t.query?.appId));let i=t.path.startsWith(YA),s=t.path.startsWith(KA)&&!i;!r&&s&&(r=is(await zA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(JA)){let a=HA(t.request.headers.referer);r=is(a)}return r}function HA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(Nf))}function hc(t){if(t)try{return mc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return mc.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 hc(r)}function ZA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=mc.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 Kr(t,e){ZA(t,null,e)}function AP(t){return t.headers["x-budibase-type"]==="client"}function Pf(t){return new Promise(e=>setTimeout(e,t))}function Lf(t){return!!Lh[t]}function SP(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 _P(t){return!!t.match(/^.+:\/\/.+$/)}function Uf(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 Mf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Mf||{}),gc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/gc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*gc[e]/gc[r]}static from(e,r){return new t(r*gc[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 IP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function OP(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 mf()).client;return new eS.default([n],e)}function xP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var tS=be.fromSeconds(10).toMs();async function as(t,e){let r=await OP(t.type,t.customOptions),n,i;try{let s=xP(t),o=t.type==="auto_extend"?tS:t.ttl;if(n=await r.lock(s,o),t.type==="auto_extend"){let u=()=>{i=setTimeout(async()=>{n=await n.extend(o,()=>t.onExtend&&t.onExtend()),u()},o/2)};u()}return{executed:!0,result:await e()}}catch(s){if(s.name==="LockError"){if(t.type==="try_once")return{executed:!1};throw s}else throw s}finally{clearTimeout(i),await n?.unlock()}}var Ff=Te.PLATFORM_INFO.docs.tenants,kf={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function wP(){return(await yc()).tenantIds}async function yc(){let t=ct(),e;try{e=await t.get(Ff)}catch(r){if(r.status===404)e=await CP();else throw r}return e}async function bP(t){return(await yc()).tenantIds.indexOf(t)!==-1}function DP(){return{_id:Ff,tenantIds:[]}}async function CP(){let t=ct(),e=DP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Ff);throw r}return e}async function vP(t){let e=ct();await as(kf,async()=>{let r=await yc();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function NP(t){try{await as(kf,async()=>{let e=ct(),r=await yc();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:()=>Xr,getAccountByTenantId:()=>ls,getStatus:()=>dL});var LS=W(require("node-fetch"));var xc={};N(xc,{correlation:()=>ea,logAlert:()=>sa,logAlertWithInfo:()=>lL,logWarn:()=>cs,logger:()=>Oc,system:()=>em});var ea={};N(ea,{getId:()=>Gf,setHeader:()=>PP});var rS=require("correlation-id"),PP=t=>{let e=rS.getId();e&&(t["x-budibase-correlation-id"]=e)};function Gf(){return rS.getId()}var Ic=W(require("pino")),NS=W(require("pino-pretty"));var tm=W(require("dd-trace")),PS=require("dd-trace/ext");var em={};N(em,{getLogReadStream:()=>iL,getSingleFileMaxSizeInfo:()=>vS,localFileDestination:()=>Xf});var ia=W(require("fs")),Zf=W(require("path")),wS=W(require("rotating-file-stream"));var zf={};N(zf,{ObjectStore:()=>Mt,ObjectStoreBuckets:()=>UP,SIGNED_FILE_PREFIX:()=>Hf,bucketTTLConfig:()=>Ec,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>zP,clientLibraryPath:()=>ES,clientLibraryUrl:()=>ZP,createBucketIfNotExists:()=>na,deleteFile:()=>WP,deleteFiles:()=>QP,deleteFolder:()=>hS,downloadTarball:()=>HP,downloadTarballDirect:()=>jP,enrichPWAImages:()=>XP,enrichPluginURLs:()=>tL,extractBucketAndPath:()=>$f,getAppFileUrl:()=>TS,getGlobalFileS3Key:()=>AS,getGlobalFileUrl:()=>eL,getObjectMetadata:()=>KP,getPluginIconKey:()=>IS,getPluginJSKey:()=>_S,getPluginS3Dir:()=>xS,getPresignedUrl:()=>zr,getReadStream:()=>Tc,listAllObjects:()=>mS,processAutomationAttachment:()=>FP,processObjectStoreAttachment:()=>aS,retrieve:()=>fS,retrieveDirectory:()=>qP,retrieveToTmp:()=>VP,sanitizeBucket:()=>Ye,sanitizeKey:()=>Ue,streamUpload:()=>pS,upload:()=>$P,uploadDirectory:()=>Kf});var Sc=require("@aws-sdk/client-s3"),Vf=require("@aws-sdk/lib-storage"),uS=require("@aws-sdk/s3-request-presigner"),ra=W(require("stream")),qf=W(require("node-fetch")),Wf=W(require("tar-fs")),Qf=W(require("zlib")),cS=require("util"),Jr=require("path"),mr=W(require("fs"));var ta=W(require("path")),nS=require("os"),iS=W(require("fs"));var sS=W(require("stream")),UP={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},oS=(0,ta.join)((0,nS.tmpdir)(),".budibase");try{iS.default.mkdirSync(oS)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return oS}var Ec=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function MP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ta.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:sS.default.Readable.fromWeb(e.body)}}async function aS(t){let e=$f(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Tc(r,n),s=ta.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function FP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await MP(t):await aS(t)}var jf=require("uuid");var lS=W(require("fs/promises")),kP=require("sanitize-s3-objectkey"),dS=(0,cS.promisify)(ra.default.pipeline),BP={bucketCreationPromises:{}},Hf="/files/signed",Yr={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"},GP=[Yr.html,Yr.css,Yr.js,Yr.json];function Ue(t){return kP(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 Sc.S3(e)}async function na(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=BP.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 $P({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await lS.default.open(r)).createReadStream():s,c=Mt(),l=await na(c,t);if(o&&l.created){let g=Ec(t,o);await c.putBucketLifecycleConfiguration(g)}let f=n,m=f||(a?Yr[a.toLowerCase()]:Yr.txt),p={Bucket:Ye(t),Key:Ue(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 Vf.Upload({client:c,params:p}).done()}async function pS({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 na(a,t);if(s&&u.created){let E=Ec(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?Yr[o.toLowerCase()]:Yr.txt);let l=Ye(t),f=Ue(r),m={Bucket:l,Key:f,Body:e,ContentType:c,...i},d=await new Vf.Upload({client:a,params:m}).done(),g=await a.headObject({Bucket:l,Key:f});return{...d,ContentLength:g.ContentLength}}async function fS(t,e){let r=Mt(),n={Bucket:Ye(t),Key:Ue(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(GP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ra.default.Readable.fromWeb(s)}}async function mS(t,e){let r=Mt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ye(t),Prefix:Ue(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 zr(t,e,r=3600){let n=Mt({presigning:!0}),i={Bucket:Ye(t),Key:Ue(e)},s=await(0,uS.getSignedUrl)(n,new Sc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${Hf}${a}${u}`}else return s}async function VP(t,e){t=Ye(t),e=Ue(e);let r=await fS(t,e),n=(0,Jr.join)(ci(),(0,jf.v4)());return r instanceof ra.default.Readable?r.pipe(mr.default.createWriteStream(n)):mr.default.writeFileSync(n,r),n}async function qP(t,e){let r=(0,Jr.join)(ci(),(0,jf.v4)());mr.default.mkdirSync(r);let n=await mS(t,e),i=await Promise.all(n.map(a=>Tc(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),f=l.slice(0,l.length-1),m=(0,Jr.join)(r,...f);l.length>1&&!mr.default.existsSync(m)&&mr.default.mkdirSync(m,{recursive:!0});let p=mr.default.createWriteStream((0,Jr.join)(r,...l),{mode:420});c.pipe(p),o.push(new Promise((d,g)=>{p.on("finish",()=>d()),c.on("error",g),p.on("error",g)}))}return await Promise.all(o),r}async function WP(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Key:Ue(e)};return r.deleteObject(n)}async function QP(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ue(i)}))}};return r.deleteObjects(n)}async function hS(t,e){t=Ye(t),e=Ue(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 hS(t,e)}async function Kf(t,e,r){t=Ye(t);let n=[],i=mr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ue((0,Jr.join)(r,s.name)),a=(0,Jr.join)(e,s.name);s.isDirectory()?n.push(Kf(t,a,o)):n.push(pS({bucket:t,filename:o,stream:mr.default.createReadStream(a)}))}return await Promise.all(n),i}async function jP(t,e,r={}){e=Ue(e);let n=await(0,qf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await dS(n.body,Qf.default.createUnzip(),Wf.default.extract(e))}async function HP(t,e,r){e=Ye(e),r=Ue(r);let n=await(0,qf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Jr.join)(ci(),r);return await dS(n.body,Qf.default.createUnzip(),Wf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Kf(e,i,r),i}async function Tc(t,e){t=Ye(t),e=Ue(e);let r=Mt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ra.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function KP(t,e){t=Ye(t),e=Ue(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 $f(t){let e=t.split("?")[0],r=new RegExp(`^${Hf}/(?<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 gS=W(require("aws-cloudfront-sign")),_c;function YP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return _c||(_c=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),_c)}var JP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:YP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=Yf(t);return gS.getSignedUrl(e,JP())},Yf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var yS=W(require("querystring"));function ES(t){return`${Ue(t)}/budibase-client.js`}async function zP(t,e){let r=ES(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Yf(r)):await zr(h.APPS_BUCKET_NAME,r)}function ZP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${yS.default.encode(n)}`}async function TS(t){return h.CLOUDFRONT_CDN?us(t):await zr(h.APPS_BUCKET_NAME,t)}async function XP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await TS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var eL=async(t,e,r)=>{let n=AS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await zr(h.GLOBAL_BUCKET_NAME,n)},AS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function tL(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await rL(e),n=await nL(e);return{...e,jsUrl:r,iconUrl:n}}))}async function rL(t){let e=_S(t);return SS(e)}async function nL(t){let e=IS(t);if(e)return SS(e)}async function SS(t){return h.CLOUDFRONT_CDN?us(t):await zr(h.PLUGIN_BUCKET_NAME,t)}function _S(t){return OS(t,"plugin.min.js")}function IS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return OS(t,e)}function OS(t,e){return`${xS(t.name)}/${e}`}function xS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var bS="budibase.log",DS="budibase-logs-history.txt",CS=Zf.default.join(ci(),"systemlogs");function RS(t){return Zf.default.join(CS,t)}function vS(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 Xf(){let t=vS(h.ROLLING_LOG_MAX_SIZE);return wS.createStream(bS,{size:t?.size,path:CS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:DS,initialRotation:!1})}function iL(){let t=[],e=RS(DS);if(ia.default.existsSync(e)){let i=ia.default.readFileSync(e,"utf-8").split(`
37
- `);for(let s of i.filter(o=>o))t.push(ia.default.readFileSync(s))}return t.push(ia.default.readFileSync(RS(bS))),Buffer.concat(t)}function sL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function oL(t){return t instanceof Error}function aL(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,NS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Xf(),level:t}),Zr=r.length?(0,Ic.default)(e,Ic.default.multistream(r)):(0,Ic.default)(e);let n=u=>{let c,l=[],f="";u.forEach(E=>{aL(E)&&(f=`${f} ${E}`.trimStart()),sL(E)&&l.push(E),oL(E)&&(c=E)});let m=a(),p={};p={tenantId:i(),appId:s(),automationId:o(),identityId:m?._id,identityType:m?.type,correlationId:Gf()};let d=tm.default.scope().active();d&&tm.default.inject(d.context(),PS.formats.LOG,p);let g={err:c,pid:process.pid,...p};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let O=l[S],R=O._logKey;R?(delete O._logKey,g[R]=O):(E[y]=O,y++)}Object.keys(E).length&&(g.data=E)}return[g,f]};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=Le()}catch{}return u},o=()=>{let u;try{u=Xp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var Oc=Zr;var uL=["AccountError"];function cL(t){return t&&t.suppressAlert}function sa(t,e){e&&uL.includes(e.name)&&cL(e)||console.error(`bb-alert: ${t}`,e)}function lL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,sa(t,n)}function cs(t,e){console.warn(`bb-warn: ${t}`,e)}var oa=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";ea.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,LS.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var rm=new oa(h.ACCOUNT_PORTAL_URL),nm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Xr=async t=>{if(nm)return;let e={email:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},ls=async t=>{if(nm)return;let e={tenantId:t},r=await rm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},dL=async()=>{if(nm)return;let t=await rm.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};N(Es,{UserDB:()=>Yt,addAppBuilder:()=>k0,bulkGetGlobalUsersById:()=>Jc,bulkUpdateGlobalUsers:()=>_a,cleanseUserObject:()=>Nm,creatorsInList:()=>di,doesUserExist:()=>P0,getAccountHolderFromUsers:()=>Uc,getAllUserIds:()=>v0,getAllUsers:()=>N0,getById:()=>mi,getCreatorCount:()=>M0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>kS,getExistingTenantUsers:()=>FS,getFirstPlatformUser:()=>aa,getGlobalUserByAppPage:()=>C_,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>Rc,getUserCount:()=>U0,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Pc,isGlobalBuilder:()=>BS,paginatedUsers:()=>N_,removeAppBuilder:()=>B0,removePortalUserPermissions:()=>F0,searchExistingEmails:()=>om,searchGlobalUsersByApp:()=>zc,searchGlobalUsersByAppAccess:()=>vm,searchGlobalUsersByEmail:()=>v_,validateUniqueUser:()=>Lc});var am={};N(am,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>Uc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Pc,isGlobalBuilder:()=>BS,validateUniqueUser:()=>Lc});var sm={};N(sm,{createCode:()=>fL,deleteCode:()=>hL,getCode:()=>mL,getExistingInvites:()=>im,getInviteCodes:()=>MS,updateCode:()=>pL});var US=be.fromDays(7).toSeconds();async function pL(t,e){await(await ei()).store(t,e,US)}async function fL(t,e){let r=me();return await(await ei()).store(r,{email:t,info:e},US),r}async function mL(t){let r=await(await ei()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function hL(t){await(await ei()).delete(t)}async function MS(){let r=(await(await ei()).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 im(t){return(await MS()).filter(e=>t.includes(e.email))}async function om(t){let e=[],r=await FS(t);e.push(...r.map(o=>o.email));let n=await kS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await im(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Rc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function aa(t){return(await Rc(t))[0]??null}async function FS(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 kS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("account_by_email",r)}var Nc={};N(Nc,{BadRequestError:()=>bc,BudibaseError:()=>ps,EmailUnavailableError:()=>hr,FeatureDisabledError:()=>Cc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>wc,UsageLimitError:()=>Dc,getPublicError:()=>vc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},vc=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)}},wc=class extends lt{constructor(e){super(e,404)}},bc=class extends lt{constructor(e){super(e,400)}},Dc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Cc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},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,en=ot.users.isAdmin,BS=ot.users.isGlobalBuilder,GS=ot.users.isAdminOrBuilder,tn=ot.users.hasAdminPermissions,Tt=ot.users.hasBuilderPermissions,$S=ot.users.hasAppBuilderPermissions;async function di(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await oe().getMultiple(r,{allowMissing:!0}),t.map(i=>Pc(i,e))}async function ua(t){let e=[];return t.userGroups&&(e=await oe().getMultiple(t.userGroups)),Pc(t,e)}function Pc(t,e){let r=ot.users.isCreator(t);return!r&&t?yL(t,e):r}function yL(t,e){let r=e?.filter(n=>t.userGroups?.indexOf(n._id)!==-1);return r&&r.length>0?r.some(n=>Object.values(n.roles||{}).includes("CREATOR")):!1}async function Lc(t,e){if(h.MULTI_TENANCY){let r=await aa(t);if(r!=null&&r.tenantId!==e)throw new hr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Xr(t);if(r&&r.verified&&r.tenantId!==e)throw new hr(t)}}async function Uc(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:()=>i_,ai:()=>c_,analytics:()=>Fc,app:()=>s_,auditLog:()=>O_,auth:()=>Hc,automation:()=>o_,backfill:()=>T_,backfillCache:()=>Qc,backup:()=>__,datasource:()=>a_,email:()=>u_,environmentVariable:()=>I_,group:()=>A_,identification:()=>Ft,initAsyncEvents:()=>y0,installation:()=>ga,layout:()=>d_,license:()=>l_,org:()=>p_,plugin:()=>S_,processors:()=>mm,publishEvent:()=>A,query:()=>f_,role:()=>Sa,rowAction:()=>x_,rows:()=>h_,screen:()=>m_,serve:()=>y_,shutdown:()=>E0,table:()=>g_,user:()=>Je,view:()=>E_});var mm={};N(mm,{analyticsProcessor:()=>XS,init:()=>FL,processors:()=>Er});var Fc={};N(Fc,{enabled:()=>Mc});var Mc=async()=>kc();var jS=require("posthog-node");var EL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",TL=t=>t==="served:app:preview"||t==="served:app";var qS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},WS=async t=>{if(!EL(t))return!1;let e=await AL(t);if(e){let r=new Date(e.timestamp);switch(qS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await VS(t,{timestamp:Date.now()}),!1):!0}}else return await VS(t,{timestamp:Date.now()}),!1},QS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return TL(t)&&(e=e+":"+Le()),e},AL=async t=>{let e=QS(t);return await ii(e)},VS=async(t,e)=>{let r=QS(t),n=qS[t],i;switch(n){case"calendarDay":i=86400}await cr(r,e,i)};var _L=["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"],ca=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new jS.PostHog(e)}async processEvent(e,r,n,i){if(_L.includes(e)||await WS(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Le();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)}async shutdown(){await this.posthog.shutdown()}};var HS=ca;var IL=["installation:version:upgraded","installation:version:downgraded"],OL=["installation","tenant"],la=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new HS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!IL.includes(e)&&!await Mc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!OL.includes(e.type)&&!await Mc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var um=h.SELF_HOSTED&&!h.isDev(),da=class{async processEvent(e,r,n){um||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){um||console.log("[audit] identified",e)}async identifyGroup(e){um||console.log("[audit] group identified",e)}async shutdown(){}};var fm={};N(fm,{BudibaseQueue:()=>yr,InMemoryQueue:()=>Bc,JobQueue:()=>hs,shutdown:()=>LL});var KS=W(require("events"));function xL(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 Bc=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:me(),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=>xL(e))}async whenCurrentJobsFinished(){do await Pf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},YS=Bc;var dm=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 JS(t,e,r){bL(t,e),r&&RL(t,r)}function RL(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 wL={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function bL(t,e){let r=wL[e];function n(i,s){let o=i.data.event?.appId;if(o)return Zp(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 Gc={};N(Gc,{cleanup:()=>DL,clear:()=>lm,set:()=>cm});var pa=[];function cm(t,e){let r=setInterval(t,e);return pa.push(r),r}function lm(t){let e=pa.indexOf(t);e!==-1&&pa.splice(e,1),clearInterval(t)}function DL(){for(let t of pa)clearInterval(t);pa=[]}var gr=W(require("dd-trace")),fa=W(require("object-sizeof")),CL=be.fromMinutes(5).toMs(),vL=be.fromSeconds(30).toMs(),pm=be.fromSeconds(60).toMs(),ma=[],$c;async function zS(){for(let t of ma)await t.clean(pm,"completed"),await t.clean(pm,"failed")}async function NL(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 ZS(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 PL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,fa.default)(t.data),...ZS(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:CL,lockRenewTime:vL}};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 YS(this.jobQueue,r):n=new dm.default(this.jobQueue,r),JS(n,this.jobQueue,this.opts.removeStalledCb),ma.push(n),!$c&&!h.isTest()&&($c=cm(zS,pm),zS().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,...PL(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),gr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,fa.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,fa.default)(e),...ZS(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,fa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return NL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function LL(){$c&&lm($c),console.log("Waiting for current queue jobs to finish...");for(let t of ma)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of ma)await t.close();ma=[],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&&Lf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Le(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ha=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)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var XS=new la,UL=new da,ML=new gs;function FL(t){return gs.init(t)}var Er=new ha([XS,UL,ML]);var Vc={};N(Vc,{checkInstallVersion:()=>GL,getInstall:()=>ya,getInstallFromDB:()=>gm});var hm=W(require("semver"));var ya=async()=>Qr(Ce.INSTALLATION,86400,gm,{useTenancy:!1});async function kL(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:me(),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(Te.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Te.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await kL(t);else throw r}return e}),BL=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await ya();r.version=t,await e.put(r),await ts(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},GL=async()=>{let t=await ya(),e=t.version,r=h.VERSION;try{if(e!==r){let n=hm.default.gt(r,e),i=hm.default.lt(r,e);await BL(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ga.upgraded(e,r):i&&await ga.downgraded(e,r)}),await Ft.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?sa(`Invalid version "${r}" - is it semver?`):sa("Failed to retrieve version",n)}};var $L=async()=>{let t=Pp(),e=Aa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=Ea();return{id:e_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await qc(j()),s=Ea();return{id:e_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await qc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=Ea(),{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")},VL=async(t,e)=>{let r=t,n="installation",i=Ea(),s=h.VERSION,o=Aa(),a={id:r,type:n,hosting:i,version:s,environment:o};await ym(a,e),await Ta({...a,id:`$${n}_${r}`},e)},qL=async(t,e,r)=>{let n=await qc(t),i="tenant",s=await pi(),o=Aa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await ym(a,r),await Ta({...a,id:`$${i}_${n}`},r)},WL=async(t,e,r)=>{let n=t._id,i=await qc(t.tenantId),s="user",o=Tt(t),a=tn(t),u;qa(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,f=!!e&&l&&e.verified,m=await pi(),p=e?e.hosting:Ea(),d=Aa();await Ta({id:n,type:s,hosting:p,installationId:m,tenantId:i,verified:f,accountHolder:l,providerType:u,builder:o,admin:a,environment:d},r)},QL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Va(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=Aa();if($a(t)){let f=await kt(t.email);f?._id&&(e=f._id)}await Ta({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ta=async(t,e)=>{await Er.identify(t,e)},ym=async(t,e)=>{await Er.identifyGroup(t,e)},Aa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ea=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>jL()?"account-portal":(await ya()).installId,qc=async t=>h.SELF_HOSTED?t_(t):t,t_=async t=>qe(t,()=>Qr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=oe(),r=await Wc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),jL=()=>h.SERVICE==="account-portal",e_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ft={getCurrentIdentity:$L,identifyInstallationGroup:VL,identifyTenantGroup:qL,identifyUser:WL,identifyAccount:QL,identify:Ta,identifyGroup:ym,getInstallationId:pi,getUniqueTenantId:t_};var Qc={};N(Qc,{end:()=>KL,isAlreadySent:()=>Am,isBackfillingEvent:()=>Tm,recordEvent:()=>Em,start:()=>HL});var HL=async t=>JL({eventWhitelist:t}),Em=async(t,e)=>{let r=Sm(t,e);await cr(r,e,void 0,{useTenancy:!1})},KL=async()=>{await zL(),await ZL()},YL=async()=>ii(Ce.BACKFILL_METADATA),JL=async t=>cr(Ce.BACKFILL_METADATA,t),zL=async()=>{await Vo(Ce.BACKFILL_METADATA)},ZL=async()=>{let t=Sm(),e=await cc(t);for(let r of e)await Vo(r,{useTenancy:!1})},Tm=async t=>{let r=(await YL())?.eventWhitelist;return!!(r&&r.includes(t))},Am=async(t,e)=>{let r=Sm(t,e);return!!await ii(r,{useTenancy:!1})},XL={"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=XL[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Tr;function jc(){Tr=new yr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function r_(){Tr&&await Tr.close()}async function n_(t){Tr||jc();let{event:e,identity:r}=t;Ph.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 Tm(t))){await n_({event:t,identity:i,properties:e,timestamp:r}),await Er.processEvent(t,i,e,r);return}await Am(t,e)||(await Er.processEvent(t,i,e,r),await Em(t,e))};async function eU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function tU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function rU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var i_={created:eU,deleted:tU,verified:rU};var nU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function iU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function sU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function oU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function aU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function uU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function cU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function lU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function dU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function pU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function fU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function mU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var s_={created:nU,updated:iU,deleted:sU,published:oU,unpublished:aU,fileImported:uU,duplicated:cU,templateImported:lU,versionUpdated:dU,versionReverted:pU,reverted:fU,exported:mU};async function hU(t,e){let n={userId:(await Ft.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function gU(t){let r={userId:(await Ft.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function yU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function EU(t){let e={type:t};await A("auth:sso:updated",e)}async function TU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function AU(t){let e={type:t};await A("auth:sso:deactivated",e)}var Hc={login:hU,logout:gU,SSOCreated:yU,SSOUpdated:EU,SSOActivated:TU,SSODeactivated:AU};async function SU(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 _U(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 IU(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 OU(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 xU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function RU(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 wU(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 o_={created:SU,triggerUpdated:_U,deleted:IU,tested:OU,run:xU,stepCreated:RU,stepDeleted:wU};function _m(t){return!Object.values(Fa).includes(t.source)}async function bU(t,e){let r={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:created",r,e)}async function DU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:updated",e)}async function CU(t){let e={datasourceId:t._id,source:t.source,custom:_m(t)};await A("datasource:deleted",e)}var a_={created:bU,updated:DU,deleted:CU};async function vU(t){let e={};await A("email:smtp:created",e,t)}async function NU(){let t={};await A("email:smtp:updated",t)}var u_={SMTPCreated:vU,SMTPUpdated:NU};async function PU(t){let e={};await A("ai:config:created",e,t)}async function LU(){let t={};await A("ai:config:updated",t)}var c_={AIConfigCreated:PU,AIConfigUpdated:LU};async function UU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function MU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function FU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function kU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function BU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function GU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function $U(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var l_={planChanged:UU,activated:MU,checkoutOpened:FU,checkoutSuccess:kU,portalOpened:BU,paymentFailed:GU,paymentRecovered:$U};async function VU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function qU(t){let e={layoutId:t};await A("layout:deleted",e)}var d_={created:VU,deleted:qU};async function WU(t){let e={};await A("org:info:name:updated",e,t)}async function QU(t){let e={};await A("org:info:logo:updated",e,t)}async function jU(t){let e={};await A("org:platformurl:updated",e,t)}async function HU(){let t={};await A("analytics:opt:out",t)}async function KU(){let t={};await A("analytics:opt:out",t)}var p_={nameUpdated:WU,logoUpdated:QU,platformURLUpdated:jU,analyticsOptOut:HU,analyticsOptIn:KU};var YU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},JU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},zU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},ZU=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},XU=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},eM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},f_={created:YU,updated:JU,deleted:zU,imported:ZU,run:XU,previewed:eM};async function tM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function rM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function nM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function iM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function sM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Sa={created:tM,updated:rM,deleted:nM,assigned:iM,unassigned:sM};async function oM(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 aM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var m_={created:oM,deleted:aM};var uM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},cM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},h_={created:uM,imported:cM};async function lM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function dM(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 pM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function fM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function mM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var g_={created:lM,updated:dM,deleted:pM,exported:fM,imported:mM};async function hM(t){let e={timezone:t};await A("served:builder",e)}async function gM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function yM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var y_={servedBuilder:hM,servedApp:gM,servedAppPreview:yM};async function EM(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function TM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function AM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function SM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function _M(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function IM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function OM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function xM(t){let e={audited:{email:t}};await A("user:invited",e)}async function RM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function wM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function bM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function CM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function vM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:EM,updated:TM,deleted:AM,permissionAdminAssigned:SM,permissionAdminRemoved:_M,permissionBuilderAssigned:IM,permissionBuilderRemoved:OM,invited:xM,inviteAccepted:RM,passwordForceReset:wM,passwordUpdated:bM,passwordResetRequested:DM,passwordReset:CM,dataCollaboration:vM};async function NM(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 LM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function UM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function MM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function FM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function kM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function BM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function GM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function $M(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function VM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var E_={created:NM,updated:PM,deleted:LM,exported:UM,filterCreated:MM,filterUpdated:FM,filterDeleted:kM,calculationCreated:BM,calculationUpdated:GM,calculationDeleted:$M,viewJoinCreated:VM};async function qM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function WM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function QM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function jM(){let t={};await A("installation:firstStartup",t)}var ga={versionChecked:qM,upgraded:WM,downgraded:QM,firstStartup:jM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function HM(t){Ts||await A("app:backfill:succeeded",t)}async function KM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function YM(t){Ts||await A("tenant:backfill:succeeded",t)}async function JM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function zM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function ZM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var T_={appSucceeded:HM,appFailed:KM,tenantSucceeded:YM,tenantFailed:JM,installationSucceeded:zM,installationFailed:ZM};async function XM(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function e0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function t0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function r0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function n0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function i0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function s0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var A_={created:XM,updated:e0,deleted:t0,usersAdded:r0,usersDeleted:n0,createdOnboarding:i0,permissionsEdited:s0};async function o0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function a0(t){let e={pluginId:t._id,type:t.schema.type,source:t.source,name:t.name,description:t.description,version:t.version};await A("plugin:imported",e)}async function u0(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 S_={init:o0,imported:a0,deleted:u0};async function c0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function l0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var __={appBackupRestored:c0,appBackupTriggered:l0};async function d0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function p0(t){let e={name:t};await A("environment_variable:deleted",e)}async function f0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var I_={created:d0,deleted:p0,upgradePanelOpened:f0};async function m0(t){let e={filters:t};await A("audit_log:filtered",e)}async function h0(t){let e={filters:t};await A("audit_log:downloaded",e)}var O_={filtered:m0,downloaded:h0};async function g0(t,e){await A("row_action:created",t,e)}var x_={created:g0};function y0(){}var E0=async()=>{await Er.shutdown(),console.log("Events shutdown")};var Im=async t=>{await Je.deleted(t),Tt(t)&&await Je.permissionBuilderRemoved(t),tn(t)&&await Je.permissionAdminRemoved(t)},T0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Sa.assigned(t,i)},A0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Sa.unassigned(t,i)},S0=async(t,e)=>{let r=t.roles,n=e?.roles;await T0(t,r,n),await A0(t,r,n)},Om=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),I0(t,e)&&await Je.permissionBuilderRemoved(t),x0(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),_0(t,e)&&await Je.permissionBuilderAssigned(t),O0(t,e)&&await Je.permissionAdminAssigned(t),await S0(t,e)},_0=(t,e)=>R_(t,e,Tt),I0=(t,e)=>w_(t,e,Tt),O0=(t,e)=>R_(t,e,tn),x0=(t,e)=>w_(t,e,tn),R_=(t,e,r)=>!(!r(t)||e&&r(e)),w_=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};N(Yc,{createASession:()=>w0,endSession:()=>b0,getSession:()=>Rm,getSessionsForUser:()=>Kc,invalidateSessions:()=>fi,updateSessionTTL:()=>xm});var b_=require("uuid");var D_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function Kc(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 Kc(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 w0(t,e){await fi(t,{reason:"creation"});let r=await qr(),n=e.sessionId,i=e.csrfToken?e.csrfToken:(0,b_.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,D_),o}async function xm(t){let e=await qr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,D_)}async function b0(t,e){await(await qr()).delete(As(t,e))}async function Rm(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 Cm={};N(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 D0=async t=>{let e=t._id;await Ut.removeUser(t),await Im(t),await nn.invalidateUser(e),await fi(e,{reason:"bulk-deletion"})},Yt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||qa(e)?!0:(r||(r=await ls(j())),!!(r&&r.email===e.email&&Va(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let f=Dm(o);if(!f.valid)throw new lt(f.error,400)}u=r.hashPassword?await Ef(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 oe().allDocs(si(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 kt(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await Jc(e)}static async bulkUpdate(e){return await _a(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),i=oe(),{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,f=0;if((r.isAccountHolder||c)&&(l=0,f=1),c){let[m,p]=await di([c,e]);f=m!==p?1:0}return t.quotas.addUsers(l,f,async()=>{r.isAccountHolder||await Lc(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 d of a)p.push(t.groups.addUsers(d,[m._id]));try{let d=await i.put(m);return m._rev=d.rev,await Om(m,c),c&&m.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,m._id,m.email,m.ssoId),await nn.invalidateUser(d.id),await Promise.all(p),i.get(m._id)}catch(d){throw d.status===409?"User exists already":d}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(m=>m.email),u=await om(a),c=[];for(let m of e){let p=s.find(g=>g.email.toLowerCase()===m.email.toLowerCase()),d=u.includes(m.email.toLowerCase());if(p||d){c.push({email:m.email,reason:"Unavailable"});continue}m.userGroups=r||[],s.push(m),await ua(m)&&o.push(m)}let l=await ls(n),f=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let d of s)f&&delete d.password,i.push(t.buildUser(d,{hashPassword:!0,requirePassword:!f},n,void 0,l));let m=await Promise.all(i);await _a(m);for(let d of m)await Ut.addUser(n,d._id,d.email),await Om(d,void 0);let p=m.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(p)&&r){let d=[],g=p.map(E=>E._id);for(let E of r)d.push(t.groups.addUsers(E,g));await Promise.all(d)}return{successful:p,unsuccessful:c}})}static async bulkDelete(e){let r=oe(),n={successful:[],unsuccessful:[]},i=await Uc(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 _a(a),l=(await di(o)).filter(p=>p).length,f=[];for(let p of o){let g=(await aa(p._id)).ssoId;g&&(await Rc(g)).filter(y=>y.ssoId==null).forEach(y=>{f.push({...y,_deleted:!0})}),await D0(p)}await ct().bulkDocs(f),await t.quotas.removeUsers(a.length,l);let m={};return o.reduce((p,d)=>(p[d._id]=d,p),m),u.forEach(p=>{let d=m[p.id].email;p.ok?n.successful.push({_id:p.id,email:d}):n.unsuccessful.push({_id:p.id,email:d,reason:"Database error"})}),n}static async destroy(e){let r=oe(),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===ar()._id?new lt('Please visit "Account" to delete this user',400):new lt("Account holder cannot be deleted",400)}await Ut.removeUser(n),await r.remove(i,n._rev);let s=await ua(n)?1:0;await t.quotas.removeUsers(1,s),await Im(n),await nn.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 Oa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Jc(t,e){let n=(await oe().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Oa(n)),n}async function v0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function N0(){let t=oe(),e=`us${D}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`,include_docs:!0})).rows.map(n=>n.doc)}async function _a(t){return await oe().bulkDocs(t)}async function mi(t,e){let n=await oe().get(t);return e?.cleanup&&(n=Oa(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=Oa(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 zc(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=pc(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=Oa(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 Jp(ur(),i)).rows}function C_(t,e){if(e)return dc(at(t),e._id)}async function v_(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}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Oa(o)),o}var L0=8;async function N_({bookmark:t,query:e,appId:r,limit:n}={}){let i=oe(),s=n??L0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await mi(e.equal._id)]:r?(u=await zc(r,a),l=f=>C_(r,f)):e?.string?.email?(u=await v_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Jc(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),Rf(u,s,{paginate:!0,property:c,getKey:l})}async function U0(){return(await Df("by_email2",{limit:0,include_docs:!1})).total_rows}async function M0(){let t=0;async function e(r){let n=await N_({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function F0(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 k0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Yt.save(t,{hashPassword:!1})}async function B0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Yt.save(t,{hashPassword:!1})}var P_=3600;async function G0(t,e){let n=await hf(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 $0(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Xr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function xa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=G0),!e)try{e=j()}catch{e=await Ut.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,P_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Yt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function V0(t){let e=await Go(),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 $0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,P_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Ra(t){await(await Go()).delete(t)}var Mm={};N(Mm,{Writethrough:()=>Lm});var L_=1e4,Pm=null;async function Zc(){if(!Pm){let t=await ff();Pm=new ti(t)}return Pm}function wa(t,e){return t.name+e}function Um(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function q0(t,e,r=L_){let n=await Zc(),i=e._id,s;i&&(s=await n.get(wa(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 f=await t.put(l,{force:!0});a._id=f.id,a._rev=f.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=Um(a,o?null:s?.lastWrite),a._id&&await n.store(wa(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function W0(t,e){let r=await Zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Um(s),await r.store(n,i)}return i.doc}async function Q0(t,e){let r=await Zc(),n=wa(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Um(s),await r.store(n,i)}return i.doc}async function j0(t,e,r){let n=await Zc();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(wa(t,i))}finally{await t.remove(i,r)}}var Lm=class{constructor(e,r=L_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return q0(this.db,e,r)}async get(e){return W0(this.db,e)}async tryGet(e){return Q0(this.db,e)}async remove(e,r){return j0(this.db,e,r)}};var Fm={};N(Fm,{createCode:()=>K0,getCode:()=>Y0,invalidateCode:()=>J0});var H0=be.fromHours(1).toSeconds();async function K0(t,e){let r=me();return await(await $o()).store(r,{userId:t,info:e},H0),r}async function Y0(t){let r=await(await $o()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function J0(t){await(await $o()).delete(t)}var Bm={};N(Bm,{DocWritethrough:()=>km,DocWritethroughProcessor:()=>ba,getProcessor:()=>Z0,init:()=>U_});var z0=100,Xc,ba=class t{static get queue(){return t._queue||(t._queue=new yr("docWritethroughQueue",{jobOptions:{attempts:z0}})),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)}},km=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await ba.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function U_(){return Xc=new ba().init(),Xc}function Z0(){return Xc||U_()}function el(t){return`config${D}${t}`}async function Bt(t){let e=oe();try{return await e.get(el(t))}catch(r){if(r.status===404)return;throw r}}async function X0(t){return t._id||(t._id=el(t.type)),oe().put(t)}async function Wc(){let t=await Bt("settings");return t||(t={_id:el("settings"),type:"settings",config:{}}),t.config.platformUrl=await Da({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await kc({config:t.config}),t}async function Vm(){return(await Wc()).config}async function Da(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 kc=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 eF(){return await Bt("google")}async function tl(){return(await eF())?.config}async function qm(){if(!h.SELF_HOSTED)return Gm();let t=await tl();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 tF(){return Bt("logos_oidc")}async function rF(){return Bt("oidc")}async function nF(){let t=(await rF())?.config;return t?.configs&&t.configs[0]}async function Wm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function M_(){return Bt("smtp")}async function iF(t){let e=await M_();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 sF(){return(await Bt("scim"))?.config}async function oF(){return Bt("ai")}var eh={};N(eh,{AccessController:()=>Hm,BUILTIN_ROLE_IDS:()=>Km,Role:()=>sn,RoleHierarchyTraversal:()=>rl,RoleIDVersion:()=>Ym,builtinRoleToNumber:()=>Ca,checkForRoleResourceArray:()=>G_,externalRole:()=>pF,findRole:()=>va,getAllRoleIds:()=>gF,getAllRoles:()=>Xm,getBuiltinRole:()=>k_,getBuiltinRoles:()=>zm,getDBRoleID:()=>$_,getExternalRoleID:()=>on,getExternalRoleIDs:()=>V_,getRole:()=>fF,getUserRoleHierarchy:()=>Zm,getUserRoleIdHierarchy:()=>B_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>dF,prefixRoleIDNoBuiltin:()=>jm,roleIDsAreEqual:()=>St,roleToNumber:()=>lF,saveRoles:()=>mF,validInherits:()=>cF});var Qm=W(require("semver"));var nl=W(require("lodash/fp/cloneDeep"));var F_=require("lodash");var Km={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...Km,BUILDER:"BUILDER"},Ym={UUID:void 0,NAME:"name"};function uF(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=Ym.NAME}addInheritance(e){return e&&typeof e=="string"?e=jm(e):e&&Array.isArray(e)&&(e=e.map(jm)),this.inherits=e,this}},rl=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=va(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!uF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=va(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,F_.uniqBy)(i,s=>s._id)}},Jm={ADMIN:new sn(he.ADMIN,he.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(he.POWER),POWER:new sn(he.POWER,he.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(he.BASIC),BASIC:new sn(he.BASIC,he.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(he.PUBLIC),PUBLIC:new sn(he.PUBLIC,he.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new sn(he.BUILDER,he.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function zm(){return(0,nl.default)(Jm)}function hi(t){return Object.values(Km).includes(t)}function jm(t){return hi(t)?t:lr(t)}function k_(t){let e=Object.values(Jm).find(r=>t.includes(r._id));if(e)return(0,nl.default)(e)}function cF(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 Ca(t){let e=zm(),r=Object.values(e).length+1;if(St(t,he.ADMIN)||St(t,he.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 lF(t){if(hi(t))return Ca(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=>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 Ca(n.inherits)+1;return 0};return Math.max(...e.map(r))}function dF(t,e){return t?e&&Ca(t)>Ca(e)?e:t:e}function St(t,e){return lr(t)===lr(e)}function pF(t){let e;return t._id&&(e=on(t._id)),{...t,_id:e,inherits:V_(t.inherits,t.version)}}function va(t,e,r){let n=k_(t);n||(t=lr(t));let i=e.find(s=>s._id&&St(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,nl.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 fF(t,e){let r=Xi(),n=[];if(!hi(t)){let i=await r.tryGet($_(t));i&&n.push(i)}return va(t,n,e)}async function mF(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:lr(r._id)})))}async function hF(t,e){let r=await Xm();if(St(t,he.ADMIN))return r;let n=va(t,r,e),i=[];return n&&(i=new rl(r,e).walk(n)),i}async function B_(t){return(await Zm(t)).map(r=>r._id)}async function Zm(t,e){return hF(t,e)}function G_(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 gF(t){return(await Xm(t)).map(r=>r._id)}async function Xm(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(fc(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 yF(r)?s=[he.ADMIN,he.POWER,he.BASIC,he.PUBLIC]:s=[he.ADMIN,he.BASIC,he.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=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=G_(o.permissions,a);return n}}async function yF(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===""||St(e,he.BUILDER)||St(r,e)||St(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await B_(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 $_(t){return t?.startsWith("role")?t:lr(t)}function on(t,e){if(t.startsWith(`role${D}`)&&(hi(t)||e===Ym.NAME)){let r=t.split(D);return r.shift(),r.join(D)}return t}function V_(t,e){return t&&(typeof t=="string"?on(t,e):t.map(r=>on(r,e)))}var th={};N(th,{BUILDER:()=>_F,BUILTIN_PERMISSIONS:()=>il,CREATOR:()=>IF,GLOBAL_BUILDER:()=>OF,PermissionImpl:()=>ge,PermissionLevel:()=>xs,PermissionType:()=>Ga,doesHaveBasePermission:()=>AF,getAllowedLevels:()=>j_,getBuiltinPermissionByID:()=>TF,getBuiltinPermissions:()=>EF,isPermissionLevelHigherThanRead:()=>SF,levelToNumber:()=>Q_});var q_=W(require("lodash/flatten")),W_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function Q_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function j_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var il={PUBLIC:{_id:"public",name:"Public",permissions:[new ge("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new ge("query","read"),new ge("table","read"),new ge("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new ge("query","write"),new ge("table","write"),new ge("automation","execute"),new ge("legacy_view","read"),new ge("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new ge("table","write"),new ge("user","read"),new ge("automation","execute"),new ge("webhook","read"),new ge("legacy_view","read"),new ge("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new ge("table","admin"),new ge("user","admin"),new ge("automation","admin"),new ge("webhook","read"),new ge("query","admin"),new ge("legacy_view","read"),new ge("app","read")]}};function EF(){return(0,W_.default)(il)}function TF(t){return Object.values(il).find(r=>r._id===t)}function AF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(il),s=(0,q_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&j_(o.level).indexOf(e)!==-1)return!0;return!1}function SF(t){return Q_(t)>1}var _F="builder",IF="creator",OF="globalBuilder";var ih={};N(ih,{FlagSet:()=>ol,all:()=>bF,flags:()=>rh,getEnvFlags:()=>J_,init:()=>xF,isEnabled:()=>wF,parseEnvFlags:()=>ul,shutdown:()=>RF,testutils:()=>nh});var al=W(require("crypto"));var H_=require("posthog-node"),K_=W(require("dd-trace"));var Y_=require("lodash");var sl;function xF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),sl=new H_.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 RF(){sl?.shutdown()}function ul(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}function J_(){return ul(h.TENANT_FEATURE_FLAGS||"")}var ol=class{constructor(e){this.flagSchema=e;this.setId=al.randomUUID()}defaults(){return(0,Y_.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=rf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:f,key:m,value:p}of J_())if(!(!f||f!=="*"&&f!==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 f=ef();f&&(u=al.createHash("sha512").update(f).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,sl&&u){n.readFromPostHog=!0;let f={tenantId:c},m=await sl.getAllFlags(u,{personProperties:f,onlyEvaluateLocally:!0});for(let[p,d]of Object.entries(m))if(this.isFlagName(p)){if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${p}": ${d}`);continue}if(!(i[p]===!0||o.has(p)))try{i[p]=d,n[`flags.${p}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${p}": ${d}`,g)}}}let l=sf();for(let[f,m]of Object.entries(l))this.isFlagName(f)&&typeof m=="boolean"&&(i[f]=m,n[`flags.${f}.source`]="override");nf(this.setId,i);for(let[f,m]of Object.entries(i))n[`flags.${f}.value`]=m;return e?.addTags(n),i})}},rh=new ol(kh);async function wF(t){return await rh.isEnabled(t)}async function bF(){return await rh.fetch()}var nh={};N(nh,{setFeatureFlags:()=>z_,withFeatureFlags:()=>vF});function DF(){let t={};for(let{tenantId:e,key:r,value:n}of ul(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function 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 z_(t,e){let r=DF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=CF(r);return Ro({TENANT_FEATURE_FLAGS:n})}function vF(t,e,r){let n=z_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var gh={};N(gh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,buildAuthMiddleware:()=>Tk,buildCsrfMiddleware:()=>Sk,buildTenancyMiddleware:()=>Ak,builderOnly:()=>Sl,builderOrAdmin:()=>Al,google:()=>Ar,internalApi:()=>yl,joiValidator:()=>Pa,oidc:()=>Sr,passport:()=>_k,platformLogout:()=>wk,refreshOAuthToken:()=>xk,ssoCallbackUrl:()=>an,updateUserOAuth:()=>Rk});var hh={};N(hh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,authenticated:()=>ml,builderOnly:()=>Sl,builderOrAdmin:()=>Al,correlation:()=>dI,csp:()=>yI,csrf:()=>El,datasource:()=>yk,errorHandling:()=>fI,featureFlagCookie:()=>EI,google:()=>Ar,internalApi:()=>yl,ip:()=>AI,joiValidator:()=>Pa,local:()=>Ss,oidc:()=>Sr,pino:()=>cI,querystringToBody:()=>mI,ssoCallbackUrl:()=>an,tenancy:()=>gl});var Ss={};N(Ss,{authenticate:()=>LF,options:()=>PF});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 Vr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var sh="Invalid credentials",NF="This account has expired. Please reset your password",PF={passReqToCallback:!0};async function LF(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,sh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,sh)):i.password?await Tf(r,i.password)?(delete i.password,n(null,i)):Me(n,sh):(console.info(`user=${e} has no password set`,i),Me(n,NF))}var Ar={};N(Ar,{buildVerifyFn:()=>eI,getCallbackUrl:()=>FF,strategyFactory:()=>oh});var Na=t=>Promise.resolve(t);async function cl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=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 UF(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 UF(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 MF=require("passport-google-oauth").OAuth2Strategy;function eI(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return cl(s,!0,i,t)}}async function 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=eI(r);return new MF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function FF(t){return an("google",t)}var Sr={};N(Sr,{buildVerifyFn:()=>rI,fetchStrategyConfig:()=>$F,getCallbackUrl:()=>VF,strategyFactory:()=>GF});var tI=W(require("node-fetch"));var kF=require("@techpass/passport-openidconnect").Strategy;function rI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:BF(n,i),oauth2:{accessToken:s,refreshToken:o}};return cl(l,!1,c,t)}}function BF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Uf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function GF(t,e){try{let r=rI(e),n=new kF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function $F(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,tI.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 VF(){return an("oidc")}var ah={};N(ah,{postAuth:()=>QF,preAuth:()=>WF});var qF=require("passport-google-oauth").OAuth2Strategy;async function nI(){let t=await qm();if(!t)throw new Error("No google configuration found");return t}async function WF(t,e,r){let n=await nI(),s=`${await Da({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await oh(n,s,Na);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 QF(t,e,r){let n=await nI(),s=`${await Da({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 qF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Kr(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=me();await cr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var jF=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(jF);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 fh={};N(fh,{SecretOption:()=>oI,decrypt:()=>ph,decryptFile:()=>ZF,encrypt:()=>YF,encryptFile:()=>JF,getSecret:()=>dh});var _r=W(require("crypto")),un=W(require("fs")),ch=W(require("zlib"));var uh=require("path"),ll="aes-256-ctr",sI="-",HF=1e4,KF=32,dl=16,lh=16,oI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(oI||{});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 pl(t,e){return _r.default.pbkdf2Sync(t,e,HF,KF,"sha512")}function YF(t,e="api"){let r=_r.default.randomBytes(dl),n=pl(dh(e),r),i=_r.default.createCipheriv(ll,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${sI}${a}`}function ph(t,e="api"){let[r,n]=t.split(sI),i=Buffer.from(r,"hex"),s=pl(dh(e),i),o=_r.default.createDecipheriv(ll,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function JF({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=_r.default.randomBytes(dl),u=_r.default.randomBytes(lh),c=pl(r,a),l=_r.default.createCipheriv(ll,c,u);return o.write(a),o.write(u),s.pipe(ch.default.createGzip()).pipe(l).pipe(o),new Promise(f=>{o.on("finish",()=>{f({filename:n,dir:t})})})}async function zF(t){let e=un.default.createReadStream(t),r=await iI(e,dl),n=await iI(e,lh);return e.close(),{salt:r,iv:n}}async function ZF(t,e,r){if(un.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await zF(t),s=un.default.createReadStream(t,{start:dl+lh}),o=un.default.createWriteStream(e),a=pl(r,n),u=_r.default.createDecipheriv(ll,a,i),c=ch.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,f)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",m=>{o.close(),f(m)}),u.on("error",m=>{o.close(),f(m)}),c.on("error",m=>{o.close(),f(m)}),o.on("error",m=>{o.close(),f(m)})})}function iI(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 uI=W(require("dd-trace")),XF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ek(){return new Date(Date.now()-XF).toISOString()}function aI(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}async function tk(t,e){if(Zo(t))return{valid:!0,user:void 0};let n=ph(t).split(D)[0];return qe(n,async()=>{let i;try{let s=oe();i=await dr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await xa({userId:i,tenantId:n,populateUser:e})};throw new fs})}function fl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ml(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=fl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=fl(n,"x-budibase-token"),c=fr(n,"budibase:auth")||hc(u),l=fl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let f=fl(n,"x-budibase-tenant-id"),m=!1,p,d=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,O;try{O=await Rm(S,y),e&&e.populateUser?p=await xa({userId:S,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):p=await xa({userId:S,tenantId:O.tenantId,email:O.email}),p.csrfToken=O.csrfToken,g="cookie",O?.lastAccessedAt<ek()&&await xm(O),m=!0}catch(R){m=!1,console.error(`Auth Error: ${R.message}`),Kr(n,"budibase:auth")}}if(!m&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:O}=await tk(l,y);S&&(m=!0,g="api_key",p=O,d=!O)}!p&&f?p={tenantId:f}:p&&"password"in p&&delete p.password,m||(m=!1);let E=y=>y&&y.email;return E(p)&&uI.default.setUser({id:p._id,tenantId:p.tenantId,budibaseAccess:p.budibaseAccess,status:p.status}),aI(n,{authenticated:m,user:p,internal:d,version:o,publicEndpoint:s,loginMethod:g}),E(p)?Up(p,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Kr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return aI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var rk=async(t,e)=>e(),hl=rk;function gl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=Wo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var yl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Zo(r)||t.throw(403,"Unauthorized"),e()};var nk=["GET","HEAD","OPTIONS"],ik=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function El(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||nk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ik.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Tl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Al=async(t,e)=>{let r=Le(),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)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()};var Sl=async(t,e)=>{let r=Le(),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 sk=require("koa-pino-logger"),ok=require("correlation-id");function ak(){return{logger:Oc,genReqId:ok.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}function uk(){return h.HTTP_LOGGING?sk(ak()):(t,e)=>e()}var ck=uk(),cI=ck;var lI=require("uuid"),lk=require("correlation-id"),dk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,lI.v4)()),lk.withId(r,()=>e())},dI=dk;function pI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of BT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function pk(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:vc(r)};if(pI(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 fI=pk;function mI(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 gI=W(require("crypto"));var hI={"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'"]},fk=/^[A-Za-z0-9-*:/.]+$/,mk=async(t,e)=>{let r=gI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...hI};if(n["script-src"]=[...hI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await jo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
- `).filter(c=>fk.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()},yI=mk;var EI=async(t,e)=>{let n=fr(t,"budibase:featureflags")?.flags||{};await of(n,async()=>{await e()})};var Pa={};N(Pa,{body:()=>hk,params:()=>gk});var mh=W(require("joi"));function TI(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 hk(t,e){return TI(t,"body",e)}function gk(t,e){return TI(t,"params",e)}var AI=async(t,e)=>t.ip?await tf(t.ip,()=>e()):e();var yk={google:ah};var SI=require("koa-passport"),Ek=require("passport-local").Strategy,_l=require("passport-oauth2-refresh"),Tk=ml,Ak=gl,Sk=El,_k=SI;SI.use(new Ek(Ss.options,Ss.authenticate));async function Ik(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,Na)}catch{throw new Error("Could not refresh OAuth Token")}return _l.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{_l.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Ok(t,e){let r=await Ar.getCallbackUrl(t),n;try{n=await Ar.strategyFactory(t,r,Na)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return _l.use(n),new Promise(i=>{_l.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function xk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Wm(r);return n?Ik(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await tl();return n?Ok(n,t):{err:{data:"Google configuration not found"}}}}}async function Rk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=oe(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await Ra(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function wk(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=fr(e,"budibase:auth"),s=await Kc(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Kr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await Hc.logout(e.user?.email),await Ra(r)}var Eh={};N(Eh,{validate:()=>Nk});var v=W(require("joi")),bk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function yh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Dk(t){let e=v.default.object({type:v.default.string().allow("component").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),settings:v.default.array().items(v.default.object().unknown(!0)).required()}).unknown(!0)});yh(e,t)}function Ck(t){let e=v.default.object({type:v.default.string().allow(...Object.values(wl)).required(),required:v.default.boolean().required(),default:v.default.any(),display:v.default.string()}),r=v.default.object({type:v.default.string().allow(...Object.values(Rl)),readable:v.default.boolean(),fields:v.default.object().pattern(v.default.string(),e)}).required(),n=v.default.object({type:v.default.string().allow("datasource").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({docs:v.default.string(),plus:v.default.boolean().optional(),isSQL:v.default.boolean().optional(),auth:v.default.object({type:v.default.string().required()}).optional(),features:v.default.object(Object.fromEntries(Object.values(bl).map(i=>[i,v.default.boolean().optional()]))).optional(),relationships:v.default.boolean().optional(),description:v.default.string().required(),friendlyName:v.default.string().required(),type:v.default.string().allow(...bk),datasource:v.default.object().pattern(v.default.string(),e).required(),query:v.default.object().pattern(v.default.string(),r).unknown(!0).required(),extra:v.default.object().pattern(v.default.string(),v.default.object({type:v.default.string().required(),displayName:v.default.string().required(),required:v.default.boolean(),data:v.default.object()}))})});yh(n,t)}function vk(t){let e=v.default.object().pattern(v.default.string(),{type:v.default.string().allow(...Object.values(ee)).required(),customType:v.default.string().allow(...Object.values(pe)),title:v.default.string(),description:v.default.string(),enum:v.default.array().items(v.default.string()),pretty:v.default.array().items(v.default.string())}),r=v.default.object({properties:e,required:v.default.array().items(v.default.string())}).concat(e).required(),n=v.default.object({type:v.default.string().allow("automation").required(),metadata:v.default.object().unknown(!0).required(),hash:v.default.string().optional(),version:v.default.string().optional(),schema:v.default.object({name:v.default.string().required(),tagline:v.default.string().required(),icon:v.default.string().required(),description:v.default.string().required(),type:v.default.string().allow("ACTION","LOGIC").required(),stepId:v.default.string().disallow(...Bh).required(),inputs:v.default.object().optional(),schema:v.default.object({inputs:r,outputs:r}).required()})});yh(n,t)}function Nk(t){switch(t?.type){case"component":Dk(t);break;case"datasource":Ck(t);break;case"automation":vk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Th={};N(Th,{Client:()=>We,clients:()=>Wr,locks:()=>ui,utils:()=>sc});var Ah={};N(Ah,{isBlacklisted:()=>Lk,refreshBlacklist:()=>xI});var _I=W(require("dns")),Ol=W(require("net"));var II=require("util"),Il,Pk=(0,II.promisify)(_I.default.lookup);async function OI(t){return Ol.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 xI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Ol.default.isIP(i))r.push(i);else{let s=await OI(i);r=r.concat(s)}}Il=r}async function Lk(t){if(Il||await xI(),Il?.length===0)return!1;let e;return Ol.default.isIP(t)?e=[t]:e=await OI(t),!!Il?.find(r=>e.includes(r))}var _h={};N(_h,{init:()=>Mk});var Uk={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId};function RI(t,e){let r=Uk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var La=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=RI(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 r_()}};var wI,Sh;function Mk(t){Tr||jc(),Sh||(Sh=new La(t)),wI||(wI=Tr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Sh.processEvent(r,n,i)}))}var vh={};N(vh,{COUNT_FIELD_NAME:()=>Dh,Sql:()=>MI,SqlTable:()=>xl,designDoc:()=>Ch,utils:()=>Kp});var vI=require("knex");var Fk=require("knex");function Ih(t){return["link","formula","ai"].indexOf(t)!==-1}function bI(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 d=n?.schema[m];if(d&&d.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}=qp(p.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],O=y.schema[S].externalType;O?t.specificType(p.foreignKey,O):t.integer(p.foreignKey).unsigned(),t.foreign(p.foreignKey).references(`${E}.${S}`)}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 f=i?n?.schema[i.old].type:void 0;return i&&f&&!Ih(f)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([p,d])=>!Ih(d.type)&&e.schema[p]==null).forEach(([p,d])=>{i?.old===p||Ih(d.type)||(n.constrained&&n.constrained.indexOf(p)!==-1&&t.dropForeign(p),t.dropColumn(p))}),t}function Bk(t,e,r){return t.createTable(e.name,n=>{bI(n,e,r)})}function Gk(t,e,r,n,i){return t.alterTable(e.name,s=>{bI(s,e,r,n,i)})}function $k(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,Fk.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=Bk(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=Gk(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=$k(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},xl=Oh;var NI=require("lodash"),Dh="__bb_total";function DI(){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 Vk(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 PI(t){return Array.isArray(t)?t.map(e=>PI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function CI(t){return t.sourceType==="internal"||t.sourceId===Ul}function qk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function LI(t,e='"'){return`${e}${qk(t,e)}${e}`}function Rh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=LI(t[r],e));return`[${t.join(",")}]`}function UI(t){return $h.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var Wk={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()&&UI(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(!jp(e))return null}else if(r.dateOnly){let n=Qp(e);return n?new Date(n):null}else return r.ignoreTimezones?tc(e)?new Date(e.trim()):Wp(e)?new Date(e.trim()+"Z"):null:tc(e)?new Date(e.trim()):null;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,NI.cloneDeep)(e);for(let r of Object.values(Or)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Jt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(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=f=>n.match(new RegExp(`^${f}\\.`));if(!s)return e;for(let f of s){let m=f.tableName,p=a?.[m]||m,d=l(m)||l(p),g=l(f.column);if((d||g)&&f.to&&f.tableName){let E=this.knex.select(this.knex.raw(1)).from({[p]:m}),y=E.clone(),S=Hp(f),O;if(d?O=n:O=n.replace(new RegExp(`^${f.column}.`),`${a?.[f.tableName]||f.tableName}.`),S){let R=a?.[S.through]||f.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${p}.${S.toPrimary}`,"=",`${R}.${S.to}`)}).where(`${R}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(_=>{_.whereExists(i(O,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${p}.${f.to}`,T=`${c}.${f.from}`;y=y.where(R,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(O,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(d){return s?.[d]||d}function l(d,g,E,y){let S=(O,R,T)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return O.andWhere(de=>E(de,k?`${k}.${b}`:b,T))};for(let O in d){let R=d[O],T=zo(O),_=T.includes("."),B=n?.relationship&&_,b;if(O==="_complexIdOperator"&&(b=d[O])&&y){let k=c(u);e=y(e,b.id.map(de=>k?`${k}.${de}`:de),b.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Wk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let f=(d,g,E)=>((r?.fuzzyOr||o)&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):d.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),m=(d,g=!1)=>{function E(y){return(o||d===r?.containsAny)&&(y=y.or),d===r?.notContains&&(y=y.not),y}this.client==="pg"?l(d,"contains",(y,S,O)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Rh(O,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Rh(O))]))):this.client==="mysql2"||this.client==="mariadb"?l(d,"contains",(y,S,O)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(LI(Rh(O)))])):l(d,"contains",(y,S,O)=>(O.length===0||(y=y.where(R=>(d===r?.notContains&&(R=R.not),R=R.where(T=>{for(let _ of O){d===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${B}%`)}}),d===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),y))};if(r.$and){let{$and:d}=r;for(let g of d.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:d}=r;e=e.where(g=>{for(let E of d.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(d,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(d=d.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let O of S)O!=null?d=d.or.whereLike(g,`${O.toISOString().slice(0,10)}%`):d=d.or.whereNull(g);return d}return d.whereIn(g,S)},(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),d.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):d.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",f),r.range&&l(r.range,"range",(d,g,E)=>{let y=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=rc(E.low),O=rc(E.high),R=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(d=d.or),S&&O?d.whereBetween(T,[B,_]):S?d.where(T,">=",B):O?d.where(T,"<=",_):d}),r.equal&&l(r.equal,"equal",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.whereLike(g,`${E.toISOString().slice(0,10)}%`):d.whereNull(g):d.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):d.not.whereNull(g):d.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(d,g)=>(o&&(d=d.or),d.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(d,g)=>(o&&(d=d.or),d.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&&!Vp(this.table)&&p&&e.andWhereLike(`${p}._id`,`${xr(r.documentType)}%`),e}isSqs(){return CI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;CI(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 f=`${s}.${a}`,m;this.isAggregateField(a)?m=this.rawQuotedIdentifier(a):this.client==="oracledb"?m=this.convertClobs(f):m=this.rawQuotedIdentifier(f),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[m,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}if(!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)){if(i[0]===void 0)throw new Error(`Primary key not found for table ${this.table.name}`);e=e.orderBy(`${s}.${i[0]}`)}return 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 f of n){let{tableName:m,through:p,to:d,from:g,fromPrimary:E,toPrimary:y}=f;if(!m||!r)continue;let S=c[m];if(!S)throw new Error(`related table "${m}" not found in datasource`);let O=a?.[m]||m,R=a?.[r]||r,T=p&&a?.[p]||p,_=this.tableNameWithSchema(m,{alias:O,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=Vk(l.filter(V=>V.split(".")[0]===O),B);b=b.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=b.map(V=>this.buildJsonField(S,V));if(!k.length)continue;let de=k.map(V=>{let ae=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ae}??`,[V[0],V[1]]).toString()}).join(","),cn=`${O}.${y||d}`,$=s.from(_).orderBy(cn),F=p&&y&&E,I=F?`${T}.${g}`:`${O}.${d}`,q=F?`${R}.${E}`:`${R}.${g}`;if(F){let V=this.tableNameWithSchema(p,{alias:T,schema:u});$=$.join(V,function(){this.on(`${O}.${y}`,"=",`${T}.${d}`)})}$=$.where(this.rawQuotedIdentifier(I),"=",this.rawQuotedIdentifier(q));let U=V=>($=$.select(b.map(ae=>this.rawQuotedIdentifier(ae))).limit(xh()),s.select(V).from({[O]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,f),Y=U(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":Y=U(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${xh()})`));break;case"mysql2":case"oracledb":Y=U(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ae=>s.ref(ae[1]).as(ae[0]))).limit(xh())});Y=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[f.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,f=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 d of n){let g=d.fromPrimary,E=d.from;this.orOn(`${f}.${g}`,"=",`${l}.${E}`)}}).leftJoin(m,function(){for(let d of n){let g=d.toPrimary,E=d.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(m,function(){for(let d of n){let g=d.from,E=d.to;this.orOn(`${f}.${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 f=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):f.length>0?u=this.addAggregations(u,f):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&f.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 xl{constructor(r,n=DI()){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=PI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,vI.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:DI()}});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 f=[];for(let m of a)f.push(await n(m,o));return f}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 f;s==="mssql"?f=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(f=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(f,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Ul){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let s=this.getTableName(r,i);for(let[o,a]of Object.entries(r.schema)){if(!UI(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){Co(this.getSqlClient(),r,n)}},MI=bh;var Ch={};N(Ch,{base:()=>Qk});function Qk(t){return{_id:Ht,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var jk={...Qo,...Se},Hk=(t={})=>{Xu(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,DesignDocuments,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")},Jo=async(t,e)=>{let r={account_by_email:LA,platform_users_lowercase_2:UA};return ut(Te.PLATFORM_INFO.name,async n=>{let i=r[t];return wf(t,e,n,i,{arrayResponse:!0})})},MA={by_email2:CA,by_api_key:NA,by_app:vA},lr=async(t,e,r,n)=>{r||(r=ne());let i=MA[t];return wf(t,e,r,i,n)};async function bf(t,e,r){let n=ne(),i=MA[t];return Yo(t,e,n,i,r)}var Df=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([Do(this.source),Do(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()}},FA=Df;var BA=W(require("node-fetch"));var zo=Mr.removeKeyNumbering;function oi(t){return t==null||t===""}var dr=class t{#l;#d;#e;#r;#n;#i;#s;#o;#t;#p;#a;#u=!1;#c;static{this.maxLimit=200}constructor(e,r,n){this.#l=e,this.#d=r,this.#e={allOr:!1,onEmptyFilter:"all",string:{},fuzzy:{},range:{},equal:{},notEqual:{},empty:{},notEmpty:{},oneOf:{},contains:{},notContains:{},containsAny:{},...n},this.#r=50,this.#s="ascending",this.#o="string",this.#t=!0}disableEscaping(){return this.#u=!0,this}setIndexBuilder(e){return this.#a=e,this}setVersion(e){return e!=null&&(this.#p=e),this}setTable(e){return this.#e.equal.tableId=e,this}setLimit(e){return e!=null&&(this.#r=e),this}setSort(e){return e!=null&&(this.#n=e),this}setSortOrder(e){return e!=null&&(this.#s=e),this}setSortType(e){return e!=null&&(this.#o=e),this}setBookmark(e){return e!=null&&(this.#i=e),this}setSkip(e){return this.#c=e,this}excludeDocs(){return this.#t=!1,this}includeDocs(){return this.#t=!0,this}addString(e,r){return this.#e.string[e]=r,this}addFuzzy(e,r){return this.#e.fuzzy[e]=r,this}addRange(e,r,n){return this.#e.range[e]={low:r,high:n},this}addEqual(e,r){return this.#e.equal[e]=r,this}addNotEqual(e,r){return this.#e.notEqual[e]=r,this}addEmpty(e,r){return this.#e.empty[e]=r,this}addNotEmpty(e,r){return this.#e.notEmpty[e]=r,this}addOneOf(e,r){return this.#e.oneOf[e]=r,this}addContains(e,r){return this.#e.contains[e]=r,this}addNotContains(e,r){return this.#e.notContains[e]=r,this}addContainsAny(e,r){return this.#e.containsAny[e]=r,this}setAllOr(){this.#e.allOr=!0}setOnEmptyFilter(e){this.#e.onEmptyFilter=e}handleSpaces(e){return this.#u?e:e.replace(/ /g,"_")}preprocess(e,{escape:r,lowercase:n,wrap:i,type:s}={}){let o=!!this.#p,a=typeof e;return e&&n&&(e=e.toLowerCase?e.toLowerCase():e),!this.#u&&r&&a==="string"&&(e=`${e}`.replace(/[ /#+\-&|!(){}\]^"~*?:\\]/g,"\\$&")),a==="string"&&!isNaN(e)&&!s?e=`"${e}"`:o&&i&&(e=a==="number"?e:`"${e}"`),e}isMultiCondition(){let e=0;for(let r of Object.values(this.#e))typeof r=="object"&&(e+=Object.keys(r).length);return e>1}compressFilters(e){let r={};for(let s of Object.keys(e)){let o=zo(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=(d,g)=>oi(g)?null:`${d}:${e.preprocess(g,s)}`,u=(d,g,E="AND")=>{if(oi(g))return null;if(!Array.isArray(g))return`${d}:${g}`;let y=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)y+=` ${E} ${e.preprocess(g[S],{escape:!0})}`;return`${d}:(${y})`},c=(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${d}:/.*${g}.*/`),l=(d,g)=>{let E=r?"*:* AND ":"",y=r?"AND":void 0;return E+"NOT "+u(d,g,y)},m=(d,g)=>u(d,g,"OR"),p=(d,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`${d}:(${E})`};function f(d,g,E){let y="";for(let[S,O]of Object.entries(d)){S=zo(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,O);if(R!=null){if(y.length>0||n.length>0){let T=E?.mode?E.mode:r?"OR":"AND";y+=` ${T} `}y+=R,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==o&&O!=="")&&(i=!1)}}if(E?.returnBuilt)return y;n+=y}if(this.#e.string&&f(this.#e.string,(d,g)=>oi(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${d}:${g}*`)),this.#e.range&&f(this.#e.range,(d,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`${d}:[${E} TO ${y}]`}),this.#e.fuzzy&&f(this.#e.fuzzy,c),this.#e.equal&&f(this.#e.equal,a),this.#e.notEqual&&f(this.#e.notEqual,(d,g)=>oi(g)?null:typeof g=="boolean"?`(*:* AND !${d}:${g})`:`!${d}:${e.preprocess(g,s)}`),this.#e.empty&&f(this.#e.empty,d=>(i=!1,`(*:* -${d}:["" TO *])`)),this.#e.notEmpty&&f(this.#e.notEmpty,d=>(i=!1,`${d}:["" TO *]`)),this.#e.oneOf&&f(this.#e.oneOf,p),this.#e.contains&&f(this.#e.contains,u),this.#e.notContains&&f(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&f(this.#e.containsAny,m),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,f({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#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 kA(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await kA(n,i,r);throw s}}};async function kA(t,e,r){let n=await(0,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=dr.maxLimit;n.limit&&s.length>n.limit-dr.maxLimit&&(o=n.limit-s.length);let a=new dr(t,e,r);a.setVersion(n.version).setBookmark(i).setLimit(o).setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.tableId&&a.setTable(n.tableId);let u=await a.run();if(!u.rows.length)return s;if(u.rows.length<dr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await GA(t,e,r,c)}async function sP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,dr.maxLimit);let s=new dr(t,e,r);n.version&&s.setVersion(n.version),n.tableId&&s.setTable(n.tableId),n.sort&&s.setSort(n.sort).setSortOrder(n.sortOrder).setSortType(n.sortType),n.indexer&&s.setIndexBuilder(n.indexer),n.disableEscaping&&s.disableEscaping();let o=await s.setBookmark(n.bookmark).setLimit(i).run();s.setBookmark(o.bookmark).setLimit(1),n.tableId&&s.setTable(n.tableId);let a=await s.run();return{...o,hasNextPage:a.rows&&a.rows.length>0}}async function oP(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 Cf={};N(Cf,{createUserIndex:()=>aP});async function aP(){let t=ne(),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 uP(t){return $A(t,409)}var hc=W(require("jsonwebtoken")),vf="app"+v,qA="/app/",WA="/app/preview",cP="/builder",QA=`${cP}/app/`,lP="/api/public/v";function is(t){return t&&t.startsWith(vf)?t:void 0}async function jA(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Wo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>Ko({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function dP(t){return t.path.startsWith(`/${vf}`)?!0:t.path.startsWith(qA)}function pP(t){return t.path.startsWith(QA)}function fP(t){return t.path.startsWith(WA)}function mP(t){return t.path.startsWith(lP)}async function hP(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=VA(t.path);!r&&n&&(r=is(n)),!r&&t.query?.appId&&(r=is(t.query?.appId));let i=t.path.startsWith(WA),s=t.path.startsWith(qA)&&!i;!r&&s&&(r=is(await jA(t)));let o=t.request.headers.referer;if(!r&&o?.includes(QA)){let a=VA(t.request.headers.referer);r=is(a)}return r}function VA(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(vf))}function gc(t){if(t)try{return hc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return hc.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 pr(t,e){let r=t.cookies.get(e);if(r)return gc(r)}function HA(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=hc.default.sign(e,h.JWT_SECRET));let i={expires:Ku,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Hr(t,e){HA(t,null,e)}function gP(t){return t.headers["x-budibase-type"]==="client"}function Nf(t){return new Promise(e=>setTimeout(e,t))}function Pf(t){return!!Ph[t]}function yP(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 EP(t){return!!t.match(/^.+:\/\/.+$/)}function Lf(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 Uf=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Uf||{}),yc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/yc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*yc[e]/yc[r]}static from(e,r){return new t(r*yc[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 TP(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}async function AP(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 mf()).client;return new YA.default([n],e)}function SP(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var JA=be.fromSeconds(10).toMs();async function as(t,e){let r=await AP(t.type,t.customOptions),n,i;try{let s=SP(t),o=t.type==="auto_extend"?JA: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 Mf=Te.PLATFORM_INFO.docs.tenants,Ff={type:"default",name:"update_tenants_doc",ttl:10*1e3,systemLock:!0};async function IP(){return(await Ec()).tenantIds}async function Ec(){let t=ct(),e;try{e=await t.get(Mf)}catch(r){if(r.status===404)e=await RP();else throw r}return e}async function OP(t){return(await Ec()).tenantIds.indexOf(t)!==-1}function xP(){return{_id:Mf,tenantIds:[]}}async function RP(){let t=ct(),e=xP();try{let r=await t.put(e);e._rev=r.rev}catch(r){if(r.status===409)return t.get(Mf);throw r}return e}async function wP(t){let e=ct();await as(Ff,async()=>{let r=await Ec();r.tenantIds.indexOf(t)===-1&&(r.tenantIds.push(t),await e.put(r))})}async function bP(t){try{await as(Ff,async()=>{let e=ct(),r=await Ec();r.tenantIds=r.tenantIds.filter(n=>n!==t),await e.put(r)})}catch(e){throw console.error(`Error removing tenant ${t} from info db`,e),e}}var li={};N(li,{getAccount:()=>Zr,getAccountByTenantId:()=>ls,getStatus:()=>aL});var DS=W(require("node-fetch"));var Rc={};N(Rc,{correlation:()=>ea,logAlert:()=>sa,logAlertWithInfo:()=>oL,logWarn:()=>cs,logger:()=>xc,system:()=>Xf});var ea={};N(ea,{getId:()=>Bf,setHeader:()=>DP});var zA=require("correlation-id"),DP=t=>{let e=zA.getId();e&&(t["x-budibase-correlation-id"]=e)};function Bf(){return zA.getId()}var Oc=W(require("pino")),wS=W(require("pino-pretty"));var em=W(require("dd-trace")),bS=require("dd-trace/ext");var Xf={};N(Xf,{getLogReadStream:()=>eL,getSingleFileMaxSizeInfo:()=>RS,localFileDestination:()=>Zf});var ia=W(require("fs")),zf=W(require("path")),_S=W(require("rotating-file-stream"));var Jf={};N(Jf,{ObjectStore:()=>Mt,ObjectStoreBuckets:()=>vP,SIGNED_FILE_PREFIX:()=>jf,bucketTTLConfig:()=>Tc,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>HP,clientLibraryPath:()=>fS,clientLibraryUrl:()=>KP,createBucketIfNotExists:()=>na,deleteFile:()=>GP,deleteFiles:()=>$P,deleteFolder:()=>lS,downloadTarball:()=>qP,downloadTarballDirect:()=>VP,enrichPWAImages:()=>YP,enrichPluginURLs:()=>zP,extractBucketAndPath:()=>Gf,getAppFileUrl:()=>mS,getGlobalFileS3Key:()=>hS,getGlobalFileUrl:()=>JP,getObjectMetadata:()=>WP,getPluginIconKey:()=>ES,getPluginJSKey:()=>yS,getPluginS3Dir:()=>AS,getPresignedUrl:()=>Jr,getReadStream:()=>Ac,listAllObjects:()=>cS,processAutomationAttachment:()=>PP,processObjectStoreAttachment:()=>rS,retrieve:()=>uS,retrieveDirectory:()=>BP,retrieveToTmp:()=>kP,sanitizeBucket:()=>Ye,sanitizeKey:()=>Ue,streamUpload:()=>aS,upload:()=>FP,uploadDirectory:()=>Hf});var _c=require("@aws-sdk/client-s3"),$f=require("@aws-sdk/lib-storage"),nS=require("@aws-sdk/s3-request-presigner"),ra=W(require("stream")),Vf=W(require("node-fetch")),qf=W(require("tar-fs")),Wf=W(require("zlib")),iS=require("util"),Yr=require("path"),fr=W(require("fs"));var ta=W(require("path")),ZA=require("os"),XA=W(require("fs"));var eS=W(require("stream")),vP={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},tS=(0,ta.join)((0,ZA.tmpdir)(),".budibase");try{XA.default.mkdirSync(tS)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return tS}var Tc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function NP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ta.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:eS.default.Readable.fromWeb(e.body)}}async function rS(t){let e=Gf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ac(r,n),s=ta.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function PP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await NP(t):await rS(t)}var Qf=require("uuid");var sS=W(require("fs/promises")),LP=require("sanitize-s3-objectkey"),oS=(0,iS.promisify)(ra.default.pipeline),UP={bucketCreationPromises:{}},jf="/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"},MP=[Kr.html,Kr.css,Kr.js,Kr.json];function Ue(t){return LP(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 _c.S3(e)}async function na(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=UP.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 FP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await sS.default.open(r)).createReadStream():s,c=Mt(),l=await na(c,t);if(o&&l.created){let g=Tc(t,o);await c.putBucketLifecycleConfiguration(g)}let m=n,p=m||(a?Kr[a.toLowerCase()]:Kr.txt),f={Bucket:Ye(t),Key:Ue(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];f.Metadata=i}return new $f.Upload({client:c,params:f}).done()}async function aS({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 na(a,t);if(s&&u.created){let E=Tc(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),m=Ue(r),p={Bucket:l,Key:m,Body:e,ContentType:c,...i},d=await new $f.Upload({client:a,params:p}).done(),g=await a.headObject({Bucket:l,Key:m});return{...d,ContentLength:g.ContentLength}}async function uS(t,e){let r=Mt(),n={Bucket:Ye(t),Key:Ue(e)},i=await r.getObject(n);if(!i.Body)throw new Error("Unable to retrieve object");if(MP.includes(i.ContentType))return i.Body.transformToString();{let s=i.Body.transformToWebStream();return ra.default.Readable.fromWeb(s)}}async function cS(t,e){let r=Mt(),n=(a={})=>r.listObjectsV2({...a,Bucket:Ye(t),Prefix:Ue(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:Ue(e)},s=await(0,nS.getSignedUrl)(n,new _c.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${jf}${a}${u}`}else return s}async function kP(t,e){t=Ye(t),e=Ue(e);let r=await uS(t,e),n=(0,Yr.join)(ci(),(0,Qf.v4)());return r instanceof ra.default.Readable?r.pipe(fr.default.createWriteStream(n)):fr.default.writeFileSync(n,r),n}async function BP(t,e){let r=(0,Yr.join)(ci(),(0,Qf.v4)());fr.default.mkdirSync(r);let n=await cS(t,e),i=await Promise.all(n.map(a=>Ac(t,a.Key))),s=0,o=[];for(let a of n){let u=a.Key,c=i[s++],l=u.split("/"),m=l.slice(0,l.length-1),p=(0,Yr.join)(r,...m);l.length>1&&!fr.default.existsSync(p)&&fr.default.mkdirSync(p,{recursive:!0});let f=fr.default.createWriteStream((0,Yr.join)(r,...l),{mode:420});c.pipe(f),o.push(new Promise((d,g)=>{f.on("finish",()=>d()),c.on("error",g),f.on("error",g)}))}return await Promise.all(o),r}async function GP(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Key:Ue(e)};return r.deleteObject(n)}async function $P(t,e){let r=Mt();await na(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Ue(i)}))}};return r.deleteObjects(n)}async function lS(t,e){t=Ye(t),e=Ue(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 lS(t,e)}async function Hf(t,e,r){t=Ye(t);let n=[],i=fr.default.readdirSync(e,{withFileTypes:!0});for(let s of i){let o=Ue((0,Yr.join)(r,s.name)),a=(0,Yr.join)(e,s.name);s.isDirectory()?n.push(Hf(t,a,o)):n.push(aS({bucket:t,filename:o,stream:fr.default.createReadStream(a)}))}return await Promise.all(n),i}async function VP(t,e,r={}){e=Ue(e);let n=await(0,Vf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await oS(n.body,Wf.default.createUnzip(),qf.default.extract(e))}async function qP(t,e,r){e=Ye(e),r=Ue(r);let n=await(0,Vf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(ci(),r);return await oS(n.body,Wf.default.createUnzip(),qf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Hf(e,i,r),i}async function Ac(t,e){t=Ye(t),e=Ue(e);let r=Mt(),n={Bucket:t,Key:e},i=await r.getObject(n);if(!i.Body||!(i.Body instanceof ra.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return i.Body}async function WP(t,e){t=Ye(t),e=Ue(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 Gf(t){let e=t.split("?")[0],r=new RegExp(`^${jf}/(?<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 dS=W(require("aws-cloudfront-sign")),Ic;function QP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Ic||(Ic=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Ic)}var jP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:QP(),expireTime:new Date().getTime()+1e3*60*60*24}),us=t=>{let e=Kf(t);return dS.getSignedUrl(e,jP())},Kf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var pS=W(require("querystring"));function fS(t){return`${Ue(t)}/budibase-client.js`}async function HP(t,e){let r=fS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Kf(r)):await Jr(h.APPS_BUCKET_NAME,r)}function KP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Ae&&(n.tenantId=r),`/api/assets/client?${pS.default.encode(n)}`}async function mS(t){return h.CLOUDFRONT_CDN?us(t):await Jr(h.APPS_BUCKET_NAME,t)}async function YP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await mS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var JP=async(t,e,r)=>{let n=hS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),us(n)):await Jr(h.GLOBAL_BUCKET_NAME,n)},hS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function zP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await ZP(e),n=await XP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function ZP(t){let e=yS(t);return gS(e)}async function XP(t){let e=ES(t);if(e)return gS(e)}async function gS(t){return h.CLOUDFRONT_CDN?us(t):await Jr(h.PLUGIN_BUCKET_NAME,t)}function yS(t){return TS(t,"plugin.min.js")}function ES(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return TS(t,e)}function TS(t,e){return`${AS(t.name)}/${e}`}function AS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var IS="budibase.log",OS="budibase-logs-history.txt",xS=zf.default.join(ci(),"systemlogs");function SS(t){return zf.default.join(xS,t)}function RS(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 Zf(){let t=RS(h.ROLLING_LOG_MAX_SIZE);return _S.createStream(IS,{size:t?.size,path:xS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:OS,initialRotation:!1})}function eL(){let t=[],e=SS(OS);if(ia.default.existsSync(e)){let i=ia.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let s of i.filter(o=>o))t.push(ia.default.readFileSync(s))}return t.push(ia.default.readFileSync(SS(IS))),Buffer.concat(t)}function tL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function rL(t){return t instanceof Error}function nL(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,wS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Zf(),level:t}),zr=r.length?(0,Oc.default)(e,Oc.default.multistream(r)):(0,Oc.default)(e);let n=u=>{let c,l=[],m="";u.forEach(E=>{nL(E)&&(m=`${m} ${E}`.trimStart()),tL(E)&&l.push(E),rL(E)&&(c=E)});let p=a(),f={};f={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:Bf()};let d=em.default.scope().active();d&&em.default.inject(d.context(),bS.formats.LOG,f);let g={err:c,pid:process.pid,...f};if(l.length){let E={},y=0;for(let S=0;S<l.length;S++){let O=l[S],R=O._logKey;R?(delete O._logKey,g[R]=O):(E[y]=O,y++)}Object.keys(E).length&&(g.data=E)}return[g,m]};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=Le()}catch{}return u},o=()=>{let u;try{u=Xp()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var xc=zr;var iL=["AccountError"];function sL(t){return t&&t.suppressAlert}function sa(t,e){e&&iL.includes(e.name)&&sL(e)||console.error(`bb-alert: ${t}`,e)}function oL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,sa(t,n)}function cs(t,e){console.warn(`bb-warn: ${t}`,e)}var oa=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";ea.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 tm=new oa(h.INTERNAL_ACCOUNT_PORTAL_URL),rm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(rm)return;let e={email:t},r=await tm.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(rm)return;let e={tenantId:t},r=await tm.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]},aL=async()=>{if(rm)return;let t=await tm.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:()=>Yt,addAppBuilder:()=>F0,bulkGetGlobalUsersById:()=>Jc,bulkUpdateGlobalUsers:()=>Ia,cleanseUserObject:()=>vm,creatorsInList:()=>di,doesUserExist:()=>N0,getAccountHolderFromUsers:()=>Mc,getAllUserIds:()=>C0,getAllUsers:()=>v0,getById:()=>mi,getCreatorCount:()=>U0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>PS,getExistingTenantUsers:()=>NS,getFirstPlatformUser:()=>aa,getGlobalUserByAppPage:()=>w_,getGlobalUserByEmail:()=>kt,getPlatformUsers:()=>wc,getUserCount:()=>L0,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>MS,hasBuilderPermissions:()=>Tt,isAdmin:()=>Xr,isAdminOrBuilder:()=>US,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Lc,isGlobalBuilder:()=>LS,paginatedUsers:()=>D_,removeAppBuilder:()=>k0,removePortalUserPermissions:()=>M0,searchExistingEmails:()=>sm,searchGlobalUsersByApp:()=>zc,searchGlobalUsersByAppAccess:()=>Cm,searchGlobalUsersByEmail:()=>b_,validateUniqueUser:()=>Uc});var om={};N(om,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>Mc,hasAdminPermissions:()=>en,hasAppBuilderPermissions:()=>MS,hasBuilderPermissions:()=>Tt,isAdmin:()=>Xr,isAdminOrBuilder:()=>US,isBuilder:()=>ms,isCreatorAsync:()=>ua,isCreatorSync:()=>Lc,isGlobalBuilder:()=>LS,validateUniqueUser:()=>Uc});var im={};N(im,{createCode:()=>cL,deleteCode:()=>dL,getCode:()=>lL,getExistingInvites:()=>nm,getInviteCodes:()=>vS,updateCode:()=>uL});var CS=be.fromDays(7).toSeconds();async function uL(t,e){await(await ei()).store(t,e,CS)}async function cL(t,e){let r=me();return await(await ei()).store(r,{email:t,info:e},CS),r}async function lL(t){let r=await(await ei()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function dL(t){await(await ei()).delete(t)}async function vS(){let r=(await(await ei()).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 nm(t){return(await vS()).filter(e=>t.includes(e.email))}async function sm(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 ds(t);e.push(...i.map(o=>o.email));let s=await nm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function wc(t){return await Jo("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function aa(t){return(await wc(t))[0]??null}async function NS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await lr("by_email2",r,void 0,n)}async function PS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await Jo("account_by_email",r)}var Pc={};N(Pc,{BadRequestError:()=>Dc,BudibaseError:()=>ps,EmailUnavailableError:()=>mr,FeatureDisabledError:()=>vc,HTTPError:()=>lt,InvalidAPIKeyError:()=>fs,NotFoundError:()=>bc,UsageLimitError:()=>Cc,getPublicError:()=>Nc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Nc=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)}},bc=class extends lt{constructor(e){super(e,404)}},Dc=class extends lt{constructor(e){super(e,400)}},Cc=class extends lt{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},vc=class extends lt{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},fs=class extends ps{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},mr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ot.users.isBuilder,Xr=ot.users.isAdmin,LS=ot.users.isGlobalBuilder,US=ot.users.isAdminOrBuilder,en=ot.users.hasAdminPermissions,Tt=ot.users.hasBuilderPermissions,MS=ot.users.hasAppBuilderPermissions;async function di(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ne().getMultiple(r,{allowMissing:!0}),t.map(i=>Lc(i,e))}async function ua(t){let e=[];return t.userGroups&&(e=await ne().getMultiple(t.userGroups)),Lc(t,e)}function Lc(t,e){let r=ot.users.isCreator(t);return!r&&t?fL(t,e):r}function fL(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 Uc(t,e){if(h.MULTI_TENANCY){let r=await aa(t);if(r!=null&&r.tenantId!==e)throw new mr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new mr(t)}}async function Mc(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:()=>XS,action:()=>e_,ai:()=>s_,analytics:()=>kc,app:()=>t_,auditLog:()=>A_,auth:()=>Kc,automation:()=>r_,backfill:()=>h_,backfillCache:()=>jc,backup:()=>E_,datasource:()=>n_,email:()=>i_,environmentVariable:()=>T_,group:()=>g_,identification:()=>Ft,initAsyncEvents:()=>g0,installation:()=>ga,layout:()=>a_,license:()=>o_,org:()=>u_,plugin:()=>y_,processors:()=>fm,publishEvent:()=>A,query:()=>c_,role:()=>Sa,rowAction:()=>S_,rows:()=>d_,screen:()=>l_,serve:()=>f_,shutdown:()=>y0,table:()=>p_,user:()=>Je,view:()=>m_});var fm={};N(fm,{analyticsProcessor:()=>KS,init:()=>PL,processors:()=>yr});var kc={};N(kc,{enabled:()=>Fc});var Fc=async()=>Bc();var $S=require("posthog-node");var mL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",hL=t=>t==="served:app:preview"||t==="served:app";var kS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},BS=async t=>{if(!mL(t))return!1;let e=await gL(t);if(e){let r=new Date(e.timestamp);switch(kS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await FS(t,{timestamp:Date.now()}),!1):!0}}else return await FS(t,{timestamp:Date.now()}),!1},GS=t=>{let e=`${Ce.EVENTS_RATE_LIMIT}:${t}`;return hL(t)&&(e=e+":"+Le()),e},gL=async t=>{let e=GS(t);return await ii(e)},FS=async(t,e)=>{let r=GS(t),n=kS[t],i;switch(n){case"calendarDay":i=86400}await ur(r,e,i)};var EL=["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"],ca=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(EL.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=Le();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)}async shutdown(){await this.posthog.shutdown()}};var VS=ca;var TL=["installation:version:upgraded","installation:version:downgraded"],AL=["installation","tenant"],la=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new VS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!TL.includes(e)&&!await Fc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!AL.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)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var am=h.SELF_HOSTED&&!h.isDev(),da=class{async processEvent(e,r,n){am||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){am||console.log("[audit] identified",e)}async identifyGroup(e){am||console.log("[audit] group identified",e)}async shutdown(){}};var pm={};N(pm,{BudibaseQueue:()=>gr,InMemoryQueue:()=>Gc,JobQueue:()=>hs,shutdown:()=>CL});var qS=W(require("events"));function SL(t){let e="",r=-1,n,i,s=t.opts?.repeat;return s&&(i=s.endDate?new Date(s.endDate).getTime():Date.now(),n=s.tz,"cron"in s?e=s.cron:r=s.every),{id:t.id.toString(),name:"",key:t.id.toString(),tz:n,endDate:i,cron:e,every:r,next:0}}var Gc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new 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 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:me(),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=>SL(e))}async whenCurrentJobsFinished(){do await Nf(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},WS=Gc;var lm=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 QS(t,e,r){OL(t,e),r&&_L(t,r)}function _L(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 IL={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough"};function OL(t,e){let r=IL[e];function n(i,s){let o=i.data.event?.appId;if(o)return Zp(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 $c={};N($c,{cleanup:()=>xL,clear:()=>cm,set:()=>um});var pa=[];function um(t,e){let r=setInterval(t,e);return pa.push(r),r}function cm(t){let e=pa.indexOf(t);e!==-1&&pa.splice(e,1),clearInterval(t)}function xL(){for(let t of pa)clearInterval(t);pa=[]}var hr=W(require("dd-trace")),fa=W(require("object-sizeof")),RL=be.fromMinutes(5).toMs(),wL=be.fromSeconds(30).toMs(),dm=be.fromSeconds(60).toMs(),ma=[],Vc;async function jS(){for(let t of ma)await t.clean(dm,"completed"),await t.clean(dm,"failed")}async function bL(t,e,r){let n=performance.now();try{let i=await e();return hr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw hr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;hr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),hr.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 DL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,fa.default)(t.data),...HS(t.opts||{})}}var gr=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:RL,lockRenewTime:wL}};this.opts.jobOptions&&(r.defaultJobOptions=this.opts.jobOptions);let n;return h.isTest()?process.env.BULL_TEST_REDIS_PORT&&!isNaN(+process.env.BULL_TEST_REDIS_PORT)?n=new lm.default(this.jobQueue,{redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new WS(this.jobQueue,r):n=new lm.default(this.jobQueue,r),QS(n,this.jobQueue,this.opts.removeStalledCb),ma.push(n),!Vc&&!h.isTest()&&(Vc=um(jS,dm),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 hr.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,...DL(s)}),this.opts.jobTags&&o.addTags(this.opts.jobTags(s.data)),hr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,fa.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 hr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,fa.default)(e),...HS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},hr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,fa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return bL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(){return this.queue.close()}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function CL(){Vc&&cm(Vc),console.log("Waiting for current queue jobs to finish...");for(let t of ma)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of ma)await t.close();ma=[],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 gr("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&&Pf(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Le(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var ha=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)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var KS=new la,vL=new da,NL=new gs;function PL(t){return gs.init(t)}var yr=new ha([KS,vL,NL]);var qc={};N(qc,{checkInstallVersion:()=>ML,getInstall:()=>ya,getInstallFromDB:()=>hm});var mm=W(require("semver"));var ya=async()=>Wr(Ce.INSTALLATION,86400,hm,{useTenancy:!1});async function LL(t){let e={_id:Te.PLATFORM_INFO.docs.install,installId:me(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return hm();throw r}}var hm=async()=>ut(Te.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(Te.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await LL(t);else throw r}return e}),UL=async t=>{try{await ut(Te.PLATFORM_INFO.name,async e=>{let r=await ya();r.version=t,await e.put(r),await ts(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},ML=async()=>{let t=await ya(),e=t.version,r=h.VERSION;try{if(e!==r){let n=mm.default.gt(r,e),i=mm.default.lt(r,e);await UL(r)&&(await Oo({_id:t.installId,type:"installation"},async()=>{n?await ga.upgraded(e,r):i&&await ga.downgraded(e,r)}),await Ft.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?sa(`Invalid version "${r}" - is it semver?`):sa("Failed to retrieve version",n)}};var FL=async()=>{let t=Pp(),e=Aa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=Ea();return{id:YS(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await Wc(j()),s=Ea();return{id:YS(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:j(),environment:e}}else if(r==="user"){let n=t,i=await Wc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=Ea(),{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")},kL=async(t,e)=>{let r=t,n="installation",i=Ea(),s=h.VERSION,o=Aa(),a={id:r,type:n,hosting:i,version:s,environment:o};await gm(a,e),await Ta({...a,id:`$${n}_${r}`},e)},BL=async(t,e,r)=>{let n=await Wc(t),i="tenant",s=await pi(),o=Aa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await gm(a,r),await Ta({...a,id:`$${i}_${n}`},r)},GL=async(t,e,r)=>{let n=t._id,i=await Wc(t.tenantId),s="user",o=Tt(t),a=en(t),u;Wa(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,m=!!e&&l&&e.verified,p=await pi(),f=e?e.hosting:Ea(),d=Aa();await Ta({id:n,type:s,hosting:f,installationId:p,tenantId:i,verified:m,accountHolder:l,providerType:u,builder:o,admin:a,environment:d},r)},$L=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=qa(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=Aa();if(Va(t)){let m=await kt(t.email);m?._id&&(e=m._id)}await Ta({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ta=async(t,e)=>{await yr.identify(t,e)},gm=async(t,e)=>{await yr.identifyGroup(t,e)},Aa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ea=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>VL()?"account-portal":(await ya()).installId,Wc=async t=>h.SELF_HOSTED?JS(t):t,JS=async t=>qe(t,()=>Wr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ne(),r=await Qc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),VL=()=>h.SERVICE==="account-portal",YS=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Ft={getCurrentIdentity:FL,identifyInstallationGroup:kL,identifyTenantGroup:BL,identifyUser:GL,identifyAccount:$L,identify:Ta,identifyGroup:gm,getInstallationId:pi,getUniqueTenantId:JS};var jc={};N(jc,{end:()=>WL,isAlreadySent:()=>Tm,isBackfillingEvent:()=>Em,recordEvent:()=>ym,start:()=>qL});var qL=async t=>jL({eventWhitelist:t}),ym=async(t,e)=>{let r=Am(t,e);await ur(r,e,void 0,{useTenancy:!1})},WL=async()=>{await HL(),await KL()},QL=async()=>ii(Ce.BACKFILL_METADATA),jL=async t=>ur(Ce.BACKFILL_METADATA,t),HL=async()=>{await Vo(Ce.BACKFILL_METADATA)},KL=async()=>{let t=Am(),e=await lc(t);for(let r of e)await Vo(r,{useTenancy:!1})},Em=async t=>{let r=(await QL())?.eventWhitelist;return!!(r&&r.includes(t))},Tm=async(t,e)=>{let r=Am(t,e);return!!await ii(r,{useTenancy:!1})},YL={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},Am=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=YL[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var Er;function Hc(){Er=new gr("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function zS(){Er&&await Er.close()}async function ZS(t){Er||Hc();let{event:e,identity:r}=t;Nh.indexOf(e)!==-1&&r.tenantId&&await Er.add(t)}var A=async(t,e,r,n)=>{let i=n||await Ft.getCurrentIdentity();if(!(n?!1:await Em(t))){await ZS({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await Tm(t,e)||(await yr.processEvent(t,i,e,r),await ym(t,e))};async function JL(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function zL(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function ZL(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var XS={created:JL,deleted:zL,verified:ZL};async function XL(t,e){await A("action:automation_step:executed",t,e)}async function eU(t,e){await A("action:crud:executed",t,e)}async function tU(t,e){await A("action:ai_agent:executed",t,e)}var e_={aiAgentExecuted:tU,automationStepExecuted:XL,crudExecuted:eU};var rU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function nU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function iU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function sU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function oU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function aU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function uU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function cU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function lU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function dU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function pU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function fU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var t_={created:rU,updated:nU,deleted:iU,published:sU,unpublished:oU,fileImported:aU,duplicated:uU,templateImported:cU,versionUpdated:lU,versionReverted:dU,reverted:pU,exported:fU};async function mU(t,e){let n={userId:(await Ft.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function hU(t){let r={userId:(await Ft.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function gU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function yU(t){let e={type:t};await A("auth:sso:updated",e)}async function EU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function TU(t){let e={type:t};await A("auth:sso:deactivated",e)}var Kc={login:mU,logout:hU,SSOCreated:gU,SSOUpdated:yU,SSOActivated:EU,SSODeactivated:TU};async function AU(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 SU(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 _U(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 IU(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 OU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function xU(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 RU(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 r_={created:AU,triggerUpdated:SU,deleted:_U,tested:IU,run:OU,stepCreated:xU,stepDeleted:RU};function Sm(t){return!Object.values(ka).includes(t.source)}async function wU(t,e){let r={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:created",r,e)}async function bU(t){let e={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:updated",e)}async function DU(t){let e={datasourceId:t._id,source:t.source,custom:Sm(t)};await A("datasource:deleted",e)}var n_={created:wU,updated:bU,deleted:DU};async function CU(t){let e={};await A("email:smtp:created",e,t)}async function vU(){let t={};await A("email:smtp:updated",t)}var i_={SMTPCreated:CU,SMTPUpdated:vU};async function NU(t){let e={};await A("ai:config:created",e,t)}async function PU(){let t={};await A("ai:config:updated",t)}var s_={AIConfigCreated:NU,AIConfigUpdated:PU};async function LU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function UU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function MU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function FU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function kU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function BU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function GU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var o_={planChanged:LU,activated:UU,checkoutOpened:MU,checkoutSuccess:FU,portalOpened:kU,paymentFailed:BU,paymentRecovered:GU};async function $U(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function VU(t){let e={layoutId:t};await A("layout:deleted",e)}var a_={created:$U,deleted:VU};async function qU(t){let e={};await A("org:info:name:updated",e,t)}async function WU(t){let e={};await A("org:info:logo:updated",e,t)}async function QU(t){let e={};await A("org:platformurl:updated",e,t)}async function jU(){let t={};await A("analytics:opt:out",t)}async function HU(){let t={};await A("analytics:opt:out",t)}var u_={nameUpdated:qU,logoUpdated:WU,platformURLUpdated:QU,analyticsOptOut:jU,analyticsOptIn:HU};var KU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},YU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},JU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},zU=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},ZU=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},XU=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},c_={created:KU,updated:YU,deleted:JU,imported:zU,run:ZU,previewed:XU};async function eM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function tM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function rM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function nM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function iM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var Sa={created:eM,updated:tM,deleted:rM,assigned:nM,unassigned:iM};async function sM(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 oM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var l_={created:sM,deleted:oM};var aM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},uM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},d_={created:aM,imported:uM};async function cM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function lM(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 dM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function pM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function fM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var p_={created:cM,updated:lM,deleted:dM,exported:pM,imported:fM};async function mM(t){let e={timezone:t};await A("served:builder",e)}async function hM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function gM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var f_={servedBuilder:mM,servedApp:hM,servedAppPreview:gM};async function yM(t,e){let r={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:created",r,e)}async function EM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:updated",e)}async function TM(t){let e={userId:t._id,viaScim:Pt(),audited:{email:t.email}};await A("user:deleted",e)}async function AM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function SM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function _M(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function IM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function OM(t){let e={audited:{email:t}};await A("user:invited",e)}async function xM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function RM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function wM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function bM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function CM(t){let e={users:t};await A("user:data:collaboration",e)}var Je={created:yM,updated:EM,deleted:TM,permissionAdminAssigned:AM,permissionAdminRemoved:SM,permissionBuilderAssigned:_M,permissionBuilderRemoved:IM,invited:OM,inviteAccepted:xM,passwordForceReset:RM,passwordUpdated:wM,passwordResetRequested:bM,passwordReset:DM,dataCollaboration:CM};async function vM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function NM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function PM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function LM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function UM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function MM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function FM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function kM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function BM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function GM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function $M(t,e){let r={tableId:t};await A("view:join:created",r,e)}var m_={created:vM,updated:NM,deleted:PM,exported:LM,filterCreated:UM,filterUpdated:MM,filterDeleted:FM,calculationCreated:kM,calculationUpdated:BM,calculationDeleted:GM,viewJoinCreated:$M};async function VM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function qM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function WM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function QM(){let t={};await A("installation:firstStartup",t)}var ga={versionChecked:VM,upgraded:qM,downgraded:WM,firstStartup:QM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function jM(t){Ts||await A("app:backfill:succeeded",t)}async function HM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function KM(t){Ts||await A("tenant:backfill:succeeded",t)}async function YM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function JM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function zM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var h_={appSucceeded:jM,appFailed:HM,tenantSucceeded:KM,tenantFailed:YM,installationSucceeded:JM,installationFailed:zM};async function ZM(t,e){let r={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function XM(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:updated",e)}async function e0(t){let e={groupId:t._id,viaScim:Pt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function t0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function r0(t,e){let r={count:t,groupId:e._id,viaScim:Pt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function n0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function i0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var g_={created:ZM,updated:XM,deleted:e0,usersAdded:t0,usersDeleted:r0,createdOnboarding:n0,permissionsEdited:i0};async function s0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function o0(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 a0(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 y_={init:s0,imported:o0,deleted:a0};async function u0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function c0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var E_={appBackupRestored:u0,appBackupTriggered:c0};async function l0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function d0(t){let e={name:t};await A("environment_variable:deleted",e)}async function p0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var T_={created:l0,deleted:d0,upgradePanelOpened:p0};async function f0(t){let e={filters:t};await A("audit_log:filtered",e)}async function m0(t){let e={filters:t};await A("audit_log:downloaded",e)}var A_={filtered:f0,downloaded:m0};async function h0(t,e){await A("row_action:created",t,e)}var S_={created:h0};function g0(){}var y0=async()=>{await yr.shutdown(),console.log("Events shutdown")};var _m=async t=>{await Je.deleted(t),Tt(t)&&await Je.permissionBuilderRemoved(t),en(t)&&await Je.permissionAdminRemoved(t)},E0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Sa.assigned(t,i)},T0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Sa.unassigned(t,i)},A0=async(t,e)=>{let r=t.roles,n=e?.roles;await E0(t,r,n),await T0(t,r,n)},Im=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),_0(t,e)&&await Je.permissionBuilderRemoved(t),O0(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),S0(t,e)&&await Je.permissionBuilderAssigned(t),I0(t,e)&&await Je.permissionAdminAssigned(t),await A0(t,e)},S0=(t,e)=>__(t,e,Tt),_0=(t,e)=>I_(t,e,Tt),I0=(t,e)=>__(t,e,en),O0=(t,e)=>I_(t,e,en),__=(t,e,r)=>!(!r(t)||e&&r(e)),I_=(t,e,r)=>!(r(t)||!e||!r(e));var Yc={};N(Yc,{createASession:()=>R0,endSession:()=>w0,getSession:()=>xm,getSessionsForUser:()=>_a,invalidateSessions:()=>fi,updateSessionTTL:()=>Om});var x_=require("uuid");var R_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function _a(t){return t?(await(await Vr()).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 _a(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 Vr(),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 R0(t,e){let r=await _a(t),n=0;if(r.length>=3){let c=r.sort((p,f)=>new Date(p.createdAt).getTime()-new Date(f.createdAt).getTime()),l=r.length-3+1,m=c.slice(0,l).map(p=>p.sessionId);n=m.length,await fi(t,{sessionIds:m,reason:"session limit exceeded"})}let i=await Vr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,x_.v4)(),a=As(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,R_),{session:u,invalidatedSessionCount:n}}async function Om(t){let e=await Vr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,R_)}async function w0(t,e){await(await Vr()).delete(As(t,e))}async function xm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Vr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Dm={};N(Dm,{PASSWORD_MAX_LENGTH:()=>wm,PASSWORD_MIN_LENGTH:()=>Rm,validatePassword:()=>bm});var Rm=+(h.PASSWORD_MIN_LENGTH||12),wm=+(h.PASSWORD_MAX_LENGTH||512);function bm(t){return!t||t.length<Rm?{valid:!1,error:`Password invalid. Minimum ${Rm} characters.`}:t.length>wm?{valid:!1,error:`Password invalid. Maximum ${wm} characters.`}:{valid:!0}}var b0=async t=>{let e=t._id;await Ut.removeUser(t),await _m(t),await rn.invalidateUser(e),await fi(e,{reason:"bulk-deletion"})},Yt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&Xr(e)?!1:await t.features.isSSOEnforced()||Wa(e)?!0:(r||(r=await ls(j())),!!(r&&r.email===e.email&&qa(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new lt("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let m=bm(o);if(!m.valid)throw new lt(m.error,400)}u=r.hashPassword?await Ef(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 ne().allDocs(si(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await zc(e,{})).length}}static async getUsersByAppAccess(e){return await Cm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return kt(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await Jc(e)}static async bulkUpdate(e){return await Ia(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),i=ne(),{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(p){if(p.status!==404)throw p}if(!c&&s&&(c=await kt(s),c&&c._id!==o))throw new mr(s);let l=1,m=0;if((r.isAccountHolder||c)&&(l=0,m=1),c){let[p,f]=await di([c,e]);m=p!==f?1:0}return t.quotas.addUsers(l,m,async()=>{r.isAccountHolder||await Uc(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=vm(p,c)),!c&&u?.length&&(p.roles={...u});let f=[];if(!o&&a.length>0)for(let d of a)f.push(t.groups.addUsers(d,[p._id]));try{let d=await i.put(p);return p._rev=d.rev,await Im(p,c),c&&p.email!==c.email&&await Ut.removeUser({email:c.email}),await Ut.addUser(n,p._id,p.email,p.ssoId),await rn.invalidateUser(d.id),await Promise.all(f),i.get(p._id)}catch(d){throw d.status===409?"User exists already":d}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(p=>p.email),u=await sm(a),c=[];for(let p of e){let f=s.find(g=>g.email.toLowerCase()===p.email.toLowerCase()),d=u.includes(p.email.toLowerCase());if(f||d){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await ua(p)&&o.push(p)}let l=await ls(n),m=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let d of s)m&&delete d.password,i.push(t.buildUser(d,{hashPassword:!0,requirePassword:!m},n,void 0,l));let p=await Promise.all(i);await Ia(p);for(let d of p)await Ut.addUser(n,d._id,d.email),await Im(d,void 0);let f=p.map(d=>({_id:d._id,email:d.email}));if(Array.isArray(f)&&r){let d=[],g=f.map(E=>E._id);for(let E of r)d.push(t.groups.addUsers(E,g));await Promise.all(d)}return{successful:f,unsuccessful:c}})}static async bulkDelete(e){let r=ne(),n={successful:[],unsuccessful:[]},i=await Mc(e);i&&(e=e.filter(f=>f.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(f=>f.userId)})).rows.map(f=>f.doc),a=o.map(f=>({...f,_deleted:!0})),u=await Ia(a),l=(await di(o)).filter(f=>f).length,m=[];for(let f of o){let g=(await aa(f._id)).ssoId;g&&(await wc(g)).filter(y=>y.ssoId==null).forEach(y=>{m.push({...y,_deleted:!0})}),await b0(f)}await ct().bulkDocs(m),await t.quotas.removeUsers(a.length,l);let p={};return o.reduce((f,d)=>(f[d._id]=d,f),p),u.forEach(f=>{let d=p[f.id].email;f.ok?n.successful.push({_id:f.id,email:d}):n.unsuccessful.push({_id:f.id,email:d,reason:"Database error"})}),n}static async destroy(e){let r=ne(),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 Ut.removeUser(n),await r.remove(i,n._rev);let s=await ua(n)?1:0;await t.quotas.removeUsers(1,s),await _m(n),await rn.invalidateUser(i),await fi(i,{reason:"deletion"})}static async createAdminUser(e,r,n){let i=n?.password,s={email:e,password:i,createdAt:Date.now(),roles:{},builder:{global:!0},admin:{global:!0},tenantId:r,firstName:n?.firstName,lastName:n?.lastName};return n?.ssoId&&(s.ssoId=n.ssoId),await 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 xa(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function Jc(t,e){let n=(await ne().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=xa(n)),n}async function C0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`})).rows.map(n=>n.id)}async function v0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ge}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ia(t){return await ne().bulkDocs(t)}async function mi(t,e){let n=await ne().get(t);return e?.cleanup&&(n=xa(n)),n}async function kt(t,e){if(t==null)throw"Must supply an email address to view";let r=await lr("by_email2",{key:t.toLowerCase(),include_docs:!0});if(Array.isArray(r))throw new Error(`Multiple users found with email address: ${t}`);let n=r;return e?.cleanup&&(n=xa(n)),n}async function N0(t){try{let e=await kt(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=fc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await lr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=xa(s)),s}async function Cm(t,e){let r=`roles.${t}`,n=[{"builder.global":!0},{"admin.global":!0}];if(t){let o={[r]:{$exists:!0}};n.push(o)}return(await ne().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function w_(t,e){if(e)return pc(at(t),e._id)}async function b_(t,e,r){if(typeof t!="string")throw new Error("Must provide a string to search by");let n=t.toLowerCase(),i=e&&e.startkey?e.startkey:n,s=await lr("by_email2",{...e,startkey:i,endkey:`${n}${Ge}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=xa(o)),o}var P0=8;async function D_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ne(),s=n??P0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await mi(e.equal._id)]:r?(u=await zc(r,a),l=m=>w_(r,m)):e?.string?.email?(u=await b_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await Jc(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(si(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=Mr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(si(null,a))).rows.map(p=>p.doc),xf(u,s,{paginate:!0,property:c,getKey:l})}async function L0(){return(await bf("by_email2",{limit:0,include_docs:!1})).total_rows}async function U0(){let t=0;async function e(r){let n=await D_({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function M0(t){return delete t.admin,delete t.builder,t}function vm(t,e){return delete t.admin,delete t.builder,delete t.roles,e&&(t.admin=e.admin,t.builder=e.builder,t.roles=e.roles),t}async function F0(t,e){let r=at(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Yt.save(t,{hashPassword:!1})}async function k0(t,e){let r=at(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Yt.save(t,{hashPassword:!1})}var C_=3600;async function B0(t,e){let n=await hf(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 G0(t){let e=await Yt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Ra({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=B0),!e)try{e=j()}catch{e=await Ut.lookupTenantId(t)}let i=await Go(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,C_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ot.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Yt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function $0(t){let e=await Go(),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 G0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,C_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function wa(t){await(await Go()).delete(t)}var Um={};N(Um,{Writethrough:()=>Pm});var v_=1e4,Nm=null;async function Zc(){if(!Nm){let t=await ff();Nm=new ti(t)}return Nm}function ba(t,e){return t.name+e}function Lm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function V0(t,e,r=v_){let n=await Zc(),i=e._id,s;i&&(s=await n.get(ba(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 m=await t.put(l,{force:!0});a._id=m.id,a._rev=m.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=Lm(a,o?null:s?.lastWrite),a._id&&await n.store(ba(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function q0(t,e){let r=await Zc(),n=ba(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 W0(t,e){let r=await Zc(),n=ba(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 Q0(t,e,r){let n=await Zc();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(ba(t,i))}finally{await t.remove(i,r)}}var Pm=class{constructor(e,r=v_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return V0(this.db,e,r)}async get(e){return q0(this.db,e)}async tryGet(e){return W0(this.db,e)}async remove(e,r){return Q0(this.db,e,r)}};var Mm={};N(Mm,{createCode:()=>H0,getCode:()=>K0,invalidateCode:()=>Y0});var j0=be.fromHours(1).toSeconds();async function H0(t,e){let r=me();return await(await $o()).store(r,{userId:t,info:e},j0),r}async function K0(t){let r=await(await $o()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function Y0(t){await(await $o()).delete(t)}var km={};N(km,{DocWritethrough:()=>Fm,DocWritethroughProcessor:()=>Da,getProcessor:()=>z0,init:()=>N_});var J0=100,Xc,Da=class t{static get queue(){return t._queue||(t._queue=new gr("docWritethroughQueue",{jobOptions:{attempts:J0}})),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)}},Fm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Da.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function N_(){return Xc=new Da().init(),Xc}function z0(){return Xc||N_()}function el(t){return`config${v}${t}`}async function Bt(t){let e=ne();try{return await e.get(el(t))}catch(r){if(r.status===404)return;throw r}}async function Z0(t){return t._id||(t._id=el(t.type)),ne().put(t)}async function Qc(){let t=await Bt("settings");return t||(t={_id:el("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ca({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Bc({config:t.config}),t}async function $m(){return(await Qc()).config}async function Ca(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await Bt("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Bc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Wr(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 X0(){return await Bt("google")}async function tl(){return(await X0())?.config}async function Vm(){if(!h.SELF_HOSTED)return Bm();let t=await tl();return(!t||!t.activated)&&(t=Bm()),t}function Bm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function eF(){return Bt("logos_oidc")}async function tF(){return Bt("oidc")}async function rF(){let t=(await tF())?.config;return t?.configs&&t.configs[0]}async function qm(t){let e=(await Bt("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function P_(){return Bt("smtp")}async function nF(t){let e=await P_();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 iF(){return(await Bt("scim"))?.config}async function sF(){return Bt("ai")}var Xm={};N(Xm,{AccessController:()=>jm,BUILTIN_ROLE_IDS:()=>Hm,Role:()=>nn,RoleHierarchyTraversal:()=>rl,RoleIDVersion:()=>Km,builtinRoleToNumber:()=>va,checkForRoleResourceArray:()=>F_,externalRole:()=>dF,findRole:()=>Na,getAllRoleIds:()=>hF,getAllRoles:()=>Zm,getBuiltinRole:()=>U_,getBuiltinRoles:()=>Jm,getDBRoleID:()=>k_,getExternalRoleID:()=>sn,getExternalRoleIDs:()=>B_,getRole:()=>pF,getUserRoleHierarchy:()=>zm,getUserRoleIdHierarchy:()=>M_,isBuiltin:()=>hi,lowerBuiltinRoleID:()=>lF,prefixRoleIDNoBuiltin:()=>Qm,roleIDsAreEqual:()=>St,roleToNumber:()=>cF,saveRoles:()=>fF,validInherits:()=>uF});var Wm=W(require("semver"));var nl=W(require("lodash/fp/cloneDeep"));var L_=require("lodash");var Hm={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...Hm,BUILDER:"BUILDER"},Km={UUID:void 0,NAME:"name"};function aF(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=Km.NAME}addInheritance(e){return e&&typeof e=="string"?e=Qm(e):e&&Array.isArray(e)&&(e=e.map(Qm)),this.inherits=e,this}},rl=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=Na(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!aF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Na(o.inherits,n,r),o&&i.push(o),jt.roles.checkForRoleInheritanceLoops(i))break}}return(0,L_.uniqBy)(i,s=>s._id)}},Ym={ADMIN:new nn(he.ADMIN,he.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(he.POWER),POWER:new nn(he.POWER,he.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(he.BASIC),BASIC:new nn(he.BASIC,he.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(he.PUBLIC),PUBLIC:new nn(he.PUBLIC,he.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new nn(he.BUILDER,he.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function Jm(){return(0,nl.default)(Ym)}function hi(t){return Object.values(Hm).includes(t)}function Qm(t){return hi(t)?t:cr(t)}function U_(t){let e=Object.values(Ym).find(r=>t.includes(r._id));if(e)return(0,nl.default)(e)}function uF(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 va(t){let e=Jm(),r=Object.values(e).length+1;if(St(t,he.ADMIN)||St(t,he.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 cF(t){if(hi(t))return va(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=>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 va(n.inherits)+1;return 0};return Math.max(...e.map(r))}function lF(t,e){return t?e&&va(t)>va(e)?e:t:e}function St(t,e){return cr(t)===cr(e)}function dF(t){let e;return t._id&&(e=sn(t._id)),{...t,_id:e,inherits:B_(t.inherits,t.version)}}function Na(t,e,r){let n=U_(t);n||(t=cr(t));let i=e.find(s=>s._id&&St(s._id,t));return!i&&!hi(t)&&r?.defaultPublic?(0,nl.default)(Ym.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 pF(t,e){let r=Xi(),n=[];if(!hi(t)){let i=await r.tryGet(k_(t));i&&n.push(i)}return Na(t,n,e)}async function fF(t){await Xi().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function mF(t,e){let r=await Zm();if(St(t,he.ADMIN))return r;let n=Na(t,r,e),i=[];return n&&(i=new rl(r,e).walk(n)),i}async function M_(t){return(await zm(t)).map(r=>r._id)}async function zm(t,e){return mF(t,e)}function F_(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 hF(t){return(await Zm(t)).map(r=>r._id)}async function Zm(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(mc(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 gF(r)?s=[he.ADMIN,he.POWER,he.BASIC,he.PUBLIC]:s=[he.ADMIN,he.BASIC,he.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=F_(o.permissions,a);return n}}async function gF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Wm.default.valid(r)?!0:!Wm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var jm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||St(e,he.BUILDER)||St(r,e)||St(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await M_(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 k_(t){return t?.startsWith("role")?t:cr(t)}function sn(t,e){if(t.startsWith(`role${v}`)&&(hi(t)||e===Km.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function B_(t,e){return t&&(typeof t=="string"?sn(t,e):t.map(r=>sn(r,e)))}var eh={};N(eh,{BUILDER:()=>SF,BUILTIN_PERMISSIONS:()=>il,CREATOR:()=>_F,GLOBAL_BUILDER:()=>IF,PermissionImpl:()=>ge,PermissionLevel:()=>xs,PermissionType:()=>$a,doesHaveBasePermission:()=>TF,getAllowedLevels:()=>q_,getBuiltinPermissionByID:()=>EF,getBuiltinPermissions:()=>yF,isPermissionLevelHigherThanRead:()=>AF,levelToNumber:()=>V_});var G_=W(require("lodash/flatten")),$_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function V_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function q_(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var il={PUBLIC:{_id:"public",name:"Public",permissions:[new ge("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new ge("query","read"),new ge("table","read"),new ge("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new ge("query","write"),new ge("table","write"),new ge("automation","execute"),new ge("legacy_view","read"),new ge("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new ge("table","write"),new ge("user","read"),new ge("automation","execute"),new ge("webhook","read"),new ge("legacy_view","read"),new ge("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new ge("table","admin"),new ge("user","admin"),new ge("automation","admin"),new ge("webhook","read"),new ge("query","admin"),new ge("legacy_view","read"),new ge("app","read")]}};function yF(){return(0,$_.default)(il)}function EF(t){return Object.values(il).find(r=>r._id===t)}function TF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(il),s=(0,G_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&q_(o.level).indexOf(e)!==-1)return!0;return!1}function AF(t){return V_(t)>1}var SF="builder",_F="creator",IF="globalBuilder";var nh={};N(nh,{FlagSet:()=>ol,all:()=>wF,flags:()=>th,getEnvFlags:()=>H_,init:()=>OF,isEnabled:()=>RF,parseEnvFlags:()=>ul,shutdown:()=>xF,testutils:()=>rh});var al=W(require("crypto"));var W_=require("posthog-node"),Q_=W(require("dd-trace"));var j_=require("lodash");var sl;function OF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),sl=new W_.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 xF(){sl?.shutdown()}function ul(t){let e=t.split(",").map(n=>n.split(":")),r=[];for(let[n,...i]of e)for(let s of i){let o=!0;s.startsWith("!")&&(s=s.slice(1),o=!1),r.push({tenantId:n,key:s,value:o})}return r}function H_(){return ul(h.TENANT_FEATURE_FLAGS||"")}var ol=class{constructor(e){this.flagSchema=e;this.setId=al.randomUUID()}defaults(){return(0,j_.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=rf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:m,key:p,value:f}of H_())if(!(!m||m!=="*"&&m!==s)&&(n.readFromEnvironmentVars=!0,f===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=f,n[`flags.${p}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let m=ef();m&&(u=al.createHash("sha512").update(m).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,sl&&u){n.readFromPostHog=!0;let m={tenantId:c},p=await sl.getAllFlags(u,{personProperties:m,onlyEvaluateLocally:!0});for(let[f,d]of Object.entries(p))if(this.isFlagName(f)){if(typeof d!="boolean"){console.warn(`Invalid value for posthog flag "${f}": ${d}`);continue}if(!(i[f]===!0||o.has(f)))try{i[f]=d,n[`flags.${f}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${f}": ${d}`,g)}}}let l=sf();for(let[m,p]of Object.entries(l))this.isFlagName(m)&&typeof p=="boolean"&&(i[m]=p,n[`flags.${m}.source`]="override");nf(this.setId,i);for(let[m,p]of Object.entries(i))n[`flags.${m}.value`]=p;return e?.addTags(n),i})}},th=new ol(Fh);async function RF(t){return await th.isEnabled(t)}async function wF(){return await th.fetch()}var rh={};N(rh,{setFeatureFlags:()=>K_,withFeatureFlags:()=>CF});function bF(){let t={};for(let{tenantId:e,key:r,value:n}of ul(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function DF(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 K_(t,e){let r=bF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=DF(r);return Ro({TENANT_FEATURE_FLAGS:n})}function CF(t,e,r){let n=K_(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var hh={};N(hh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,buildAuthMiddleware:()=>Ek,buildCsrfMiddleware:()=>Ak,buildTenancyMiddleware:()=>Tk,builderOnly:()=>Sl,builderOrAdmin:()=>Al,google:()=>Tr,internalApi:()=>yl,joiValidator:()=>La,oidc:()=>Ar,passport:()=>Sk,platformLogout:()=>Rk,refreshOAuthToken:()=>Ok,ssoCallbackUrl:()=>on,updateUserOAuth:()=>xk});var mh={};N(mh,{adminOnly:()=>Tl,auditLog:()=>hl,authError:()=>Me,authenticated:()=>ml,builderOnly:()=>Sl,builderOrAdmin:()=>Al,correlation:()=>uI,csp:()=>mI,csrf:()=>El,datasource:()=>gk,errorHandling:()=>lI,featureFlagCookie:()=>hI,google:()=>Tr,internalApi:()=>yl,ip:()=>yI,joiValidator:()=>La,local:()=>Ss,oidc:()=>Ar,pino:()=>oI,querystringToBody:()=>dI,ssoCallbackUrl:()=>on,tenancy:()=>gl});var Ss={};N(Ss,{authenticate:()=>PF,options:()=>NF});function Me(t,e,r){return t(r,null,{message:e})}async function on(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await $m(),n="/api/global/auth";return $r()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var ih="Invalid credentials",vF="This account has expired. Please reset your password",NF={passReqToCallback:!0};async function PF(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,ih)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,ih)):i.password?await Tf(r,i.password)?(delete i.password,n(null,i)):Me(n,ih):(console.info(`user=${e} has no password set`,i),Me(n,vF))}var Tr={};N(Tr,{buildVerifyFn:()=>z_,getCallbackUrl:()=>MF,strategyFactory:()=>sh});var Pa=t=>Promise.resolve(t);async function cl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=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 LF(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 LF(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 UF=require("passport-google-oauth").OAuth2Strategy;function z_(t){return(e,r,n,i)=>{let s={provider:"google",providerType:"google",userId:n.id,profile:n,email:n._json.email,oauth2:{accessToken:e,refreshToken:r}};return cl(s,!0,i,t)}}async function sh(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=z_(r);return new UF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function MF(t){return on("google",t)}var Ar={};N(Ar,{buildVerifyFn:()=>X_,fetchStrategyConfig:()=>GF,getCallbackUrl:()=>$F,strategyFactory:()=>BF});var Z_=W(require("node-fetch"));var FF=require("@techpass/passport-openidconnect").Strategy;function X_(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:kF(n,i),oauth2:{accessToken:s,refreshToken:o}};return cl(l,!1,c,t)}}function kF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Lf(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function BF(t,e){try{let r=X_(e),n=new FF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function GF(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,Z_.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 $F(){return on("oidc")}var oh={};N(oh,{postAuth:()=>WF,preAuth:()=>qF});var VF=require("passport-google-oauth").OAuth2Strategy;async function eI(){let t=await Vm();if(!t)throw new Error("No google configuration found");return t}async function qF(t,e,r){let n=await eI(),s=`${await Ca({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await sh(n,s,Pa);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function WF(t,e,r){let n=await eI(),s=`${await Ca({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=pr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new VF({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=me();await ur(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var QF=/\/:(.*?)(\/.*)?$/g,gi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(QF);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],yi=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var ph={};N(ph,{SecretOption:()=>nI,decrypt:()=>dh,decryptFile:()=>zF,encrypt:()=>KF,encryptFile:()=>YF,getSecret:()=>lh});var Sr=W(require("crypto")),an=W(require("fs")),uh=W(require("zlib"));var ah=require("path"),ll="aes-256-ctr",rI="-",jF=1e4,HF=32,dl=16,ch=16,nI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(nI||{});function lh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function pl(t,e){return Sr.default.pbkdf2Sync(t,e,jF,HF,"sha512")}function KF(t,e="api"){let r=Sr.default.randomBytes(dl),n=pl(lh(e),r),i=Sr.default.createCipheriv(ll,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${rI}${a}`}function dh(t,e="api"){let[r,n]=t.split(rI),i=Buffer.from(r,"hex"),s=pl(lh(e),i),o=Sr.default.createDecipheriv(ll,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function YF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,ah.join)(t,e);if(an.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=an.default.createReadStream(i),o=an.default.createWriteStream((0,ah.join)(t,n)),a=Sr.default.randomBytes(dl),u=Sr.default.randomBytes(ch),c=pl(r,a),l=Sr.default.createCipheriv(ll,c,u);return o.write(a),o.write(u),s.pipe(uh.default.createGzip()).pipe(l).pipe(o),new Promise(m=>{o.on("finish",()=>{m({filename:n,dir:t})})})}async function JF(t){let e=an.default.createReadStream(t),r=await tI(e,dl),n=await tI(e,ch);return e.close(),{salt:r,iv:n}}async function zF(t,e,r){if(an.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await JF(t),s=an.default.createReadStream(t,{start:dl+ch}),o=an.default.createWriteStream(e),a=pl(r,n),u=Sr.default.createDecipheriv(ll,a,i),c=uh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,m)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",p=>{o.close(),m(p)}),u.on("error",p=>{o.close(),m(p)}),c.on("error",p=>{o.close(),m(p)}),o.on("error",p=>{o.close(),m(p)})})}function tI(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 sI=W(require("dd-trace")),ZF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function XF(){return new Date(Date.now()-ZF).toISOString()}function iI(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 ek(t,e){if(Zo(t))return{valid:!0,user:void 0};let n=dh(t).split(v)[0];return qe(n,async()=>{let i;try{let s=ne();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Ra({userId:i,tenantId:n,populateUser:e})};throw new fs})}function fl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function ml(t=[],e={publicAllowed:!1}){let r=t?gi(t):[];return async(n,i)=>{let s=!1,o=fl(n,"x-budibase-api-version");yi(n,r)&&(s=!0);try{let u=fl(n,"x-budibase-token"),c=pr(n,"budibase:auth")||gc(u),l=fl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let m=fl(n,"x-budibase-tenant-id"),p=!1,f,d=!1,g;if(c&&!l){let y=c.sessionId,S=c.userId,O;try{O=await xm(S,y),e&&e.populateUser?f=await Ra({userId:S,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):f=await Ra({userId:S,tenantId:O.tenantId,email:O.email}),f.csrfToken=O.csrfToken,g="cookie",O?.lastAccessedAt<XF()&&await Om(O),p=!0}catch(R){p=!1,console.error(`Auth Error: ${R.message}`),Hr(n,"budibase:auth")}}if(!p&&l){let y=e.populateUser?e.populateUser(n):null,{valid:S,user:O}=await ek(l,y);S&&(p=!0,g="api_key",f=O,d=!O)}!f&&m?f={tenantId:m}:f&&"password"in f&&delete f.password,p||(p=!1);let E=y=>y&&y.email;return E(f)&&sI.default.setUser({id:f._id,tenantId:f.tenantId,budibaseAccess:f.budibaseAccess,status:f.status}),iI(n,{authenticated:p,user:f,internal:d,version:o,publicEndpoint:s,loginMethod:g}),E(f)?Up(f,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 iI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var tk=async(t,e)=>e(),hl=tk;function gl(t,e,r={noTenancyRequired:!1}){let n=gi(t),i=gi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!yi(s,i)};!!yi(s,n)||(u.excludeStrategies=["query"]);let l=Wo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}var yl=async(t,e)=>{let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),Zo(r)||t.throw(403,"Unauthorized"),e()};var rk=["GET","HEAD","OPTIONS"],nk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function El(t={noCsrfPatterns:[]}){let e=gi(t.noCsrfPatterns);return async(r,n)=>{if(yi(r,e)||rk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!nk.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Tl=async(t,e)=>(!t.internal&&!Xr(t.user)&&t.throw(403,"Admin user only endpoint."),e());var Al=async(t,e)=>{let r=Le(),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 Sl=async(t,e)=>{let r=Le(),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 ik=require("koa-pino-logger"),sk=require("correlation-id");function ok(){return{logger:xc,genReqId:sk.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 ak(){return h.HTTP_LOGGING?ik(ok()):(t,e)=>e()}var uk=ak(),oI=uk;var aI=require("uuid"),ck=require("correlation-id"),lk=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,aI.v4)()),ck.withId(r,()=>e())},uI=lk;function cI(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 dk(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Nc(r)};if(cI(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 lI=dk;function dI(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 fI=W(require("crypto"));var pI={"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'"]},pk=/^[A-Za-z0-9-*:/.]+$/,fk=async(t,e)=>{let r=fI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...pI};if(n["script-src"]=[...pI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await jo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
+ `).filter(c=>pk.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()},mI=fk;var hI=async(t,e)=>{let n=pr(t,"budibase:featureflags")?.flags||{};await of(n,async()=>{await e()})};var La={};N(La,{body:()=>mk,params:()=>hk});var fh=W(require("joi"));function gI(t,e,r){let n=r?.errorPrefix??`Invalid ${e}`;return(i,s)=>{if(!t)return s();let o=null,a=i.request?.[e];i[e]!=null?o=i[e]:a!=null&&(o=a),t.append&&(t=t.append({createdAt:fh.default.any().optional(),updatedAt:fh.default.any().optional()}));let{error:u}=t.validate(o,{allowUnknown:r?.allowUnknown});if(u){let c=u.message;n&&(c=`Invalid ${e} - ${c}`),i.throw(400,c)}return s()}}function mk(t,e){return gI(t,"body",e)}function hk(t,e){return gI(t,"params",e)}var yI=async(t,e)=>t.ip?await tf(t.ip,()=>e()):e();var gk={google:oh};var EI=require("koa-passport"),yk=require("passport-local").Strategy,_l=require("passport-oauth2-refresh"),Ek=ml,Tk=gl,Ak=El,Sk=EI;EI.use(new yk(Ss.options,Ss.authenticate));async function _k(t,e){let r=await Ar.getCallbackUrl(),n,i;try{if(n=await Ar.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Ar.strategyFactory(n,Pa)}catch{throw new Error("Could not refresh OAuth Token")}return _l.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{_l.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Ik(t,e){let r=await Tr.getCallbackUrl(t),n;try{n=await Tr.strategyFactory(t,r,Pa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return _l.use(n),new Promise(i=>{_l.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Ok(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await qm(r);return n?_k(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await tl();return n?Ik(n,t):{err:{data:"Google configuration not found"}}}}}async function xk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ne(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await wa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Rk(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=pr(e,"budibase:auth"),s=await _a(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 Kc.logout(e.user?.email),await wa(r)}var yh={};N(yh,{validate:()=>vk});var D=W(require("joi")),wk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function gh(t,e){let{error:r}=t.validate(e);if(r)throw r}function bk(t){let e=D.default.object({type:D.default.string().allow("component").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({name:D.default.string().required(),settings:D.default.array().items(D.default.object().unknown(!0)).required()}).unknown(!0)});gh(e,t)}function Dk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(wl)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(Rl)),readable:D.default.boolean(),displayName:D.default.string(),fields:D.default.object().pattern(D.default.string(),e)}).required(),n=D.default.object({type:D.default.string().allow("datasource").required(),metadata:D.default.object().unknown(!0).required(),hash:D.default.string().optional(),version:D.default.string().optional(),schema:D.default.object({docs:D.default.string(),plus:D.default.boolean().optional(),isSQL:D.default.boolean().optional(),auth:D.default.object({type:D.default.string().required()}).optional(),features:D.default.object(Object.fromEntries(Object.values(bl).map(i=>[i,D.default.boolean().optional()]))).optional(),relationships:D.default.boolean().optional(),description:D.default.string().required(),friendlyName:D.default.string().required(),type:D.default.string().allow(...wk),datasource:D.default.object().pattern(D.default.string(),e).required(),query:D.default.object().pattern(D.default.string(),r).unknown(!0).required(),extra:D.default.object().pattern(D.default.string(),D.default.object({type:D.default.string().required(),displayName:D.default.string().required(),required:D.default.boolean(),data:D.default.object()}))})});gh(n,t)}function Ck(t){let e=D.default.object().pattern(D.default.string(),{type:D.default.string().allow(...Object.values(ee)).required(),customType:D.default.string().allow(...Object.values(pe)),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(...kh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});gh(n,t)}function vk(t){switch(t?.type){case"component":bk(t);break;case"datasource":Dk(t);break;case"automation":Ck(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var Eh={};N(Eh,{Client:()=>We,clients:()=>qr,locks:()=>ui,utils:()=>oc});var Th={};N(Th,{isBlacklisted:()=>Pk,refreshBlacklist:()=>_I});var TI=W(require("dns")),Ol=W(require("net"));var AI=require("util"),Il,Nk=(0,AI.promisify)(TI.default.lookup);async function SI(t){return Ol.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Nk(t,{all:!0})).map(r=>r.address)}async function _I(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Ol.default.isIP(i))r.push(i);else{let s=await SI(i);r=r.concat(s)}}Il=r}async function Pk(t){if(Il||await _I(),Il?.length===0)return!1;let e;return Ol.default.isIP(t)?e=[t]:e=await SI(t),!!Il?.find(r=>e.includes(r))}var Sh={};N(Sh,{init:()=>Uk});var Lk={"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 II(t,e){let r=Lk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ua=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=II(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 zS()}};var OI,Ah;function Uk(t){Er||Hc(),Ah||(Ah=new Ua(t)),OI||(OI=Er.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Ah.processEvent(r,n,i)}))}var Ch={};N(Ch,{COUNT_FIELD_NAME:()=>bh,Sql:()=>PI,SqlTable:()=>xl,designDoc:()=>Dh,utils:()=>Yp});var bI=require("knex");var Mk=require("knex");function _h(t){return["link","formula","ai"].indexOf(t)!==-1}function xI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(p=>p.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(p=>p.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,f]of Object.entries(e.schema)){let d=n?.schema[p];if(d&&d.type||c.includes(p)||i?.updated===p)continue;let g=f.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(p)?t.string(p,255):t.text(p);break;case"number":if(f.meta&&f.meta.toKey&&f.meta.toTable){let{toKey:E,toTable:y}=f.meta;t.integer(p).unsigned(),t.foreign(p).references(`${y}.${E}`)}else l.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":f.timeOnly?t.time(p):t.datetime(p,{useTz:!f.ignoreTimezones});break;case"array":case"bb_reference":jt.schema.isDeprecatedSingleUserColumn(f)?t.text(p):t.json(p);break;case"link":if(f.relationshipType!=="many-to-one"&&f.relationshipType!=="many-to-many"){if(!f.foreignKey||!f.tableId)throw new Error("Invalid relationship schema");let{tableName:E}=Wp(f.tableId),y=r[E];if(!y||!y.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=y.primary[0],O=y.schema[S].externalType;O?t.specificType(f.foreignKey,O):t.integer(f.foreignKey).unsigned(),t.foreign(f.foreignKey).references(`${E}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(p);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${f.type} is not a valid SQL type`);default:Ci.unreachable(g)}}let m=i?n?.schema[i.old].type:void 0;return i&&m&&!_h(m)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([f,d])=>!_h(d.type)&&e.schema[f]==null).forEach(([f,d])=>{i?.old===f||_h(d.type)||(n.constrained&&n.constrained.indexOf(f)!==-1&&t.dropForeign(f),t.dropColumn(f))}),t}function kk(t,e,r){return t.createTable(e.name,n=>{xI(n,e,r)})}function Bk(t,e,r,n,i){return t.alterTable(e.name,s=>{xI(s,e,r,n,i)})}function Gk(t,e){return t.dropTable(e.name)}var Ih=class{constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,Mk.knex)({client:this.sqlClient}).schema;e?.schema&&(r=r.withSchema(e.schema));let n;if(!e.table||!e.tables)throw new Error("Cannot execute without table being specified");if(e.table.sourceType==="internal")throw new Error("Cannot perform table actions for SQS.");switch(this._operation(e)){case"CREATE_TABLE":n=kk(r,e.table,e.tables);break;case"UPDATE_TABLE":if(!e.table)throw new Error("Must specify old table for update");if(this.sqlClient==="mysql2"&&e.meta?.renamed){let i=e.meta.renamed.updated;return{sql:`alter table ${e?.schema?`\`${e.schema}\`.\`${e.table.name}\``:`\`${e.table.name}\``} rename column \`${e.meta.renamed.old}\` to \`${i}\`;`,bindings:[]}}if(n=Bk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=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=Gk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Ji(n)}},xl=Ih;var DI=require("lodash"),bh="__bb_total";function RI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Oh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function $k(t,e){return t.sort((r,n)=>{let i=e.find(o=>o&&r.endsWith(o)),s=e.find(o=>o&&n.endsWith(o));return i&&!s?-1:!i&&s?1:r.localeCompare(n)})}function CI(t){return Array.isArray(t)?t.map(e=>CI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function wI(t){return t.sourceType==="internal"||t.sourceId===Ul}function Vk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function vI(t,e='"'){return`${e}${Vk(t,e)}${e}`}function xh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=vI(t[r],e));return`[${t.join(",")}]`}function NI(t){return Gh.includes(t.type)&&!jt.schema.isDeprecatedSingleUserColumn(t)}var qk={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Rh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Mr.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()&&NI(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(!Hp(e))return null}else if(r.dateOnly){let n=jp(e);return n?new Date(n):null}else return r.ignoreTimezones?rc(e)?new Date(e.trim()):Qp(e)?new Date(e.trim()+"Z"):null:rc(e)?new Date(e.trim()):null;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,DI.cloneDeep)(e);for(let r of Object.values(Ir)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Jt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(dn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=m=>n.match(new RegExp(`^${m}\\.`));if(!s)return e;for(let m of s){let p=m.tableName,f=a?.[p]||p,d=l(p)||l(f),g=l(m.column);if((d||g)&&m.to&&m.tableName){let E=this.knex.select(this.knex.raw(1)).from({[f]:p}),y=E.clone(),S=Kp(m),O;if(d?O=n:O=n.replace(new RegExp(`^${m.column}.`),`${a?.[m.tableName]||m.tableName}.`),S){let R=a?.[S.through]||m.through,T=this.tableNameWithSchema(S.through,{alias:R,schema:o});y=y.innerJoin(T,function(){this.on(`${f}.${S.toPrimary}`,"=",`${R}.${S.to}`)}).where(`${R}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(y=this.addJoinFieldCheck(y,S)),e=e.where(_=>{_.whereExists(i(O,y)),r&&_.orWhereNotExists(E.clone().innerJoin(T,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${f}.${m.to}`,T=`${c}.${m.from}`;y=y.where(R,"=",this.rawQuotedIdentifier(T)),e=e.where(_=>{_.whereExists(i(O,y.clone())),r&&_.orWhereNotExists(y)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(d){return s?.[d]||d}function l(d,g,E,y){let S=(O,R,T)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return O.andWhere(de=>E(de,k?`${k}.${b}`:b,T))};for(let O in d){let R=d[O],T=zo(O),_=T.includes("."),B=n?.relationship&&_,b;if(O==="_complexIdOperator"&&(b=d[O])&&y){let k=c(u);e=y(e,b.id.map(de=>k?`${k}.${de}`:de),b.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,qk[g],T,(k,de)=>S(de,k,R)));else{let k=c(u);e=E(e,k?`${k}.${T}`:T,R)}}}let m=(d,g,E)=>((r?.fuzzyOr||o)&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):d.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),p=(d,g=!1)=>{function E(y){return(o||d===r?.containsAny)&&(y=y.or),d===r?.notContains&&(y=y.not),y}this.client==="pg"?l(d,"contains",(y,S,O)=>(y=E(y),g?y.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(xh(O,"'"))]):y.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(xh(O))]))):this.client==="mysql2"||this.client==="mariadb"?l(d,"contains",(y,S,O)=>E(y).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(vI(xh(O)))])):l(d,"contains",(y,S,O)=>(O.length===0||(y=y.where(R=>(d===r?.notContains&&(R=R.not),R=R.where(T=>{for(let _ of O){d===r?.containsAny?T=T.or:T=T.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;T=T.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${B}%`)}}),d===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),y))};if(r.$and){let{$and:d}=r;for(let g of d.conditions)e=e.where(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:d}=r;e=e.where(g=>{for(let E of d.conditions)g.orWhere(y=>this.addFilters(y,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(d,g,E)=>{let y=this.getFieldSchema(g),S=Array.isArray(E)?E:[E];if(o&&(d=d.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly){for(let O of S)O!=null?d=d.or.whereLike(g,`${O.toISOString().slice(0,10)}%`):d=d.or.whereNull(g);return d}return d.whereIn(g,S)},(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"&&(g=g.map(y=>this.convertClobs(y))),d.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(d,g,E)=>(o&&(d=d.or),this.client==="oracledb"||this.client==="sqlite3"?d.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]):d.whereILike(g,`${E}%`))),r.fuzzy&&l(r.fuzzy,"fuzzy",m),r.range&&l(r.range,"range",(d,g,E)=>{let y=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;y(E.low)&&(E.low=""),y(E.high)&&(E.high="");let S=nc(E.low),O=nc(E.high),R=this.getFieldSchema(g),T=g,_=E.high,B=E.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(_!=null&&(_=`${_.toISOString().slice(0,10)}T23:59:59.999Z`),B!=null&&(B=B.toISOString().slice(0,10))),this.client==="oracledb"?T=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(T=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[E.high]),B=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(d=d.or),S&&O?d.whereBetween(T,[B,_]):S?d.where(T,">=",B):O?d.where(T,"<=",_):d}),r.equal&&l(r.equal,"equal",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.whereNotNull(S).andWhere(S,E))}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.whereLike(g,`${E.toISOString().slice(0,10)}%`):d.whereNull(g):d.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(d,g,E)=>{let y=this.getFieldSchema(g);if(o&&(d=d.or),this.client==="mssql")return d.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),E]);if(this.client==="oracledb"){let S=this.convertClobs(g);return d.where(O=>O.not.whereNull(S).and.where(S,"!=",E)).or.whereNull(S)}else return this.client==="sqlite3"&&y?.type==="datetime"&&y.dateOnly?E!=null?d.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):d.not.whereNull(g):d.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(d,g)=>(o&&(d=d.or),d.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(d,g)=>(o&&(d=d.or),d.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let f=s?.[this.table._id]||this.table._id;return r.documentType&&!qp(this.table)&&f&&e.andWhereLike(`${f}._id`,`${Or(r.documentType)}%`),e}isSqs(){return wI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;wI(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${bh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let m=`${s}.${a}`,p;this.isAggregateField(a)?p=this.rawQuotedIdentifier(a):this.client==="oracledb"?p=this.convertClobs(m):p=this.rawQuotedIdentifier(m),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[p,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}if(!((n?.aggregations?.length??0)>0)&&(!r||r[i[0]]===void 0)){if(i[0]===void 0)throw new Error(`Primary key not found for table ${this.table.name}`);e=e.orderBy(`${s}.${i[0]}`)}return 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 m of n){let{tableName:p,through:f,to:d,from:g,fromPrimary:E,toPrimary:y}=m;if(!p||!r)continue;let S=c[p];if(!S)throw new Error(`related table "${p}" not found in datasource`);let O=a?.[p]||p,R=a?.[r]||r,T=f&&a?.[f]||f,_=this.tableNameWithSchema(p,{alias:O,schema:u}),B=[...S?.primary||[],S?.primaryDisplay].filter(V=>V),b=$k(l.filter(V=>V.split(".")[0]===O),B);b=b.slice(0,Math.floor(this.maxFunctionParameters()/2));let k=b.map(V=>this.buildJsonField(S,V));if(!k.length)continue;let de=k.map(V=>{let ae=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ae}??`,[V[0],V[1]]).toString()}).join(","),un=`${O}.${y||d}`,$=s.from(_).orderBy(un),F=f&&y&&E,I=F?`${T}.${g}`:`${O}.${d}`,q=F?`${R}.${E}`:`${R}.${g}`;if(F){let V=this.tableNameWithSchema(f,{alias:T,schema:u});$=$.join(V,function(){this.on(`${O}.${y}`,"=",`${T}.${d}`)})}$=$.where(this.rawQuotedIdentifier(I),"=",this.rawQuotedIdentifier(q));let U=V=>($=$.select(b.map(ae=>this.rawQuotedIdentifier(ae))).limit(Oh()),s.select(V).from({[O]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,m),Y=U(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":Y=U(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${Oh()})`));break;case"mysql2":case"oracledb":Y=U(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ae=>s.ref(ae[1]).as(ae[0]))).limit(Oh())});Y=s.raw(`(SELECT ?? = (${V} FOR JSON PATH))`,[this.rawQuotedIdentifier(O)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[m.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,m=i?.[a]||a,p=this.tableNameWithSchema(o,{alias:c,schema:s}),f=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(f,function(){for(let d of n){let g=d.fromPrimary,E=d.from;this.orOn(`${m}.${g}`,"=",`${l}.${E}`)}}).leftJoin(p,function(){for(let d of n){let g=d.toPrimary,E=d.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(p,function(){for(let d of n){let g=d.from,E=d.to;this.orOn(`${m}.${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 f=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=f}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let m=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):m.length>0?u=this.addAggregations(u,m):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&m.length===0){let p=this.query.tableAliases?.[o.name]||o.name,f=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"paginated"}));return this.addJsonRelationships(f,o.name,s)}return u}update(e){let{body:r,filters:n}=this.query;if(!r)throw new Error("Cannot update without row body");let i=this.qualifiedKnex(),s=this.parseBody(r);return i=this.addFilters(i,n),e.disableReturning?i.update(s):i.update(s).returning("*")}delete(e){let{filters:r}=this.query,n=this.qualifiedKnex();return n=this.addFilters(n,r),e.disableReturning?n.delete():n.delete().returning(this.generateSelectStatement())}},wh=class extends xl{constructor(r,n=RI()){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=CI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,bI.knex)(s),a,u=new Rh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:RI()}});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 m=[];for(let p of a)m.push(await n(p,o));return m}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 m;s==="mssql"?m=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(m=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(m,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Ul){if(!r._id)return;i=r._id}return n?.[i]||i}convertJsonStringColumns(r,n,i){let s=this.getTableName(r,i);for(let[o,a]of Object.entries(r.schema)){if(!NI(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){Co(this.getSqlClient(),r,n)}},PI=wh;var Dh={};N(Dh,{base:()=>Wk});function Wk(t){return{_id:Ht,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Qk={...Qo,...Se},jk=(t={})=>{ec(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,DesignDocuments,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