@budibase/backend-core 3.15.0 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,27 +1,27 @@
1
- "use strict";var qI=Object.create;var Va=Object.defineProperty;var WI=Object.getOwnPropertyDescriptor;var QI=Object.getOwnPropertyNames;var jI=Object.getPrototypeOf,HI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Va(t,r,{get:e[r],enumerable:!0})},Gh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of QI(e))!HI.call(t,i)&&i!==r&&Va(t,i,{get:()=>e[i],enumerable:!(n=WI(e,i))||n.enumerable});return t};var q=(t,e,r)=>(r=t!=null?qI(jI(t)):{},Gh(e||!t||!t.__esModule?Va(r,"default",{value:t,enumerable:!0}):r,t)),KI=t=>Gh(Va({},"__esModule",{value:!0}),t);var fg=H((Jl,zl)=>{"use strict";(function(t,e){typeof Jl=="object"&&typeof zl<"u"?zl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Jl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",f="date",m="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={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])+"]"}},T=function($,F,I){var W=String($);return!W||W.length>=F?$:""+Array(F+1-W.length).join(I)+$},S={s:T,z:function($){var F=-$.utcOffset(),I=Math.abs(F),W=Math.floor(I/60),L=I%60;return(F<=0?"+":"-")+T(W,2,"0")+":"+T(L,2,"0")},m:function $(F,I){if(F.date()<I.date())return-$(I,F);var W=12*(I.year()-F.year())+(I.month()-F.month()),L=F.clone().add(W,c),Y=I-L<0,V=F.clone().add(W+(Y?-1:1),c);return+(-(W+(I-L)/(Y?L-V:V-L))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:f,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},O="en",R={};R[O]=y;var E="$isDayjsObject",_=function($){return $ instanceof de||!(!$||!$[E])},B=function $(F,I,W){var L;if(!F)return O;if(typeof F=="string"){var Y=F.toLowerCase();R[Y]&&(L=Y),I&&(R[Y]=I,L=Y);var V=F.split("-");if(!L&&V.length>1)return $(V[0])}else{var ue=F.name;R[ue]=F,L=ue}return!W&&L&&(O=L),L||!W&&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[E]=!0}var F=$.prototype;return F.parse=function(I){this.$d=function(W){var L=W.date,Y=W.utc;if(L===null)return new Date(NaN);if(k.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var V=L.match(p);if(V){var ue=V[2]-1||0,Oe=(V[7]||"0").substring(0,3);return Y?new Date(Date.UTC(V[1],ue,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)):new Date(V[1],ue,V[3]||1,V[4]||0,V[5]||0,V[6]||0,Oe)}}return new Date(L)}(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()!==m},F.isSame=function(I,W){var L=b(I);return this.startOf(W)<=L&&L<=this.endOf(W)},F.isAfter=function(I,W){return b(I)<this.startOf(W)},F.isBefore=function(I,W){return this.endOf(W)<b(I)},F.$g=function(I,W,L){return k.u(I)?this[W]:this.set(L,I)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(I,W){var L=this,Y=!!k.u(W)||W,V=k.p(I),ue=function(dn,je){var Ar=k.w(L.$u?Date.UTC(L.$y,je,dn):new Date(L.$y,je,dn),L);return Y?Ar:Ar.endOf(a)},Oe=function(dn,je){return k.w(L.toDate()[dn].apply(L.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(je)),L)},ve=this.$W,Fe=this.$M,Q=this.$D,Ai="set"+(this.$u?"UTC":"");switch(V){case d:return Y?ue(1,0):ue(31,11);case c:return Y?ue(1,Fe):ue(0,Fe+1);case u:var ln=this.$locale().weekStart||0,Os=(ve<ln?ve+7:ve)-ln;return ue(Y?Q-Os:Q+(6-Os),Fe);case a:case f:return Oe(Ai+"Hours",0);case o:return Oe(Ai+"Minutes",1);case s:return Oe(Ai+"Seconds",2);case i:return Oe(Ai+"Milliseconds",3);default:return this.clone()}},F.endOf=function(I){return this.startOf(I,!1)},F.$set=function(I,W){var L,Y=k.p(I),V="set"+(this.$u?"UTC":""),ue=(L={},L[a]=V+"Date",L[f]=V+"Date",L[c]=V+"Month",L[d]=V+"FullYear",L[o]=V+"Hours",L[s]=V+"Minutes",L[i]=V+"Seconds",L[n]=V+"Milliseconds",L)[Y],Oe=Y===a?this.$D+(W-this.$W):W;if(Y===c||Y===d){var ve=this.clone().set(f,1);ve.$d[ue](Oe),ve.init(),this.$d=ve.set(f,Math.min(this.$D,ve.daysInMonth())).$d}else ue&&this.$d[ue](Oe);return this.init(),this},F.set=function(I,W){return this.clone().$set(I,W)},F.get=function(I){return this[k.p(I)]()},F.add=function(I,W){var L,Y=this;I=Number(I);var V=k.p(W),ue=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===d)return this.set(d,this.$y+I);if(V===a)return ue(1);if(V===u)return ue(7);var Oe=(L={},L[s]=e,L[o]=r,L[i]=t,L)[V]||1,ve=this.$d.getTime()+I*Oe;return k.w(ve,this)},F.subtract=function(I,W){return this.add(-1*I,W)},F.format=function(I){var W=this,L=this.$locale();if(!this.isValid())return L.invalidDate||m;var Y=I||"YYYY-MM-DDTHH:mm:ssZ",V=k.z(this),ue=this.$H,Oe=this.$m,ve=this.$M,Fe=L.weekdays,Q=L.months,Ai=L.meridiem,ln=function(je,Ar,xs,$a){return je&&(je[Ar]||je(W,Y))||xs[Ar].slice(0,$a)},Os=function(je){return k.s(ue%12||12,je,"0")},dn=Ai||function(je,Ar,xs){var $a=je<12?"AM":"PM";return xs?$a.toLowerCase():$a};return Y.replace(g,function(je,Ar){return Ar||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return k.s(W.$y,4,"0");case"M":return ve+1;case"MM":return k.s(ve+1,2,"0");case"MMM":return ln(L.monthsShort,ve,Q,3);case"MMMM":return ln(Q,ve);case"D":return W.$D;case"DD":return k.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return ln(L.weekdaysMin,W.$W,Fe,2);case"ddd":return ln(L.weekdaysShort,W.$W,Fe,3);case"dddd":return Fe[W.$W];case"H":return String(ue);case"HH":return k.s(ue,2,"0");case"h":return Os(1);case"hh":return Os(2);case"a":return dn(ue,Oe,!0);case"A":return dn(ue,Oe,!1);case"m":return String(Oe);case"mm":return k.s(Oe,2,"0");case"s":return String(W.$s);case"ss":return k.s(W.$s,2,"0");case"SSS":return k.s(W.$ms,3,"0");case"Z":return V}return null}(je)||V.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(I,W,L){var Y,V=this,ue=k.p(W),Oe=b(I),ve=(Oe.utcOffset()-this.utcOffset())*e,Fe=this-Oe,Q=function(){return k.m(V,Oe)};switch(ue){case d:Y=Q()/12;break;case c:Y=Q();break;case l:Y=Q()/3;break;case u:Y=(Fe-ve)/6048e5;break;case a:Y=(Fe-ve)/864e5;break;case o:Y=Fe/r;break;case s:Y=Fe/e;break;case i:Y=Fe/t;break;default:Y=Fe}return L?Y:k.a(Y)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return R[this.$L]},F.locale=function(I,W){if(!I)return this.$L;var L=this.clone(),Y=B(I,W,!0);return Y&&(L.$L=Y),L},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",d],["$D",f]].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 xt=H(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.Err=Ke.Valid=Ke.err=Ke.valid=void 0;var Sx=t=>new cu(t);Ke.valid=Sx;var _x=t=>new lu(t);Ke.err=_x;var cu=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,Ke.valid)(e(this.value))}mapErr(e){return(0,Ke.valid)(this.value)}};Ke.Valid=cu;var lu=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,Ke.err)(this.error)}mapErr(e){return(0,Ke.err)(e(this.error))}};Ke.Err=lu});var Rt=H(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0})});var Dr=H(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});qt();var oe=xt();Rt();var Ix=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Ox=["sun","mon","tue","wed","thu","fri","sat"],xx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Us=(t,e,r)=>{if(e==="months"&&r.useAliases&&Ix.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Ox.indexOf(t.toLowerCase())!==-1)return(0,oe.valid)(!0);let n=Number(t);if(isNaN(n))return(0,oe.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,oe.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,oe.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,oe.valid)(!0)},Rx=(t,e,r)=>{if(t==="*")return xx(e,r)?(0,oe.valid)(!0):(0,oe.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,oe.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,oe.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,oe.valid)(!0):Us(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,oe.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,oe.valid)(!0):Us(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,oe.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,oe.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,oe.err)("Number of occurrence of the day of the week cannot be greater than 5."):Us(n,e,r)}return Us(t,e,r)},Eg=(t,e,r,n)=>t==="*"?(0,oe.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,oe.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,oe.valid)(!0):Us(t,e,r),wx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Rx(n[0],e,r);if(n.length===2){let i=Eg(n[0],e,r,0),s=Eg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,oe.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,oe.valid)(!0)}return(0,oe.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},bx=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '/')`);let i=wx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,oe.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,oe.valid)(!0)},Dx=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,oe.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,oe.valid)(!0):(0,oe.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,oe.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(bx(o,e,r))}),i.every(o=>o.isValid()))return(0,oe.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,oe.err)(s)};td.default=Dx});var Tg=H(Ls=>{"use strict";var Cx=Ls&&Ls.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ls,"__esModule",{value:!0});qt();var vx=xt(),Nx=Cx(Dr());Rt();var Px=(t,e)=>{if(!t.seconds)return(0,vx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Nx.default)(r,"seconds",e)};Ls.default=Px});var Ag=H(Ms=>{"use strict";var Ux=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});qt();var Lx=xt(),Mx=Ux(Dr());Rt();var Fx=(t,e)=>{if(!t.minutes)return(0,Lx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Mx.default)(r,"minutes",e)};Ms.default=Fx});var Sg=H(Fs=>{"use strict";var kx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var Bx=xt(),Gx=kx(Dr());Rt();var $x=(t,e)=>{if(!t.hours)return(0,Bx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Gx.default)(r,"hours",e)};Fs.default=$x});var _g=H(Bs=>{"use strict";var Vx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});qt();var ks=xt(),qx=Vx(Dr());Rt();var Wx=(t,e)=>{if(!t.daysOfMonth)return(0,ks.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,ks.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,ks.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,ks.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,ks.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,qx.default)(r,"daysOfMonth",e)};Bs.default=Wx});var Ig=H(Gs=>{"use strict";var Qx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var jx=xt(),Hx=Qx(Dr());Rt();var Kx=(t,e)=>{if(!t.months)return(0,jx.err)(["months field is undefined."]);let{months:r}=t;return(0,Hx.default)(r,"months",e)};Gs.default=Kx});var Og=H(Vs=>{"use strict";var Yx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});qt();var $s=xt(),Jx=Yx(Dr());Rt();var zx=(t,e)=>{if(!t.daysOfWeek)return(0,$s.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,$s.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,$s.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,$s.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Jx.default)(r,"daysOfWeek",e)};Vs.default=zx});var xg=H(qs=>{"use strict";var Zx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});qt();var Xx=xt(),eR=Zx(Dr());Rt();var tR=(t,e)=>{if(!t.years)return(0,Xx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,eR.default)(r,"years",e)};qs.default=tR});var Dg=H((fQ,bg)=>{"use strict";var rd;try{rd=Map}catch{}var nd;try{nd=Set}catch{}function Rg(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(wg);if(rd&&t instanceof rd)return new Map(Array.from(t.entries()));if(nd&&t instanceof nd)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]:Rg(t[i],e,r)}return n}return t}function wg(t){return Rg(t,[],[])}bg.exports=wg});var Ws=H(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=uR;var rR=Object.prototype.toString,nR=Error.prototype.toString,iR=RegExp.prototype.toString,sR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",oR=/^Symbol\((.*)\)(.*)$/;function aR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Cg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return aR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return sR.call(t).replace(oR,"Symbol($1)");let n=rR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+nR.call(t)+"]":n==="RegExp"?iR.call(t):null}function uR(t,e){let r=Cg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Cg(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 vg=cR(Ws());function cR(t){return t&&t.__esModule?t:{default:t}}var Ng={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,vg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,vg.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=Ng;var Pg={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=Pg;var Ug={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Ne.number=Ug;var Lg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Ne.date=Lg;var Mg={isValue:"${path} field must be ${value}"};Ne.boolean=Mg;var Fg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Ne.object=Fg;var kg={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=kg;var lR=Object.assign(Object.create(null),{mixed:Ng,string:Pg,number:Ug,date:Lg,object:Fg,array:kg,boolean:Mg});Ne.default=lR});var Ni=H(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var dR=t=>t&&t.__isYupSchema__;du.default=dR});var Gg=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var pR=Bg(require("lodash/has")),fR=Bg(Ni());function Bg(t){return t&&t.__esModule?t:{default:t}}var sd=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,pR.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,fR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},mR=sd;pu.default=mR});var ad=H(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=hR;function hR(t){return t==null?[]:[].concat(t)}});var Cn=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var gR=$g(Ws()),yR=$g(ad());function $g(t){return t&&t.__esModule?t:{default:t}}function ud(){return ud=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},ud.apply(this,arguments)}var ER=/\$\{\s*(\w+)\s*\}/g,cd=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ud({},r,{path:n})),typeof e=="string"?e.replace(ER,(i,s)=>(0,gR.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,yR.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)}};fu.default=cd});var mu=H(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=SR;var ld=TR(Cn());function TR(t){return t&&t.__esModule?t:{default:t}}var AR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function SR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=AR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new ld.default(o,s,u)):c(null,s);for(let f=0;f<n.length;f++){let m=n[f];m(i,function(g){if(g){if(!ld.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new ld.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((SQ,jg)=>{"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 _R=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Qg=/^\d+$/,IR=/^\d/,OR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,xR=/^\s*(['"]?)(.*?)(\1)\s*$/,md=512,Vg=new vn(md),qg=new vn(md),Wg=new vn(md);jg.exports={Cache:vn,split:fd,normalizePath:pd,setter:function(t){var e=pd(t);return qg.get(t)||qg.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=pd(t);return Wg.get(t)||Wg.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+(hd(r)||Qg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){RR(Array.isArray(t)?t:fd(t),e,r)}};function pd(t){return Vg.get(t)||Vg.set(t,fd(t).map(function(e){return e.replace(xR,"$2")}))}function fd(t){return t.match(_R)||[""]}function RR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(DR(i)&&(i='"'+i+'"'),a=hd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function hd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function wR(t){return t.match(IR)&&!t.match(Qg)}function bR(t){return OR.test(t)}function DR(t){return!hd(t)&&(wR(t)||bR(t))}});var Nn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=vR;Hs.default=void 0;var CR=Qs(),hu={context:"$",value:"."};function vR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===hu.context,this.isValue=this.key[0]===hu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?hu.context:this.isValue?hu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,CR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var Hg=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=LR;var NR=gd(require("lodash/mapValues")),gu=gd(Cn()),PR=gd(Nn());function gd(t){return t&&t.__esModule?t:{default:t}}function yu(){return yu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},yu.apply(this,arguments)}function UR(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 LR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=UR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:f,params:m,message:p}=t,{parent:g,context:y}=a;function T(_){return PR.default.isRef(_)?_.getValue(i,g,y):_}function S(_={}){let B=(0,NR.default)(yu({value:i,originalValue:u,label:o,path:_.path||s},m,_.params),T),b=new gu.default(gu.default.formatError(_.message||p,B),i,B.path,_.type||d);return b.params=B,b}let O=yu({path:s,parent:g,type:d,createError:S,resolve:T,options:a,originalValue:u},l);if(!c){try{Promise.resolve(f.call(O,i,O)).then(_=>{gu.default.isError(_)?n(_):_?n(null,_):n(S())})}catch(_){n(_)}return}let R;try{var E;if(R=f.call(O,i,O),typeof((E=R)==null?void 0:E.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}gu.default.isError(R)?n(R):R?n(null,R):n(S())}return e.OPTIONS=t,e}});var Ed=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=Kg;Ks.default=void 0;var MR=Qs(),FR=t=>t.substr(0,t.length-1).substr(1);function Kg(t,e,r,n=r){let i,s,o;return e?((0,MR.forEach)(e,(a,u,c)=>{let l=u?FR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var kR=(t,e,r,n)=>Kg(t,e,r,n).schema,BR=kR;Ks.default=BR});var Jg=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var Yg=GR(Nn());function GR(t){return t&&t.__esModule?t:{default:t}}var Td=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){Yg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Yg.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}};Eu.default=Td});var rr=H(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var zg=tr(Dg()),Pi=er(),$R=tr(Gg()),Zg=tr(mu()),Tu=tr(Hg()),Xg=tr(Ws()),VR=tr(Nn()),qR=Ed(),WR=tr(ad()),ey=tr(Cn()),ty=tr(Jg());function tr(t){return t&&t.__esModule?t:{default:t}}function pt(){return pt=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},pt.apply(this,arguments)}var wt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new ty.default,this._blacklist=new ty.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Pi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=pt({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=pt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,zg.default)(pt({},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=pt({},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(pt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Xg.default)(e),o=(0,Xg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
1
+ "use strict";var qI=Object.create;var $a=Object.defineProperty;var WI=Object.getOwnPropertyDescriptor;var QI=Object.getOwnPropertyNames;var jI=Object.getPrototypeOf,HI=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)$a(t,r,{get:e[r],enumerable:!0})},Gh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of QI(e))!HI.call(t,i)&&i!==r&&$a(t,i,{get:()=>e[i],enumerable:!(n=WI(e,i))||n.enumerable});return t};var q=(t,e,r)=>(r=t!=null?qI(jI(t)):{},Gh(e||!t||!t.__esModule?$a(r,"default",{value:t,enumerable:!0}):r,t)),YI=t=>Gh($a({},"__esModule",{value:!0}),t);var fg=H((Jl,zl)=>{"use strict";(function(t,e){typeof Jl=="object"&&typeof zl<"u"?zl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Jl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",f="date",m="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var F=["th","st","nd","rd"],N=V%100;return"["+V+(F[(N-20)%10]||F[N]||F[0])+"]"}},T=function(V,F,N){var W=String(V);return!W||W.length>=F?V:""+Array(F+1-W.length).join(N)+V},_={s:T,z:function(V){var F=-V.utcOffset(),N=Math.abs(F),W=Math.floor(N/60),O=N%60;return(F<=0?"+":"-")+T(W,2,"0")+":"+T(O,2,"0")},m:function V(F,N){if(F.date()<N.date())return-V(N,F);var W=12*(N.year()-F.year())+(N.month()-F.month()),O=F.clone().add(W,c),K=N-O<0,$=F.clone().add(W+(K?-1:1),c);return+(-(W+(N-O)/(K?O-$:$-O))||0)},a:function(V){return V<0?Math.ceil(V)||0:Math.floor(V)},p:function(V){return{M:c,y:d,w:u,d:a,D:f,h:o,m:s,s:i,ms:n,Q:l}[V]||String(V||"").toLowerCase().replace(/s$/,"")},u:function(V){return V===void 0}},S="en",x={};x[S]=y;var E="$isDayjsObject",I=function(V){return V instanceof de||!(!V||!V[E])},k=function V(F,N,W){var O;if(!F)return S;if(typeof F=="string"){var K=F.toLowerCase();x[K]&&(O=K),N&&(x[K]=N,O=K);var $=F.split("-");if(!O&&$.length>1)return V($[0])}else{var ue=F.name;x[ue]=F,O=ue}return!W&&O&&(S=O),O||!W&&S},w=function(V,F){if(I(V))return V.clone();var N=typeof F=="object"?F:{};return N.date=V,N.args=arguments,new de(N)},B=_;B.l=k,B.i=I,B.w=function(V,F){return w(V,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var de=function(){function V(N){this.$L=k(N.locale,null,!0),this.parse(N),this.$x=this.$x||N.x||{},this[E]=!0}var F=V.prototype;return F.parse=function(N){this.$d=function(W){var O=W.date,K=W.utc;if(O===null)return new Date(NaN);if(B.u(O))return new Date;if(O instanceof Date)return new Date(O);if(typeof O=="string"&&!/Z$/i.test(O)){var $=O.match(p);if($){var ue=$[2]-1||0,Oe=($[7]||"0").substring(0,3);return K?new Date(Date.UTC($[1],ue,$[3]||1,$[4]||0,$[5]||0,$[6]||0,Oe)):new Date($[1],ue,$[3]||1,$[4]||0,$[5]||0,$[6]||0,Oe)}}return new Date(O)}(N),this.init()},F.init=function(){var N=this.$d;this.$y=N.getFullYear(),this.$M=N.getMonth(),this.$D=N.getDate(),this.$W=N.getDay(),this.$H=N.getHours(),this.$m=N.getMinutes(),this.$s=N.getSeconds(),this.$ms=N.getMilliseconds()},F.$utils=function(){return B},F.isValid=function(){return this.$d.toString()!==m},F.isSame=function(N,W){var O=w(N);return this.startOf(W)<=O&&O<=this.endOf(W)},F.isAfter=function(N,W){return w(N)<this.startOf(W)},F.isBefore=function(N,W){return this.endOf(W)<w(N)},F.$g=function(N,W,O){return B.u(N)?this[W]:this.set(O,N)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(N,W){var O=this,K=!!B.u(W)||W,$=B.p(N),ue=function(dn,je){var Ar=B.w(O.$u?Date.UTC(O.$y,je,dn):new Date(O.$y,je,dn),O);return K?Ar:Ar.endOf(a)},Oe=function(dn,je){return B.w(O.toDate()[dn].apply(O.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(je)),O)},Ne=this.$W,ke=this.$M,Q=this.$D,Ai="set"+(this.$u?"UTC":"");switch($){case d:return K?ue(1,0):ue(31,11);case c:return K?ue(1,ke):ue(0,ke+1);case u:var ln=this.$locale().weekStart||0,Os=(Ne<ln?Ne+7:Ne)-ln;return ue(K?Q-Os:Q+(6-Os),ke);case a:case f:return Oe(Ai+"Hours",0);case o:return Oe(Ai+"Minutes",1);case s:return Oe(Ai+"Seconds",2);case i:return Oe(Ai+"Milliseconds",3);default:return this.clone()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,W){var O,K=B.p(N),$="set"+(this.$u?"UTC":""),ue=(O={},O[a]=$+"Date",O[f]=$+"Date",O[c]=$+"Month",O[d]=$+"FullYear",O[o]=$+"Hours",O[s]=$+"Minutes",O[i]=$+"Seconds",O[n]=$+"Milliseconds",O)[K],Oe=K===a?this.$D+(W-this.$W):W;if(K===c||K===d){var Ne=this.clone().set(f,1);Ne.$d[ue](Oe),Ne.init(),this.$d=Ne.set(f,Math.min(this.$D,Ne.daysInMonth())).$d}else ue&&this.$d[ue](Oe);return this.init(),this},F.set=function(N,W){return this.clone().$set(N,W)},F.get=function(N){return this[B.p(N)]()},F.add=function(N,W){var O,K=this;N=Number(N);var $=B.p(W),ue=function(ke){var Q=w(K);return B.w(Q.date(Q.date()+Math.round(ke*N)),K)};if($===c)return this.set(c,this.$M+N);if($===d)return this.set(d,this.$y+N);if($===a)return ue(1);if($===u)return ue(7);var Oe=(O={},O[s]=e,O[o]=r,O[i]=t,O)[$]||1,Ne=this.$d.getTime()+N*Oe;return B.w(Ne,this)},F.subtract=function(N,W){return this.add(-1*N,W)},F.format=function(N){var W=this,O=this.$locale();if(!this.isValid())return O.invalidDate||m;var K=N||"YYYY-MM-DDTHH:mm:ssZ",$=B.z(this),ue=this.$H,Oe=this.$m,Ne=this.$M,ke=O.weekdays,Q=O.months,Ai=O.meridiem,ln=function(je,Ar,xs,Va){return je&&(je[Ar]||je(W,K))||xs[Ar].slice(0,Va)},Os=function(je){return B.s(ue%12||12,je,"0")},dn=Ai||function(je,Ar,xs){var Va=je<12?"AM":"PM";return xs?Va.toLowerCase():Va};return K.replace(g,function(je,Ar){return Ar||function(xs){switch(xs){case"YY":return String(W.$y).slice(-2);case"YYYY":return B.s(W.$y,4,"0");case"M":return Ne+1;case"MM":return B.s(Ne+1,2,"0");case"MMM":return ln(O.monthsShort,Ne,Q,3);case"MMMM":return ln(Q,Ne);case"D":return W.$D;case"DD":return B.s(W.$D,2,"0");case"d":return String(W.$W);case"dd":return ln(O.weekdaysMin,W.$W,ke,2);case"ddd":return ln(O.weekdaysShort,W.$W,ke,3);case"dddd":return ke[W.$W];case"H":return String(ue);case"HH":return B.s(ue,2,"0");case"h":return Os(1);case"hh":return Os(2);case"a":return dn(ue,Oe,!0);case"A":return dn(ue,Oe,!1);case"m":return String(Oe);case"mm":return B.s(Oe,2,"0");case"s":return String(W.$s);case"ss":return B.s(W.$s,2,"0");case"SSS":return B.s(W.$ms,3,"0");case"Z":return $}return null}(je)||$.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(N,W,O){var K,$=this,ue=B.p(W),Oe=w(N),Ne=(Oe.utcOffset()-this.utcOffset())*e,ke=this-Oe,Q=function(){return B.m($,Oe)};switch(ue){case d:K=Q()/12;break;case c:K=Q();break;case l:K=Q()/3;break;case u:K=(ke-Ne)/6048e5;break;case a:K=(ke-Ne)/864e5;break;case o:K=ke/r;break;case s:K=ke/e;break;case i:K=ke/t;break;default:K=ke}return O?K:B.a(K)},F.daysInMonth=function(){return this.endOf(c).$D},F.$locale=function(){return x[this.$L]},F.locale=function(N,W){if(!N)return this.$L;var O=this.clone(),K=k(N,W,!0);return K&&(O.$L=K),O},F.clone=function(){return B.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},V}(),cn=de.prototype;return w.prototype=cn,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",f]].forEach(function(V){cn[V[1]]=function(F){return this.$g(F,V[0],V[1])}}),w.extend=function(V,F){return V.$i||(V(F,de,w),V.$i=!0),w},w.locale=k,w.isDayjs=I,w.unix=function(V){return w(1e3*V)},w.en=x[S],w.Ls=x,w.p={},w})});var xt=H(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});Ye.Err=Ye.Valid=Ye.err=Ye.valid=void 0;var Sx=t=>new cu(t);Ye.valid=Sx;var _x=t=>new lu(t);Ye.err=_x;var cu=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,Ye.valid)(e(this.value))}mapErr(e){return(0,Ye.valid)(this.value)}};Ye.Valid=cu;var lu=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,Ye.err)(this.error)}mapErr(e){return(0,Ye.err)(e(this.error))}};Ye.Err=lu});var Rt=H(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0})});var Cr=H(td=>{"use strict";Object.defineProperty(td,"__esModule",{value:!0});qt();var oe=xt();Rt();var Ix=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Ox=["sun","mon","tue","wed","thu","fri","sat"],xx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ls=(t,e,r)=>{if(e==="months"&&r.useAliases&&Ix.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Ox.indexOf(t.toLowerCase())!==-1)return(0,oe.valid)(!0);let n=Number(t);if(isNaN(n))return(0,oe.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,oe.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,oe.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,oe.valid)(!0)},Rx=(t,e,r)=>{if(t==="*")return xx(e,r)?(0,oe.valid)(!0):(0,oe.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,oe.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,oe.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,oe.valid)(!0):Ls(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,oe.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,oe.valid)(!0):Ls(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,oe.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,oe.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,oe.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ls(n,e,r)}return Ls(t,e,r)},Eg=(t,e,r,n)=>t==="*"?(0,oe.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,oe.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,oe.valid)(!0):Ls(t,e,r),bx=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Rx(n[0],e,r);if(n.length===2){let i=Eg(n[0],e,r,0),s=Eg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,oe.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,oe.valid)(!0)}return(0,oe.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},wx=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,oe.err)(`List element '${t}' is not valid. (More than one '/')`);let i=bx(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,oe.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,oe.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,oe.valid)(!0)},Cx=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,oe.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,oe.valid)(!0):(0,oe.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,oe.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(wx(o,e,r))}),i.every(o=>o.isValid()))return(0,oe.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,oe.err)(s)};td.default=Cx});var Tg=H(Us=>{"use strict";var Dx=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});qt();var vx=xt(),Nx=Dx(Cr());Rt();var Px=(t,e)=>{if(!t.seconds)return(0,vx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Nx.default)(r,"seconds",e)};Us.default=Px});var Ag=H(Ms=>{"use strict";var Lx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});qt();var Ux=xt(),Mx=Lx(Cr());Rt();var Fx=(t,e)=>{if(!t.minutes)return(0,Ux.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Mx.default)(r,"minutes",e)};Ms.default=Fx});var Sg=H(Fs=>{"use strict";var kx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var Bx=xt(),Gx=kx(Cr());Rt();var Vx=(t,e)=>{if(!t.hours)return(0,Bx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Gx.default)(r,"hours",e)};Fs.default=Vx});var _g=H(Bs=>{"use strict";var $x=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});qt();var ks=xt(),qx=$x(Cr());Rt();var Wx=(t,e)=>{if(!t.daysOfMonth)return(0,ks.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,ks.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,ks.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,ks.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,ks.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,qx.default)(r,"daysOfMonth",e)};Bs.default=Wx});var Ig=H(Gs=>{"use strict";var Qx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var jx=xt(),Hx=Qx(Cr());Rt();var Yx=(t,e)=>{if(!t.months)return(0,jx.err)(["months field is undefined."]);let{months:r}=t;return(0,Hx.default)(r,"months",e)};Gs.default=Yx});var Og=H($s=>{"use strict";var Kx=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var Vs=xt(),Jx=Kx(Cr());Rt();var zx=(t,e)=>{if(!t.daysOfWeek)return(0,Vs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Vs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Vs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,Jx.default)(r,"daysOfWeek",e)};$s.default=zx});var xg=H(qs=>{"use strict";var Zx=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});qt();var Xx=xt(),eR=Zx(Cr());Rt();var tR=(t,e)=>{if(!t.years)return(0,Xx.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,eR.default)(r,"years",e)};qs.default=tR});var Cg=H((EQ,wg)=>{"use strict";var rd;try{rd=Map}catch{}var nd;try{nd=Set}catch{}function Rg(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(bg);if(rd&&t instanceof rd)return new Map(Array.from(t.entries()));if(nd&&t instanceof nd)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]:Rg(t[i],e,r)}return n}return t}function bg(t){return Rg(t,[],[])}wg.exports=bg});var Ws=H(id=>{"use strict";Object.defineProperty(id,"__esModule",{value:!0});id.default=uR;var rR=Object.prototype.toString,nR=Error.prototype.toString,iR=RegExp.prototype.toString,sR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",oR=/^Symbol\((.*)\)(.*)$/;function aR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Dg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return aR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return sR.call(t).replace(oR,"Symbol($1)");let n=rR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+nR.call(t)+"]":n==="RegExp"?iR.call(t):null}function uR(t,e){let r=Dg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Dg(this[n],e);return s!==null?s:i},2)}});var er=H(Pe=>{"use strict";Object.defineProperty(Pe,"__esModule",{value:!0});Pe.default=Pe.array=Pe.object=Pe.boolean=Pe.date=Pe.number=Pe.string=Pe.mixed=void 0;var vg=cR(Ws());function cR(t){return t&&t.__esModule?t:{default:t}}var Ng={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,vg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,vg.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"};Pe.mixed=Ng;var Pg={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"};Pe.string=Pg;var Lg={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"};Pe.number=Lg;var Ug={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Pe.date=Ug;var Mg={isValue:"${path} field must be ${value}"};Pe.boolean=Mg;var Fg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Pe.object=Fg;var kg={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"};Pe.array=kg;var lR=Object.assign(Object.create(null),{mixed:Ng,string:Pg,number:Lg,date:Ug,object:Fg,array:kg,boolean:Mg});Pe.default=lR});var Ni=H(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.default=void 0;var dR=t=>t&&t.__isYupSchema__;du.default=dR});var Gg=H(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var pR=Bg(require("lodash/has")),fR=Bg(Ni());function Bg(t){return t&&t.__esModule?t:{default:t}}var sd=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,pR.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,fR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},mR=sd;pu.default=mR});var ad=H(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=hR;function hR(t){return t==null?[]:[].concat(t)}});var Dn=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var gR=Vg(Ws()),yR=Vg(ad());function Vg(t){return t&&t.__esModule?t:{default:t}}function ud(){return ud=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},ud.apply(this,arguments)}var ER=/\$\{\s*(\w+)\s*\}/g,cd=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ud({},r,{path:n})),typeof e=="string"?e.replace(ER,(i,s)=>(0,gR.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,yR.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)}};fu.default=cd});var mu=H(dd=>{"use strict";Object.defineProperty(dd,"__esModule",{value:!0});dd.default=SR;var ld=TR(Dn());function TR(t){return t&&t.__esModule?t:{default:t}}var AR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function SR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=AR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new ld.default(o,s,u)):c(null,s);for(let f=0;f<n.length;f++){let m=n[f];m(i,function(g){if(g){if(!ld.default.isError(g))return c(g,s);if(r)return g.value=s,c(g,s);d.push(g)}if(--l<=0){if(d.length&&(a&&d.sort(a),o.length&&d.push(...o),o=d),o.length){c(new ld.default(o,s,u),s);return}c(null,s)}})}}});var Qs=H((RQ,jg)=>{"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 _R=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Qg=/^\d+$/,IR=/^\d/,OR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,xR=/^\s*(['"]?)(.*?)(\1)\s*$/,md=512,$g=new vn(md),qg=new vn(md),Wg=new vn(md);jg.exports={Cache:vn,split:fd,normalizePath:pd,setter:function(t){var e=pd(t);return qg.get(t)||qg.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=pd(t);return Wg.get(t)||Wg.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+(hd(r)||Qg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){RR(Array.isArray(t)?t:fd(t),e,r)}};function pd(t){return $g.get(t)||$g.set(t,fd(t).map(function(e){return e.replace(xR,"$2")}))}function fd(t){return t.match(_R)||[""]}function RR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(CR(i)&&(i='"'+i+'"'),a=hd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function hd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function bR(t){return t.match(IR)&&!t.match(Qg)}function wR(t){return OR.test(t)}function CR(t){return!hd(t)&&(bR(t)||wR(t))}});var Nn=H(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=vR;Hs.default=void 0;var DR=Qs(),hu={context:"$",value:"."};function vR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===hu.context,this.isValue=this.key[0]===hu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?hu.context:this.isValue?hu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,DR.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Hs.default=js;js.prototype.__isYupRef=!0});var Hg=H(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.default=UR;var NR=gd(require("lodash/mapValues")),gu=gd(Dn()),PR=gd(Nn());function gd(t){return t&&t.__esModule?t:{default:t}}function yu(){return yu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},yu.apply(this,arguments)}function LR(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 UR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=LR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:f,params:m,message:p}=t,{parent:g,context:y}=a;function T(I){return PR.default.isRef(I)?I.getValue(i,g,y):I}function _(I={}){let k=(0,NR.default)(yu({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),w=new gu.default(gu.default.formatError(I.message||p,k),i,k.path,I.type||d);return w.params=k,w}let S=yu({path:s,parent:g,type:d,createError:_,resolve:T,options:a,originalValue:u},l);if(!c){try{Promise.resolve(f.call(S,i,S)).then(I=>{gu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let x;try{var E;if(x=f.call(S,i,S),typeof((E=x)==null?void 0:E.then)=="function")throw new Error(`Validation test of type: "${S.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(I){n(I);return}gu.default.isError(x)?n(x):x?n(null,x):n(_())}return e.OPTIONS=t,e}});var Ed=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=Yg;Ys.default=void 0;var MR=Qs(),FR=t=>t.substr(0,t.length-1).substr(1);function Yg(t,e,r,n=r){let i,s,o;return e?((0,MR.forEach)(e,(a,u,c)=>{let l=u?FR(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var kR=(t,e,r,n)=>Yg(t,e,r,n).schema,BR=kR;Ys.default=BR});var Jg=H(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.default=void 0;var Kg=GR(Nn());function GR(t){return t&&t.__esModule?t:{default:t}}var Td=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){Kg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Kg.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}};Eu.default=Td});var rr=H(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var zg=tr(Cg()),Pi=er(),VR=tr(Gg()),Zg=tr(mu()),Tu=tr(Hg()),Xg=tr(Ws()),$R=tr(Nn()),qR=Ed(),WR=tr(ad()),ey=tr(Dn()),ty=tr(Jg());function tr(t){return t&&t.__esModule?t:{default:t}}function pt(){return pt=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},pt.apply(this,arguments)}var bt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new ty.default,this._blacklist=new ty.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Pi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=pt({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=pt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,zg.default)(pt({},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=pt({},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(pt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,Xg.default)(e),o=(0,Xg.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
2
2
 
3
3
  attempted value: ${s}
4
- `+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,pt({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Zg.default)({args:d,value:l,path:s,sync:i,tests:f,endEarly:c},m=>{if(m)return void n(m,l);(0,Zg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(pt({},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(pt({},r,{value:e})),i;return n._validate(e,pt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(ey.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(ey.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,zg.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=Pi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Pi.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=Pi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Tu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,WR.default)(e).map(s=>new VR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new $R.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Tu.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=Pi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Tu.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=Pi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Tu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};Au.default=wt;wt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])wt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,qR.getIn)(this,e,r,n.context);return o[t](i&&i[s],pt({},n,{parent:i,path:e}))};for(let t of["equals","is"])wt.prototype[t]=wt.prototype.oneOf;for(let t of["not","nope"])wt.prototype[t]=wt.prototype.notOneOf;wt.prototype.optional=wt.prototype.notRequired});var ny=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=ry;Ys.default=void 0;var QR=jR(rr());function jR(t){return t&&t.__esModule?t:{default:t}}var Ad=QR.default,HR=Ad;Ys.default=HR;function ry(){return new Ad}ry.prototype=Ad.prototype});var Ui=H(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.default=void 0;var KR=t=>t==null;Su.default=KR});var uy=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=ay;zs.default=void 0;var YR=oy(rr()),iy=er(),sy=oy(Ui());function oy(t){return t&&t.__esModule?t:{default:t}}function ay(){return new Js}var Js=class extends YR.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=iy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,sy.default)(r)||r===!0}})}isFalse(e=iy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,sy.default)(r)||r===!1}})}};zs.default=Js;ay.prototype=Js.prototype});var dy=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=ly;Xs.default=void 0;var Wt=er(),nr=cy(Ui()),JR=cy(rr());function cy(t){return t&&t.__esModule?t:{default:t}}var zR=/^((([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,ZR=/^((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,XR=/^(?:[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,ew=t=>(0,nr.default)(t)||t===t.trim(),tw={}.toString();function ly(){return new Zs}var Zs=class extends JR.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===tw?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Wt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Wt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Wt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,nr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Wt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Wt.string.email){return this.matches(zR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Wt.string.url){return this.matches(ZR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Wt.string.uuid){return this.matches(XR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Wt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:ew})}lowercase(e=Wt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=Wt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;ly.prototype=Zs.prototype});var my=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=fy;to.default=void 0;var Pn=er(),Un=py(Ui()),rw=py(rr());function py(t){return t&&t.__esModule?t:{default:t}}var nw=t=>t!=+t;function fy(){return new eo}var eo=class extends rw.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"&&!nw(e)}min(e,r=Pn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Un.default)(n)||n>=this.resolve(e)}})}max(e,r=Pn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Un.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Pn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Un.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Pn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Un.default)(n)||n>this.resolve(e)}})}positive(e=Pn.number.positive){return this.moreThan(0,e)}negative(e=Pn.number.negative){return this.lessThan(0,e)}integer(e=Pn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Un.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Un.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Un.default)(i)?i:Math[e](i))}};to.default=eo;fy.prototype=eo.prototype});var hy=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=sw;var iw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function sw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=iw.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 Ey=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Id;ro.default=void 0;var ow=_u(hy()),gy=er(),yy=_u(Ui()),aw=_u(Nn()),uw=_u(rr());function _u(t){return t&&t.__esModule?t:{default:t}}var _d=new Date(""),cw=t=>Object.prototype.toString.call(t)==="[object Date]";function Id(){return new Li}var Li=class extends uw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,ow.default)(e),isNaN(e)?_d:new Date(e))})})}_typeCheck(e){return cw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(aw.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=gy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,yy.default)(i)||i>=this.resolve(n)}})}max(e,r=gy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,yy.default)(i)||i<=this.resolve(n)}})}};ro.default=Li;Li.INVALID_DATE=_d;Id.prototype=Li.prototype;Id.INVALID_DATE=_d});var Ay=H((UQ,Od)=>{"use strict";Od.exports=function(t){return Ty(lw(t),t)};Od.exports.array=Ty;function Ty(t,e){var r=t.length,n=new Array(r),i={},s=r,o=dw(e),a=pw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}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 m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){d.add(c);do{var p=m[--l];u(p,a.get(p),d)}while(l);d.delete(c)}n[--r]=c}}}function lw(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 dw(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 pw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Sy=H(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});xd.default=Ew;var fw=Iu(require("lodash/has")),mw=Iu(Ay()),hw=Qs(),gw=Iu(Nn()),yw=Iu(Ni());function Iu(t){return t&&t.__esModule?t:{default:t}}function Ew(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,hw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,fw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),gw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,yw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return mw.default.array(n,r).reverse()}});var Iy=H(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.default=Tw;function _y(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 Tw(t){return(e,r)=>_y(t,e)-_y(t,r)}});var Cy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Dy;io.default=void 0;var Oy=Qt(require("lodash/has")),xy=Qt(require("lodash/snakeCase")),Aw=Qt(require("lodash/camelCase")),Sw=Qt(require("lodash/mapKeys")),_w=Qt(require("lodash/mapValues")),Iw=Qs(),Ry=er(),Ow=Qt(Sy()),by=Qt(Iy()),xw=Qt(mu()),Rw=Qt(Cn()),wd=Qt(rr());function Qt(t){return t&&t.__esModule?t:{default:t}}function Mi(){return Mi=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},Mi.apply(this,arguments)}var wy=t=>Object.prototype.toString.call(t)==="[object Object]";function ww(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var bw=(0,by.default)([]),no=class extends wd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=bw,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 wy(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Mi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let f=s[d],m=(0,Oy.default)(i,d);if(f){let p,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,f=f.resolve({value:g,context:r.context,parent:u});let y="spec"in f?f.spec:void 0,T=y?.strict;if(y?.strip){l=l||d in i;continue}p=!r.__validating||!T?f.cast(i[d],c):i[d],p!==void 0&&(u[d]=p)}else m&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!Rw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!wy(d)){n(i[0]||null,d);return}a=a||d;let f=this._nodes.map(m=>(p,g)=>{let y=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(d[m],Mi({},r,{path:y,from:o,strict:!0,parent:d,originalValue:a[m]}),g);return}g(null)});(0,xw.default)({sync:s,tests:f,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Mi({},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 wd.default&&s instanceof wd.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,by.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,Ow.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,Iw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Oy.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Ry.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let n=this.test({name:"noUnknown",exclusive:!0,message:r,test(i){if(i==null)return!0;let s=ww(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Ry.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Sw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Aw.default)}snakeCase(){return this.transformKeys(xy.default)}constantCase(){return this.transformKeys(e=>(0,xy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,_w.default)(this.fields,r=>r.describe()),e}};io.default=no;function Dy(t){return new no(t)}Dy.prototype=no.prototype});var Ny=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=vy;oo.default=void 0;var bd=Fi(Ui()),Dw=Fi(Ni()),Cw=Fi(Ws()),Dd=er(),vw=Fi(mu()),Nw=Fi(Cn()),Pw=Fi(rr());function Fi(t){return t&&t.__esModule?t:{default:t}}function Ou(){return Ou=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},Ou.apply(this,arguments)}function vy(t){return new so(t)}var so=class extends Pw.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,Ou({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,p)=>{if(m){if(!Nw.default.isError(m)||l)return void n(m,p);o.push(m)}if(!d||!c||!this._typeCheck(p)){n(o[0]||null,p);return}f=f||p;let g=new Array(p.length);for(let y=0;y<p.length;y++){let T=p[y],S=`${r.path||""}[${y}]`,O=Ou({},r,{path:S,strict:!0,parent:p,index:y,originalValue:f[y]});g[y]=(R,E)=>c.validate(T,O,E)}(0,vw.default)({sync:a,path:u,value:p,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Dw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Cw.default)(e));return r.innerType=e,r}length(e,r=Dd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,bd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Dd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,bd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Dd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,bd.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};oo.default=so;vy.prototype=so.prototype});var Py=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Mw;ao.default=void 0;var Uw=Lw(Ni());function Lw(t){return t&&t.__esModule?t:{default:t}}function Mw(t){return new xu(t)}var xu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Uw.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)}},Fw=xu;ao.default=Fw});var Uy=H(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});Cd.default=Gw;var kw=Bw(er());function Bw(t){return t&&t.__esModule?t:{default:t}}function Gw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{kw.default[e][r]=t[e][r]})})}});var Nd=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=Hw;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Ly.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Ly.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return vd.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return vd.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return vd.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return My.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return My.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return Fy.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return Fy.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return ky.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return ky.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return By.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return By.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return Gy.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return Gy.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return $w.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return Vw.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return qw.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return Ww.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return $y.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Qw.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return jw.default}});var Ly=Ln(ny()),vd=Ln(uy()),My=Ln(dy()),Fy=Ln(my()),ky=Ln(Ey()),By=Ln(Cy()),Gy=Ln(Ny()),$w=Nn(),Vw=Py(),qw=uo(Cn()),Ww=uo(Ed()),$y=uo(Ni()),Qw=uo(Uy()),jw=uo(rr());function uo(t){return t&&t.__esModule?t:{default:t}}function Vy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Vy=function(){return t},t}function Ln(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Vy();if(e&&e.has(t))return e.get(t);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=n?Object.getOwnPropertyDescriptor(t,i):null;s&&(s.get||s.set)?Object.defineProperty(r,i,s):r[i]=t[i]}return r.default=t,e&&e.set(t,r),r}function Hw(t,e,r){if(!t||!(0,$y.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 qy=H(Ud=>{"use strict";Object.defineProperty(Ud,"__esModule",{value:!0});var Pd=Ld();Ud.default=()=>{(0,Pd.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,Pd.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,Pd.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var Ld=H(Pe=>{"use strict";var Kw=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]}),Yw=Pe&&Pe.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Jw=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)&&Kw(e,t,r);return Yw(e,t),e},zw=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=Jw(Nd());Nd();var co=xt(),Zw=zw(qy());Rt();var Mn={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Wy=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(),Xw=t=>Mn[t]?(0,co.valid)(Mn[t]):(0,co.err)(`Option preset '${t}' not found.`);Pe.getOptionPreset=Xw;var eb=()=>Mn;Pe.getOptionPresets=eb;var tb=(t,e)=>{Mn[t]=Wy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Pe.registerOptionPreset=tb;var rb=t=>{var e,r,n,i,s,o,a,u,c,l,d,f,m,p,g,y,T,S,O,R;try{(0,Zw.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Mn[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);E=Mn[t.preset]}else E=t.preset;else E=Mn.default;let _=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(d=E.hours.lowerLimit)!==null&&d!==void 0?d:E.hours.minValue,upperLimit:(f=E.hours.upperLimit)!==null&&f!==void 0?f:E.hours.maxValue},daysOfMonth:{lowerLimit:(m=E.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:E.daysOfMonth.minValue,upperLimit:(p=E.daysOfMonth.upperLimit)!==null&&p!==void 0?p:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(y=E.months.upperLimit)!==null&&y!==void 0?y:E.months.maxValue},daysOfWeek:{lowerLimit:(T=E.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:E.daysOfWeek.minValue,upperLimit:(S=E.daysOfWeek.upperLimit)!==null&&S!==void 0?S:E.daysOfWeek.maxValue},years:{lowerLimit:(O=E.years.lowerLimit)!==null&&O!==void 0?O:E.years.minValue,upperLimit:(R=E.years.upperLimit)!==null&&R!==void 0?R:E.years.maxValue}}),t.override),b=w.object({presetId:w.string().required(),preset:Wy.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(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:w.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:w.object({lowerLimit:w.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:w.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:w.object({lowerLimit:w.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:w.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:w.object({lowerLimit:w.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:w.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:w.object({lowerLimit:w.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:w.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:w.object({lowerLimit:w.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:w.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:w.object({lowerLimit:w.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:w.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(_,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(b)}catch(E){return(0,co.err)(E.errors)}};Pe.validateOptions=rb});var qt=H((lo,Fd)=>{"use strict";var kn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Fn=xt(),nb=kn(Tg()),ib=kn(Ag()),sb=kn(Sg()),ob=kn(_g()),ab=kn(Ig()),ub=kn(Og()),cb=kn(xg()),lb=Ld();Rt();var db=(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)},Md=(t,e={})=>{let r=(0,lb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=db(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,nb.default)(s,n)),o.push((0,ib.default)(s,n)),o.push((0,sb.default)(s,n)),o.push((0,ob.default)(s,n)),o.push((0,ab.default)(s,n)),o.push((0,ub.default)(s,n)),n.useYears&&o.push((0,cb.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)};lo.default=Md;Fd.exports=Md;Fd.exports.default=Md});var mT=H(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});var sr=class extends Error{},jd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Kd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},$n=class extends sr{},Nu=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends sr{},jt=class extends sr{constructor(){super("Zone is an abstract class")}},C="numeric",Ct="short",it="long",Pu={year:C,month:C,day:C},gE={year:C,month:Ct,day:C},pb={year:C,month:Ct,day:C,weekday:Ct},yE={year:C,month:it,day:C},EE={year:C,month:it,day:C,weekday:it},TE={hour:C,minute:C},AE={hour:C,minute:C,second:C},SE={hour:C,minute:C,second:C,timeZoneName:Ct},_E={hour:C,minute:C,second:C,timeZoneName:it},IE={hour:C,minute:C,hourCycle:"h23"},OE={hour:C,minute:C,second:C,hourCycle:"h23"},xE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:Ct},RE={hour:C,minute:C,second:C,hourCycle:"h23",timeZoneName:it},wE={year:C,month:C,day:C,hour:C,minute:C},bE={year:C,month:C,day:C,hour:C,minute:C,second:C},DE={year:C,month:Ct,day:C,hour:C,minute:C},CE={year:C,month:Ct,day:C,hour:C,minute:C,second:C},fb={year:C,month:Ct,day:C,weekday:Ct,hour:C,minute:C},vE={year:C,month:it,day:C,hour:C,minute:C,timeZoneName:Ct},NE={year:C,month:it,day:C,hour:C,minute:C,second:C,timeZoneName:Ct},PE={year:C,month:it,day:C,weekday:it,hour:C,minute:C,timeZoneName:it},UE={year:C,month:it,day:C,weekday:it,hour:C,minute:C,second:C,timeZoneName:it},Pr=class{get type(){throw new jt}get name(){throw new jt}get ianaName(){return this.name}get isUniversal(){throw new jt}offsetName(e,r){throw new jt}formatOffset(e,r){throw new jt}offset(e){throw new jt}equals(e){throw new jt}get isValid(){throw new jt}},kd=null,Eo=class t extends Pr{static get instance(){return kd===null&&(kd=new t),kd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ME(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Cu={};function mb(t){return Cu[t]||(Cu[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"})),Cu[t]}var hb={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function gb(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 yb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=hb[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var Ru={},or=class t extends Pr{static create(e){return Ru[e]||(Ru[e]=new t(e)),Ru[e]}static resetCache(){Ru={},Cu={}}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 ME(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=mb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?yb(n,r):gb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let f=op({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,p=m%1e3;return m-=p>=0?p:1e3+p,(f-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Qy={};function Eb(t,e={}){let r=JSON.stringify([t,e]),n=Qy[r];return n||(n=new Intl.ListFormat(t,e),Qy[r]=n),n}var Yd={};function Jd(t,e={}){let r=JSON.stringify([t,e]),n=Yd[r];return n||(n=new Intl.DateTimeFormat(t,e),Yd[r]=n),n}var zd={};function Tb(t,e={}){let r=JSON.stringify([t,e]),n=zd[r];return n||(n=new Intl.NumberFormat(t,e),zd[r]=n),n}var Zd={};function Ab(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Zd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Zd[i]=s),s}var ho=null;function Sb(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function _b(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=Jd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Jd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Ib(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Ob(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function xb(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function wu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Rb(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 Xd=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=Tb(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):sp(e,3);return Re(r,this.padTo)}}},ep=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&or.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Jd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},tp=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&LE()&&(this.rtf=Ab(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Vb(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Se=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||Ee.defaultLocale,o=s||(i?"en-US":Sb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Yd={},zd={},Zd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=_b(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Ib(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=Rb(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 wu(this,e,n,BE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Ob(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return wu(this,e,n,VE,()=>{let i=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},s=r?"format":"standalone";return this.weekdaysCache[s][e]||(this.weekdaysCache[s][e]=xb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return wu(this,void 0,e,()=>qE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return wu(this,e,r,WE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Xd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new ep(e,this.intl,r)}relFormatter(e={}){return new tp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Eb(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}},Bd=null,st=class t extends Pr{static get utcInstance(){return Bd===null&&(Bd=new t(0)),Bd}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(Bu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Uu=class extends Pr{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 Nr(t,e){if(ae(t)||t===null)return e;if(t instanceof Pr)return t;if(wb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?st.utcInstance:st.parseSpecifier(r)||or.create(t)}else return qn(t)?st.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Uu(t)}var jy=()=>Date.now(),Hy="system",Ky=null,Yy=null,Jy=null,zy=60,Zy,Ee=class{static get now(){return jy}static set now(e){jy=e}static set defaultZone(e){Hy=e}static get defaultZone(){return Nr(Hy,Eo.instance)}static get defaultLocale(){return Ky}static set defaultLocale(e){Ky=e}static get defaultNumberingSystem(){return Yy}static set defaultNumberingSystem(e){Yy=e}static get defaultOutputCalendar(){return Jy}static set defaultOutputCalendar(e){Jy=e}static get twoDigitCutoffYear(){return zy}static set twoDigitCutoffYear(e){zy=e%100}static get throwOnInvalid(){return Zy}static set throwOnInvalid(e){Zy=e}static resetCaches(){Se.resetCache(),or.resetCache()}};function ae(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function ku(t){return typeof t=="number"&&t%1===0}function wb(t){return typeof t=="string"}function bb(t){return Object.prototype.toString.call(t)==="[object Date]"}function LE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Db(t){return Array.isArray(t)?t:[t]}function Xy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Cb(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function $i(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return ku(t)&&t>=e&&t<=r}function vb(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 vr(t){if(!(ae(t)||t===null||t===""))return parseInt(t,10)}function Bn(t){if(!(ae(t)||t===null||t===""))return parseFloat(t)}function ip(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function sp(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Lu(t,e){let r=vb(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function op(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 Mu(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 rp(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function ME(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 Bu(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 FE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function Fu(t,e){let r={};for(let n in t)if($i(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=FE(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Gu(t){return Cb(t,["hour","minute","second","millisecond"])}var Nb=["January","February","March","April","May","June","July","August","September","October","November","December"],kE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Pb=["J","F","M","A","M","J","J","A","S","O","N","D"];function BE(t){switch(t){case"narrow":return[...Pb];case"short":return[...kE];case"long":return[...Nb];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 GE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],$E=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Ub=["M","T","W","T","F","S","S"];function VE(t){switch(t){case"narrow":return[...Ub];case"short":return[...$E];case"long":return[...GE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var qE=["AM","PM"],Lb=["Before Christ","Anno Domini"],Mb=["BC","AD"],Fb=["B","A"];function WE(t){switch(t){case"narrow":return[...Fb];case"short":return[...Mb];case"long":return[...Lb];default:return null}}function kb(t){return qE[t.hour<12?0:1]}function Bb(t,e){return VE(e)[t.weekday-1]}function Gb(t,e){return BE(e)[t.month-1]}function $b(t,e){return WE(e)[t.year<0?0:1]}function Vb(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function eE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var qb={D:Pu,DD:gE,DDD:yE,DDDD:EE,t:TE,tt:AE,ttt:SE,tttt:_E,T:IE,TT:OE,TTT:xE,TTTT:RE,f:wE,ff:DE,fff:vE,ffff:PE,F:bE,FF:CE,FFF:NE,FFFF:UE},rt=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 qb[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=(m,p)=>this.loc.extract(e,m,p),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?kb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,p)=>n?Gb(e,m):s(p?{month:m}:{month:m,day:"numeric"},"month"),c=(m,p)=>n?Bb(e,m):s(p?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let p=t.macroTokenToFormatOpts(m);return p?this.formatWithSystemDefault(e,p):m},d=m=>n?$b(e,m):s({era:m},"era"),f=m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(m)}};return eE(t.parseFormat(r),f)}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 eE(s,i(a))}},nt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},QE=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Vi(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function qi(...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 Wi(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 jE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=vr(e[r+i]);return[n,null,r+i]}}var HE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Wb=`(?:${HE.source}?(?:\\[(${QE.source})\\])?)?`,ap=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,KE=RegExp(`${ap.source}${Wb}`),up=RegExp(`(?:T${KE.source})?`),Qb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,jb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Hb=/(\d{4})-?(\d{3})/,Kb=jE("weekYear","weekNumber","weekDay"),Yb=jE("year","ordinal"),Jb=/(\d{4})-(\d\d)-(\d\d)/,YE=RegExp(`${ap.source} ?(?:${HE.source}|(${QE.source}))?`),zb=RegExp(`(?: ${YE.source})?`);function Gi(t,e,r){let n=t[e];return ae(n)?r:vr(n)}function Zb(t,e){return[{year:Gi(t,e),month:Gi(t,e+1,1),day:Gi(t,e+2,1)},null,e+3]}function Qi(t,e){return[{hours:Gi(t,e,0),minutes:Gi(t,e+1,0),seconds:Gi(t,e+2,0),milliseconds:ip(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Bu(t[e+1],t[e+2]),i=r?null:st.instance(n);return[{},i,e+3]}function So(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var Xb=RegExp(`^T?${ap.source}$`),eD=/^-?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 tD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",f=(m,p=!1)=>m!==void 0&&(p||m&&l)?-m:m;return[{years:f(Bn(r)),months:f(Bn(n)),weeks:f(Bn(i)),days:f(Bn(s)),hours:f(Bn(o)),minutes:f(Bn(a)),seconds:f(Bn(u),u==="-0"),milliseconds:f(ip(c),d)}]}var rD={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 cp(t,e,r,n,i,s,o){let a={year:e.length===2?rp(vr(e)):vr(e),month:kE.indexOf(r)+1,day:vr(n),hour:vr(i),minute:vr(s)};return o&&(a.second=vr(o)),t&&(a.weekday=t.length>3?GE.indexOf(t)+1:$E.indexOf(t)+1),a}var nD=/^(?:(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 iD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,f=cp(e,i,n,r,s,o,a),m;return u?m=rD[u]:c?m=0:m=Bu(l,d),[f,new st(m)]}function sD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var oD=/^(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$/,aD=/^(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$/,uD=/^(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 tE(t){let[,e,r,n,i,s,o,a]=t;return[cp(e,i,n,r,s,o,a),st.utcInstance]}function cD(t){let[,e,r,n,i,s,o,a]=t;return[cp(e,a,r,n,i,s,o),st.utcInstance]}var lD=Vi(Qb,up),dD=Vi(jb,up),pD=Vi(Hb,up),fD=Vi(KE),JE=qi(Zb,Qi,Ao,So),mD=qi(Kb,Qi,Ao,So),hD=qi(Yb,Qi,Ao,So),gD=qi(Qi,Ao,So);function yD(t){return Wi(t,[lD,JE],[dD,mD],[pD,hD],[fD,gD])}function ED(t){return Wi(sD(t),[nD,iD])}function TD(t){return Wi(t,[oD,tE],[aD,tE],[uD,cD])}function AD(t){return Wi(t,[eD,tD])}var SD=qi(Qi);function _D(t){return Wi(t,[Xb,SD])}var ID=Vi(Jb,zb),OD=Vi(YE),xD=qi(Qi,Ao,So);function RD(t){return Wi(t,[ID,JE],[OD,xD])}var wD="Invalid Duration",zE={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}},bD={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},...zE},ft=146097/400,ki=146097/4800,DD={years:{quarters:4,months:12,weeks:ft/7,days:ft,hours:ft*24,minutes:ft*24*60,seconds:ft*24*60*60,milliseconds:ft*24*60*60*1e3},quarters:{months:3,weeks:ft/28,days:ft/4,hours:ft*24/4,minutes:ft*24*60/4,seconds:ft*24*60*60/4,milliseconds:ft*24*60*60*1e3/4},months:{weeks:ki/7,days:ki,hours:ki*24,minutes:ki*24*60,seconds:ki*24*60*60,milliseconds:ki*24*60*60*1e3},...zE},Gn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],CD=Gn.slice(0).reverse();function Cr(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 vD(t){return t<0?Math.floor(t):Math.ceil(t)}function ZE(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?vD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function ND(t,e){CD.reduce((r,n)=>ae(e[n])?r:(r&&ZE(t,e,r,e,n),n),null)}function PD(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?DD:bD;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Ye(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Fu(e,t.normalizeUnit),loc:Se.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(qn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ye(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=AD(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,r){let[n]=_D(e);return n?t.fromObject(n,r):t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Duration is invalid");let n=e instanceof nt?e:new nt(e,r);if(Ee.throwOnInvalid)throw new Kd(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 Nu(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?rt.create(this.loc,n).formatDurationFromString(this,e):wD}toHuman(e={}){let r=Gn.map(n=>{let i=this.values[n];return ae(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+=sp(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)($i(r.values,i)||$i(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Cr(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]=FE(e(this.values[n],n));return Cr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Fu(e,t.normalizeUnit)};return Cr(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 Cr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return ND(this.matrix,e),Cr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=PD(this.normalize().shiftToAll().toObject());return Cr(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)&&ZE(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 Cr(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 Cr(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}},Bi="Invalid Interval";function UD(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 Ye("need to specify a reason the Interval is invalid");let n=e instanceof nt?e:new nt(e,r);if(Ee.throwOnInvalid)throw new Hd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=UD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=De.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Bi}toLocaleString(e=Pu,r={}){return this.isValid?rt.create(this.s.loc.clone(r),e).formatInterval(this):Bi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Bi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Bi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Bi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Bi}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=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return or.isValidZone(e)}static normalizeZone(e){return Nr(e,Ee.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:LE()}}};function rE(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 LD(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=rE(u,c);return(l-l%7)/7}],["days",rE]],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 MD(t,e,r,n){let[i,s,o,a]=LD(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var lp={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"},nE={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]},FD=lp.hanidec.replace(/[\[|\]]/g,"").split("");function kD(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(lp.hanidec)!==-1)e+=FD.indexOf(t[r]);else for(let i in nE){let[s,o]=nE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function bt({numberingSystem:t},e=""){return new RegExp(`${lp[t||"latn"]}${e}`)}var BD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(kD(r))}}var GD=String.fromCharCode(160),XE=`[ ${GD}]`,eT=new RegExp(XE,"g");function $D(t){return t.replace(/\./g,"\\.?").replace(eT,XE)}function iE(t){return t.replace(/\./g,"").replace(eT," ").toLowerCase()}function Dt(t,e){return t===null?null:{regex:RegExp(t.map($D).join("|")),deser:([r])=>t.findIndex(n=>iE(r)===iE(n))+e}}function sE(t,e){return{regex:t,deser:([,r,n])=>Bu(r,n),groups:e}}function Gd(t){return{regex:t,deser:([e])=>e}}function VD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function qD(t,e){let r=bt(e),n=bt(e,"{2}"),i=bt(e,"{3}"),s=bt(e,"{4}"),o=bt(e,"{6}"),a=bt(e,"{1,2}"),u=bt(e,"{1,3}"),c=bt(e,"{1,6}"),l=bt(e,"{1,9}"),d=bt(e,"{2,4}"),f=bt(e,"{4,6}"),m=y=>({regex:RegExp(VD(y.val)),deser:([T])=>T,literal:!0}),g=(y=>{if(t.literal)return m(y);switch(y.val){case"G":return Dt(e.eras("short",!1),0);case"GG":return Dt(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(d,rp);case"yyyy":return le(s);case"yyyyy":return le(f);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return Dt(e.months("short",!0,!1),1);case"MMMM":return Dt(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return Dt(e.months("short",!1,!1),1);case"LLLL":return Dt(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 Gd(l);case"uu":return Gd(a);case"uuu":return le(r);case"a":return Dt(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,rp);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return Dt(e.weekdays("short",!1,!1),1);case"EEEE":return Dt(e.weekdays("long",!1,!1),1);case"ccc":return Dt(e.weekdays("short",!0,!1),1);case"cccc":return Dt(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return sE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return sE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Gd(/[a-z_+-/]{1,256}?/i);default:return m(y)}})(t)||{invalidReason:BD};return g.token=t,g}var WD={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour:{numeric:"h","2-digit":"hh"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function QD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=WD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function jD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function HD(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if($i(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 KD(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 ae(t.z)||(r=or.create(t.z)),ae(t.Z)||(r||(r=new st(t.Z)),n=t.Z),ae(t.q)||(t.M=(t.q-1)*3+1),ae(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),ae(t.u)||(t.S=ip(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var $d=null;function YD(){return $d||($d=_e.fromMillis(1555555555555)),$d}function JD(t,e){if(t.literal)return t;let r=rt.macroTokenToFormatOpts(t.val),n=nT(r,e);return n==null||n.includes(void 0)?t:n}function tT(t,e){return Array.prototype.concat(...t.map(r=>JD(r,e)))}function rT(t,e,r){let n=tT(rt.parseFormat(r),t),i=n.map(o=>qD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=jD(i),u=RegExp(o,"i"),[c,l]=HD(e,u,a),[d,f,m]=l?KD(l):[null,null,void 0];if($i(l,"a")&&$i(l,"H"))throw new $n("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:f,specificOffset:m}}}function zD(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=rT(t,e,r);return[n,i,s,o]}function nT(t,e){return t?rt.create(e,t).formatDateTimeParts(YD()).map(i=>QD(i,t)):null}var iT=[0,31,59,90,120,151,181,212,243,273,304,334],sT=[0,31,60,91,121,152,182,213,244,274,305,335];function mt(t,e){return new nt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function oT(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 aT(t,e,r){return r+(To(t)?sT:iT)[e-1]}function uT(t,e){let r=To(t)?sT:iT,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function np(t){let{year:e,month:r,day:n}=t,i=aT(e,r,n),s=oT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Mu(a)):o>Mu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Gu(t)}}function oE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=oT(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=uT(a,o);return{year:a,month:u,day:c,...Gu(t)}}function Vd(t){let{year:e,month:r,day:n}=t,i=aT(e,r,n);return{year:e,ordinal:i,...Gu(t)}}function aE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=uT(e,r);return{year:e,month:n,day:i,...Gu(t)}}function ZD(t){let e=ku(t.weekYear),r=ir(t.weekNumber,1,Mu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:mt("weekday",t.weekday):mt("week",t.week):mt("weekYear",t.weekYear)}function XD(t){let e=ku(t.year),r=ir(t.ordinal,1,go(t.year));return e?r?!1:mt("ordinal",t.ordinal):mt("year",t.year)}function cT(t){let e=ku(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Lu(t.year,t.month));return e?r?n?!1:mt("day",t.day):mt("month",t.month):mt("year",t.year)}function lT(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:mt("millisecond",i):mt("second",n):mt("minute",r):mt("hour",e)}var qd="Invalid DateTime",uE=864e13;function bu(t){return new nt("unsupported zone",`the zone "${t.name}" is not supported`)}function Wd(t){return t.weekData===null&&(t.weekData=np(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function dT(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 cE(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 vu(t,e,r){return dT(op(t),e,r)}function lE(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,Lu(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=op(s),[u,c]=dT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new nt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Du(t,e,r=!0){return t.isValid?rt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Qd(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 dE(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 pT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},eC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},tC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},fT=["year","month","day","hour","minute","second","millisecond"],rC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],nC=["year","ordinal","hour","minute","second","millisecond"];function pE(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 Nu(t);return e}function fE(t,e){let r=Nr(e.zone,Ee.defaultZone),n=Se.fromObject(e),i=Ee.now(),s,o;if(ae(t.year))s=i;else{for(let c of fT)ae(t[c])&&(t[c]=pT[c]);let a=cT(t)||lT(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=vu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function mE(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=sp(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 hE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new nt("invalid input"):null)||(r.isValid?null:bu(r));this.ts=ae(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=cE(this.ts,a),n=Number.isNaN(i.year)?new nt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Se.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=hE(arguments),[n,i,s,o,a,u,c]=r;return fE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=hE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=st.utcInstance,fE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=bb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Nr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(bu(i))}static fromMillis(e,r={}){if(qn(e))return e<-uE||e>uE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nr(r.zone,Ee.defaultZone),loc:Se.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(qn(e))return new t({ts:e*1e3,zone:Nr(r.zone,Ee.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Nr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(bu(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Fu(e,pE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,d=o.weekYear||o.weekNumber,f=Se.fromObject(r);if((l||a)&&d)throw new $n("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new $n("Can't mix ordinal dates with month/day");let m=d||o.weekday&&!l,p,g,y=cE(i,s);m?(p=rC,g=eC,y=np(y)):a?(p=nC,g=tC,y=Vd(y)):(p=fT,g=pT);let T=!1;for(let b of p){let k=o[b];ae(k)?T?o[b]=g[b]:o[b]=y[b]:T=!0}let S=m?ZD(o):a?XD(o):cT(o),O=S||lT(o);if(O)return t.invalid(O);let R=m?oE(o):a?aE(o):o,[E,_]=vu(R,s,n),B=new t({ts:E,zone:n,o:_,loc:f});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]=yD(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=ED(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=TD(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ae(e)||ae(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=zD(o,e,r);return l?t.invalid(l):fo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=RD(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof nt?e:new nt(e,r);if(Ee.throwOnInvalid)throw new jd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=nT(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return tT(rt.parseFormat(e),Se.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Wd(this).weekYear:NaN}get weekNumber(){return this.isValid?Wd(this).weekNumber:NaN}get weekday(){return this.isValid?Wd(this).weekday:NaN}get ordinal(){return this.isValid?Vd(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 To(this.year)}get daysInMonth(){return Lu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?Mu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=rt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(st.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Nr(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]=vu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(bu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Fu(e,pE),n=!ae(r.weekYear)||!ae(r.weekNumber)||!ae(r.weekday),i=!ae(r.ordinal),s=!ae(r.year),o=!ae(r.month)||!ae(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=oE({...np(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Lu(c.year,c.month),c.day))):c=aE({...Vd(this.c),...r});let[l,d]=vu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return po(this,lE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return po(this,lE(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?rt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):qd}toLocaleString(e=Pu,r={}){return this.isValid?rt.create(this.loc.clone(r),e).formatDateTime(this):qd}toLocaleParts(e={}){return this.isValid?rt.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=Qd(this,o);return a+="T",a+=dE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Qd(this,e==="extended"):null}toISOWeekDate(){return Du(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":"")+dE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Du(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Du(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Qd(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")),Du(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():qd}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=Db(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=MD(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),mE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?mE(e.base||t.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(t.isDateTime))throw new Ye("min requires all arguments be DateTimes");return Xy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return Xy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return rT(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Pu}static get DATE_MED(){return gE}static get DATE_MED_WITH_WEEKDAY(){return pb}static get DATE_FULL(){return yE}static get DATE_HUGE(){return EE}static get TIME_SIMPLE(){return TE}static get TIME_WITH_SECONDS(){return AE}static get TIME_WITH_SHORT_OFFSET(){return SE}static get TIME_WITH_LONG_OFFSET(){return _E}static get TIME_24_SIMPLE(){return IE}static get TIME_24_WITH_SECONDS(){return OE}static get TIME_24_WITH_SHORT_OFFSET(){return xE}static get TIME_24_WITH_LONG_OFFSET(){return RE}static get DATETIME_SHORT(){return wE}static get DATETIME_SHORT_WITH_SECONDS(){return bE}static get DATETIME_MED(){return DE}static get DATETIME_MED_WITH_SECONDS(){return CE}static get DATETIME_MED_WITH_WEEKDAY(){return fb}static get DATETIME_FULL(){return vE}static get DATETIME_FULL_WITH_SECONDS(){return NE}static get DATETIME_HUGE(){return PE}static get DATETIME_HUGE_WITH_SECONDS(){return UE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&qn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var iC="3.2.1";ot.DateTime=_e;ot.Duration=De;ot.FixedOffsetZone=st;ot.IANAZone=or;ot.Info=Vn;ot.Interval=Wn;ot.InvalidZone=Uu;ot.Settings=Ee;ot.SystemZone=Eo;ot.VERSION=iC;ot.Zone=Pr});var gT=H((QQ,hT)=>{"use strict";var Qn=mT();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))}hT.exports=z});var TT=H((jQ,ET)=>{"use strict";function jn(t){return{start:t,count:1}}function yT(t,e){t.end=e,t.step=e-t.start,t.count=2}function dp(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 sC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(dp(e,r,jn(i)),r=void 0):r?r.count===1?yT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(jn(r.start)),r=jn(r.end),yT(r,i)):(dp(e,r),r=jn(i)):r=jn(i)}return dp(e,r),e}ET.exports=sC});var ST=H((HQ,AT)=>{"use strict";var oC=TT();function aC(t,e,r){var n=oC(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(f,m){var p=c.start+m;return(p-c.start)%c.step===0?p:null}).filter(function(f){return f!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}AT.exports=aC});var OT=H((KQ,IT)=>{"use strict";var Hn=gT(),uC=ST(),_T=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Hn(e.currentDate,this._tz),this._startDate=e.startDate?new Hn(e.startDate,this._tz):null,this._endDate=e.endDate?new Hn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(p){if(p instanceof Array)for(var g=0,y=p.length;g<y;g++){var T=p[g];if(U._isValidConstraintChar(n,T)){c.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);c.push(T)}else{if(U._isValidConstraintChar(n,p)){c.push(p);return}var S=+p;if(Number.isNaN(S)||S<n.min||S>n.max)throw new Error("Constraint error, got value "+p+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(S=S%7),c.push(S)}}var d=u.split(",");if(!d.every(function(p){return p.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var f=0,m=d.length;f<m;f++)l(o(d[f]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var f=+d[0],m=+d[1];if(Number.isNaN(f)||Number.isNaN(m)||f<n.min||m>n.max)throw new Error("Constraint error, got range "+f+"-"+m+" expected range "+n.min+"-"+n.max);if(f>m)throw new Error("Invalid range: "+u);var p=+c;if(Number.isNaN(p)||p<=0)throw new Error("Constraint error, cannot repeat at every "+p+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var g=f,y=m;g<=y;g++){var T=l.indexOf(g)!==-1;!T&&p>0&&p%c===0?(p=1,l.push(g)):p++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(T,S){for(var O=0,R=S.length;O<R;O++)if(S[O]>=T)return S[O]===T;return S[0]===T}function n(T,S){if(S<6){if(T.getDate()<8&&S===1)return!0;var O=T.getDate()%7?1:0,R=T.getDate()-T.getDate()%7,E=Math.floor(R/7)+O;return E===S}return!1}function i(T){return T.length>0&&T.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 d(T){return T.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<_T;){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 f=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||d(this.fields.dayOfWeek));var p=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,y=o.getHours();if(!f&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!p&&g&&!f){this._applyTimezoneShift(o,s,"Day");continue}if(p&&!g&&!m){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(y,this.fields.hour)){if(this._dstEnd===y&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==y){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(y-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>=_T)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Hn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new Hn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(uC(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Hn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,d=U.map.length;l<d;++l){var f=U.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(U._parseField(f,U.parseDefaults[l],U.constraints[l]));else{var p=f==="dayOfWeek"?S(m):m;a.push(U._parseField(f,p,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var y=U.map[l];g[y]=a[l]}var T=U._handleMaxDaysInMonth(g);return g.dayOfMonth=T||g.dayOfMonth,new U(g,o);function S(O){var R=O.split("#");if(R.length>1){var E=+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(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,R[0]}return O}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(f,m,p){if(!m)throw new Error("Validation error, Field "+f+" is missing");if(m.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var g=0,y=m.length;g<y;g++){var T=m[g];if(!U._isValidConstraintChar(p,T)&&(typeof T!="number"||Number.isNaN(T)||T<p.min||T>p.max))throw new Error("Constraint error, got value "+T+" expected range "+p.min+"-"+p.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(f,m,p){return!m||f!==p[m-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};IT.exports=U});var RT=H((YQ,xT)=>{"use strict";var $u=OT();function Ur(){}Ur._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:$u.parse(e)};if(r.length>6)return{interval:$u.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Ur.parseExpression=function(e,r){return $u.parse(e,r)};Ur.fieldsToExpression=function(e,r){return $u.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()))})};xT.exports=Ur});var Kk={};N(Kk,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Yu,BUDIBASE_DATASOURCE_TYPE:()=>Pp,BadRequestError:()=>Pc,BudibaseError:()=>ps,Config:()=>Bp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Lp,DEFAULT_JOBS_TABLE_ID:()=>Up,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>xo,DocumentType:()=>ye,Duration:()=>be,DurationType:()=>am,EmailUnavailableError:()=>fr,Endpoint:()=>Pl,EndpointGroup:()=>Ti,EndpointGroupList:()=>Ga,FeatureDisabledError:()=>Fc,ForbiddenError:()=>Uc,GlobalRole:()=>kp,HTTPError:()=>Ge,Header:()=>et,InternalTable:()=>Ir,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Zu,MIN_VALID_DATE:()=>VT,NotFoundError:()=>Nc,NotImplementedError:()=>Lc,RedisClient:()=>Qe,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>$e,UnexpectedError:()=>vc,UsageLimitError:()=>Mc,UserStatus:()=>zu,ViewName:()=>Fr,accounts:()=>li,auth:()=>_h,blacklist:()=>Rh,cache:()=>ba,configs:()=>rn,constants:()=>Gp,context:()=>Ae,csv:()=>kh,db:()=>jr,docIds:()=>vf,docUpdates:()=>bh,encryption:()=>Th,env:()=>h,errors:()=>Bc,events:()=>ys,features:()=>lh,getPublicError:()=>kc,init:()=>Hk,installation:()=>Jc,locks:()=>_s,logging:()=>ua,middleware:()=>Sh,objectStore:()=>Hf,permissions:()=>ah,platform:()=>Yo,plugins:()=>Oh,queue:()=>Em,redis:()=>xh,roles:()=>oh,security:()=>Lm,sessions:()=>rl,setEnv:()=>Do,sql:()=>Fh,tenancy:()=>jk,timers:()=>Hc,userUtils:()=>dm,users:()=>Es,utils:()=>ls,withEnv:()=>KT});module.exports=KI(Kk);var rn={};N(rn,{analyticsEnabled:()=>Qc,generateConfigID:()=>al,getAIConfig:()=>cF,getConfig:()=>St,getDefaultGoogleConfig:()=>jm,getGoogleConfig:()=>ul,getGoogleDatasourceConfig:()=>Ym,getOIDCConfig:()=>oF,getOIDCConfigById:()=>Jm,getOIDCLogosDoc:()=>iF,getPlatformUrl:()=>Ua,getRecaptchaConfig:()=>lF,getSCIMConfig:()=>uF,getSMTPConfig:()=>aF,getSMTPConfigDoc:()=>G_,getSettingsConfig:()=>Km,getSettingsConfigDoc:()=>Zc,save:()=>rF});var YI=["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"],$h=[...YI],Vh={"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 Ul=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ul||{}),Ll=(f=>(f.STRING="string",f.CODE="code",f.LONGFORM="longForm",f.BOOLEAN="boolean",f.NUMBER="number",f.PASSWORD="password",f.LIST="list",f.OBJECT="object",f.JSON="json",f.FILE="file",f.FIELD_GROUP="fieldGroup",f.SELECT="select",f))(Ll||{}),qa=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(qa||{});var Ml=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ml||{});var JI=q(require("lodash")),Sr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Sr||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),pn=(e=>(e.RANGE="range",e))(pn||{}),Si=(r=>(r.AND="$and",r.OR="$or",r))(Si||{});function Wa(t){return Object.values(Si).includes(t)}function qh(t){return Object.values(Sr).includes(t)}function Wh(t){return Object.values(Jt).includes(t)}function Qa(t){return Object.values(pn).includes(t)}var _i=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(_i||{});var Qh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var jh={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 JB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var ja=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(ja||{});var Ha=t=>t.hosting==="cloud";var Ka=t=>t.authType==="sso";var v="_",$e="\uFFF0",_r=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 Ir=(e=>(e.USER_METADATA="ta_users",e))(Ir||{}),Fl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Fl||{});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||{}),It=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(It||{});var ie=(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))(ie||{}),Hh=[...Object.values(ie),...Object.values(It)];var kl=(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))(kl||{}),Kh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Bl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Bl||{}),Gl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Gl||{});function Yh(t){return t.stepId==="BRANCH"}var $l=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))($l||{});var Vl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Vl||{});var ql="bb_internal";var Jh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ya(t){return!!t.providerType}var Wl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Wl||{});var eV=Object.values(Wl);var sV=["rows","queries","automations"],oV=["queries","automations"];var se;(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})(se||(se={}));var jl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(jl||(jl={}));var M=se.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Or=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},x=se.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),eO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,se.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Ze.create=t=>new Ze(t);var xi=(t,e)=>{let r;switch(t.code){case 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,se.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${se.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${se.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${se.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}"`:se.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,se.assertNever(t)}return{message:r}},Xh=xi;function tO(t){Xh=t}function Ja(){return Xh}var za=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},rO=[];function P(t,e){let r=Ja(),n=za({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===xi?void 0:xi].filter(i=>!!i)});t.common.issues.push(n)}var ke=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),Oi=t=>({status:"dirty",value:t}),Ve=t=>({status:"valid",value:t}),Hl=t=>t.status==="aborted",Kl=t=>t.status==="dirty",Cs=t=>t.status==="valid",vs=t=>typeof Promise<"u"&&t instanceof Promise;function Za(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function eg(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var bs,Ds,dt=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}},zh=(t,e)=>{if(Cs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Ze(t.common.issues);return this._error=r,this._error}}};function Z(t){if(!t)return{};let{errorMap:e,invalid_type_error:r,required_error:n,description:i}=t;if(e&&(r||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,c;let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:(u=l??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(c=l??r)!==null&&c!==void 0?c:a.defaultError}},description:i}}var X=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Or(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new ke,ctx:{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(vs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Or(e)},s=this._parseSync({data:e,path:i.path,parent:i});return zh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Or(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(vs(i)?i:Promise.resolve(i));return zh(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 Xe({schema:this,typeName:K.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return lt.create(this,this._def)}nullable(){return Vt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xt.create(this,this._def)}promise(){return wr.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 Xe({...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 Ns({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 Ps.create(this,e)}readonly(){return bn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nO=/^c[^\s-]{8,}$/i,iO=/^[0-9a-z]+$/,sO=/^[0-9A-HJKMNP-TV-Z]{26}$/,oO=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,aO=/^[a-z0-9_-]{21}$/i,uO=/^[-+]?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)?)??$/,cO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ql,dO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,pO=/^(([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})))$/,fO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,tg="((\\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])))",mO=new RegExp(`^${tg}$`);function rg(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 hO(t){return new RegExp(`^${rg(t)}$`)}function ng(t){let e=`${tg}T${rg(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 gO(t,e){return!!((e==="v4"||!e)&&dO.test(t)||(e==="v6"||!e)&&pO.test(t))}var xr=class t extends X{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return 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")cO.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")Ql||(Ql=new RegExp(lO,"u")),Ql.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")oO.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")aO.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")nO.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")iO.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")sO.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"?ng(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"?mO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?hO(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"?uO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"duration",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?gO(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"?fO.test(e.data)||(i=this._getOrReturnCtx(e,i),P(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):se.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}};xr.create=t=>{var e;return new xr({checks:[],typeName:K.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...Z(t)})};function yO(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"?se.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"?yO(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()):se.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"&&se.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()):se.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 Ve(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()):se.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 Ri=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 Ve(e.data)}};Ri.create=t=>new Ri({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 Ve(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 Ve(e.data)}};Tn.create=t=>new Tn({typeName:K.ZodNull,...Z(t)});var Rr=class extends X{constructor(){super(...arguments),this._any=!0}_parse(e){return Ve(e.data)}};Rr.create=t=>new Rr({typeName:K.ZodAny,...Z(t)});var Zt=class extends X{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ve(e.data)}};Zt.create=t=>new Zt({typeName:K.ZodUnknown,...Z(t)});var Ot=class extends X{_parse(e){let r=this._getOrReturnCtx(e);return P(r,{code:x.invalid_type,expected:M.never,received:r.parsedType}),J}};Ot.create=t=>new Ot({typeName:K.ZodNever,...Z(t)});var wi=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 Ve(e.data)}};wi.create=t=>new wi({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 dt(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new dt(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 Ii(t){if(t instanceof He){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=lt.create(Ii(n))}return new He({...t._def,shape:()=>e})}else return t instanceof Xt?new Xt({...t._def,type:Ii(t.element)}):t instanceof lt?lt.create(Ii(t.unwrap())):t instanceof Vt?Vt.create(Ii(t.unwrap())):t instanceof $t?$t.create(t.items.map(e=>Ii(e))):t}var He=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=se.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 Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new dt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(P(i,{code: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 d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new dt(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,f=await l.value;c.push({key:d,value:f,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 se.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 se.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ii(this)}partial(e){let r={};return se.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 se.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof lt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return ig(se.objectKeys(this.shape))}};He.create=(t,e)=>new He({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:K.ZodObject,...Z(e)});He.strictCreate=(t,e)=>new He({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:K.ZodObject,...Z(e)});He.lazycreate=(t,e)=>new He({shape:t,unknownKeys:"strip",catchall:Ot.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 Xe?zt(t.innerType()):t instanceof In?[t.value]:t instanceof On?t.options:t instanceof xn?se.objectValues(t.enum):t instanceof Rn?zt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof lt?[void 0,...zt(t.unwrap())]:t instanceof Vt?[null,...zt(t.unwrap())]:t instanceof Ns||t instanceof bn?zt(t.unwrap()):t instanceof wn?zt(t._def.innerType):[],Xa=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 Yl(t,e){let r=Or(t),n=Or(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=se.objectKeys(e),s=se.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Yl(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=Yl(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(Hl(s)||Hl(o))return J;let a=Yl(s.value,o.value);return a.valid?((Kl(s)||Kl(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 $t=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 dt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};$t.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $t({items:t,typeName:K.ZodTuple,rest:null,...Z(e)})};var eu=class t extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==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 dt(n,a,n.path,a)),value:o._parse(new dt(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:xr.create(),valueType:e,typeName:K.ZodRecord,...Z(r)})}},bi=class extends X{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==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 dt(n,a,n.path,[c,"key"])),value:s._parse(new dt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return J;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};bi.create=(t,e,r)=>new bi({valueType:e,keyType:t,typeName:K.ZodMap,...Z(r)});var Di=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 dt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Di.create=(t,e)=>new Di({valueType:t,minSize:null,maxSize:null,typeName:K.ZodSet,...Z(e)});var tu=class t extends X{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return P(r,{code:x.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].filter(c=>!!c),issueData:{code:x.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof wr){let a=this;return Ve(async function(...u){let c=new Ze([]),l=await a._def.args.parseAsync(u,s).catch(m=>{throw c.addIssue(n(u,m)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(m=>{throw c.addIssue(i(d,m)),c})})}else{let a=this;return Ve(function(...u){let c=a._def.args.safeParse(u,s);if(!c.success)throw new Ze([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:$t.create(e).rest(Zt.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,r,n){return new t({args:e||$t.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName: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 ig(t,e){return new On({values:t,typeName:K.ZodEnum,...Z(e)})}var On=class t extends X{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return P(r,{expected:se.joinValues(n),received:r.parsedType,code:x.invalid_type}),J}if(Za(this,bs,"f")||eg(this,bs,new Set(this._def.values),"f"),!Za(this,bs,"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 Ve(e.data)}get options(){return this._def.values}get enum(){let e={};for(let r of this._def.values)e[r]=r;return e}get Values(){let e={};for(let r of this._def.values)e[r]=r;return e}get Enum(){let e={};for(let r of this._def.values)e[r]=r;return e}extract(e,r=this._def){return t.create(e,{...this._def,...r})}exclude(e,r=this._def){return t.create(this.options.filter(n=>!e.includes(n)),{...this._def,...r})}};bs=new WeakMap;On.create=ig;var xn=class extends X{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=se.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=se.objectValues(r);return P(n,{expected:se.joinValues(i),received:n.parsedType,code:x.invalid_type}),J}if(Za(this,Ds,"f")||eg(this,Ds,new Set(se.getValidEnumValues(this._def.values)),"f"),!Za(this,Ds,"f").has(e.data)){let i=se.objectValues(r);return P(n,{received:n.data,code:x.invalid_enum_value,options:i}),J}return Ve(e.data)}get enum(){return this._def.values}};Ds=new WeakMap;xn.create=(t,e)=>new xn({values:t,typeName:K.ZodNativeEnum,...Z(e)});var wr=class extends X{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return 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 Ve(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};wr.create=(t,e)=>new wr({type:t,typeName:K.ZodPromise,...Z(e)});var Xe=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"?Oi(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?Oi(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Cs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Cs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);se.assertNever(i)}};Xe.create=(t,e,r)=>new Xe({schema:t,typeName:K.ZodEffects,effect:e,...Z(r)});Xe.createWithPreprocess=(t,e,r)=>new Xe({schema:e,effect:{type:"preprocess",transform:t},typeName:K.ZodEffects,...Z(r)});var lt=class extends X{_parse(e){return this._getType(e)===M.undefined?Ve(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};lt.create=(t,e)=>new lt({innerType:t,typeName:K.ZodOptional,...Z(e)});var Vt=class extends X{_parse(e){return this._getType(e)===M.null?Ve(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Vt.create=(t,e)=>new Vt({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 vs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:K.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Z(e)});var Ci=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}}};Ci.create=t=>new Ci({typeName:K.ZodNaN,...Z(t)});var EO=Symbol("zod_brand"),Ns=class extends X{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends X{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),Oi(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:K.ZodPipeline})}},bn=class extends X{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Cs(i)&&(i.value=Object.freeze(i.value)),i);return vs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:K.ZodReadonly,...Z(e)});function sg(t,e={},r){return t?Rr.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})}}):Rr.create()}var TO={object:He.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 AO=(t,e={message:`Input not instance of ${t.name}`})=>sg(r=>r instanceof t,e),og=xr.create,ag=mn.create,SO=Ci.create,_O=hn.create,ug=gn.create,IO=yn.create,OO=Ri.create,xO=En.create,RO=Tn.create,wO=Rr.create,bO=Zt.create,DO=Ot.create,CO=wi.create,vO=Xt.create,NO=He.create,PO=He.strictCreate,UO=An.create,LO=Xa.create,MO=Sn.create,FO=$t.create,kO=eu.create,BO=bi.create,GO=Di.create,$O=tu.create,VO=_n.create,qO=In.create,WO=On.create,QO=xn.create,jO=wr.create,Zh=Xe.create,HO=lt.create,KO=Vt.create,YO=Xe.createWithPreprocess,JO=Ps.create,zO=()=>og().optional(),ZO=()=>ag().optional(),XO=()=>ug().optional(),ex={string:t=>xr.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})},tx=J,re=Object.freeze({__proto__:null,defaultErrorMap:xi,setErrorMap:tO,getErrorMap:Ja,makeIssue:za,EMPTY_PATH:rO,addIssueToContext:P,ParseStatus:ke,INVALID:J,DIRTY:Oi,OK:Ve,isAborted:Hl,isDirty:Kl,isValid:Cs,isAsync:vs,get util(){return se},get objectUtil(){return jl},ZodParsedType:M,getParsedType:Or,ZodType:X,datetimeRegex:ng,ZodString:xr,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Ri,ZodUndefined:En,ZodNull:Tn,ZodAny:Rr,ZodUnknown:Zt,ZodNever:Ot,ZodVoid:wi,ZodArray:Xt,ZodObject:He,ZodUnion:An,ZodDiscriminatedUnion:Xa,ZodIntersection:Sn,ZodTuple:$t,ZodRecord:eu,ZodMap:bi,ZodSet:Di,ZodFunction:tu,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:wr,ZodEffects:Xe,ZodTransformer:Xe,ZodOptional:lt,ZodNullable:Vt,ZodDefault:Rn,ZodCatch:wn,ZodNaN:Ci,BRAND:EO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:bn,custom:sg,Schema:X,ZodSchema:X,late:TO,get ZodFirstPartyTypeKind(){return K},coerce:ex,any:wO,array:vO,bigint:_O,boolean:ug,date:IO,discriminatedUnion:LO,effect:Zh,enum:WO,function:$O,instanceof:AO,intersection:MO,lazy:VO,literal:qO,map:BO,nan:SO,nativeEnum:QO,never:DO,null:RO,nullable:KO,number:ag,object:NO,oboolean:XO,onumber:ZO,optional:HO,ostring:zO,pipeline:JO,preprocess:YO,promise:jO,record:kO,set:GO,strictObject:PO,string:og,symbol:OO,transformer:Zh,tuple:FO,undefined:xO,union:UO,unknown:bO,void:CO,NEVER:tx,ZodIssueCode:x,quotelessJson:eO,ZodError:Ze});var Dn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Dn||{}),ru=(r=>(r.STRING="string",r.NUMBER="number",r))(ru||{});var ou=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),cg=re.record(ou,re.string()),nu=re.record(ou,re.any()),iu=re.record(ou,re.union([re.any().array(),re.string()])),lg=re.lazy(()=>re.object({conditions:re.array(re.object(dg))})),su=re.union([re.string(),re.number()]),dg={string:cg.optional(),fuzzy:cg.optional(),range:re.record(ou,re.union([re.object({high:su,low:su}),re.object({high:su}),re.object({low:su})])).optional(),equal:nu.optional(),notEqual:nu.optional(),empty:nu.optional(),notEmpty:nu.optional(),oneOf:iu.optional(),contains:iu.optional(),notContains:iu.optional(),containsAny:iu.optional(),$and:lg.optional(),$or:lg.optional()},rq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(_i).optional(),...dg}).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(ru).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Gp={};N(Gp,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Yu,BUDIBASE_DATASOURCE_TYPE:()=>Pp,Config:()=>Bp,Cookie:()=>Yn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Lp,DEFAULT_JOBS_TABLE_ID:()=>Up,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>xo,DocumentType:()=>ye,GlobalRole:()=>kp,Header:()=>et,InternalTable:()=>Ir,MAX_VALID_DATE:()=>Zu,MIN_VALID_DATE:()=>VT,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>$e,UserStatus:()=>zu,ViewName:()=>Fr});var xW={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 et=(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))(et||{});var DW={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 LW="darkest",MW="light",ix=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var tt={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"}},pg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var vi="datasource_internal_bb_default";var Lr={};N(Lr,{ColumnSplitter:()=>Ep,NoEmptyFilterStrings:()=>PT,buildQuery:()=>UT,cleanupQuery:()=>Sp,fixupFilterArrays:()=>Ip,getKeyNumbering:()=>_p,getValidOperatorsForType:()=>CC,hasFilters:()=>Tp,limit:()=>MT,recurseLogicalOperators:()=>Ap,removeKeyNumbering:()=>au,runQuery:()=>Vu,search:()=>PC,sort:()=>LT,splitFiltersArray:()=>uu});var ji=q(fg());var br={};N(br,{filterValueToLabel:()=>lx,hasSchema:()=>dx,isSupportedUserSearch:()=>hg,parallelForeach:()=>cx,processSearchFilters:()=>Zl,toMap:()=>fx,trimOtherProps:()=>px,unreachable:()=>ux});var mg=q(require("lodash")),ax=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function ux(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function cx(t,e,r){let n=[],i=Symbol.asyncIterator in t,s=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),o=async()=>{let a=await(i?s.next():Promise.resolve(s.next()));for(;!a.done;)await e(a.value),a=await(i?s.next():Promise.resolve(s.next()))};for(let a=0;a<r;a++)n.push(o());await Promise.all(n)}function lx(){return Object.keys(tt).reduce((t,e)=>{let n=tt[e];return t[n.value]=n.label,t},{})}function dx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function px(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function hg(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(Wa(s)){for(let c of t[s].conditions)if(!hg(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 Zl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=uu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=mg.default.pick(i,ax);return s.field=au(s.field),s})}]}}function fx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var ht={};N(ht,{cancelableTimeout:()=>gg,cron:()=>pp,deepGet:()=>Xl,duplicateName:()=>RC,getSequentialName:()=>wC,getUserColor:()=>hx,getUserInitials:()=>mx,getUserLabel:()=>gx,isGoogleSheets:()=>Ex,isSQL:()=>Tx,lists:()=>yp,retry:()=>Ax,roles:()=>gp,schema:()=>_o,views:()=>hp,wait:()=>ed,withTimeout:()=>yx});var Xl=(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},mx=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"},hx=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%)`},gx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function gg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function yx(t,e){let[r,n]=gg(t),i=await Promise.race([e(),r]);return n(),i}function Ex(t){return t==="GOOGLE_SHEETS"}function Tx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function ed(t){return new Promise(e=>setTimeout(e,t))}async function Ax(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 ed(s);try{return await t()}catch(o){n=o}}throw n}var pp={};N(pp,{getNextExecutionDates:()=>dC,validate:()=>pC});var bT=q(qt()),DT=q(RT()),wT="(Input cron: ",cC={"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 lC(t){let e=[];for(let r of t){r.includes(wT)&&(r=r.split(wT)[0].trim());for(let[n,i]of Object.entries(cC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function dC(t,e=4){let r=DT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function pC(t){let e=(0,bT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:lC(e.getError())}}var _o={};N(_o,{decodeNonAscii:()=>fp,encodeNonAscii:()=>hC,isDeprecatedSingleUserColumn:()=>fC,isNumeric:()=>gC,isRequired:()=>mC});function fC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function mC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function hC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function fp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function gC(t){return t.type==="number"||t.type==="bigint"}var hp={};N(hp,{basicFields:()=>SC,calculationFields:()=>AC,hasCalculationFields:()=>TC,isBasicViewField:()=>yC,isCalculationField:()=>Io,isCalculationView:()=>EC,isV2:()=>_C,isVisible:()=>CT});var mp=require("lodash");function Io(t){return"calculationType"in t}function yC(t){return!Io(t)}function EC(t){return t.type==="calculation"}function TC(t){return Object.values(t.schema||{}).some(Io)}function AC(t){return(0,mp.pickBy)(t.schema||{},Io)}function CT(t){return t.visible!==!1}function SC(t,e){let{visible:r=!0}=e||{};return(0,mp.pickBy)(t.schema||{},n=>!Io(n)&&(!r||CT(n)))}function _C(t){return t.version===2}var gp={};N(gp,{checkForRoleInheritanceLoops:()=>OC});function IC(t){return`role${v}${t}`}function OC(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=IC(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 yp={};N(yp,{punctuateList:()=>xC});function xC(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 RC=(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}`},wC=(t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let s=e.trim(),o=n?`${e}1`:s;if(!t?.length)return o;let a=0;return t.forEach(u=>{let c=r?.(u)??u;if(typeof c!="string"||!c.startsWith(s))return;let l=c.split(s);if(l.length!==2)return;l[1].trim()===""&&(l[1]="1");let d=parseInt(l[1]);d>a&&(a=d)}),a===0?o:`${e}${i}${a+1}`};var Kn=require("lodash");var bC=/{{([^{].*?)}}/g,NT=Object.values(Si),DC=[...Object.values(Sr),...Object.values(Jt),...Object.values(pn)],CC=(t,e,r)=>{let n=tt,i=[n.Equals,n.NotEquals,n.StartsWith,n.Like,n.Empty,n.NotEmpty,n.In],s=[n.Equals,n.NotEquals,n.MoreThan,n.LessThan,n.Empty,n.NotEmpty,n.In],o=[],{type:a,formulaType:u}=t;a==="string"?o=i:a==="number"||a==="bigint"?o=s:a==="options"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="array"?o=[n.Contains,n.NotContains,n.Empty,n.NotEmpty,n.ContainsAny]:a==="boolean"?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:a==="longform"?o=i:a==="datetime"?o=s:a==="formula"&&u==="static"?o=i.concat([n.MoreThan,n.LessThan]):a==="ai"?o=i.concat([n.MoreThan,n.LessThan]):a==="bb_reference_single"||_o.isDeprecatedSingleUserColumn(t)?o=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:a==="bb_reference"?o=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty]:a==="barcodeqr"&&(o=i);let c=r?.tableId?.includes("datasource_plus");return e==="_id"&&c&&(o=[n.Equals,n.NotEquals,n.In]),o},PT=[tt.StartsWith.value,tt.Like.value,tt.Equals.value,tt.NotEquals.value,tt.Contains.value,tt.NotContains.value,tt.ContainsAny.value,tt.In.value];function Ap(t,e){for(let r of NT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Sp=t=>{for(let e of PT)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===""||vC(s))&&delete t[e][i]}return t=Ap(t,Sp),t};function vC(t){return Array.isArray(t)&&t.length===0}var au=t=>_p(t).key,_p=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}},Ep=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}=_p(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=fp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function NC(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(bC)||[]).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(Qa(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(Qa(r)){let c=pg[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(qh(r)||Wh(r)||Qa(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 uu(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 UT(t){if(!t)return{};if(Array.isArray(t)&&(t=Zl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=vT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=UT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=uu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=vT(n.logicalOperator)),{[a]:{conditions:o.map(NC).filter(u=>u)}}})},e}function vT(t){return t==="all"?"$and":"$or"}function Ip(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 Ap(t,Ip),t}function PC(t,e){let r=Vu(t,e.query);e.sort&&(r=LT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=MT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Vu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Sp(e),e=Ip(e),!Tp(e)&&e.onEmptyFilter==="none")return[];let r=(E,_)=>B=>{for(let[b,k]of Object.entries(e[E]||{})){let de=Wa(E)?B:Xl(B,au(b)),cn=_(de,k);if(e.allOr&&cn)return!0;if(!e.allOr&&!cn)return!1}return!e.allOr},n=r("string",(E,_)=>typeof E!="string"||typeof _!="string"?!1:E.toLowerCase().startsWith(_.toLowerCase())),i=r("fuzzy",(E,_)=>typeof E!="string"||typeof _!="string"?!1:E.toLowerCase().includes(_.toLowerCase())),s=r("range",(E,_)=>{if(E==null||E===""||((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=+E;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,ji.default)(E);if(b.isValid()){let k=(0,ji.default)(_.low||"0000-00-00T00:00:00.000Z"),de=(0,ji.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?E>=_.low&&E<=_.high:_.low!=null?E>=_.low:_.high!=null?E<=_.high:!1}),o=(E,_)=>{if(Array.isArray(E)){for(let b of E)if(o(b,_))return!0;return!1}if(E&&typeof E=="object"&&typeof _=="string")return E._id===_;if(E===_)return!0;if(E==null&&_!=null||E!=null&&_==null)return!1;let B=(0,ji.default)(E);if(B.isValid()){let b=(0,ji.default)(_);if(b.isValid())return B.isSame(b)}return!1},a=E=>(..._)=>!E(..._),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,d=r("empty",l),f=r("notEmpty",a(l)),m=r("oneOf",(E,_)=>(typeof _=="string"&&(_=_.split(",")),typeof E=="number"&&(_=_.map(B=>parseFloat(B))),Array.isArray(_)?_.some(B=>o(E,B)):!1)),p=E=>(_,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[E](b=>o(_,b)),g=r("contains",(E,_)=>Array.isArray(_)&&_.length===0?!0:p("every")(E,_)),y=r("notContains",(E,_)=>Array.isArray(_)&&_.length===0?!0:a(p("every"))(E,_)),T=r("containsAny",p("some")),S=r("$and",(E,_)=>{if(!_.length)return!1;for(let B of _)if(!Vu([E],B).length)return!1;return!0}),O=r("$or",(E,_)=>{if(!_.length)return!1;for(let B of _)if(Vu([E],{...B,allOr:!0}).length)return!0;return!1}),R=E=>{let _={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:f,oneOf:m,contains:g,containsAny:T,notContains:y,$and:S,$or:O},B=Object.entries(e||{}).filter(([b,k])=>!["allOr","onEmptyFilter"].includes(b)&&k&&Object.keys(k).length>0).map(([b])=>_[b]?.(E)??!1);return Tp(e)?e.allOr?B.some(b=>b===!0):B.every(b=>b===!0):!0};return t.filter(R)}function LT(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 MT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Tp=t=>{if(!t)return!1;let e=r=>{for(let n of NT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of DC){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 at={};N(at,{applications:()=>xp,automations:()=>Rp,screens:()=>vp,users:()=>Cp});var xp={};N(xp,{getDevAppID:()=>UC,getProdAppID:()=>qu});var Op=_r("app"),Oo=_r("app_dev");function UC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Oo))return t;let e=t.split(Op);e.shift();let r=e.join(Op);return`${Oo}${r}`}function qu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Oo))return t;let e=t.split(Oo);e.shift();let r=e.join(Oo);return`${Op}${r}`}var Rp={};N(Rp,{checkForCollectStep:()=>kC,isAppAction:()=>FC,isRowAction:()=>LC,isWebhookAction:()=>MC});function LC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function MC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function FC(t){return t.definition.trigger?.stepId==="APP"}function FT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Yh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(FT(r))return!0}}return!1}function kC(t){return FT(t.definition.steps)}var Cp={};N(Cp,{canCreateApps:()=>BC,containsUserID:()=>QC,getGlobalUserID:()=>WC,getUserAppGroups:()=>jC,getUserGroups:()=>Dp,hasAdminPermissions:()=>bp,hasAppBuilderPermissions:()=>ju,hasAppCreatorPermissions:()=>kT,hasBuilderPermissions:()=>VC,hasCreatorPermissions:()=>Hu,isAdmin:()=>Qu,isAdminOrBuilder:()=>GC,isAdminOrGlobalBuilder:()=>$C,isBuilder:()=>wp,isCreator:()=>qC,isGlobalBuilder:()=>Wu,userAppAccessList:()=>HC});var Mr=q(require("lodash/fp"));function wp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(qu(e))):!1}function Wu(t){return wp(t)&&!ju(t)||Qu(t)}function BC(t){return Wu(t)||Hu(t)}function Qu(t){return t?bp(t):!1}function GC(t,e){return wp(t,e)||Qu(t)}function $C(t){return Wu(t)||Qu(t)}function ju(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function kT(t){return t?Mr.flow(Mr.get("roles"),Mr.values,Mr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function VC(t){return t?t.builder?.global||ju(t)||Hu(t):!1}function bp(t){return t?!!t.admin?.global:!1}function Hu(t){return t?!!t.builder?.creator:!1}function qC(t){return t?Wu(t)||bp(t)||Hu(t)||ju(t)||kT(t):!1}function WC(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function QC(t){return typeof t!="string"?!1:t.includes(`us${v}`)}function Dp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function jC(t,e,r){let n=qu(t);return Dp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function HC(t,e){let n=Dp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var vp={};N(vp,{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 Jj={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},zj={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},Zj={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 oH={name:"Bash Scripting",tagline:"Execute a bash command",icon:"git-branch",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 cH={name:"Branch",icon:"git-branch",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 pH={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"stack",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 hH={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"rows-plus-bottom",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 EH={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 SH={description:"Delete a row from your database",icon:"trash-simple",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 OH={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 wH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",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 CH={name:"API Request",tagline:"Execute a REST request",icon:"globe",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 PH={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 MH={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"brackets-angle",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 ov={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},BH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",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($l),pretty:Object.values(ov)},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 VH={name:"Looping",icon:"recycle",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 QH={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 KH={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(Vl)},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||{}),zH={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",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 GT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(GT||{}),eK={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",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(GT),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 fv={ascending:"Ascending",descending:"Descending"},nK={description:"Query rows from the database",icon:"magnifying-glass",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(fv)},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 oK={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"envelope",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 cK={name:"Backend log",tagline:"Console log a value in the backend",icon:"activity",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 pK={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 hK={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"arrows-clockwise",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 EK={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"arrow-clockwise",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 SK={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 OK={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 wK={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 CK={name:"Translate",tagline:"Translate text to a different language",icon:"globe",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 $T=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))($T||{}),PK={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($T)}},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 MK={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(kl),pretty:Object.values(Kh)},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 BK={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(Bl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Gl),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 bv={name:"User action",event:"app:trigger",icon:"cursor-click",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 Cv={name:"CRON / Schedule",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 Nv={name:"Row Deleted",event:"row:delete",icon:"trash-simple",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 Uv={name:"Row Created",event:"row:save",icon:"rows-plus-bottom",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 Mv={name:"Row Updated",event:"row:update",icon:"arrow-clockwise",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 kv={name:"Webhook",event:"web:trigger",icon:"paper-plane-right",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 Gv={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"tree-structure",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 tY=Object.values(ye).sort((t,e)=>e.length-t.length);var rY=Object.values(Fl).sort((t,e)=>e.length-t.length);var nY=new RegExp("^datasource_plus_(.+)__(.+)$"),Ku=t=>e=>!!e&&e.startsWith(`${t}${v}`);var iY=Ku("ta"),sY=Ku("view"),oY=Ku("datasource"),aY=Ku("query");var Yu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Yu||{}),Fr=(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_2",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))(Fr||{}),Ki={by_email2:["by_email"]},xe={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=_r("app"),Ju=_r("app_dev"),yt=Ju,Np="internal",Pp="budibase",Ht="_design/sqlite",Up="ta_bb_jobs",Lp="ta_bb_inventory",Mp="ta_bb_expenses",Fp="ta_bb_employee",xo=(r=>(r[r.SQLITE=Ht]="SQLITE",r.MIGRATIONS="_design/migrations",r))(xo||{});var zu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(zu||{}),Yn=(a=>(a.Auth="budibase:auth",a.Init="budibase:init",a.ACCOUNT_RETURN_URL="budibase:account:returnurl",a.DatasourceAuth="budibase:datasourceauth",a.OIDC_CONFIG="budibase:oidc:config",a.FeatureFlags="budibase:featureflags",a.RecaptchaSession="budibase:recaptcha",a))(Yn||{}),kp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(kp||{}),Bp=(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))(Bp||{}),VT=new Date(-2147483647e3),Zu=new Date(2147483647e3),Te="default";var ba={};N(ba,{CacheKey:()=>Ce,TTL:()=>ii,app:()=>Zo,bustCache:()=>ns,destroy:()=>Qo,docWritethrough:()=>Qm,generic:()=>jo,get:()=>si,invite:()=>cm,keys:()=>mc,passwordReset:()=>qm,store:()=>ur,user:()=>nn,withCache:()=>qr,withCacheWithDynamicTTL:()=>gA,writethrough:()=>Vm});var jo={};N(jo,{CacheKey:()=>Ce,TTL:()=>ii,bustCache:()=>ns,destroy:()=>Qo,get:()=>si,keys:()=>mc,store:()=>ur,withCache:()=>qr,withCacheWithDynamicTTL:()=>gA});var Ae={};N(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Uo,doInAppContext:()=>bN,doInAppMigrationContext:()=>CN,doInAutomationContext:()=>IN,doInContext:()=>af,doInEnvironmentContext:()=>PN,doInFeatureFlagOverrideContext:()=>mf,doInIPContext:()=>lf,doInIdentityContext:()=>wo,doInLicenseContext:()=>xN,doInScimContext:()=>UN,doInSelfHostTenantUsingCloud:()=>ON,doInTenant:()=>We,ensureSnippetContext:()=>pA,getAppDB:()=>ts,getAppId:()=>Ue,getAuditLogDBName:()=>cA,getAuditLogsDB:()=>MN,getAutomationId:()=>uf,getCurrentContext:()=>Zn,getDevAppDB:()=>kN,getDevAppId:()=>vN,getEnvironmentVariables:()=>LN,getFeatureFlagOverrides:()=>ff,getFeatureFlags:()=>df,getGlobalDB:()=>ne,getGlobalDBName:()=>zn,getIP:()=>cf,getIdentity:()=>ar,getLicense:()=>RN,getPlatformURL:()=>of,getProdAppDB:()=>FN,getProdAppId:()=>NN,getScimDBName:()=>TN,getSelfHostCloudDB:()=>wN,getTableForView:()=>BN,getTenantIDFromAppID:()=>es,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>Gr,isScim:()=>Ut,isSelfHostUsingCloud:()=>lA,isTenancyEnabled:()=>SN,isTenantIdSet:()=>AN,setFeatureFlags:()=>pf,setTableForView:()=>GN});var Ro={};N(Ro,{doInAccountContext:()=>Wv,doInIdentityContext:()=>Vp,doInUserContext:()=>qp,getAccountUserId:()=>qT,getIdentity:()=>$p});function $p(){return ar()}function Vp(t,e){return wo(t,e)}function qp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Vp(n,r)}function Wv(t,e){let r=qT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Vp(i,e)}function qT(t){let e;return Ha(t)?e=t.budibaseUserId:e=t.accountId,e}var tc=require("fs");var jT=require("lodash"),Wp=require("crypto"),bo=require("path"),Qv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,bo.resolve)((0,bo.join)(__dirname,"..","..","..")),WT=!1;!WT&&ec()&&!Qp()&&(require("dotenv").config({path:(0,bo.join)(Qv,".env")}),WT=!0);function Qp(){return HT()}function HT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function ec(){return process.env.NODE_ENV!=="production"}function jv(t){if(t)return parseInt(t)}var Yi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},QT=!!parseInt(process.env.SELF_HOSTED||"");function Hv(){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 Yv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,tc.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,tc.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ec()&&!Qp())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 Jv(){return vt.SERVICE_TYPE==="worker"}function zv(){return vt.SERVICE_TYPE==="apps"}function Zv(){return vt.BUDIBASE_ENVIRONMENT==="QA"}function Xv(){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 vt={isTest:Qp,isJest:HT,isDev:ec,isWorker:Jv,isApps:zv,isQA:Zv,isProd:()=>!ec(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Wp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Wp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Hv(),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:QT,COOKIE_DOMAIN:process.env.COOKIE_DOMAIN,PLATFORM_URL:process.env.PLATFORM_URL||"",POSTHOG_TOKEN:process.env.POSTHOG_TOKEN,POSTHOG_PERSONAL_TOKEN:process.env.POSTHOG_PERSONAL_TOKEN,POSTHOG_API_HOST:process.env.POSTHOG_API_HOST||"https://us.i.posthog.com",POSTHOG_FEATURE_FLAGS_ENABLED:process.env.POSTHOG_FEATURE_FLAGS_ENABLED,ENABLE_ANALYTICS:process.env.ENABLE_ANALYTICS,TENANT_FEATURE_FLAGS:process.env.TENANT_FEATURE_FLAGS,CLOUDFRONT_CDN:process.env.CLOUDFRONT_CDN,CLOUDFRONT_PRIVATE_KEY_64:process.env.CLOUDFRONT_PRIVATE_KEY_64,CLOUDFRONT_PUBLIC_KEY_ID:process.env.CLOUDFRONT_PUBLIC_KEY_ID,BACKUPS_BUCKET_NAME:process.env.BACKUPS_BUCKET_NAME||Yi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Yi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Yi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Yi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Yi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Yi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:Xv(),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:QT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...Yv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:jv(process.env.BSON_BUFFER_SIZE)};function Do(t){let e=(0,jT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function KT(t,e){let r=Do(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var YT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var JT=require("async_hooks"),we=class t{static{this.storage=new JT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var jp="No app provided";function kr(t){if(!t)throw jp;return t.startsWith(yt)}function eN(t){if(!t)throw jp;return t.startsWith(gt)&&!kr(t)}function Co(t){if(!t)throw jp;return kr(t.appId)}function rc(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var Ji=rc;function ut(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${gt}${r}`}function tN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=Hp(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:Hp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Hp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var aA=q(require("@budibase/nano"));var zT=q(require("node-fetch"));function nc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function ZT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await vo({url:s,cookie:i,method:e,body:r})}async function vo({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,zT.default)(nc(encodeURI(t)),i)}async function Kp(t,e="GET",r){let n=await ZT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Jn=q(require("pouchdb"));var XT,eA=!1,Yp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Jn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Jn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Jn.default.plugin(i.plugin),Jn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Jn.default.plugin(i)}return Jn.default.defaults(n)};function ic(t){XT=Yp(t),eA=!0}var nN=()=>{if(!eA)throw new Error("init has not been called")};function Et(t,e){nN();let r=new XT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function No(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var tA=require("uuid");function me(){return(0,tA.v4)().replace(/-/g,"")}var Ie=q(require("dd-trace")),zi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Ie.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return Ie.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Ie.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return Ie.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||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 Ie.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return Ie.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return Ie.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return Ie.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Ie.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 Ie.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return Ie.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return Ie.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return Ie.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return Ie.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return Ie.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Ie.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Ie.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Ie.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Ie.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return Ie.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return Ie.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var nf={};N(nf,{breakExternalTableId:()=>Zp,breakRowIdField:()=>gN,buildExternalTableId:()=>lN,convertRowId:()=>hN,encodeTableId:()=>dN,encodeViewId:()=>pN,extractDate:()=>ef,generateRowIdField:()=>fN,getNativeSql:()=>Zi,isExternalTable:()=>zp,isExternalTableID:()=>sc,isInternalTableID:()=>cN,isRowId:()=>mN,isValidFilter:()=>ac,isValidISODateString:()=>oc,isValidISODateStringWithoutTimezone:()=>Xp,isValidTime:()=>tf,sqlLog:()=>Po,validateManyToMany:()=>rf});var Jp=`${v}${v}`,nA=/^\[.*]$/g,iN=encodeURIComponent(" "),sN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,oN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,aN=/(\d{4}-\d{2}-\d{2})/,uN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function sc(t){return t.startsWith("datasource"+v)}function cN(t){return!sc(t)}function Zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function zp(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==vi||t?.sourceType==="external"?!0:!!(t?._id&&sc(t._id))}function lN(t,e){return`${t}${Jp}${encodeURIComponent(e)}`}function dN(t){return sc(t)?encodeURIComponent(t):t}function pN(t){return encodeURIComponent(t)}function Zp(t){let e=t.split(Jp),r=e.shift(),n=e.join(Jp);if(n.includes(iN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function fN(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 mN(t){return Array.isArray(t)||typeof t=="string"&&t.match(nA)!=null}function hN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(nA)!=null?t.substring(1,t.length-1):t}function gN(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 oc(t){let e=t.trim();if(!sN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Xp(t){let e=t.trim();if(!oN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function ef(t){let e=t.match(aN);if(e)return e[0]}function ac(t){return t!=null&&t!==""}function tf(t){return uN.test(t)}function Po(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 yN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function rf(t){if(yN(t))return t}var iA="Database does not exist.";function sA(t){return(0,aA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Br=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 EN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Xi(t,r,e);return new zi(n)}var Xi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=sA(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=sA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await vo({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 Br(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===iA)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Br(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Br(`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(Qh(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 Br(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 async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}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===iA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=nc(`${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 vo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Br("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 Po("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 Br(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 qe(t,e){return new zi(new Xi(t,e))}async function ct(t,e,r){let n=qe(t,r);return await e(n)}async function sf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Kp(e)}var uA=null;function zn(t){return t||(t=j()),Uo(t)}function cA(t){return t||(t=j()),t===Te?xe.AUDIT_LOGS.name:`${t}${v}${xe.AUDIT_LOGS.name}`}function TN(t){return t||(t=j()),t===Te?xe.SCIM_LOGS.name:`${t}${v}${xe.SCIM_LOGS.name}`}function Uo(t){return!t||t===Te?xe.GLOBAL.name:`${t}${v}${xe.GLOBAL.name}`}function of(){return h.PLATFORM_URL}function Gr(){return!!h.MULTI_TENANCY}function AN(){return!!we.get()?.tenantId}function SN(){return h.MULTI_TENANCY}function es(t){if(!t)return;if(!Gr())return Te;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 _N(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){DN();let r=_N(t);return we.run(r,e)}async function IN(t){return await pA(),await Pt({tenantId:es(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function af(t,e){let r=es(t);return Pt({tenantId:r,appId:t},e)}async function We(t,e){return h.MULTI_TENANCY||(t=t||Te),Pt(t?{tenantId:t}:{},e)}async function ON(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function xN(t,e){return Pt({license:t},e)}function RN(){return we.get()?.license}function lA(){return!!we.get()?.isSelfHostUsingCloud}function wN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return qe(xe.SELF_HOST_CLOUD.name)}async function bN(t,e){return dA(t,e)}async function dA(t,e,r){if(!t)throw new Error("appId is required");let n=es(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(i,e)}async function wo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Pt(r,e)}function DN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function CN(t,e){return dA(t,e,{isMigrating:!0})}function ar(){try{return we.get()?.identity}catch{}}function j(){if(!Gr())return Te;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function uf(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&uA?uA:e}function cf(){return we.get()?.ip}var vN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return Ji(t)},NN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return ut(t)};function PN(t,e){if(!t)throw new Error("Must supply environment variables.");return Pt({environmentVariables:t},e)}function UN(t){return Pt({isScim:!0},t)}function lf(t,e){return Pt({ip:t},e)}async function pA(){let t=Zn();if(!t||t.snippets)return;let e,r=ts();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function LN(){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 qe(Uo(t?.tenantId))}function MN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return qe(cA())}function ts(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(lA())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return qe(e,t)}function FN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return qe(ut(e),t)}function kN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return qe(rc(e),t)}function Ut(){return!!we.get()?.isScim}function Zn(){try{return we.get()}catch{return}}function df(t){let e=Zn();if(e)return e.featureFlagCache?.[t]}function pf(t,e){let r=Zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function ff(){return Zn()?.featureFlagOverrides||{}}async function mf(t,e){return await Pt({featureFlagOverrides:t},e)}function BN(t){let e=Zn();if(e)return e.viewToTableCache?.[t]}function GN(t,e){let r=Zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Vr={};N(Vr,{getAppClient:()=>fc,getCacheClient:()=>Af,getDocWritethroughClient:()=>QN,getInviteClient:()=>ti,getLockClient:()=>_f,getPasswordResetClient:()=>Wo,getSessionClient:()=>$r,getSocketClient:()=>WN,getUserClient:()=>qo,getWritethroughClient:()=>Sf,init:()=>Lt,shutdown:()=>hA});var pc=q(require("ioredis"));var lc={};N(lc,{Databases:()=>hf,SEPARATOR:()=>rs,SelectableDatabase:()=>uc,getRedisClusterOptions:()=>gf,getRedisConnectionDetails:()=>cc,getRedisOptions:()=>Xn,removeDbPrefix:()=>yf});var rs="-",hf=(S=>(S.PW_RESETS="pwReset",S.VERIFICATIONS="verification",S.INVITATIONS="invitation",S.DEV_LOCKS="devLocks",S.DEBOUNCE="debounce",S.SESSIONS="session",S.USER_CACHE="users",S.FLAGS="flags",S.APP_METADATA="appMetadata",S.QUERY_VARS="queryVars",S.LICENSES="license",S.GENERIC_CACHE="data_cache",S.WRITE_THROUGH="writeThrough",S.LOCKS="locks",S.SOCKET_IO="socket_io",S.BPM_EVENTS="bpmEvents",S.DOC_WRITE_THROUGH="docWriteThrough",S.RECAPTCHA_SESSION="recaptchaSession",S))(hf||{}),uc=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.UNUSED_2=3]="UNUSED_2",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(uc||{});function cc(){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 gf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Xn(),tls:{}}}}function Xn(){let{host:t,password:e,port:r}=cc();return{connectTimeout:3e4,port:r,host:t,password:e}}function yf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var dc=require("dd-trace"),mA=require("lodash"),fA;if(h.MOCK_REDIS)try{fA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function $N(t=0){return await dc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new fA(Xn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=cc();r=new pc.Cluster([{host:n,port:i}],gf())}else r=new pc.default(Xn());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 VN(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:yf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function qN(t){return t.isCluster}var Ef=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await dc.tracer.trace("RedisWrapper.init",async n=>{let i=await $N(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return dc.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${rs}${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}${rs}${e}`;let n;qN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await VN(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,mA.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,pt({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Zg.default)({args:d,value:l,path:s,sync:i,tests:f,endEarly:c},m=>{if(m)return void n(m,l);(0,Zg.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(pt({},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(pt({},r,{value:e})),i;return n._validate(e,pt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(ey.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(ey.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,zg.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=Pi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Pi.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=Pi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Tu.default)(r),s=r.exclusive||r.name&&n.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(n.exclusiveTests[r.name]=!!r.exclusive),n.tests=n.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===i.OPTIONS.test))),n.tests.push(i),n}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let n=this.clone(),i=(0,WR.default)(e).map(s=>new $R.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new VR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Tu.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=Pi.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Tu.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=Pi.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Tu.default)({message:r,name:"notOneOf",test(i){let s=this.schema._blacklist;return s.has(i,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),n}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:n}=e.spec;return{meta:n,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(u=>u.name===s.name)===o)}}};Au.default=bt;bt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])bt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,qR.getIn)(this,e,r,n.context);return o[t](i&&i[s],pt({},n,{parent:i,path:e}))};for(let t of["equals","is"])bt.prototype[t]=bt.prototype.oneOf;for(let t of["not","nope"])bt.prototype[t]=bt.prototype.notOneOf;bt.prototype.optional=bt.prototype.notRequired});var ny=H(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=ry;Ks.default=void 0;var QR=jR(rr());function jR(t){return t&&t.__esModule?t:{default:t}}var Ad=QR.default,HR=Ad;Ks.default=HR;function ry(){return new Ad}ry.prototype=Ad.prototype});var Li=H(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.default=void 0;var YR=t=>t==null;Su.default=YR});var uy=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=ay;zs.default=void 0;var KR=oy(rr()),iy=er(),sy=oy(Li());function oy(t){return t&&t.__esModule?t:{default:t}}function ay(){return new Js}var Js=class extends KR.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=iy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,sy.default)(r)||r===!0}})}isFalse(e=iy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,sy.default)(r)||r===!1}})}};zs.default=Js;ay.prototype=Js.prototype});var dy=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=ly;Xs.default=void 0;var Wt=er(),nr=cy(Li()),JR=cy(rr());function cy(t){return t&&t.__esModule?t:{default:t}}var zR=/^((([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,ZR=/^((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,XR=/^(?:[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,eb=t=>(0,nr.default)(t)||t===t.trim(),tb={}.toString();function ly(){return new Zs}var Zs=class extends JR.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===tb?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Wt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,nr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Wt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,nr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Wt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,nr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Wt.string.matches,params:{regex:e},test:o=>(0,nr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Wt.string.email){return this.matches(zR,{name:"email",message:e,excludeEmptyString:!0})}url(e=Wt.string.url){return this.matches(ZR,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Wt.string.uuid){return this.matches(XR,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Wt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:eb})}lowercase(e=Wt.string.lowercase){return this.transform(r=>(0,nr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toLowerCase()})}uppercase(e=Wt.string.uppercase){return this.transform(r=>(0,nr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,nr.default)(r)||r===r.toUpperCase()})}};Xs.default=Zs;ly.prototype=Zs.prototype});var my=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=fy;to.default=void 0;var Pn=er(),Ln=py(Li()),rb=py(rr());function py(t){return t&&t.__esModule?t:{default:t}}var nb=t=>t!=+t;function fy(){return new eo}var eo=class extends rb.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"&&!nb(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))}};to.default=eo;fy.prototype=eo.prototype});var hy=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=sb;var ib=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function sb(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=ib.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 Ey=H(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Id;ro.default=void 0;var ob=_u(hy()),gy=er(),yy=_u(Li()),ab=_u(Nn()),ub=_u(rr());function _u(t){return t&&t.__esModule?t:{default:t}}var _d=new Date(""),cb=t=>Object.prototype.toString.call(t)==="[object Date]";function Id(){return new Ui}var Ui=class extends ub.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,ob.default)(e),isNaN(e)?_d:new Date(e))})})}_typeCheck(e){return cb(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(ab.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=gy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,yy.default)(i)||i>=this.resolve(n)}})}max(e,r=gy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,yy.default)(i)||i<=this.resolve(n)}})}};ro.default=Ui;Ui.INVALID_DATE=_d;Id.prototype=Ui.prototype;Id.INVALID_DATE=_d});var Ay=H((BQ,Od)=>{"use strict";Od.exports=function(t){return Ty(lb(t),t)};Od.exports.array=Ty;function Ty(t,e){var r=t.length,n=new Array(r),i={},s=r,o=db(e),a=pb(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch{f=""}throw new Error("Cyclic dependency"+f)}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 m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){d.add(c);do{var p=m[--l];u(p,a.get(p),d)}while(l);d.delete(c)}n[--r]=c}}}function lb(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 db(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 pb(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Sy=H(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});xd.default=Eb;var fb=Iu(require("lodash/has")),mb=Iu(Ay()),hb=Qs(),gb=Iu(Nn()),yb=Iu(Ni());function Iu(t){return t&&t.__esModule?t:{default:t}}function Eb(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,hb.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,fb.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),gb.default.isRef(o)&&o.isSibling?i(o.path,s):(0,yb.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return mb.default.array(n,r).reverse()}});var Iy=H(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.default=Tb;function _y(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 Tb(t){return(e,r)=>_y(t,e)-_y(t,r)}});var Dy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=Cy;io.default=void 0;var Oy=Qt(require("lodash/has")),xy=Qt(require("lodash/snakeCase")),Ab=Qt(require("lodash/camelCase")),Sb=Qt(require("lodash/mapKeys")),_b=Qt(require("lodash/mapValues")),Ib=Qs(),Ry=er(),Ob=Qt(Sy()),wy=Qt(Iy()),xb=Qt(mu()),Rb=Qt(Dn()),bd=Qt(rr());function Qt(t){return t&&t.__esModule?t:{default:t}}function Mi(){return Mi=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},Mi.apply(this,arguments)}var by=t=>Object.prototype.toString.call(t)==="[object Object]";function bb(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var wb=(0,wy.default)([]),no=class extends bd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=wb,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 by(e)||typeof e=="function"}_cast(e,r={}){var n;let i=super._cast(e,r);if(i===void 0)return this.getDefault();if(!this._typeCheck(i))return i;let s=this.fields,o=(n=r.stripUnknown)!=null?n:this.spec.noUnknown,a=this._nodes.concat(Object.keys(i).filter(d=>this._nodes.indexOf(d)===-1)),u={},c=Mi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let f=s[d],m=(0,Oy.default)(i,d);if(f){let p,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,f=f.resolve({value:g,context:r.context,parent:u});let y="spec"in f?f.spec:void 0,T=y?.strict;if(y?.strip){l=l||d in i;continue}p=!r.__validating||!T?f.cast(i[d],c):i[d],p!==void 0&&(u[d]=p)}else m&&!o&&(u[d]=i[d]);u[d]!==i[d]&&(l=!0)}return l?u:i}_validate(e,r={},n){let i=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:u=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(l,d)=>{if(l){if(!Rb.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!by(d)){n(i[0]||null,d);return}a=a||d;let f=this._nodes.map(m=>(p,g)=>{let y=m.indexOf(".")===-1?(r.path?`${r.path}.`:"")+m:`${r.path||""}["${m}"]`,T=this.fields[m];if(T&&"validate"in T){T.validate(d[m],Mi({},r,{path:y,from:o,strict:!0,parent:d,originalValue:a[m]}),g);return}g(null)});(0,xb.default)({sync:s,tests:f,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Mi({},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 bd.default&&s instanceof bd.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,wy.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,Ob.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,Ib.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Oy.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=Ry.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=bb(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=Ry.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Sb.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Ab.default)}snakeCase(){return this.transformKeys(xy.default)}constantCase(){return this.transformKeys(e=>(0,xy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,_b.default)(this.fields,r=>r.describe()),e}};io.default=no;function Cy(t){return new no(t)}Cy.prototype=no.prototype});var Ny=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=vy;oo.default=void 0;var wd=Fi(Li()),Cb=Fi(Ni()),Db=Fi(Ws()),Cd=er(),vb=Fi(mu()),Nb=Fi(Dn()),Pb=Fi(rr());function Fi(t){return t&&t.__esModule?t:{default:t}}function Ou(){return Ou=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},Ou.apply(this,arguments)}function vy(t){return new so(t)}var so=class extends Pb.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,Ou({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,p)=>{if(m){if(!Nb.default.isError(m)||l)return void n(m,p);o.push(m)}if(!d||!c||!this._typeCheck(p)){n(o[0]||null,p);return}f=f||p;let g=new Array(p.length);for(let y=0;y<p.length;y++){let T=p[y],_=`${r.path||""}[${y}]`,S=Ou({},r,{path:_,strict:!0,parent:p,index:y,originalValue:f[y]});g[y]=(x,E)=>c.validate(T,S,E)}(0,vb.default)({sync:a,path:u,value:p,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Cb.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Db.default)(e));return r.innerType=e,r}length(e,r=Cd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,wd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Cd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,wd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Cd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,wd.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};oo.default=so;vy.prototype=so.prototype});var Py=H(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Mb;ao.default=void 0;var Lb=Ub(Ni());function Ub(t){return t&&t.__esModule?t:{default:t}}function Mb(t){return new xu(t)}var xu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Lb.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)}},Fb=xu;ao.default=Fb});var Ly=H(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});Dd.default=Gb;var kb=Bb(er());function Bb(t){return t&&t.__esModule?t:{default:t}}function Gb(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{kb.default[e][r]=t[e][r]})})}});var Nd=H(fe=>{"use strict";Object.defineProperty(fe,"__esModule",{value:!0});fe.addMethod=Hb;Object.defineProperty(fe,"MixedSchema",{enumerable:!0,get:function(){return Uy.default}});Object.defineProperty(fe,"mixed",{enumerable:!0,get:function(){return Uy.create}});Object.defineProperty(fe,"BooleanSchema",{enumerable:!0,get:function(){return vd.default}});Object.defineProperty(fe,"bool",{enumerable:!0,get:function(){return vd.create}});Object.defineProperty(fe,"boolean",{enumerable:!0,get:function(){return vd.create}});Object.defineProperty(fe,"StringSchema",{enumerable:!0,get:function(){return My.default}});Object.defineProperty(fe,"string",{enumerable:!0,get:function(){return My.create}});Object.defineProperty(fe,"NumberSchema",{enumerable:!0,get:function(){return Fy.default}});Object.defineProperty(fe,"number",{enumerable:!0,get:function(){return Fy.create}});Object.defineProperty(fe,"DateSchema",{enumerable:!0,get:function(){return ky.default}});Object.defineProperty(fe,"date",{enumerable:!0,get:function(){return ky.create}});Object.defineProperty(fe,"ObjectSchema",{enumerable:!0,get:function(){return By.default}});Object.defineProperty(fe,"object",{enumerable:!0,get:function(){return By.create}});Object.defineProperty(fe,"ArraySchema",{enumerable:!0,get:function(){return Gy.default}});Object.defineProperty(fe,"array",{enumerable:!0,get:function(){return Gy.create}});Object.defineProperty(fe,"ref",{enumerable:!0,get:function(){return Vb.create}});Object.defineProperty(fe,"lazy",{enumerable:!0,get:function(){return $b.create}});Object.defineProperty(fe,"ValidationError",{enumerable:!0,get:function(){return qb.default}});Object.defineProperty(fe,"reach",{enumerable:!0,get:function(){return Wb.default}});Object.defineProperty(fe,"isSchema",{enumerable:!0,get:function(){return Vy.default}});Object.defineProperty(fe,"setLocale",{enumerable:!0,get:function(){return Qb.default}});Object.defineProperty(fe,"BaseSchema",{enumerable:!0,get:function(){return jb.default}});var Uy=Un(ny()),vd=Un(uy()),My=Un(dy()),Fy=Un(my()),ky=Un(Ey()),By=Un(Dy()),Gy=Un(Ny()),Vb=Nn(),$b=Py(),qb=uo(Dn()),Wb=uo(Ed()),Vy=uo(Ni()),Qb=uo(Ly()),jb=uo(rr());function uo(t){return t&&t.__esModule?t:{default:t}}function $y(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return $y=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=$y();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 Hb(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 qy=H(Ld=>{"use strict";Object.defineProperty(Ld,"__esModule",{value:!0});var Pd=Ud();Ld.default=()=>{(0,Pd.registerOptionPreset)("npm-node-cron",{presetId:"npm-node-cron",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:0,maxValue:11},daysOfWeek:{minValue:0,maxValue:6},years:{minValue:1970,maxValue:2099}}),(0,Pd.registerOptionPreset)("aws-cloud-watch",{presetId:"aws-cloud-watch",useSeconds:!1,useYears:!0,useAliases:!0,useBlankDay:!0,allowOnlyOneBlankDayField:!0,mustHaveBlankDayField:!0,useLastDayOfMonth:!0,useLastDayOfWeek:!0,useNearestWeekday:!0,useNthWeekdayOfMonth:!0,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:1,maxValue:7},years:{minValue:1970,maxValue:2199}}),(0,Pd.registerOptionPreset)("npm-cron-schedule",{presetId:"npm-cron-schedule",useSeconds:!0,useYears:!1,useAliases:!0,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:1,maxValue:31},months:{minValue:1,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}})}});var Ud=H(Le=>{"use strict";var Yb=Le&&Le.__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]}),Kb=Le&&Le.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Jb=Le&&Le.__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)&&Yb(e,t,r);return Kb(e,t),e},zb=Le&&Le.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Le,"__esModule",{value:!0});Le.validateOptions=Le.registerOptionPreset=Le.getOptionPresets=Le.getOptionPreset=void 0;var b=Jb(Nd());Nd();var co=xt(),Zb=zb(qy());Rt();var Mn={default:{presetId:"default",useSeconds:!1,useYears:!1,useAliases:!1,useBlankDay:!1,allowOnlyOneBlankDayField:!1,mustHaveBlankDayField:!1,useLastDayOfMonth:!1,useLastDayOfWeek:!1,useNearestWeekday:!1,useNthWeekdayOfMonth:!1,seconds:{minValue:0,maxValue:59},minutes:{minValue:0,maxValue:59},hours:{minValue:0,maxValue:23},daysOfMonth:{minValue:0,maxValue:31},months:{minValue:0,maxValue:12},daysOfWeek:{minValue:0,maxValue:7},years:{minValue:1970,maxValue:2099}}},Wy=b.object({presetId:b.string().required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),minutes:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),hours:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfMonth:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),months:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),daysOfWeek:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required(),years:b.object({minValue:b.number().min(0).required(),maxValue:b.number().min(0).required(),lowerLimit:b.number().min(0),upperLimit:b.number().min(0)}).required()}).required(),Xb=t=>Mn[t]?(0,co.valid)(Mn[t]):(0,co.err)(`Option preset '${t}' not found.`);Le.getOptionPreset=Xb;var ew=()=>Mn;Le.getOptionPresets=ew;var tw=(t,e)=>{Mn[t]=Wy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Le.registerOptionPreset=tw;var rw=t=>{var e,r,n,i,s,o,a,u,c,l,d,f,m,p,g,y,T,_,S,x;try{(0,Zb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Mn[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);E=Mn[t.preset]}else E=t.preset;else E=Mn.default;let I=Object.assign(Object.assign({presetId:E.presetId,preset:E},{useSeconds:E.useSeconds,useYears:E.useYears,useAliases:(e=E.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:E.useBlankDay,allowOnlyOneBlankDayField:E.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=E.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=E.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=E.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=E.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=E.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=E.seconds.lowerLimit)!==null&&a!==void 0?a:E.seconds.minValue,upperLimit:(u=E.seconds.upperLimit)!==null&&u!==void 0?u:E.seconds.maxValue},minutes:{lowerLimit:(c=E.minutes.lowerLimit)!==null&&c!==void 0?c:E.minutes.minValue,upperLimit:(l=E.minutes.upperLimit)!==null&&l!==void 0?l:E.minutes.maxValue},hours:{lowerLimit:(d=E.hours.lowerLimit)!==null&&d!==void 0?d:E.hours.minValue,upperLimit:(f=E.hours.upperLimit)!==null&&f!==void 0?f:E.hours.maxValue},daysOfMonth:{lowerLimit:(m=E.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:E.daysOfMonth.minValue,upperLimit:(p=E.daysOfMonth.upperLimit)!==null&&p!==void 0?p:E.daysOfMonth.maxValue},months:{lowerLimit:(g=E.months.lowerLimit)!==null&&g!==void 0?g:E.months.minValue,upperLimit:(y=E.months.upperLimit)!==null&&y!==void 0?y:E.months.maxValue},daysOfWeek:{lowerLimit:(T=E.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:E.daysOfWeek.minValue,upperLimit:(_=E.daysOfWeek.upperLimit)!==null&&_!==void 0?_:E.daysOfWeek.maxValue},years:{lowerLimit:(S=E.years.lowerLimit)!==null&&S!==void 0?S:E.years.minValue,upperLimit:(x=E.years.upperLimit)!==null&&x!==void 0?x:E.years.maxValue}}),t.override),w=b.object({presetId:b.string().required(),preset:Wy.required(),useSeconds:b.boolean().required(),useYears:b.boolean().required(),useAliases:b.boolean(),useBlankDay:b.boolean().required(),allowOnlyOneBlankDayField:b.boolean().required(),mustHaveBlankDayField:b.boolean(),useLastDayOfMonth:b.boolean(),useLastDayOfWeek:b.boolean(),useNearestWeekday:b.boolean(),useNthWeekdayOfMonth:b.boolean(),seconds:b.object({lowerLimit:b.number().min(E.seconds.minValue).max(E.seconds.maxValue),upperLimit:b.number().min(E.seconds.minValue).max(E.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(E.minutes.minValue).max(E.minutes.maxValue),upperLimit:b.number().min(E.minutes.minValue).max(E.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(E.hours.minValue).max(E.hours.maxValue),upperLimit:b.number().min(E.hours.minValue).max(E.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue),upperLimit:b.number().min(E.daysOfMonth.minValue).max(E.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(E.months.minValue).max(E.months.maxValue),upperLimit:b.number().min(E.months.minValue).max(E.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue),upperLimit:b.number().min(E.daysOfWeek.minValue).max(E.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(E.years.minValue).max(E.years.maxValue),upperLimit:b.number().min(E.years.minValue).max(E.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(w)}catch(E){return(0,co.err)(E.errors)}};Le.validateOptions=rw});var qt=H((lo,Fd)=>{"use strict";var kn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var Fn=xt(),nw=kn(Tg()),iw=kn(Ag()),sw=kn(Sg()),ow=kn(_g()),aw=kn(Ig()),uw=kn(Og()),cw=kn(xg()),lw=Ud();Rt();var dw=(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)},Md=(t,e={})=>{let r=(0,lw.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=dw(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,nw.default)(s,n)),o.push((0,iw.default)(s,n)),o.push((0,sw.default)(s,n)),o.push((0,ow.default)(s,n)),o.push((0,aw.default)(s,n)),o.push((0,uw.default)(s,n)),n.useYears&&o.push((0,cw.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)};lo.default=Md;Fd.exports=Md;Fd.exports.default=Md});var mT=H(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});var sr=class extends Error{},jd=class extends sr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Hd=class extends sr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Yd=class extends sr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Vn=class extends sr{},Nu=class extends sr{constructor(e){super(`Invalid unit ${e}`)}},Ke=class extends sr{},jt=class extends sr{constructor(){super("Zone is an abstract class")}},D="numeric",Dt="short",it="long",Pu={year:D,month:D,day:D},gE={year:D,month:Dt,day:D},pw={year:D,month:Dt,day:D,weekday:Dt},yE={year:D,month:it,day:D},EE={year:D,month:it,day:D,weekday:it},TE={hour:D,minute:D},AE={hour:D,minute:D,second:D},SE={hour:D,minute:D,second:D,timeZoneName:Dt},_E={hour:D,minute:D,second:D,timeZoneName:it},IE={hour:D,minute:D,hourCycle:"h23"},OE={hour:D,minute:D,second:D,hourCycle:"h23"},xE={hour:D,minute:D,second:D,hourCycle:"h23",timeZoneName:Dt},RE={hour:D,minute:D,second:D,hourCycle:"h23",timeZoneName:it},bE={year:D,month:D,day:D,hour:D,minute:D},wE={year:D,month:D,day:D,hour:D,minute:D,second:D},CE={year:D,month:Dt,day:D,hour:D,minute:D},DE={year:D,month:Dt,day:D,hour:D,minute:D,second:D},fw={year:D,month:Dt,day:D,weekday:Dt,hour:D,minute:D},vE={year:D,month:it,day:D,hour:D,minute:D,timeZoneName:Dt},NE={year:D,month:it,day:D,hour:D,minute:D,second:D,timeZoneName:Dt},PE={year:D,month:it,day:D,weekday:it,hour:D,minute:D,timeZoneName:it},LE={year:D,month:it,day:D,weekday:it,hour:D,minute:D,second:D,timeZoneName:it},Pr=class{get type(){throw new jt}get name(){throw new jt}get ianaName(){return this.name}get isUniversal(){throw new jt}offsetName(e,r){throw new jt}formatOffset(e,r){throw new jt}offset(e){throw new jt}equals(e){throw new jt}get isValid(){throw new jt}},kd=null,Eo=class t extends Pr{static get instance(){return kd===null&&(kd=new t),kd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ME(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Du={};function mw(t){return Du[t]||(Du[t]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),Du[t]}var hw={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function gw(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 yw(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=hw[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var Ru={},or=class t extends Pr{static create(e){return Ru[e]||(Ru[e]=new t(e)),Ru[e]}static resetCache(){Ru={},Du={}}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=t.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return ME(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=mw(this.name),[i,s,o,a,u,c,l]=n.formatToParts?yw(n,r):gw(n,r);a==="BC"&&(i=-Math.abs(i)+1);let f=op({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,p=m%1e3;return m-=p>=0?p:1e3+p,(f-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Qy={};function Ew(t,e={}){let r=JSON.stringify([t,e]),n=Qy[r];return n||(n=new Intl.ListFormat(t,e),Qy[r]=n),n}var Kd={};function Jd(t,e={}){let r=JSON.stringify([t,e]),n=Kd[r];return n||(n=new Intl.DateTimeFormat(t,e),Kd[r]=n),n}var zd={};function Tw(t,e={}){let r=JSON.stringify([t,e]),n=zd[r];return n||(n=new Intl.NumberFormat(t,e),zd[r]=n),n}var Zd={};function Aw(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Zd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Zd[i]=s),s}var ho=null;function Sw(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}function _w(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=Jd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Jd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function Iw(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Ow(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function xw(t){let e=[];for(let r=1;r<=7;r++){let n=_e.utc(2016,11,13+r);e.push(t(n))}return e}function bu(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function Rw(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 Xd=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=Tw(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):sp(e,3);return Re(r,this.padTo)}}},ep=class{constructor(e,r,n){this.opts=n;let i;if(e.zone.isUniversal){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&or.create(a).valid?(i=a,this.dt=e):(i="UTC",n.timeZoneName?this.dt=e:this.dt=e.offset===0?e:_e.fromMillis(e.ts+e.offset*60*1e3))}else e.zone.type==="system"?this.dt=e:(this.dt=e,i=e.zone.name);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=Jd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},tp=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&UE()&&(this.rtf=Aw(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):$w(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},Se=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.defaultToEN)}static create(e,r,n,i=!1){let s=e||Ee.defaultLocale,o=s||(i?"en-US":Sw()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Kd={},zd={},Zd={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=_w(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=Iw(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=Rw(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 bu(this,e,n,BE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Ow(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return bu(this,e,n,$E,()=>{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]=xw(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return bu(this,void 0,e,()=>qE,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return bu(this,e,r,WE,()=>{let n={era:e};return this.eraCache[e]||(this.eraCache[e]=[_e.utc(-40,1,1),_e.utc(2017,1,1)].map(i=>this.extract(i,n,"era"))),this.eraCache[e]})}extract(e,r,n){let i=this.dtFormatter(e,r),s=i.formatToParts(),o=s.find(a=>a.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Xd(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new ep(e,this.intl,r)}relFormatter(e={}){return new tp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ew(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}},Bd=null,st=class t extends Pr{static get utcInstance(){return Bd===null&&(Bd=new t(0)),Bd}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(Bu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Lu=class extends Pr{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 Nr(t,e){if(ae(t)||t===null)return e;if(t instanceof Pr)return t;if(bw(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?Eo.instance:r==="utc"||r==="gmt"?st.utcInstance:st.parseSpecifier(r)||or.create(t)}else return qn(t)?st.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Lu(t)}var jy=()=>Date.now(),Hy="system",Yy=null,Ky=null,Jy=null,zy=60,Zy,Ee=class{static get now(){return jy}static set now(e){jy=e}static set defaultZone(e){Hy=e}static get defaultZone(){return Nr(Hy,Eo.instance)}static get defaultLocale(){return Yy}static set defaultLocale(e){Yy=e}static get defaultNumberingSystem(){return Ky}static set defaultNumberingSystem(e){Ky=e}static get defaultOutputCalendar(){return Jy}static set defaultOutputCalendar(e){Jy=e}static get twoDigitCutoffYear(){return zy}static set twoDigitCutoffYear(e){zy=e%100}static get throwOnInvalid(){return Zy}static set throwOnInvalid(e){Zy=e}static resetCaches(){Se.resetCache(),or.resetCache()}};function ae(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function ku(t){return typeof t=="number"&&t%1===0}function bw(t){return typeof t=="string"}function ww(t){return Object.prototype.toString.call(t)==="[object Date]"}function UE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Cw(t){return Array.isArray(t)?t:[t]}function Xy(t,e,r){if(t.length!==0)return t.reduce((n,i)=>{let s=[e(i),i];return n&&r(n[0],s[0])===n[0]?n:s},null)[1]}function Dw(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Vi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function ir(t,e,r){return ku(t)&&t>=e&&t<=r}function vw(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 vr(t){if(!(ae(t)||t===null||t===""))return parseInt(t,10)}function Bn(t){if(!(ae(t)||t===null||t===""))return parseFloat(t)}function ip(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function sp(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Uu(t,e){let r=vw(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function op(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 Mu(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 rp(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function ME(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 Bu(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 FE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ke(`Invalid unit value ${t}`);return e}function Fu(t,e){let r={};for(let n in t)if(Vi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=FE(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Gu(t){return Dw(t,["hour","minute","second","millisecond"])}var Nw=["January","February","March","April","May","June","July","August","September","October","November","December"],kE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Pw=["J","F","M","A","M","J","J","A","S","O","N","D"];function BE(t){switch(t){case"narrow":return[...Pw];case"short":return[...kE];case"long":return[...Nw];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 GE=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],VE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Lw=["M","T","W","T","F","S","S"];function $E(t){switch(t){case"narrow":return[...Lw];case"short":return[...VE];case"long":return[...GE];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var qE=["AM","PM"],Uw=["Before Christ","Anno Domini"],Mw=["BC","AD"],Fw=["B","A"];function WE(t){switch(t){case"narrow":return[...Fw];case"short":return[...Mw];case"long":return[...Uw];default:return null}}function kw(t){return qE[t.hour<12?0:1]}function Bw(t,e){return $E(e)[t.weekday-1]}function Gw(t,e){return BE(e)[t.month-1]}function Vw(t,e){return WE(e)[t.year<0?0:1]}function $w(t,e,r="always",n=!1){let i={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},s=["hours","minutes","seconds"].indexOf(t)===-1;if(r==="auto"&&s){let d=t==="days";switch(e){case 1:return d?"tomorrow":`next ${i[t][0]}`;case-1:return d?"yesterday":`last ${i[t][0]}`;case 0:return d?"today":`this ${i[t][0]}`}}let o=Object.is(e,-0)||e<0,a=Math.abs(e),u=a===1,c=i[t],l=n?u?c[1]:c[2]||c[1]:u?i[t][0]:t;return o?`${a} ${l} ago`:`in ${a} ${l}`}function eE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var qw={D:Pu,DD:gE,DDD:yE,DDDD:EE,t:TE,tt:AE,ttt:SE,tttt:_E,T:IE,TT:OE,TTT:xE,TTTT:RE,f:bE,ff:CE,fff:vE,ffff:PE,F:wE,FF:DE,FFF:NE,FFFF:LE},rt=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 qw[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=(m,p)=>this.loc.extract(e,m,p),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?kw(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,p)=>n?Gw(e,m):s(p?{month:m}:{month:m,day:"numeric"},"month"),c=(m,p)=>n?Bw(e,m):s(p?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let p=t.macroTokenToFormatOpts(m);return p?this.formatWithSystemDefault(e,p):m},d=m=>n?Vw(e,m):s({era:m},"era"),f=m=>{switch(m){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return a();case"d":return i?s({day:"numeric"},"day"):this.num(e.day);case"dd":return i?s({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return c("short",!0);case"cccc":return c("long",!0);case"ccccc":return c("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return c("short",!1);case"EEEE":return c("long",!1);case"EEEEE":return c("narrow",!1);case"L":return i?s({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return i?s({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return u("short",!0);case"LLLL":return u("long",!0);case"LLLLL":return u("narrow",!0);case"M":return i?s({month:"numeric"},"month"):this.num(e.month);case"MM":return i?s({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return u("short",!1);case"MMMM":return u("long",!1);case"MMMMM":return u("narrow",!1);case"y":return i?s({year:"numeric"},"year"):this.num(e.year);case"yy":return i?s({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return i?s({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return i?s({year:"numeric"},"year"):this.num(e.year,6);case"G":return d("short");case"GG":return d("long");case"GGGGG":return d("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return l(m)}};return eE(t.parseFormat(r),f)}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 eE(s,i(a))}},nt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},QE=/[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 qi(...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 Wi(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 jE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=vr(e[r+i]);return[n,null,r+i]}}var HE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Ww=`(?:${HE.source}?(?:\\[(${QE.source})\\])?)?`,ap=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,YE=RegExp(`${ap.source}${Ww}`),up=RegExp(`(?:T${YE.source})?`),Qw=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,jw=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Hw=/(\d{4})-?(\d{3})/,Yw=jE("weekYear","weekNumber","weekDay"),Kw=jE("year","ordinal"),Jw=/(\d{4})-(\d\d)-(\d\d)/,KE=RegExp(`${ap.source} ?(?:${HE.source}|(${QE.source}))?`),zw=RegExp(`(?: ${KE.source})?`);function Gi(t,e,r){let n=t[e];return ae(n)?r:vr(n)}function Zw(t,e){return[{year:Gi(t,e),month:Gi(t,e+1,1),day:Gi(t,e+2,1)},null,e+3]}function Qi(t,e){return[{hours:Gi(t,e,0),minutes:Gi(t,e+1,0),seconds:Gi(t,e+2,0),milliseconds:ip(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Bu(t[e+1],t[e+2]),i=r?null:st.instance(n);return[{},i,e+3]}function So(t,e){let r=t[e]?or.create(t[e]):null;return[{},r,e+1]}var Xw=RegExp(`^T?${ap.source}$`),eC=/^-?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 tC(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",f=(m,p=!1)=>m!==void 0&&(p||m&&l)?-m:m;return[{years:f(Bn(r)),months:f(Bn(n)),weeks:f(Bn(i)),days:f(Bn(s)),hours:f(Bn(o)),minutes:f(Bn(a)),seconds:f(Bn(u),u==="-0"),milliseconds:f(ip(c),d)}]}var rC={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 cp(t,e,r,n,i,s,o){let a={year:e.length===2?rp(vr(e)):vr(e),month:kE.indexOf(r)+1,day:vr(n),hour:vr(i),minute:vr(s)};return o&&(a.second=vr(o)),t&&(a.weekday=t.length>3?GE.indexOf(t)+1:VE.indexOf(t)+1),a}var nC=/^(?:(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 iC(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,f=cp(e,i,n,r,s,o,a),m;return u?m=rC[u]:c?m=0:m=Bu(l,d),[f,new st(m)]}function sC(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var oC=/^(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$/,aC=/^(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$/,uC=/^(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 tE(t){let[,e,r,n,i,s,o,a]=t;return[cp(e,i,n,r,s,o,a),st.utcInstance]}function cC(t){let[,e,r,n,i,s,o,a]=t;return[cp(e,a,r,n,i,s,o),st.utcInstance]}var lC=$i(Qw,up),dC=$i(jw,up),pC=$i(Hw,up),fC=$i(YE),JE=qi(Zw,Qi,Ao,So),mC=qi(Yw,Qi,Ao,So),hC=qi(Kw,Qi,Ao,So),gC=qi(Qi,Ao,So);function yC(t){return Wi(t,[lC,JE],[dC,mC],[pC,hC],[fC,gC])}function EC(t){return Wi(sC(t),[nC,iC])}function TC(t){return Wi(t,[oC,tE],[aC,tE],[uC,cC])}function AC(t){return Wi(t,[eC,tC])}var SC=qi(Qi);function _C(t){return Wi(t,[Xw,SC])}var IC=$i(Jw,zw),OC=$i(KE),xC=qi(Qi,Ao,So);function RC(t){return Wi(t,[IC,JE],[OC,xC])}var bC="Invalid Duration",zE={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}},wC={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},...zE},ft=146097/400,ki=146097/4800,CC={years:{quarters:4,months:12,weeks:ft/7,days:ft,hours:ft*24,minutes:ft*24*60,seconds:ft*24*60*60,milliseconds:ft*24*60*60*1e3},quarters:{months:3,weeks:ft/28,days:ft/4,hours:ft*24/4,minutes:ft*24*60/4,seconds:ft*24*60*60/4,milliseconds:ft*24*60*60*1e3/4},months:{weeks:ki/7,days:ki,hours:ki*24,minutes:ki*24*60,seconds:ki*24*60*60,milliseconds:ki*24*60*60*1e3},...zE},Gn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],DC=Gn.slice(0).reverse();function Dr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new De(n)}function vC(t){return t<0?Math.floor(t):Math.ceil(t)}function ZE(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?vC(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function NC(t,e){DC.reduce((r,n)=>ae(e[n])?r:(r&&ZE(t,e,r,e,n),n),null)}function PC(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?CC:wC;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||Se.create(),this.conversionAccuracy=r?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,r){return t.fromObject({milliseconds:e},r)}static fromObject(e,r={}){if(e==null||typeof e!="object")throw new Ke(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Fu(e,t.normalizeUnit),loc:Se.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(qn(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ke(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=AC(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]=_C(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 nt?e:new nt(e,r);if(Ee.throwOnInvalid)throw new Yd(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 Nu(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?rt.create(this.loc,n).formatDurationFromString(this,e):bC}toHuman(e={}){let r=Gn.map(n=>{let i=this.values[n];return ae(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+=sp(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();if(r<0||r>=864e5)return null;e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e};let n=this.shiftTo("hours","minutes","seconds","milliseconds"),i=e.format==="basic"?"hhmm":"hh:mm";(!e.suppressSeconds||n.seconds!==0||n.milliseconds!==0)&&(i+=e.format==="basic"?"ss":":ss",(!e.suppressMilliseconds||n.milliseconds!==0)&&(i+=".SSS"));let s=n.toFormat(i);return e.includePrefix&&(s="T"+s),s}toJSON(){return this.toISO()}toString(){return this.toISO()}toMillis(){return this.as("milliseconds")}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of Gn)(Vi(r.values,i)||Vi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Dr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=FE(e(this.values[n],n));return Dr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Fu(e,t.normalizeUnit)};return Dr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Dr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return NC(this.matrix,e),Dr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=PC(this.normalize().shiftToAll().toObject());return Dr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of 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)&&ZE(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 Dr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Dr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Gn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Bi="Invalid Interval";function LC(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 nt?e:new nt(e,r);if(Ee.throwOnInvalid)throw new Hd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=LC(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=De.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=De.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=De.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=De.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=De.fromDurationLike(e);if(!this.isValid||!r.isValid||r.as("milliseconds")===0)return[];let{s:n}=this,i=1,s,o=[];for(;n<this.e;){let a=this.start.plus(r.mapUnits(u=>u*i));s=+a>+this.e?this.e:a,o.push(t.fromDateTimes(n,s)),n=s,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;let r=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return r>=n?null:t.fromDateTimes(r,n)}union(e){if(!this.isValid)return this;let r=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return t.fromDateTimes(r,n)}static merge(e){let[r,n]=e.sort((i,s)=>i.s-s.s).reduce(([i,s],o)=>s?s.overlaps(o)||s.abutsStart(o)?[i,s.union(o)]:[i.concat([s]),o]:[i,o],[[],null]);return n&&r.push(n),r}static xor(e){let r=null,n=0,i=[],s=e.map(u=>[{time:u.s,type:"s"},{time:u.e,type:"e"}]),o=Array.prototype.concat(...s),a=o.sort((u,c)=>u.time-c.time);for(let u of a)n+=u.type==="s"?1:-1,n===1?r=u.time:(r&&+r!=+u.time&&i.push(t.fromDateTimes(r,u.time)),r=null);return t.merge(i)}difference(...e){return t.xor([this].concat(e)).map(r=>this.intersection(r)).filter(r=>r&&!r.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} \u2013 ${this.e.toISO()})`:Bi}toLocaleString(e=Pu,r={}){return this.isValid?rt.create(this.s.loc.clone(r),e).formatInterval(this):Bi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Bi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Bi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Bi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Bi}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=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return or.isValidZone(e)}static normalizeZone(e){return Nr(e,Ee.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:UE()}}};function rE(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 UC(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=rE(u,c);return(l-l%7)/7}],["days",rE]],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 MC(t,e,r,n){let[i,s,o,a]=UC(t,e,r),u=e-i,c=r.filter(d=>["hours","minutes","seconds","milliseconds"].indexOf(d)>=0);c.length===0&&(o<e&&(o=i.plus({[a]:1})),o!==i&&(s[a]=(s[a]||0)+u/(o-i)));let l=De.fromObject(s,n);return c.length>0?De.fromMillis(u,n).shiftTo(...c).plus(l):l}var lp={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"},nE={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]},FC=lp.hanidec.replace(/[\[|\]]/g,"").split("");function kC(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(lp.hanidec)!==-1)e+=FC.indexOf(t[r]);else for(let i in nE){let[s,o]=nE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function wt({numberingSystem:t},e=""){return new RegExp(`${lp[t||"latn"]}${e}`)}var BC="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(kC(r))}}var GC=String.fromCharCode(160),XE=`[ ${GC}]`,eT=new RegExp(XE,"g");function VC(t){return t.replace(/\./g,"\\.?").replace(eT,XE)}function iE(t){return t.replace(/\./g,"").replace(eT," ").toLowerCase()}function Ct(t,e){return t===null?null:{regex:RegExp(t.map(VC).join("|")),deser:([r])=>t.findIndex(n=>iE(r)===iE(n))+e}}function sE(t,e){return{regex:t,deser:([,r,n])=>Bu(r,n),groups:e}}function Gd(t){return{regex:t,deser:([e])=>e}}function $C(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function qC(t,e){let r=wt(e),n=wt(e,"{2}"),i=wt(e,"{3}"),s=wt(e,"{4}"),o=wt(e,"{6}"),a=wt(e,"{1,2}"),u=wt(e,"{1,3}"),c=wt(e,"{1,6}"),l=wt(e,"{1,9}"),d=wt(e,"{2,4}"),f=wt(e,"{4,6}"),m=y=>({regex:RegExp($C(y.val)),deser:([T])=>T,literal:!0}),g=(y=>{if(t.literal)return m(y);switch(y.val){case"G":return Ct(e.eras("short",!1),0);case"GG":return Ct(e.eras("long",!1),0);case"y":return le(c);case"yy":return le(d,rp);case"yyyy":return le(s);case"yyyyy":return le(f);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return Ct(e.months("short",!0,!1),1);case"MMMM":return Ct(e.months("long",!0,!1),1);case"L":return le(a);case"LL":return le(n);case"LLL":return Ct(e.months("short",!1,!1),1);case"LLLL":return Ct(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 Gd(l);case"uu":return Gd(a);case"uuu":return le(r);case"a":return Ct(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,rp);case"W":return le(a);case"WW":return le(n);case"E":case"c":return le(r);case"EEE":return Ct(e.weekdays("short",!1,!1),1);case"EEEE":return Ct(e.weekdays("long",!1,!1),1);case"ccc":return Ct(e.weekdays("short",!0,!1),1);case"cccc":return Ct(e.weekdays("long",!0,!1),1);case"Z":case"ZZ":return sE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return sE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Gd(/[a-z_+-/]{1,256}?/i);default:return m(y)}})(t)||{invalidReason:BC};return g.token=t,g}var WC={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 QC(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=WC[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function jC(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function HC(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Vi(r,o)){let a=r[o],u=a.groups?a.groups+1:1;!a.literal&&a.token&&(i[a.token.val[0]]=a.deser(n.slice(s,s+u))),s+=u}return[n,i]}else return[n,{}]}function YC(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 ae(t.z)||(r=or.create(t.z)),ae(t.Z)||(r||(r=new st(t.Z)),n=t.Z),ae(t.q)||(t.M=(t.q-1)*3+1),ae(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),ae(t.u)||(t.S=ip(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Vd=null;function KC(){return Vd||(Vd=_e.fromMillis(1555555555555)),Vd}function JC(t,e){if(t.literal)return t;let r=rt.macroTokenToFormatOpts(t.val),n=nT(r,e);return n==null||n.includes(void 0)?t:n}function tT(t,e){return Array.prototype.concat(...t.map(r=>JC(r,e)))}function rT(t,e,r){let n=tT(rt.parseFormat(r),t),i=n.map(o=>qC(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=jC(i),u=RegExp(o,"i"),[c,l]=HC(e,u,a),[d,f,m]=l?YC(l):[null,null,void 0];if(Vi(l,"a")&&Vi(l,"H"))throw new Vn("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:f,specificOffset:m}}}function zC(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=rT(t,e,r);return[n,i,s,o]}function nT(t,e){return t?rt.create(e,t).formatDateTimeParts(KC()).map(i=>QC(i,t)):null}var iT=[0,31,59,90,120,151,181,212,243,273,304,334],sT=[0,31,60,91,121,152,182,213,244,274,305,335];function mt(t,e){return new nt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function oT(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 aT(t,e,r){return r+(To(t)?sT:iT)[e-1]}function uT(t,e){let r=To(t)?sT:iT,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function np(t){let{year:e,month:r,day:n}=t,i=aT(e,r,n),s=oT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Mu(a)):o>Mu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Gu(t)}}function oE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=oT(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=uT(a,o);return{year:a,month:u,day:c,...Gu(t)}}function $d(t){let{year:e,month:r,day:n}=t,i=aT(e,r,n);return{year:e,ordinal:i,...Gu(t)}}function aE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=uT(e,r);return{year:e,month:n,day:i,...Gu(t)}}function ZC(t){let e=ku(t.weekYear),r=ir(t.weekNumber,1,Mu(t.weekYear)),n=ir(t.weekday,1,7);return e?r?n?!1:mt("weekday",t.weekday):mt("week",t.week):mt("weekYear",t.weekYear)}function XC(t){let e=ku(t.year),r=ir(t.ordinal,1,go(t.year));return e?r?!1:mt("ordinal",t.ordinal):mt("year",t.year)}function cT(t){let e=ku(t.year),r=ir(t.month,1,12),n=ir(t.day,1,Uu(t.year,t.month));return e?r?n?!1:mt("day",t.day):mt("month",t.month):mt("year",t.year)}function lT(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:mt("millisecond",i):mt("second",n):mt("minute",r):mt("hour",e)}var qd="Invalid DateTime",uE=864e13;function wu(t){return new nt("unsupported zone",`the zone "${t.name}" is not supported`)}function Wd(t){return t.weekData===null&&(t.weekData=np(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function dT(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 cE(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 vu(t,e,r){return dT(op(t),e,r)}function lE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Uu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=De.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),a=op(s),[u,c]=dT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new nt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Cu(t,e,r=!0){return t.isValid?rt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Qd(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 dE(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 pT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},eD={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},tD={ordinal:1,hour:0,minute:0,second:0,millisecond:0},fT=["year","month","day","hour","minute","second","millisecond"],rD=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],nD=["year","ordinal","hour","minute","second","millisecond"];function pE(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 Nu(t);return e}function fE(t,e){let r=Nr(e.zone,Ee.defaultZone),n=Se.fromObject(e),i=Ee.now(),s,o;if(ae(t.year))s=i;else{for(let c of fT)ae(t[c])&&(t[c]=pT[c]);let a=cT(t)||lT(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=vu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function mE(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=sp(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 hE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||Ee.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new nt("invalid input"):null)||(r.isValid?null:wu(r));this.ts=ae(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=cE(this.ts,a),n=Number.isNaN(i.year)?new nt("invalid input"):null,i=n?null:i,s=n?null:a}this._zone=r,this.loc=e.loc||Se.create(),this.invalid=n,this.weekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=hE(arguments),[n,i,s,o,a,u,c]=r;return fE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=hE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=st.utcInstance,fE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=ww(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Nr(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(wu(i))}static fromMillis(e,r={}){if(qn(e))return e<-uE||e>uE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Nr(r.zone,Ee.defaultZone),loc:Se.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:Nr(r.zone,Ee.defaultZone),loc:Se.fromObject(r)});throw new Ke("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Nr(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(wu(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Fu(e,pE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,d=o.weekYear||o.weekNumber,f=Se.fromObject(r);if((l||a)&&d)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&a)throw new Vn("Can't mix ordinal dates with month/day");let m=d||o.weekday&&!l,p,g,y=cE(i,s);m?(p=rD,g=eD,y=np(y)):a?(p=nD,g=tD,y=$d(y)):(p=fT,g=pT);let T=!1;for(let w of p){let B=o[w];ae(B)?T?o[w]=g[w]:o[w]=y[w]:T=!0}let _=m?ZC(o):a?XC(o):cT(o),S=_||lT(o);if(S)return t.invalid(S);let x=m?oE(o):a?aE(o):o,[E,I]=vu(x,s,n),k=new t({ts:E,zone:n,o:I,loc:f});return o.weekday&&l&&e.weekday!==k.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${o.weekday} and a date of ${k.toISO()}`):k}static fromISO(e,r={}){let[n,i]=yC(e);return fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=EC(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=TC(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ae(e)||ae(r))throw new Ke("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=zC(o,e,r);return l?t.invalid(l):fo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=RC(e);return fo(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 nt?e:new nt(e,r);if(Ee.throwOnInvalid)throw new jd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=nT(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return tT(rt.parseFormat(e),Se.fromObject(r)).map(i=>i.val).join("")}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Wd(this).weekYear:NaN}get weekNumber(){return this.isValid?Wd(this).weekNumber:NaN}get weekday(){return this.isValid?Wd(this).weekday:NaN}get ordinal(){return this.isValid?$d(this.c).ordinal:NaN}get monthShort(){return this.isValid?$n.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$n.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$n.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$n.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return To(this.year)}get daysInMonth(){return Uu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?Mu(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=rt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(st.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Nr(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]=vu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(wu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Fu(e,pE),n=!ae(r.weekYear)||!ae(r.weekNumber)||!ae(r.weekday),i=!ae(r.ordinal),s=!ae(r.year),o=!ae(r.month)||!ae(r.day),a=s||o,u=r.weekYear||r.weekNumber;if((a||i)&&u)throw new Vn("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(o&&i)throw new Vn("Can't mix ordinal dates with month/day");let c;n?c=oE({...np(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Uu(c.year,c.month),c.day))):c=aE({...$d(this.c),...r});let[l,d]=vu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e);return po(this,lE(this,r))}minus(e){if(!this.isValid)return this;let r=De.fromDurationLike(e).negate();return po(this,lE(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?rt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):qd}toLocaleString(e=Pu,r={}){return this.isValid?rt.create(this.loc.clone(r),e).formatDateTime(this):qd}toLocaleParts(e={}){return this.isValid?rt.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=Qd(this,o);return a+="T",a+=dE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Qd(this,e==="extended"):null}toISOWeekDate(){return Cu(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":"")+dE(this,o==="extended",r,e,n,s):null}toRFC2822(){return Cu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Cu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Qd(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")),Cu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():qd}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=Cw(r).map(De.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=MC(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),mE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?mE(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 Xy(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ke("max requires all arguments be DateTimes");return Xy(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return rT(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Pu}static get DATE_MED(){return gE}static get DATE_MED_WITH_WEEKDAY(){return pw}static get DATE_FULL(){return yE}static get DATE_HUGE(){return EE}static get TIME_SIMPLE(){return TE}static get TIME_WITH_SECONDS(){return AE}static get TIME_WITH_SHORT_OFFSET(){return SE}static get TIME_WITH_LONG_OFFSET(){return _E}static get TIME_24_SIMPLE(){return IE}static get TIME_24_WITH_SECONDS(){return OE}static get TIME_24_WITH_SHORT_OFFSET(){return xE}static get TIME_24_WITH_LONG_OFFSET(){return RE}static get DATETIME_SHORT(){return bE}static get DATETIME_SHORT_WITH_SECONDS(){return wE}static get DATETIME_MED(){return CE}static get DATETIME_MED_WITH_SECONDS(){return DE}static get DATETIME_MED_WITH_WEEKDAY(){return fw}static get DATETIME_FULL(){return vE}static get DATETIME_FULL_WITH_SECONDS(){return NE}static get DATETIME_HUGE(){return PE}static get DATETIME_HUGE_WITH_SECONDS(){return LE}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&qn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ke(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var iD="3.2.1";ot.DateTime=_e;ot.Duration=De;ot.FixedOffsetZone=st;ot.IANAZone=or;ot.Info=$n;ot.Interval=Wn;ot.InvalidZone=Lu;ot.Settings=Ee;ot.SystemZone=Eo;ot.VERSION=iD;ot.Zone=Pr});var gT=H((JQ,hT)=>{"use strict";var Qn=mT();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))}hT.exports=z});var TT=H((zQ,ET)=>{"use strict";function jn(t){return{start:t,count:1}}function yT(t,e){t.end=e,t.step=e-t.start,t.count=2}function dp(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 sD(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(dp(e,r,jn(i)),r=void 0):r?r.count===1?yT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(jn(r.start)),r=jn(r.end),yT(r,i)):(dp(e,r),r=jn(i)):r=jn(i)}return dp(e,r),e}ET.exports=sD});var ST=H((ZQ,AT)=>{"use strict";var oD=TT();function aD(t,e,r){var n=oD(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(f,m){var p=c.start+m;return(p-c.start)%c.step===0?p:null}).filter(function(f){return f!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}AT.exports=aD});var OT=H((XQ,IT)=>{"use strict";var Hn=gT(),uD=ST(),_T=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Hn(e.currentDate,this._tz),this._startDate=e.startDate?new Hn(e.startDate,this._tz):null,this._endDate=e.endDate?new Hn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(p){if(p instanceof Array)for(var g=0,y=p.length;g<y;g++){var T=p[g];if(U._isValidConstraintChar(n,T)){c.push(T);continue}if(typeof T!="number"||Number.isNaN(T)||T<n.min||T>n.max)throw new Error("Constraint error, got value "+T+" expected range "+n.min+"-"+n.max);c.push(T)}else{if(U._isValidConstraintChar(n,p)){c.push(p);return}var _=+p;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+p+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(p){return p.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var f=0,m=d.length;f<m;f++)l(o(d[f]));else l(o(u));return c.sort(U._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var f=+d[0],m=+d[1];if(Number.isNaN(f)||Number.isNaN(m)||f<n.min||m>n.max)throw new Error("Constraint error, got range "+f+"-"+m+" expected range "+n.min+"-"+n.max);if(f>m)throw new Error("Invalid range: "+u);var p=+c;if(Number.isNaN(p)||p<=0)throw new Error("Constraint error, cannot repeat at every "+p+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var g=f,y=m;g<=y;g++){var T=l.indexOf(g)!==-1;!T&&p>0&&p%c===0?(p=1,l.push(g)):p++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(T,_){for(var S=0,x=_.length;S<x;S++)if(_[S]>=T)return _[S]===T;return _[0]===T}function n(T,_){if(_<6){if(T.getDate()<8&&_===1)return!0;var S=T.getDate()%7?1:0,x=T.getDate()-T.getDate()%7,E=Math.floor(x/7)+S;return E===_}return!1}function i(T){return T.length>0&&T.some(function(_){return typeof _=="string"&&_.indexOf("L")>=0})}e=e||!1;var s=e?"subtract":"add",o=new Hn(this._currentDate,this._tz),a=this._startDate,u=this._endDate,c=o.getTime(),l=0;function d(T){return T.some(function(_){if(!i([_]))return!1;var S=Number.parseInt(_[0])%7;if(Number.isNaN(S))throw new Error("Invalid last weekday of the month expression: "+_);return o.getDay()===S&&o.isLastWeekdayOfMonth()})}for(;l<_T;){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 f=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(f=f||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||d(this.fields.dayOfWeek));var p=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,y=o.getHours();if(!f&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!p&&g&&!f){this._applyTimezoneShift(o,s,"Day");continue}if(p&&!g&&!m){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(y,this.fields.hour)){if(this._dstEnd===y&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==y){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(y-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>=_T)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Hn(o,this._tz),this._hasIterated=!0,o};U.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};U.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};U.prototype.hasNext=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.hasPrev=function(){var t=this._currentDate,e=this._hasIterated;try{return this._findSchedule(!0),!0}catch{return!1}finally{this._currentDate=t,this._hasIterated=e}};U.prototype.iterate=function(e,r){var n=[];if(e>=0)for(var i=0,s=e;i<s;i++)try{var o=this.next();n.push(o),r&&r(o,i)}catch{break}else for(var i=0,s=e;i>s;i--)try{var o=this.prev();n.push(o),r&&r(o,i)}catch{break}return n};U.prototype.reset=function(e){this._currentDate=new Hn(e||this._options.currentDate)};U.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=U.map.length;n<i;++n){var s=U.map[n],o=this.fields[s],a=U.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:U.daysInMonth[this.fields.month[0]-1]}:s==="dayOfWeek"&&(a={min:0,max:6},o=o[o.length-1]===7?o.slice(0,-1):o),r.push(uD(o,a.min,a.max))}return r.join(" ")};U.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new Hn(void 0,n._tz)),U.predefined[s]&&(s=U.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=U.map.length-u.length,l=0,d=U.map.length;l<d;++l){var f=U.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(U._parseField(f,U.parseDefaults[l],U.constraints[l]));else{var p=f==="dayOfWeek"?_(m):m;a.push(U._parseField(f,p,U.constraints[l]))}}for(var g={},l=0,d=U.map.length;l<d;l++){var y=U.map[l];g[y]=a[l]}var T=U._handleMaxDaysInMonth(g);return g.dayOfMonth=T||g.dayOfMonth,new U(g,o);function _(S){var x=S.split("#");if(x.length>1){var E=+x[x.length-1];if(/,/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `,` special characters are incompatible");if(/\//.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `/` special characters are incompatible");if(/-/.test(S))throw new Error("Constraint error, invalid dayOfWeek `#` and `-` special characters are incompatible");if(x.length>2||Number.isNaN(E)||E<1||E>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=E,x[0]}return S}}return i(e,r)};U.fieldsToExpression=function(e,r){function n(f,m,p){if(!m)throw new Error("Validation error, Field "+f+" is missing");if(m.length===0)throw new Error("Validation error, Field "+f+" contains no values");for(var g=0,y=m.length;g<y;g++){var T=m[g];if(!U._isValidConstraintChar(p,T)&&(typeof T!="number"||Number.isNaN(T)||T<p.min||T>p.max))throw new Error("Constraint error, got value "+T+" expected range "+p.min+"-"+p.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(f,m,p){return!m||f!==p[m-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=U._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new U(i,r||{})};IT.exports=U});var RT=H((ej,xT)=>{"use strict";var Vu=OT();function Lr(){}Lr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Vu.parse(e)};if(r.length>6)return{interval:Vu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Lr.parseExpression=function(e,r){return Vu.parse(e,r)};Lr.fieldsToExpression=function(e,r){return Vu.fieldsToExpression(e,r)};Lr.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=Lr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Lr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Lr.parseString(i.toString()))})};xT.exports=Lr});var Jk={};P(Jk,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Ku,BUDIBASE_DATASOURCE_TYPE:()=>Pp,BadRequestError:()=>Pc,BudibaseError:()=>ps,Config:()=>Bp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Up,DEFAULT_JOBS_TABLE_ID:()=>Lp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Yi,DesignDocuments:()=>xo,DocumentType:()=>ye,Duration:()=>Ce,DurationType:()=>am,EmailUnavailableError:()=>fr,Endpoint:()=>Pl,EndpointGroup:()=>Ti,EndpointGroupList:()=>Ga,FeatureDisabledError:()=>Fc,ForbiddenError:()=>Lc,GlobalRole:()=>kp,HTTPError:()=>Ge,Header:()=>et,InternalTable:()=>Ir,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Zu,MIN_VALID_DATE:()=>$T,NotFoundError:()=>Nc,NotImplementedError:()=>Uc,RedisClient:()=>Qe,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,UnexpectedError:()=>vc,UsageLimitError:()=>Mc,UserStatus:()=>zu,ViewName:()=>Fr,accounts:()=>li,auth:()=>_h,blacklist:()=>Rh,cache:()=>wa,configs:()=>rn,constants:()=>Gp,context:()=>Ae,csv:()=>kh,db:()=>jr,docIds:()=>vf,docUpdates:()=>wh,encryption:()=>Th,env:()=>h,errors:()=>Bc,events:()=>ys,features:()=>lh,getPublicError:()=>kc,init:()=>Kk,installation:()=>Jc,locks:()=>_s,logging:()=>ua,middleware:()=>Sh,objectStore:()=>Hf,permissions:()=>ah,platform:()=>Ko,plugins:()=>Oh,queue:()=>Em,redis:()=>xh,roles:()=>oh,security:()=>Um,sessions:()=>rl,setEnv:()=>Co,sql:()=>Fh,tenancy:()=>Yk,timers:()=>Hc,userUtils:()=>dm,users:()=>Es,utils:()=>ls,withEnv:()=>YT});module.exports=YI(Jk);var rn={};P(rn,{analyticsEnabled:()=>Qc,generateConfigID:()=>al,getAIConfig:()=>dF,getConfig:()=>St,getDefaultGoogleConfig:()=>jm,getGoogleConfig:()=>ul,getGoogleDatasourceConfig:()=>Km,getOIDCConfig:()=>uF,getOIDCConfigById:()=>Jm,getOIDCLogosDoc:()=>oF,getPlatformUrl:()=>La,getRecaptchaConfig:()=>pF,getSCIMConfig:()=>lF,getSMTPConfig:()=>cF,getSMTPConfigDoc:()=>G_,getSettingsConfig:()=>Ym,getSettingsConfigDoc:()=>Zc,save:()=>iF});var KI=["user:created","user:updated","user:deleted","user:admin:assigned","user:admin:removed","user:builder:assigned","user:builder:removed","user_group:created","user_group:updated","user_group:deleted","user_group:user_added","user_group:users_deleted","user_group:permissions_edited"],Vh=[...KI],$h={"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 Ll=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ll||{}),Ul=(f=>(f.STRING="string",f.CODE="code",f.LONGFORM="longForm",f.BOOLEAN="boolean",f.NUMBER="number",f.PASSWORD="password",f.LIST="list",f.OBJECT="object",f.JSON="json",f.FILE="file",f.FIELD_GROUP="fieldGroup",f.SELECT="select",f))(Ul||{}),qa=(T=>(T.AIRTABLE="AIRTABLE",T.ARANGODB="ARANGODB",T.BUDIBASE="BUDIBASE",T.COUCHDB="COUCHDB",T.DYNAMODB="DYNAMODB",T.ELASTICSEARCH="ELASTICSEARCH",T.FIRESTORE="FIRESTORE",T.GOOGLE_SHEETS="GOOGLE_SHEETS",T.MONGODB="MONGODB",T.MYSQL="MYSQL",T.ORACLE="ORACLE",T.POSTGRES="POSTGRES",T.REDIS="REDIS",T.REST="REST",T.S3="S3",T.SNOWFLAKE="SNOWFLAKE",T.SQL_SERVER="SQL_SERVER",T))(qa||{});var Ml=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Ml||{});var JI=q(require("lodash")),Sr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Sr||{}),Jt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(Jt||{}),pn=(e=>(e.RANGE="range",e))(pn||{}),Si=(r=>(r.AND="$and",r.OR="$or",r))(Si||{});function Wa(t){return Object.values(Si).includes(t)}function qh(t){return Object.values(Sr).includes(t)}function Wh(t){return Object.values(Jt).includes(t)}function Qa(t){return Object.values(pn).includes(t)}var _i=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(_i||{});var Qh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var jh={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 ZB={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var bs=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(bs||{});var ja=(d=>(d.APP="app",d.TABLE="table",d.USER="user",d.AUTOMATION="automation",d.WEBHOOK="webhook",d.BUILDER="builder",d.CREATOR="creator",d.GLOBAL_BUILDER="globalBuilder",d.QUERY="query",d.VIEW="view",d.LEGACY_VIEW="legacy_view",d))(ja||{});var Ha=t=>t.hosting==="cloud";var Ya=t=>t.authType==="sso";var v="_",Ve="\uFFF0",_r=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 Ir=(e=>(e.USER_METADATA="ta_users",e))(Ir||{}),Fl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Fl||{});var Z=(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))(Z||{}),pe=(x=>(x.TABLE="table",x.ROW="row",x.ROWS="rows",x.WIDE="wide",x.QUERY="query",x.QUERY_PARAMS="queryParams",x.QUERY_LIMIT="queryLimit",x.LOOP_OPTION="loopOption",x.ITEM="item",x.CODE="code",x.FILTERS="filters",x.COLUMN="column",x.TRIGGER_SCHEMA="triggerSchema",x.CRON="cron",x.WEBHOOK_URL="webhookUrl",x.AUTOMATION="automation",x.AUTOMATION_FIELDS="automationFields",x.MULTI_ATTACHMENTS="multi_attachments",x.TRIGGER_FILTER="trigger_filter",x.CATEGORIES="categories",x))(pe||{}),It=(a=>(a.ROW_SAVED="ROW_SAVED",a.ROW_UPDATED="ROW_UPDATED",a.ROW_DELETED="ROW_DELETED",a.WEBHOOK="WEBHOOK",a.APP="APP",a.CRON="CRON",a.ROW_ACTION="ROW_ACTION",a))(It||{});var ne=(O=>(O.SEND_EMAIL_SMTP="SEND_EMAIL_SMTP",O.CREATE_ROW="CREATE_ROW",O.UPDATE_ROW="UPDATE_ROW",O.DELETE_ROW="DELETE_ROW",O.EXECUTE_BASH="EXECUTE_BASH",O.OUTGOING_WEBHOOK="OUTGOING_WEBHOOK",O.EXECUTE_SCRIPT="EXECUTE_SCRIPT",O.EXECUTE_SCRIPT_V2="EXECUTE_SCRIPT_V2",O.EXECUTE_QUERY="EXECUTE_QUERY",O.SERVER_LOG="SERVER_LOG",O.DELAY="DELAY",O.FILTER="FILTER",O.API_REQUEST="API_REQUEST",O.QUERY_ROWS="QUERY_ROWS",O.LOOP="LOOP",O.COLLECT="COLLECT",O.OPENAI="OPENAI",O.TRIGGER_AUTOMATION_RUN="TRIGGER_AUTOMATION_RUN",O.BRANCH="BRANCH",O.CLASSIFY_CONTENT="CLASSIFY_CONTENT",O.PROMPT_LLM="PROMPT_LLM",O.TRANSLATE="TRANSLATE",O.SUMMARISE="SUMMARISE",O.GENERATE_TEXT="GENERATE_TEXT",O.EXTRACT_FILE_DATA="EXTRACT_FILE_DATA",O.EXTRACT_STATE="EXTRACT_STATE",O.LOOP_V2="LOOP_V2",O.discord="discord",O.slack="slack",O.zapier="zapier",O.integromat="integromat",O.n8n="n8n",O))(ne||{}),Hh=[...Object.values(ne),...Object.values(It)];var kl=(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))(kl||{}),Yh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Bl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Bl||{}),Gl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Gl||{});function Kh(t){return t.stepId==="BRANCH"}var Vl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Vl||{});var $l=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))($l||{});var ql="bb_internal";var Jh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ka(t){return!!t.providerType}var Wl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Wl||{});var n$=Object.values(Wl);var u$=["rows","queries","automations"],c$=["queries","automations"];var se;(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})(se||(se={}));var jl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(jl||(jl={}));var M=se.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Or=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},R=se.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),eO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Ze=class t extends Error{constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,se.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)i.path.length>0?(r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Ze.create=t=>new Ze(t);var xi=(t,e)=>{let r;switch(t.code){case R.invalid_type:t.received===M.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case R.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,se.jsonStringifyReplacer)}`;break;case R.unrecognized_keys:r=`Unrecognized key(s) in object: ${se.joinValues(t.keys,", ")}`;break;case R.invalid_union:r="Invalid input";break;case R.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${se.joinValues(t.options)}`;break;case R.invalid_enum_value:r=`Invalid enum value. Expected ${se.joinValues(t.options)}, received '${t.received}'`;break;case R.invalid_arguments:r="Invalid function arguments";break;case R.invalid_return_type:r="Invalid function return type";break;case R.invalid_date:r="Invalid date";break;case R.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}"`:se.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case R.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 R.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 R.custom:r="Invalid input";break;case R.invalid_intersection_types:r="Intersection results could not be merged";break;case R.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case R.not_finite:r="Number must be finite";break;default:r=e.defaultError,se.assertNever(t)}return{message:r}},Xh=xi;function tO(t){Xh=t}function Ja(){return Xh}var za=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},rO=[];function L(t,e){let r=Ja(),n=za({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===xi?void 0:xi].filter(i=>!!i)});t.common.issues.push(n)}var Be=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return J;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,r){let n=[];for(let i of r){let s=await i.key,o=await i.value;n.push({key:s,value:o})}return t.mergeObjectSync(e,n)}static mergeObjectSync(e,r){let n={};for(let i of r){let{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return J;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}},J=Object.freeze({status:"aborted"}),Oi=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Hl=t=>t.status==="aborted",Yl=t=>t.status==="dirty",Ds=t=>t.status==="valid",vs=t=>typeof Promise<"u"&&t instanceof Promise;function Za(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)}function eg(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 ws,Cs,dt=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}},zh=(t,e)=>{if(Ds(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 X(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 ee=class{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return Or(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Be,ctx:{common:e.parent.common,data:e.data,parsedType:Or(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(vs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Or(e)},s=this._parseSync({data:e,path:i.path,parent:i});return zh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Or(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(vs(i)?i:Promise.resolve(i));return zh(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:R.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 Xe({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return lt.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 br.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 Xe({...X(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Rn({...X(this._def),innerType:this,defaultValue:r,typeName:Y.ZodDefault})}brand(){return new Ns({typeName:Y.ZodBranded,type:this,...X(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new bn({...X(this._def),innerType:this,catchValue:r,typeName:Y.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ps.create(this,e)}readonly(){return wn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},nO=/^c[^\s-]{8,}$/i,iO=/^[0-9a-z]+$/,sO=/^[0-9A-HJKMNP-TV-Z]{26}$/,oO=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,aO=/^[a-z0-9_-]{21}$/i,uO=/^[-+]?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)?)??$/,cO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ql,dO=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,pO=/^(([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})))$/,fO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,tg="((\\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])))",mO=new RegExp(`^${tg}$`);function rg(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 hO(t){return new RegExp(`^${rg(t)}$`)}function ng(t){let e=`${tg}T${rg(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 gO(t,e){return!!((e==="v4"||!e)&&dO.test(t)||(e==="v6"||!e)&&pO.test(t))}var xr=class t extends ee{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.string,received:s.parsedType}),J}let n=new Be,i;for(let s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:R.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),L(i,{code:R.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?L(i,{code:R.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&L(i,{code:R.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")cO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"email",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Ql||(Ql=new RegExp(lO,"u")),Ql.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"emoji",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")oO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"uuid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")aO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"nanoid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")nO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")iO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"cuid2",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")sO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ulid",code:R.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),L(i,{validation:"url",code:R.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),L(i,{validation:"regex",code:R.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),L(i,{code:R.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),L(i,{code:R.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?ng(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?mO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?hO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?uO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"duration",code:R.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?gO(e.data,s.version)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"ip",code:R.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?fO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"base64",code:R.invalid_string,message:s.message}),n.dirty()):se.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:R.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}};xr.create=t=>{var e;return new xr({checks:[],typeName:Y.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...X(t)})};function yO(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 ee{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 L(s,{code:R.invalid_type,expected:M.number,received:s.parsedType}),J}let n,i=new Be;for(let s of this._def.checks)s.kind==="int"?se.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:R.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),L(n,{code:R.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),L(n,{code:R.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?yO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),L(n,{code:R.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:R.not_finite,message:s.message}),i.dirty()):se.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"&&se.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};mn.create=t=>new mn({checks:[],typeName:Y.ZodNumber,coerce:t?.coerce||!1,...X(t)});var hn=class t extends ee{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 L(s,{code:R.invalid_type,expected:M.bigint,received:s.parsedType}),J}let n,i=new Be;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),L(n,{code:R.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),L(n,{code:R.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),L(n,{code:R.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):se.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}};hn.create=t=>{var e;return new hn({checks:[],typeName:Y.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...X(t)})};var gn=class extends ee{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.boolean,received:n.parsedType}),J}return $e(e.data)}};gn.create=t=>new gn({typeName:Y.ZodBoolean,coerce:t?.coerce||!1,...X(t)});var yn=class t extends ee{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.date,received:s.parsedType}),J}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_date}),J}let n=new Be,i;for(let s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),L(i,{code:R.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),L(i,{code:R.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):se.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};yn.create=t=>new yn({checks:[],coerce:t?.coerce||!1,typeName:Y.ZodDate,...X(t)});var Ri=class extends ee{_parse(e){if(this._getType(e)!==M.symbol){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.symbol,received:n.parsedType}),J}return $e(e.data)}};Ri.create=t=>new Ri({typeName:Y.ZodSymbol,...X(t)});var En=class extends ee{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.undefined,received:n.parsedType}),J}return $e(e.data)}};En.create=t=>new En({typeName:Y.ZodUndefined,...X(t)});var Tn=class extends ee{_parse(e){if(this._getType(e)!==M.null){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.null,received:n.parsedType}),J}return $e(e.data)}};Tn.create=t=>new Tn({typeName:Y.ZodNull,...X(t)});var Rr=class extends ee{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};Rr.create=t=>new Rr({typeName:Y.ZodAny,...X(t)});var Zt=class extends ee{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};Zt.create=t=>new Zt({typeName:Y.ZodUnknown,...X(t)});var Ot=class extends ee{_parse(e){let r=this._getOrReturnCtx(e);return L(r,{code:R.invalid_type,expected:M.never,received:r.parsedType}),J}};Ot.create=t=>new Ot({typeName:Y.ZodNever,...X(t)});var bi=class extends ee{_parse(e){if(this._getType(e)!==M.undefined){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.void,received:n.parsedType}),J}return $e(e.data)}};bi.create=t=>new bi({typeName:Y.ZodVoid,...X(t)});var Xt=class t extends ee{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==M.array)return L(r,{code:R.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)&&(L(r,{code:o?R.too_big:R.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&&(L(r,{code:R.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&&(L(r,{code:R.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 dt(r,o,r.path,a)))).then(o=>Be.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new dt(r,o,r.path,a)));return Be.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};Xt.create=(t,e)=>new Xt({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...X(e)});function Ii(t){if(t instanceof He){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=lt.create(Ii(n))}return new He({...t._def,shape:()=>e})}else return t instanceof Xt?new Xt({...t._def,type:Ii(t.element)}):t instanceof lt?lt.create(Ii(t.unwrap())):t instanceof $t?$t.create(Ii(t.unwrap())):t instanceof Vt?Vt.create(t.items.map(e=>Ii(e))):t}var He=class t extends ee{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=se.objectKeys(e);return this._cached={shape:e,keys:r}}_parse(e){if(this._getType(e)!==M.object){let c=this._getOrReturnCtx(e);return L(c,{code:R.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 Ot&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new dt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Ot){let c=this._def.unknownKeys;if(c==="passthrough")for(let l of a)u.push({key:{status:"valid",value:l},value:{status:"valid",value:i.data[l]}});else if(c==="strict")a.length>0&&(L(i,{code:R.unrecognized_keys,keys:a}),n.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let l of a){let d=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new dt(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,f=await l.value;c.push({key:d,value:f,alwaysSet:l.alwaysSet})}return c}).then(c=>Be.mergeObjectSync(n,c)):Be.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{var i,s,o,a;let u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,r,n).message)!==null&&o!==void 0?o:n.defaultError;return r.code==="unrecognized_keys"?{message:(a=G.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Y.ZodObject})}setKey(e,r){return this.augment({[e]:r})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let r={};return se.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 se.objectKeys(this.shape).forEach(n=>{e[n]||(r[n]=this.shape[n])}),new t({...this._def,shape:()=>r})}deepPartial(){return Ii(this)}partial(e){let r={};return se.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 se.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof lt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return ig(se.objectKeys(this.shape))}};He.create=(t,e)=>new He({shape:()=>t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...X(e)});He.strictCreate=(t,e)=>new He({shape:()=>t,unknownKeys:"strict",catchall:Ot.create(),typeName:Y.ZodObject,...X(e)});He.lazycreate=(t,e)=>new He({shape:t,unknownKeys:"strip",catchall:Ot.create(),typeName:Y.ZodObject,...X(e)});var An=class extends ee{_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 L(r,{code:R.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 L(r,{code:R.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}};An.create=(t,e)=>new An({options:t,typeName:Y.ZodUnion,...X(e)});var zt=t=>t instanceof _n?zt(t.schema):t instanceof Xe?zt(t.innerType()):t instanceof In?[t.value]:t instanceof On?t.options:t instanceof xn?se.objectValues(t.enum):t instanceof Rn?zt(t._def.innerType):t instanceof En?[void 0]:t instanceof Tn?[null]:t instanceof lt?[void 0,...zt(t.unwrap())]:t instanceof $t?[null,...zt(t.unwrap())]:t instanceof Ns||t instanceof wn?zt(t.unwrap()):t instanceof bn?zt(t._def.innerType):[],Xa=class t extends ee{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.object)return L(r,{code:R.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}):(L(r,{code:R.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,r,n){let i=new Map;for(let s of r){let o=zt(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new t({typeName:Y.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...X(n)})}};function Kl(t,e){let r=Or(t),n=Or(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=se.objectKeys(e),s=se.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Kl(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=Kl(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 ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Hl(s)||Hl(o))return J;let a=Kl(s.value,o.value);return a.valid?((Yl(s)||Yl(o))&&r.dirty(),{status:r.value,value:a.data}):(L(n,{code:R.invalid_intersection_types}),J)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Sn.create=(t,e,r)=>new Sn({left:t,right:e,typeName:Y.ZodIntersection,...X(r)});var Vt=class t extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return L(n,{code:R.invalid_type,expected:M.array,received:n.parsedType}),J;if(n.data.length<this._def.items.length)return L(n,{code:R.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J;!this._def.rest&&n.data.length>this._def.items.length&&(L(n,{code:R.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 dt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>Be.mergeArray(r,o)):Be.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};Vt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Vt({items:t,typeName:Y.ZodTuple,rest:null,...X(e)})};var eu=class t extends ee{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 L(n,{code:R.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 dt(n,a,n.path,a)),value:o._parse(new dt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?Be.mergeObjectAsync(r,i):Be.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof ee?new t({keyType:e,valueType:r,typeName:Y.ZodRecord,...X(n)}):new t({keyType:xr.create(),valueType:e,typeName:Y.ZodRecord,...X(r)})}},wi=class extends ee{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 L(n,{code:R.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 dt(n,a,n.path,[c,"key"])),value:s._parse(new dt(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}}}};wi.create=(t,e,r)=>new wi({valueType:e,keyType:t,typeName:Y.ZodMap,...X(r)});var Ci=class t extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return L(n,{code:R.invalid_type,expected:M.set,received:n.parsedType}),J;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(L(n,{code:R.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&&(L(n,{code:R.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 dt(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)}};Ci.create=(t,e)=>new Ci({valueType:t,minSize:null,maxSize:null,typeName:Y.ZodSet,...X(e)});var tu=class t extends ee{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.function)return L(r,{code:R.invalid_type,expected:M.function,received:r.parsedType}),J;function n(a,u){return za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].filter(c=>!!c),issueData:{code:R.invalid_arguments,argumentsError:u}})}function i(a,u){return za({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ja(),xi].filter(c=>!!c),issueData:{code:R.invalid_return_type,returnTypeError:u}})}let s={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof br){let a=this;return $e(async function(...u){let c=new Ze([]),l=await a._def.args.parseAsync(u,s).catch(m=>{throw c.addIssue(n(u,m)),c}),d=await Reflect.apply(o,this,l);return await a._def.returns._def.type.parseAsync(d,s).catch(m=>{throw c.addIssue(i(d,m)),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),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Ze([i(l,d.error)]);return d.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:Vt.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||Vt.create([]).rest(Zt.create()),returns:r||Zt.create(),typeName:Y.ZodFunction,...X(n)})}},_n=class extends ee{get schema(){return this._def.getter()}_parse(e){let{ctx:r}=this._processInputParams(e);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};_n.create=(t,e)=>new _n({getter:t,typeName:Y.ZodLazy,...X(e)});var In=class extends ee{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return L(r,{received:r.data,code:R.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:e.data}}get value(){return this._def.value}};In.create=(t,e)=>new In({value:t,typeName:Y.ZodLiteral,...X(e)});function ig(t,e){return new On({values:t,typeName:Y.ZodEnum,...X(e)})}var On=class t extends ee{constructor(){super(...arguments),ws.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{expected:se.joinValues(n),received:r.parsedType,code:R.invalid_type}),J}if(Za(this,ws,"f")||eg(this,ws,new Set(this._def.values),"f"),!Za(this,ws,"f").has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{received:r.data,code:R.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})}};ws=new WeakMap;On.create=ig;var xn=class extends ee{constructor(){super(...arguments),Cs.set(this,void 0)}_parse(e){let r=se.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=se.objectValues(r);return L(n,{expected:se.joinValues(i),received:n.parsedType,code:R.invalid_type}),J}if(Za(this,Cs,"f")||eg(this,Cs,new Set(se.getValidEnumValues(this._def.values)),"f"),!Za(this,Cs,"f").has(e.data)){let i=se.objectValues(r);return L(n,{received:n.data,code:R.invalid_enum_value,options:i}),J}return $e(e.data)}get enum(){return this._def.values}};Cs=new WeakMap;xn.create=(t,e)=>new xn({values:t,typeName:Y.ZodNativeEnum,...X(e)});var br=class extends ee{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==M.promise&&r.common.async===!1)return L(r,{code:R.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})))}};br.create=(t,e)=>new br({type:t,typeName:Y.ZodPromise,...X(e)});var Xe=class extends ee{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{L(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){let o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return J;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?J:u.status==="dirty"||r.value==="dirty"?Oi(u.value):u});{if(r.value==="aborted")return J;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?J:a.status==="dirty"||r.value==="dirty"?Oi(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){let a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Ds(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=>Ds(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);se.assertNever(i)}};Xe.create=(t,e,r)=>new Xe({schema:t,typeName:Y.ZodEffects,effect:e,...X(r)});Xe.createWithPreprocess=(t,e,r)=>new Xe({schema:e,effect:{type:"preprocess",transform:t},typeName:Y.ZodEffects,...X(r)});var lt=class extends ee{_parse(e){return this._getType(e)===M.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};lt.create=(t,e)=>new lt({innerType:t,typeName:Y.ZodOptional,...X(e)});var $t=class extends ee{_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:Y.ZodNullable,...X(e)});var Rn=class extends ee{_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:Y.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...X(e)});var bn=class extends ee{_parse(e){let{ctx:r}=this._processInputParams(e),n={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return vs(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Ze(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ze(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:Y.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...X(e)});var Di=class extends ee{_parse(e){if(this._getType(e)!==M.nan){let n=this._getOrReturnCtx(e);return L(n,{code:R.invalid_type,expected:M.nan,received:n.parsedType}),J}return{status:"valid",value:e.data}}};Di.create=t=>new Di({typeName:Y.ZodNaN,...X(t)});var EO=Symbol("zod_brand"),Ns=class extends ee{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?J:s.status==="dirty"?(r.dirty(),Oi(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{let i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?J:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,r){return new t({in:e,out:r,typeName:Y.ZodPipeline})}},wn=class extends ee{_parse(e){let r=this._def.innerType._parse(e),n=i=>(Ds(i)&&(i.value=Object.freeze(i.value)),i);return vs(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};wn.create=(t,e)=>new wn({innerType:t,typeName:Y.ZodReadonly,...X(e)});function sg(t,e={},r){return t?Rr.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})}}):Rr.create()}var TO={object:He.lazycreate},Y;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Y||(Y={}));var AO=(t,e={message:`Input not instance of ${t.name}`})=>sg(r=>r instanceof t,e),og=xr.create,ag=mn.create,SO=Di.create,_O=hn.create,ug=gn.create,IO=yn.create,OO=Ri.create,xO=En.create,RO=Tn.create,bO=Rr.create,wO=Zt.create,CO=Ot.create,DO=bi.create,vO=Xt.create,NO=He.create,PO=He.strictCreate,LO=An.create,UO=Xa.create,MO=Sn.create,FO=Vt.create,kO=eu.create,BO=wi.create,GO=Ci.create,VO=tu.create,$O=_n.create,qO=In.create,WO=On.create,QO=xn.create,jO=br.create,Zh=Xe.create,HO=lt.create,YO=$t.create,KO=Xe.createWithPreprocess,JO=Ps.create,zO=()=>og().optional(),ZO=()=>ag().optional(),XO=()=>ug().optional(),ex={string:t=>xr.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})},tx=J,re=Object.freeze({__proto__:null,defaultErrorMap:xi,setErrorMap:tO,getErrorMap:Ja,makeIssue:za,EMPTY_PATH:rO,addIssueToContext:L,ParseStatus:Be,INVALID:J,DIRTY:Oi,OK:$e,isAborted:Hl,isDirty:Yl,isValid:Ds,isAsync:vs,get util(){return se},get objectUtil(){return jl},ZodParsedType:M,getParsedType:Or,ZodType:ee,datetimeRegex:ng,ZodString:xr,ZodNumber:mn,ZodBigInt:hn,ZodBoolean:gn,ZodDate:yn,ZodSymbol:Ri,ZodUndefined:En,ZodNull:Tn,ZodAny:Rr,ZodUnknown:Zt,ZodNever:Ot,ZodVoid:bi,ZodArray:Xt,ZodObject:He,ZodUnion:An,ZodDiscriminatedUnion:Xa,ZodIntersection:Sn,ZodTuple:Vt,ZodRecord:eu,ZodMap:wi,ZodSet:Ci,ZodFunction:tu,ZodLazy:_n,ZodLiteral:In,ZodEnum:On,ZodNativeEnum:xn,ZodPromise:br,ZodEffects:Xe,ZodTransformer:Xe,ZodOptional:lt,ZodNullable:$t,ZodDefault:Rn,ZodCatch:bn,ZodNaN:Di,BRAND:EO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:wn,custom:sg,Schema:ee,ZodSchema:ee,late:TO,get ZodFirstPartyTypeKind(){return Y},coerce:ex,any:bO,array:vO,bigint:_O,boolean:ug,date:IO,discriminatedUnion:UO,effect:Zh,enum:WO,function:VO,instanceof:AO,intersection:MO,lazy:$O,literal:qO,map:BO,nan:SO,nativeEnum:QO,never:CO,null:RO,nullable:YO,number:ag,object:NO,oboolean:XO,onumber:ZO,optional:HO,ostring:zO,pipeline:JO,preprocess:KO,promise:jO,record:kO,set:GO,strictObject:PO,string:og,symbol:OO,transformer:Zh,tuple:FO,undefined:xO,union:LO,unknown:wO,void:DO,NEVER:tx,ZodIssueCode:R,quotelessJson:eO,ZodError:Ze});var Cn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Cn||{}),ru=(r=>(r.STRING="string",r.NUMBER="number",r))(ru||{});var ou=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),cg=re.record(ou,re.string()),nu=re.record(ou,re.any()),iu=re.record(ou,re.union([re.any().array(),re.string()])),lg=re.lazy(()=>re.object({conditions:re.array(re.object(dg))})),su=re.union([re.string(),re.number()]),dg={string:cg.optional(),fuzzy:cg.optional(),range:re.record(ou,re.union([re.object({high:su,low:su}),re.object({high:su}),re.object({low:su})])).optional(),equal:nu.optional(),notEqual:nu.optional(),empty:nu.optional(),notEmpty:nu.optional(),oneOf:iu.optional(),contains:iu.optional(),notContains:iu.optional(),containsAny:iu.optional(),$and:lg.optional(),$or:lg.optional()},sq=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(_i).optional(),...dg}).optional(),paginate:re.boolean().optional(),bookmark:re.union([re.string(),re.number()]).nullish(),limit:re.number().optional(),sort:re.string().nullish(),sortOrder:re.nativeEnum(Cn).optional(),sortType:re.nativeEnum(ru).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Gp={};P(Gp,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Ku,BUDIBASE_DATASOURCE_TYPE:()=>Pp,Config:()=>Bp,Cookie:()=>Kn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Up,DEFAULT_JOBS_TABLE_ID:()=>Lp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Yi,DesignDocuments:()=>xo,DocumentType:()=>ye,GlobalRole:()=>kp,Header:()=>et,InternalTable:()=>Ir,MAX_VALID_DATE:()=>Zu,MIN_VALID_DATE:()=>$T,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,UserStatus:()=>zu,ViewName:()=>Fr});var DW={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 et=(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.CLIENT="x-budibase-client",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))(et||{});var LW={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 GW="darkest",VW="light",ix=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var tt={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"}},pg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var vi="datasource_internal_bb_default";var Ur={};P(Ur,{ColumnSplitter:()=>Ep,NoEmptyFilterStrings:()=>PT,buildQuery:()=>LT,cleanupQuery:()=>Sp,fixupFilterArrays:()=>Ip,getKeyNumbering:()=>_p,getValidOperatorsForType:()=>DD,hasFilters:()=>Tp,limit:()=>MT,recurseLogicalOperators:()=>Ap,removeKeyNumbering:()=>au,runQuery:()=>$u,search:()=>PD,sort:()=>UT,splitFiltersArray:()=>uu});var ji=q(fg());var wr={};P(wr,{filterValueToLabel:()=>lx,hasSchema:()=>dx,isSupportedUserSearch:()=>hg,parallelForeach:()=>cx,processSearchFilters:()=>Zl,toMap:()=>fx,trimOtherProps:()=>px,unreachable:()=>ux});var mg=q(require("lodash")),ax=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function ux(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function cx(t,e,r){let n=[],i=Symbol.asyncIterator in t,s=i?t[Symbol.asyncIterator]():t[Symbol.iterator](),o=async()=>{let a=await(i?s.next():Promise.resolve(s.next()));for(;!a.done;)await e(a.value),a=await(i?s.next():Promise.resolve(s.next()))};for(let a=0;a<r;a++)n.push(o());await Promise.all(n)}function lx(){return Object.keys(tt).reduce((t,e)=>{let n=tt[e];return t[n.value]=n.label,t},{})}function dx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function px(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function hg(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(Wa(s)){for(let c of t[s].conditions)if(!hg(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 Zl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=uu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=mg.default.pick(i,ax);return s.field=au(s.field),s})}]}}function fx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var ht={};P(ht,{cancelableTimeout:()=>gg,cron:()=>pp,deepGet:()=>Xl,duplicateName:()=>RD,getSequentialName:()=>bD,getUserColor:()=>hx,getUserInitials:()=>mx,getUserLabel:()=>gx,isGoogleSheets:()=>Ex,isSQL:()=>Tx,lists:()=>yp,retry:()=>Ax,roles:()=>gp,schema:()=>_o,views:()=>hp,wait:()=>ed,withTimeout:()=>yx});var Xl=(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},mx=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"},hx=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%)`},gx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function gg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function yx(t,e){let[r,n]=gg(t),i=await Promise.race([e(),r]);return n(),i}function Ex(t){return t==="GOOGLE_SHEETS"}function Tx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function ed(t){return new Promise(e=>setTimeout(e,t))}async function Ax(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 ed(s);try{return await t()}catch(o){n=o}}throw n}var pp={};P(pp,{getNextExecutionDates:()=>dD,validate:()=>pD});var wT=q(qt()),CT=q(RT()),bT="(Input cron: ",cD={"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 lD(t){let e=[];for(let r of t){r.includes(bT)&&(r=r.split(bT)[0].trim());for(let[n,i]of Object.entries(cD))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function dD(t,e=4){let r=CT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function pD(t){let e=(0,wT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:lD(e.getError())}}var _o={};P(_o,{decodeNonAscii:()=>fp,encodeNonAscii:()=>hD,isDeprecatedSingleUserColumn:()=>fD,isNumeric:()=>gD,isRequired:()=>mD});function fD(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function mD(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function hD(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function fp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function gD(t){return t.type==="number"||t.type==="bigint"}var hp={};P(hp,{basicFields:()=>SD,calculationFields:()=>AD,hasCalculationFields:()=>TD,isBasicViewField:()=>yD,isCalculationField:()=>Io,isCalculationView:()=>ED,isV2:()=>_D,isVisible:()=>DT});var mp=require("lodash");function Io(t){return"calculationType"in t}function yD(t){return!Io(t)}function ED(t){return t.type==="calculation"}function TD(t){return Object.values(t.schema||{}).some(Io)}function AD(t){return(0,mp.pickBy)(t.schema||{},Io)}function DT(t){return t.visible!==!1}function SD(t,e){let{visible:r=!0}=e||{};return(0,mp.pickBy)(t.schema||{},n=>!Io(n)&&(!r||DT(n)))}function _D(t){return t.version===2}var gp={};P(gp,{checkForRoleInheritanceLoops:()=>OD});function ID(t){return`role${v}${t}`}function OD(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=ID(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 yp={};P(yp,{punctuateList:()=>xD});function xD(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 RD=(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}`},bD=(t,e,{getName:r,numberFirstItem:n,separator:i=""}={})=>{if(!e?.length)return"";let s=e.trim(),o=n?`${e}1`:s;if(!t?.length)return o;let a=0;return t.forEach(u=>{let c=r?.(u)??u;if(typeof c!="string"||!c.startsWith(s))return;let l=c.split(s);if(l.length!==2)return;l[1].trim()===""&&(l[1]="1");let d=parseInt(l[1]);d>a&&(a=d)}),a===0?o:`${e}${i}${a+1}`};var Yn=require("lodash");var wD=/{{([^{].*?)}}/g,NT=Object.values(Si),CD=[...Object.values(Sr),...Object.values(Jt),...Object.values(pn)],DD=(t,e,r)=>{let n=tt,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=[n.Contains,n.NotContains,n.ContainsAny,n.Empty,n.NotEmpty],a=[],{type:u,formulaType:c,subtype:l}=t;u==="string"?l==="array"?a=o:a=i:u==="number"||u==="bigint"?a=s:u==="options"?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="array"?a=o:u==="boolean"?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty]:u==="longform"?a=i:u==="datetime"?a=s:u==="formula"&&c==="static"?a=i.concat([n.MoreThan,n.LessThan]):u==="ai"?a=i.concat([n.MoreThan,n.LessThan]):u==="bb_reference_single"||_o.isDeprecatedSingleUserColumn(t)?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?a=o:u==="barcodeqr"&&(a=i);let d=r?.tableId?.includes("datasource_plus");return e==="_id"&&d&&(a=[n.Equals,n.NotEquals,n.In]),a},PT=[tt.StartsWith.value,tt.Like.value,tt.Equals.value,tt.NotEquals.value,tt.Contains.value,tt.NotContains.value,tt.ContainsAny.value,tt.In.value];function Ap(t,e){for(let r of NT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Sp=t=>{for(let e of PT)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===""||vD(s))&&delete t[e][i]}return t=Ap(t,Sp),t};function vD(t){return Array.isArray(t)&&t.length===0}var au=t=>_p(t).key,_p=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}},Ep=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}=_p(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=fp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function ND(t){if(!t||!t?.operator||!t?.field)return;let e={},{operator:r,field:n,type:i,externalType:s}=t,{value:o}=t;(r==="empty"||r==="notEmpty")&&(o=null);let a=typeof o=="string"&&(o.match(wD)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if(Qa(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(Qa(r)){let c=pg[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(qh(r)||Wh(r)||Qa(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 uu(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 LT(t){if(!t)return{};if(Array.isArray(t)&&(t=Zl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=vT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=LT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=uu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=vT(n.logicalOperator)),{[a]:{conditions:o.map(ND).filter(u=>u)}}})},e}function vT(t){return t==="all"?"$and":"$or"}function Ip(t){if(!t)return t;for(let e of Object.values(Jt)){let r=t[e];if(!(r==null||!(0,Yn.isPlainObject)(r)))for(let n of Object.keys(r)){if(Array.isArray(r[n]))continue;let i=r[n];typeof i=="string"?r[n]=i.split(",").map(s=>s.trim()):r[n]=[i]}}return Ap(t,Ip),t}function PD(t,e){let r=$u(t,e.query);e.sort&&(r=UT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=MT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function $u(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Sp(e),e=Ip(e),!Tp(e)&&e.onEmptyFilter==="none")return[];let r=(E,I)=>k=>{for(let[w,B]of Object.entries(e[E]||{})){let de=Wa(E)?k:Xl(k,au(w)),cn=I(de,B);if(e.allOr&&cn)return!0;if(!e.allOr&&!cn)return!1}return!e.allOr},n=r("string",(E,I)=>typeof E!="string"||typeof I!="string"?!1:E.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(E,I)=>typeof E!="string"||typeof I!="string"?!1:E.toLowerCase().includes(I.toLowerCase())),s=r("range",(E,I)=>{if(E==null||E===""||((0,Yn.isPlainObject)(I.low)&&(0,Yn.isEmpty)(I.low)&&(I.low=void 0),(0,Yn.isPlainObject)(I.high)&&(0,Yn.isEmpty)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let k=+E;if(!isNaN(k)){let B=+I.low,de=+I.high;if(!isNaN(B)&&!isNaN(de))return k>=B&&k<=de;if(isNaN(B)){if(!isNaN(de))return k<=de}else return k>=B}let w=(0,ji.default)(E);if(w.isValid()){let B=(0,ji.default)(I.low||"0000-00-00T00:00:00.000Z"),de=(0,ji.default)(I.high||"9999-00-00T00:00:00.000Z");if(B.isValid()&&de.isValid())return w.isAfter(B)&&w.isBefore(de)||w.isSame(B)||w.isSame(de);if(B.isValid())return w.isAfter(B)||w.isSame(B);if(de.isValid())return w.isBefore(de)||w.isSame(de)}return I.low!=null&&I.high!=null?E>=I.low&&E<=I.high:I.low!=null?E>=I.low:I.high!=null?E<=I.high:!1}),o=(E,I)=>{if(Array.isArray(E)){for(let w of E)if(o(w,I))return!0;return!1}if(E&&typeof E=="object"&&typeof I=="string")return E._id===I;if(E===I)return!0;if(E==null&&I!=null||E!=null&&I==null)return!1;let k=(0,ji.default)(E);if(k.isValid()){let w=(0,ji.default)(I);if(w.isValid())return k.isSame(w)}return!1},a=E=>(...I)=>!E(...I),u=r("equal",o),c=r("notEqual",a(o)),l=E=>typeof E=="string"?E==="":Array.isArray(E)?E.length===0:E&&typeof E=="object"?Object.keys(E).length===0:E==null,d=r("empty",l),f=r("notEmpty",a(l)),m=r("oneOf",(E,I)=>(typeof I=="string"&&(I=I.split(",")),typeof E=="number"&&(I=I.map(k=>parseFloat(k))),Array.isArray(I)?I.some(k=>o(E,k)):!1)),p=E=>(I,k)=>!Array.isArray(I)||(typeof k=="string"&&(k=k.split(","),typeof I[0]=="number"&&(k=k.map(w=>parseFloat(w)))),!Array.isArray(k))?!1:k.length===0?!0:k[E](w=>o(I,w)),g=r("contains",(E,I)=>Array.isArray(I)&&I.length===0?!0:p("every")(E,I)),y=r("notContains",(E,I)=>Array.isArray(I)&&I.length===0?!0:a(p("every"))(E,I)),T=r("containsAny",p("some")),_=r("$and",(E,I)=>{if(!I.length)return!1;for(let k of I)if(!$u([E],k).length)return!1;return!0}),S=r("$or",(E,I)=>{if(!I.length)return!1;for(let k of I)if($u([E],{...k,allOr:!0}).length)return!0;return!1}),x=E=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:f,oneOf:m,contains:g,containsAny:T,notContains:y,$and:_,$or:S},k=Object.entries(e||{}).filter(([w,B])=>!["allOr","onEmptyFilter"].includes(w)&&B&&Object.keys(B).length>0).map(([w])=>I[w]?.(E)??!1);return Tp(e)?e.allOr?k.some(w=>w===!0):k.every(w=>w===!0):!0};return t.filter(x)}function UT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function MT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Tp=t=>{if(!t)return!1;let e=r=>{for(let n of NT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of CD){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 at={};P(at,{applications:()=>xp,automations:()=>Rp,screens:()=>vp,users:()=>Dp});var xp={};P(xp,{getDevAppID:()=>LD,getProdAppID:()=>qu});var Op=_r("app"),Oo=_r("app_dev");function LD(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Oo))return t;let e=t.split(Op);e.shift();let r=e.join(Op);return`${Oo}${r}`}function qu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Oo))return t;let e=t.split(Oo);e.shift();let r=e.join(Oo);return`${Op}${r}`}var Rp={};P(Rp,{checkForCollectStep:()=>kD,isAppAction:()=>FD,isRowAction:()=>UD,isWebhookAction:()=>MD});function UD(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function MD(t){return t.definition.trigger?.stepId==="WEBHOOK"}function FD(t){return t.definition.trigger?.stepId==="APP"}function FT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Kh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(FT(r))return!0}}return!1}function kD(t){return FT(t.definition.steps)}var Dp={};P(Dp,{canCreateApps:()=>BD,containsUserID:()=>QD,getGlobalUserID:()=>WD,getUserAppGroups:()=>jD,getUserGroups:()=>Cp,hasAdminPermissions:()=>wp,hasAppBuilderPermissions:()=>ju,hasAppCreatorPermissions:()=>kT,hasBuilderPermissions:()=>$D,hasCreatorPermissions:()=>Hu,isAdmin:()=>Qu,isAdminOrBuilder:()=>GD,isAdminOrGlobalBuilder:()=>VD,isBuilder:()=>bp,isCreator:()=>qD,isGlobalBuilder:()=>Wu,userAppAccessList:()=>HD});var Mr=q(require("lodash/fp"));function bp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(qu(e))):!1}function Wu(t){return bp(t)&&!ju(t)||Qu(t)}function BD(t){return Wu(t)||Hu(t)}function Qu(t){return t?wp(t):!1}function GD(t,e){return bp(t,e)||Qu(t)}function VD(t){return Wu(t)||Qu(t)}function ju(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function kT(t){return t?Mr.flow(Mr.get("roles"),Mr.values,Mr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function $D(t){return t?t.builder?.global||ju(t)||Hu(t):!1}function wp(t){return t?!!t.admin?.global:!1}function Hu(t){return t?!!t.builder?.creator:!1}function qD(t){return t?Wu(t)||wp(t)||Hu(t)||ju(t)||kT(t):!1}function WD(t){if(typeof t!="string")return t;let e=`ro${v}ta_users${v}`;return t.startsWith(e)?t.split(e)[1]:t}function QD(t){return typeof t!="string"?!1:t.includes(`us${v}`)}function Cp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function jD(t,e,r){let n=qu(t);return Cp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function HD(t,e){let n=Cp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var vp={};P(vp,{findInSettings:()=>YD});function YD(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 rH={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},nH={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},iH={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 pH={name:"Bash Scripting",tagline:"Execute a bash command",icon:"git-branch",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 hH={name:"Branch",icon:"git-branch",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 EH={name:"Collect Data",tagline:"Collect data to be sent to design",icon:"stack",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 SH={name:"Create Row",tagline:"Create a {{inputs.enriched.table.name}} row",icon:"rows-plus-bottom",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 OH={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 bH={description:"Delete a row from your database",icon:"trash-simple",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 DH={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 PH={name:"External Data Connector",tagline:"Execute Data Connector",icon:"database",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 MH={name:"API Request",tagline:"Execute a REST request",icon:"globe",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 BH={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 $H={name:"JavaScript",tagline:"Execute JavaScript Code",icon:"brackets-angle",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 ov={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},QH={name:"Condition",tagline:"{{inputs.field}} {{inputs.condition}} {{inputs.value}}",icon:"git-branch",description:"Conditionally halt automations which do not meet certain conditions",type:"LOGIC",internal:!0,features:{},stepId:"FILTER",inputs:{condition:"EQUAL"},schema:{inputs:{properties:{field:{type:"string",title:"Reference Value"},condition:{type:"string",title:"Condition",enum:Object.values(Vl),pretty:Object.values(ov)},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 YH={name:"Looping",icon:"recycle",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 zH={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 e2={name:"n8n Integration",stepTitle:"n8n",tagline:"Trigger an n8n workflow",description:"Performs a webhook call to n8n and gets the response (if configured)",icon:"ri-shut-down-line",stepId:"n8n",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Webhook URL"},method:{type:"string",title:"Method",enum:Object.values($l)},authorization:{type:"string",title:"Authorization"},body:{type:"json",title:"Payload"}},required:["url","method"]},outputs:{properties:{success:{type:"boolean",description:"Whether call was successful"},httpStatus:{type:"number",description:"The HTTP status code returned"},response:{type:"object",description:"The webhook response - this can have properties"}},required:["success","response"]}}};var BT=(a=>(a.GPT_4O_MINI="gpt-4o-mini",a.GPT_4O="gpt-4o",a.GPT_4="gpt-4",a.GPT_35_TURBO="gpt-3.5-turbo",a.GPT_5_MINI="gpt-5-mini",a.GPT_5="gpt-5",a.GPT_5_NANO="gpt-5-nano",a))(BT||{}),n2={name:"OpenAI",tagline:"Send prompts to ChatGPT",icon:"flow-arrow",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 GT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(GT||{}),o2={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",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(GT),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 fv={ascending:"Ascending",descending:"Descending"},c2={description:"Query rows from the database",icon:"magnifying-glass",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(Cn),pretty:Object.values(fv)},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 p2={description:"Send an email using SMTP",tagline:"Send SMTP email to {{inputs.to}}",icon:"envelope",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 h2={name:"Backend log",tagline:"Console log a value in the backend",icon:"activity",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 E2={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 S2={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"arrows-clockwise",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 O2={name:"Update Row",tagline:"Update a {{inputs.enriched.table.name}} row",icon:"arrow-clockwise",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 b2={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 D2={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:{},features:{LOOPING:!0},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 P2={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 M2={name:"Translate",tagline:"Translate text to a different language",icon:"globe",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||{}),B2={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 $2={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"},features:{LOOPING:!0},schema:{inputs:{properties:{contentType:{type:"string",title:"Content type",enum:Object.values(kl),pretty:Object.values(Yh)},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 Q2={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:{},features:{LOOPING:!0},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(Bl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Gl),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 Y2={name:"State",tagline:"Extract automation state",icon:"brackets-curly",description:"Extract automation state into a named variable",type:"ACTION",internal:!0,new:!1,stepId:"EXTRACT_STATE",inputs:{},features:{LOOPING:!0},schema:{inputs:{properties:{key:{type:"string",title:"Key"},value:{type:"longform",title:"Value"}},required:["value","key"]},outputs:{properties:{value:{type:"string",description:"The result of the return statement"},success:{type:"boolean",description:"Whether the action was successful"}},required:["success"]}}};var z2={name:"Loop",icon:"recycle",tagline:"Loop the block",description:"Loop",stepId:"LOOP_V2",internal:!0,features:{},inputs:{},schema:{inputs:{properties:{children:{type:"array"},binding:{type:"string",title:"Binding / Value"},iterations:{type:"number",title:"Max loop iterations"},failure:{type:"string",title:"Failure Condition"}}},outputs:{properties:{success:{type:"boolean",description:"Loop success"}},required:["success"]}},type:"LOGIC"};var Dv={name:"User action",event:"app:trigger",icon:"cursor-click",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 Nv={name:"CRON / Schedule",event:"cron:trigger",icon:"clock",tagline:"Cron Trigger (<b>{{inputs.cron}}</b>)",description:"Triggers automation on a cron schedule.",stepId:"CRON",inputs:{},schema:{inputs:{properties:{cron:{type:"string",customType:"cron",title:"Expression"}},required:["cron"]},outputs:{properties:{timestamp:{type:"number",description:"Timestamp the cron was executed"}},required:["timestamp"]}},type:"TRIGGER"};var Lv={name:"Row Deleted",event:"row:delete",icon:"trash-simple",tagline:"Row is deleted from {{inputs.enriched.table.name}}",description:"Fired when a row is deleted from your database",stepId:"ROW_DELETED",inputs:{},schema:{inputs:{properties:{tableId:{type:"string",customType:"table",title:"Table"}},required:["tableId"]},outputs:{properties:{row:{type:"object",customType:"row",description:"The row that was deleted"}},required:["row"]}},type:"TRIGGER"};var Mv={name:"Row Created",event:"row:save",icon:"rows-plus-bottom",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 kv={name:"Row Updated",event:"row:update",icon:"arrow-clockwise",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 Gv={name:"Webhook",event:"web:trigger",icon:"paper-plane-right",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 $v={type:"TRIGGER",name:"Row Action",event:"row:action",icon:"tree-structure",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 fY=Object.values(ye).sort((t,e)=>e.length-t.length);var mY=Object.values(Fl).sort((t,e)=>e.length-t.length);var hY=new RegExp("^datasource_plus_(.+)__(.+)$"),Yu=t=>e=>!!e&&e.startsWith(`${t}${v}`);var gY=Yu("ta"),yY=Yu("view"),EY=Yu("datasource"),TY=Yu("query");var Ku=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ku||{}),Fr=(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_2",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))(Fr||{}),Yi={by_email2:["by_email"]},xe={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=_r("app"),Ju=_r("app_dev"),yt=Ju,Np="internal",Pp="budibase",Ht="_design/sqlite",Lp="ta_bb_jobs",Up="ta_bb_inventory",Mp="ta_bb_expenses",Fp="ta_bb_employee",xo=(r=>(r[r.SQLITE=Ht]="SQLITE",r.MIGRATIONS="_design/migrations",r))(xo||{});var zu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(zu||{}),Kn=(a=>(a.Auth="budibase:auth",a.Init="budibase:init",a.ACCOUNT_RETURN_URL="budibase:account:returnurl",a.DatasourceAuth="budibase:datasourceauth",a.OIDC_CONFIG="budibase:oidc:config",a.FeatureFlags="budibase:featureflags",a.RecaptchaSession="budibase:recaptcha",a))(Kn||{}),kp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(kp||{}),Bp=(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))(Bp||{}),$T=new Date(-2147483647e3),Zu=new Date(2147483647e3),Te="default";var wa={};P(wa,{CacheKey:()=>ve,TTL:()=>ii,app:()=>Zo,bustCache:()=>ns,destroy:()=>Qo,docWritethrough:()=>Qm,generic:()=>jo,get:()=>si,invite:()=>cm,keys:()=>mc,passwordReset:()=>qm,store:()=>ur,user:()=>nn,withCache:()=>qr,withCacheWithDynamicTTL:()=>gA,writethrough:()=>$m});var jo={};P(jo,{CacheKey:()=>ve,TTL:()=>ii,bustCache:()=>ns,destroy:()=>Qo,get:()=>si,keys:()=>mc,store:()=>ur,withCache:()=>qr,withCacheWithDynamicTTL:()=>gA});var Ae={};P(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Lo,doInAppContext:()=>DN,doInAppMigrationContext:()=>NN,doInAutomationContext:()=>xN,doInContext:()=>af,doInEnvironmentContext:()=>UN,doInFeatureFlagOverrideContext:()=>mf,doInIPContext:()=>lf,doInIdentityContext:()=>bo,doInLicenseContext:()=>bN,doInScimContext:()=>MN,doInSelfHostTenantUsingCloud:()=>RN,doInTenant:()=>We,ensureSnippetContext:()=>pA,getAppDB:()=>ts,getAppId:()=>Ue,getAuditLogDBName:()=>cA,getAuditLogsDB:()=>kN,getAutomationId:()=>uf,getCurrentContext:()=>Zn,getDevAppDB:()=>GN,getDevAppId:()=>PN,getEnvironmentVariables:()=>FN,getFeatureFlagOverrides:()=>ff,getFeatureFlags:()=>df,getGlobalDB:()=>ie,getGlobalDBName:()=>zn,getIP:()=>cf,getIdentity:()=>ar,getLicense:()=>wN,getPlatformURL:()=>of,getProdAppDB:()=>BN,getProdAppId:()=>LN,getScimDBName:()=>SN,getSelfHostCloudDB:()=>CN,getTableForView:()=>VN,getTenantIDFromAppID:()=>es,getTenantId:()=>j,identity:()=>Ro,isMultiTenant:()=>Gr,isScim:()=>Lt,isSelfHostUsingCloud:()=>lA,isTenancyEnabled:()=>IN,isTenantIdSet:()=>_N,setFeatureFlags:()=>pf,setTableForView:()=>$N});var Ro={};P(Ro,{doInAccountContext:()=>jv,doInIdentityContext:()=>$p,doInUserContext:()=>qp,getAccountUserId:()=>qT,getIdentity:()=>Vp});function Vp(){return ar()}function $p(t,e){return bo(t,e)}function qp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return $p(n,r)}function jv(t,e){let r=qT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return $p(i,e)}function qT(t){let e;return Ha(t)?e=t.budibaseUserId:e=t.accountId,e}var tc=require("fs");var jT=require("lodash"),Wp=require("crypto"),wo=require("path"),Hv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,wo.resolve)((0,wo.join)(__dirname,"..","..","..")),WT=!1;!WT&&ec()&&!Qp()&&(require("dotenv").config({path:(0,wo.join)(Hv,".env")}),WT=!0);function Qp(){return HT()}function HT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function ec(){return process.env.NODE_ENV!=="production"}function Yv(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"},QT=!!parseInt(process.env.SELF_HOSTED||"");function Kv(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function Jv(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function zv(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,tc.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,tc.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(ec()&&!Qp())try{e=`${t("lerna.json").version}+local`}catch{}try{let r=t("package.json");return{VERSION:e||process.env.BUDIBASE_VERSION||r.version,SERVICE_NAME:r.name}}catch{return{VERSION:process.env.BUDIBASE_VERSION||"",SERVICE_NAME:""}}}function Zv(){return vt.SERVICE_TYPE==="worker"}function Xv(){return vt.SERVICE_TYPE==="apps"}function eN(){return vt.BUDIBASE_ENVIRONMENT==="QA"}function tN(){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 vt={isTest:Qp,isJest:HT,isDev:ec,isWorker:Zv,isApps:Xv,isQA:eN,isProd:()=>!ec(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Wp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Wp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:Kv(),COUCH_DB_URL:process.env.COUCH_DB_URL||"http://localhost:4005",COUCH_DB_SQL_URL:process.env.COUCH_DB_SQL_URL,COUCH_DB_USERNAME:process.env.COUCH_DB_USER,COUCH_DB_PASSWORD:process.env.COUCH_DB_PASSWORD,GOOGLE_CLIENT_ID:process.env.GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:process.env.GOOGLE_CLIENT_SECRET,SALT_ROUNDS:process.env.SALT_ROUNDS,REDIS_URL:process.env.REDIS_URL||"localhost:6379",REDIS_PASSWORD:process.env.REDIS_PASSWORD,REDIS_CLUSTERED:process.env.REDIS_CLUSTERED,MINIO_ACCESS_KEY:process.env.MINIO_ACCESS_KEY,MINIO_SECRET_KEY:process.env.MINIO_SECRET_KEY,AWS_SESSION_TOKEN:process.env.AWS_SESSION_TOKEN,AWS_REGION:process.env.AWS_REGION||"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:QT,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:tN(),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:Jv(),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:QT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...zv(),DISABLE_PINO_LOGGER:process.env.DISABLE_PINO_LOGGER,OFFLINE_MODE:process.env.OFFLINE_MODE,SESSION_EXPIRY_SECONDS:process.env.SESSION_EXPIRY_SECONDS,_set(t,e){process.env[t]=e,vt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Yv(process.env.BSON_BUFFER_SIZE)};function Co(t){let e=(0,jT.cloneDeep)(vt),r;for(r in t)vt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))vt._set(n,i)}}function YT(t,e){let r=Co(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var KT=["API_ENCRYPTION_KEY","BB_ADMIN_USER_PASSWORD","COUCH_DB_PASSWORD","COUCH_DB_SQL_URL","COUCH_DB_URL","GOOGLE_CLIENT_SECRET","INTERNAL_API_KEY_FALLBACK","INTERNAL_API_KEY","JWT_SECRET","MINIO_ACCESS_KEY","MINIO_SECRET_KEY","OPENAI_API_KEY","REDIS_PASSWORD"];for(let[t,e]of Object.entries(vt))e==="0"&&(vt[t]=0),e==="false"&&(vt[t]=0);var h=vt;var JT=require("async_hooks"),we=class t{static{this.storage=new JT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var jp="No app provided";function kr(t){if(!t)throw jp;return t.startsWith(yt)}function rN(t){if(!t)throw jp;return t.startsWith(gt)&&!kr(t)}function Do(t){if(!t)throw jp;return kr(t.appId)}function rc(t){if(!t||t.startsWith(yt))return t;let e=t.split(gt);e.shift();let r=e.join(gt);return`${yt}${r}`}var Ji=rc;function ut(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${gt}${r}`}function nN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Nt=t=>{let e=Hp(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:Hp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Hp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var aA=q(require("@budibase/nano"));var zT=q(require("node-fetch"));function nc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function ZT(t,e="GET",r){let{url:n,cookie:i}=Nt(),s=`${n}/${t}`;return await vo({url:s,cookie:i,method:e,body:r})}async function vo({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,zT.default)(nc(encodeURI(t)),i)}async function Yp(t,e="GET",r){let n=await ZT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Jn=q(require("pouchdb"));var XT,eA=!1,Kp=(t={})=>{let{url:e,cookie:r}=Nt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Jn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Jn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Jn.default.plugin(i.plugin),Jn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Jn.default.plugin(i)}return Jn.default.defaults(n)};function ic(t){XT=Kp(t),eA=!0}var sN=()=>{if(!eA)throw new Error("init has not been called")};function Et(t,e){sN();let r=new XT(t,e),n=r.put;return r.put=async(i,s={})=>(i.createdAt||(i.createdAt=new Date().toISOString()),i.updatedAt=new Date().toISOString(),n(i,s)),r.exists=async()=>!(await r.info()).error,r}async function No(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var tA=require("uuid");function me(){return(0,tA.v4)().replace(/-/g,"")}var Ie=q(require("dd-trace")),zi=class{constructor(e){this.db=e}get name(){return this.db.name}exists(e){return Ie.default.trace("db.exists",r=>(r.addTags({db_name:this.name,doc_id:e}),e?this.db.exists(e):this.db.exists()))}get(e){return Ie.default.trace("db.get",r=>(r.addTags({db_name:this.name,doc_id:e}),this.db.get(e)))}tryGet(e){return Ie.default.trace("db.tryGet",async r=>{r.addTags({db_name:this.name,doc_id:e});let n=await this.db.tryGet(e);return r.addTags({doc_found:n!==void 0}),n})}getMultiple(e,r){return Ie.default.trace("db.getMultiple",async n=>{n.addTags({db_name:this.name,num_docs:e?.length||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 Ie.default.trace("db.remove",async n=>{n.addTags({db_name:this.name,doc_id:e,rev:r});let i=typeof e=="object",s=i?e._id:e;r=i?e._rev:r;let o=await this.db.remove(s,r);return n.addTags({ok:o.ok}),o})}bulkRemove(e,r){return Ie.default.trace("db.bulkRemove",n=>(n.addTags({db_name:this.name,num_docs:e.length,silence_errors:r?.silenceErrors}),this.db.bulkRemove(e,r)))}put(e,r){return Ie.default.trace("db.put",async n=>{n.addTags({db_name:this.name,doc_id:e._id,force:r?.force,return_doc:r?.returnDoc});let i=await this.db.put(e,r);return n.addTags({ok:i.ok}),i})}bulkDocs(e){return Ie.default.trace("db.bulkDocs",r=>(r.addTags({db_name:this.name,num_docs:e.length}),this.db.bulkDocs(e)))}async find(e){return Ie.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 Ie.default.trace("db.allDocs",async r=>{r.addTags({db_name:this.name,...e});let n=await this.db.allDocs(e);return r.addTags({total_rows:n.total_rows,rows_length:n.rows.length,offset:n.offset}),n})}query(e,r){return Ie.default.trace("db.query",async n=>{n.addTags({db_name:this.name,view_name:e,...r});let i=await this.db.query(e,r);return n.addTags({total_rows:i.total_rows,rows_length:i.rows.length,offset:i.offset}),i})}destroy(){return Ie.default.trace("db.destroy",async e=>{e.addTags({db_name:this.name});let r=await this.db.destroy();return e.addTags({ok:r.ok}),r})}compact(){return Ie.default.trace("db.compact",async e=>{e.addTags({db_name:this.name});let r=await this.db.compact();return e.addTags({ok:r.ok}),r})}dump(e,r){return Ie.default.trace("db.dump",n=>(n.addTags({db_name:this.name,batch_limit:r?.batch_limit,batch_size:r?.batch_size,style:r?.style,timeout:r?.timeout,num_doc_ids:r?.doc_ids?.length,view:r?.view}),this.db.dump(e,r)))}load(...e){return Ie.default.trace("db.load",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.load(...e)))}createIndex(...e){return Ie.default.trace("db.createIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.createIndex(...e)))}deleteIndex(...e){return Ie.default.trace("db.deleteIndex",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.deleteIndex(...e)))}getIndexes(...e){return Ie.default.trace("db.getIndexes",r=>(r.addTags({db_name:this.name,num_args:e.length}),this.db.getIndexes(...e)))}sql(e,r){return Ie.default.trace("db.sql",async n=>{n.addTags({db_name:this.name,num_bindings:r?.length});let i=await this.db.sql(e,r);return n.addTags({num_rows:i.length}),i})}sqlPurgeDocument(e){return Ie.default.trace("db.sqlPurgeDocument",r=>(r.addTags({db_name:this.name,num_docs:Array.isArray(e)?e.length:1}),this.db.sqlPurgeDocument(e)))}sqlDiskCleanup(){return Ie.default.trace("db.sqlDiskCleanup",e=>(e.addTags({db_name:this.name}),this.db.sqlDiskCleanup()))}};var nf={};P(nf,{breakExternalTableId:()=>Zp,breakRowIdField:()=>EN,buildExternalTableId:()=>pN,convertRowId:()=>yN,encodeTableId:()=>fN,encodeViewId:()=>mN,extractDate:()=>ef,generateRowIdField:()=>hN,getNativeSql:()=>Zi,isExternalTable:()=>zp,isExternalTableID:()=>sc,isInternalTableID:()=>dN,isRowId:()=>gN,isValidFilter:()=>ac,isValidISODateString:()=>oc,isValidISODateStringWithoutTimezone:()=>Xp,isValidTime:()=>tf,sqlLog:()=>Po,validateManyToMany:()=>rf});var Jp=`${v}${v}`,nA=/^\[.*]$/g,oN=encodeURIComponent(" "),aN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,uN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,cN=/(\d{4}-\d{2}-\d{2})/,lN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function sc(t){return t.startsWith("datasource"+v)}function dN(t){return!sc(t)}function Zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function zp(t){return t?.sourceId&&t.sourceId.includes("datasource"+v)&&t?.sourceId!==vi||t?.sourceType==="external"?!0:!!(t?._id&&sc(t._id))}function pN(t,e){return`${t}${Jp}${encodeURIComponent(e)}`}function fN(t){return sc(t)?encodeURIComponent(t):t}function mN(t){return encodeURIComponent(t)}function Zp(t){let e=t.split(Jp),r=e.shift(),n=e.join(Jp);if(n.includes(oN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function hN(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}function gN(t){return Array.isArray(t)||typeof t=="string"&&t.match(nA)!=null}function yN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(nA)!=null?t.substring(1,t.length-1):t}function EN(t){if(!t)return[];let e=typeof t=="string"?t:t._id,r=decodeURIComponent(e).replace(/'/g,'"');try{let n=JSON.parse(r);return Array.isArray(n)?n:[n]}catch{return[t]}}function oc(t){let e=t.trim();if(!aN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function Xp(t){let e=t.trim();if(!uN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function ef(t){let e=t.match(cN);if(e)return e[0]}function ac(t){return t!=null&&t!==""}function tf(t){return lN.test(t)}function Po(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 TN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function rf(t){if(TN(t))return t}var iA="Database does not exist.";function sA(t){return(0,aA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Br=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 AN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new Xi(t,r,e);return new zi(n)}var Xi=class t{constructor(e,r,n){this.couchInfo=Nt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Nt(n),this.instanceNano=sA(this.couchInfo)),t.nano||t.init()}static init(){let e=Nt();t.nano=sA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await vo({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 Br(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===iA)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Br(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Br(`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(Qh(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 Br(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 async()=>{let i=await n.insert(e);return r?.returnDoc?{...i,doc:{...e,_rev:i.rev}}:i}})}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===iA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=nc(`${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 vo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Br("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 Po("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 Br(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 qe(t,e){return new zi(new Xi(t,e))}async function ct(t,e,r){let n=qe(t,r);return await e(n)}async function sf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Yp(e)}var uA=null;function zn(t){return t||(t=j()),Lo(t)}function cA(t){return t||(t=j()),t===Te?xe.AUDIT_LOGS.name:`${t}${v}${xe.AUDIT_LOGS.name}`}function SN(t){return t||(t=j()),t===Te?xe.SCIM_LOGS.name:`${t}${v}${xe.SCIM_LOGS.name}`}function Lo(t){return!t||t===Te?xe.GLOBAL.name:`${t}${v}${xe.GLOBAL.name}`}function of(){return h.PLATFORM_URL}function Gr(){return!!h.MULTI_TENANCY}function _N(){return!!we.get()?.tenantId}function IN(){return h.MULTI_TENANCY}function es(t){if(!t)return;if(!Gr())return Te;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 ON(t){let e;try{e=we.get()}catch{e={}}return e={...e,...t},e}async function Pt(t,e){vN();let r=ON(t);return we.run(r,e)}async function xN(t){return await pA(),await Pt({tenantId:es(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function af(t,e){let r=es(t);return Pt({tenantId:r,appId:t},e)}async function We(t,e){return h.MULTI_TENANCY||(t=t||Te),Pt(t?{tenantId:t}:{},e)}async function RN(t,e){return Pt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function bN(t,e){return Pt({license:t},e)}function wN(){return we.get()?.license}function lA(){return!!we.get()?.isSelfHostUsingCloud}function CN(){let t=we.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return qe(xe.SELF_HOST_CLOUD.name)}async function DN(t,e){return dA(t,e)}async function dA(t,e,r){if(!t)throw new Error("appId is required");let n=es(t),i={appId:t,...r};return n&&(i.tenantId=n),Pt(i,e)}async function bo(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Pt(r,e)}function vN(){if(we.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function NN(t,e){return dA(t,e,{isMigrating:!0})}function ar(){try{return we.get()?.identity}catch{}}function j(){if(!Gr())return Te;let e=we.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function uf(){return we.get()?.automationId}function Ue(){let e=we.get()?.appId;return!e&&h.isTest()&&uA?uA:e}function cf(){return we.get()?.ip}var PN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return Ji(t)},LN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return ut(t)};function UN(t,e){if(!t)throw new Error("Must supply environment variables.");return Pt({environmentVariables:t},e)}function MN(t){return Pt({isScim:!0},t)}function lf(t,e){return Pt({ip:t},e)}async function pA(){let t=Zn();if(!t||t.snippets)return;let e,r=ts();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function FN(){let t=we.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=we.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return qe(Lo(t?.tenantId))}function kN(){if(!j())throw new Error("No tenant ID found - cannot open audit log DB");return qe(cA())}function ts(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(lA())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return qe(e,t)}function BN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return qe(ut(e),t)}function GN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return qe(rc(e),t)}function Lt(){return!!we.get()?.isScim}function Zn(){try{return we.get()}catch{return}}function df(t){let e=Zn();if(e)return e.featureFlagCache?.[t]}function pf(t,e){let r=Zn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function ff(){return Zn()?.featureFlagOverrides||{}}async function mf(t,e){return await Pt({featureFlagOverrides:t},e)}function VN(t){let e=Zn();if(e)return e.viewToTableCache?.[t]}function $N(t,e){let r=Zn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var $r={};P($r,{getAppClient:()=>fc,getCacheClient:()=>Af,getDocWritethroughClient:()=>HN,getInviteClient:()=>ti,getLockClient:()=>_f,getPasswordResetClient:()=>Wo,getSessionClient:()=>Vr,getSocketClient:()=>jN,getUserClient:()=>qo,getWritethroughClient:()=>Sf,init:()=>Ut,shutdown:()=>hA});var pc=q(require("ioredis"));var lc={};P(lc,{Databases:()=>hf,SEPARATOR:()=>rs,SelectableDatabase:()=>uc,getRedisClusterOptions:()=>gf,getRedisConnectionDetails:()=>cc,getRedisOptions:()=>Xn,removeDbPrefix:()=>yf});var rs="-",hf=(_=>(_.PW_RESETS="pwReset",_.VERIFICATIONS="verification",_.INVITATIONS="invitation",_.DEV_LOCKS="devLocks",_.DEBOUNCE="debounce",_.SESSIONS="session",_.USER_CACHE="users",_.FLAGS="flags",_.APP_METADATA="appMetadata",_.QUERY_VARS="queryVars",_.LICENSES="license",_.GENERIC_CACHE="data_cache",_.WRITE_THROUGH="writeThrough",_.LOCKS="locks",_.SOCKET_IO="socket_io",_.BPM_EVENTS="bpmEvents",_.DOC_WRITE_THROUGH="docWriteThrough",_.RECAPTCHA_SESSION="recaptchaSession",_))(hf||{}),uc=(y=>(y[y.DEFAULT=0]="DEFAULT",y[y.SOCKET_IO=1]="SOCKET_IO",y[y.RATE_LIMITING=2]="RATE_LIMITING",y[y.UNUSED_2=3]="UNUSED_2",y[y.UNUSED_3=4]="UNUSED_3",y[y.UNUSED_4=5]="UNUSED_4",y[y.UNUSED_5=6]="UNUSED_5",y[y.UNUSED_6=7]="UNUSED_6",y[y.UNUSED_7=8]="UNUSED_7",y[y.UNUSED_8=9]="UNUSED_8",y[y.UNUSED_9=10]="UNUSED_9",y[y.UNUSED_10=11]="UNUSED_10",y[y.UNUSED_11=12]="UNUSED_11",y[y.UNUSED_12=13]="UNUSED_12",y[y.UNUSED_13=14]="UNUSED_13",y[y.UNUSED_14=15]="UNUSED_14",y))(uc||{});function cc(){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 gf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...Xn(),tls:{}}}}function Xn(){let{host:t,password:e,port:r}=cc();return{connectTimeout:3e4,port:r,host:t,password:e}}function yf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var dc=require("dd-trace"),mA=require("lodash"),fA;if(h.MOCK_REDIS)try{fA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function qN(t=0){return await dc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new fA(Xn());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=cc();r=new pc.Cluster([{host:n,port:i}],gf())}else r=new pc.default(Xn());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 WN(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:yf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function QN(t){return t.isCluster}var Ef=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await dc.tracer.trace("RedisWrapper.init",async n=>{let i=await qN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return dc.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${rs}${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}${rs}${e}`;let n;QN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await WN(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,mA.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)})}},Qe=Ef;var Lo,Mo,Fo,ko,ei,Bo,Go,$o,Vo,Tf;async function Lt(){Lo=await Qe.init("users"),Mo=await Qe.init("session"),Fo=await Qe.init("appMetadata"),ko=await Qe.init("data_cache"),Bo=await Qe.init("locks"),ei=await Qe.init("writeThrough"),$o=await Qe.init("invitation"),Vo=await Qe.init("pwReset"),Go=await Qe.init("socket_io",1),Tf=await Qe.init("docWriteThrough")}async function hA(){Lo&&await Lo.finish(),Mo&&await Mo.finish(),Fo&&await Fo.finish(),ko&&await ko.finish(),ei&&await ei.finish(),Bo&&await Bo.finish(),$o&&await $o.finish(),Vo&&await Vo.finish(),Go&&await Go.finish(),Tf&&await Tf.finish()}process.on("exit",async()=>{await hA()});async function qo(){return Lo||await Lt(),Lo}async function $r(){return Mo||await Lt(),Mo}async function fc(){return Fo||await Lt(),Fo}async function Af(){return ko||await Lt(),ko}async function Sf(){return ei||await Lt(),ei}async function _f(){return Bo||await Lt(),Bo}async function WN(){return Go||await Lt(),Go}async function ti(){return $o||await Lt(),$o}async function Wo(){return Vo||await Lt(),Vo}async function QN(){return ei||await Lt(),ei}function Kt(t){let e=j();return`${t}:${e}`}var ri=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Af()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?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 ni=new ri,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}`},ii=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ii||{}),mc=(...t)=>ni.keys(...t),si=(...t)=>ni.get(...t),ur=(...t)=>ni.store(...t),Qo=(...t)=>ni.delete(...t),qr=(...t)=>ni.withCache(...t),gA=(...t)=>ni.withCacheWithDynamicTTL(...t),ns=(...t)=>ni.bustCache(...t);var nn={};N(nn,{getUser:()=>Ca,getUsers:()=>V0,invalidateUser:()=>va});var Ko={};N(Ko,{addTenantToUrl:()=>jN,getTenantDB:()=>If,getTenantIDFromCtx:()=>Ho,isUserInAppTenant:()=>HN});function If(t){return qe(zn(t))}function jN(t){let e=j();if(Gr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var HN=(t,e)=>{let r;return e?r=e.tenantId||Te:r=j(),(es(t)||Te)===r},KN=Object.values(Rs),Ho=(t,e)=>{if(!Gr())return Te;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(of()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var Yo={};N(Yo,{getPlatformDB:()=>Wr,users:()=>Mt});var Mt={};N(Mt,{addSsoUser:()=>EA,addUser:()=>eP,getUserDoc:()=>yA,lookupTenantId:()=>YN,removeUser:()=>tP,updateUserDoc:()=>JN});function Wr(){return qe(xe.PLATFORM_INFO.name)}async function YN(t){return h.MULTI_TENANCY?(await yA(t)).tenantId:Te}async function yA(t){return Wr().get(t)}async function JN(t){await Wr().put(t)}function zN(t,e){return{_id:t,tenantId:e}}function ZN(t,e,r){return{_id:e,userId:t,tenantId:r}}function XN(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Of(t,e){let r=Wr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function EA(t,e,r,n){return Of(t,()=>XN(t,e,r,n))}async function eP(t,e,r,n){let i=[Of(e,()=>zN(e,t)),Of(r,()=>ZN(e,r,t))];n&&i.push(EA(n,r,e,t)),await Promise.all(i)}async function tP(t){let e=Wr(),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 li={};N(li,{getAccount:()=>Zr,getAccountByTenantId:()=>cs,getStatus:()=>JP});var bS=q(require("node-fetch"));var ua={};N(ua,{correlation:()=>Jo,logAlert:()=>ci,logAlertWithInfo:()=>YP,logWarn:()=>us,logger:()=>Rc,system:()=>Jf});var Jo={};N(Jo,{getId:()=>xf,setHeader:()=>rP});var TA=require("correlation-id"),rP=t=>{let e=TA.getId();e&&(t["x-budibase-correlation-id"]=e)};function xf(){return TA.getId()}var xc=q(require("pino")),RS=q(require("pino-pretty"));var zf=q(require("dd-trace")),wS=require("dd-trace/ext");var Jf={};N(Jf,{getLogReadStream:()=>qP,getSingleFileMaxSizeInfo:()=>xS,localFileDestination:()=>Yf});var aa=q(require("fs")),Kf=q(require("path")),SS=q(require("rotating-file-stream"));var Hf={};N(Hf,{ObjectStore:()=>Ft,ObjectStoreBuckets:()=>iP,SIGNED_FILE_PREFIX:()=>qf,bucketTTLConfig:()=>hc,budibaseTempDir:()=>oi,clientLibraryCDNUrl:()=>MP,clientLibraryPath:()=>pS,clientLibraryUrl:()=>FP,createBucketIfNotExists:()=>oa,deleteFile:()=>DP,deleteFiles:()=>CP,deleteFolder:()=>cS,downloadTarball:()=>NP,downloadTarballDirect:()=>vP,enrichPWAImages:()=>kP,enrichPluginURLs:()=>GP,extractBucketAndPath:()=>Rf,getAppFileUrl:()=>fS,getGlobalFileS3Key:()=>mS,getGlobalFileUrl:()=>BP,getObjectMetadata:()=>PP,getPluginIconKey:()=>yS,getPluginJSKey:()=>gS,getPluginS3Dir:()=>TS,getPresignedUrl:()=>Jr,getReadStream:()=>gc,listAllObjects:()=>uS,processAutomationAttachment:()=>oP,processObjectStoreAttachment:()=>OA,retrieve:()=>aS,retrieveDirectory:()=>bP,retrieveToTmp:()=>wP,sanitizeBucket:()=>Je,sanitizeKey:()=>Le,streamUpload:()=>oS,upload:()=>RP,uploadDirectory:()=>Wf});var _c=require("@aws-sdk/client-s3"),kf=require("@aws-sdk/lib-storage"),sS=require("@aws-sdk/s3-request-presigner"),Ic=q(require("stream")),Bf=q(require("node-fetch")),Gf=q(require("tar-fs")),$f=q(require("zlib")),Kr=require("path"),os=q(require("fs"));var zo=q(require("path")),AA=require("os"),SA=q(require("fs"));var _A=q(require("stream")),iP={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},IA=(0,zo.join)((0,AA.tmpdir)(),".budibase");try{SA.default.mkdirSync(IA)}catch(t){if(t.code!=="EEXIST")throw t}function oi(){return IA}var hc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function sP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=zo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:_A.default.Readable.fromWeb(e.body)}}async function OA(t){let e=Rf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await gc(r,n),s=zo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function oP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await sP(t):await OA(t)}var Vf=require("uuid");var jr={};N(jr,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Yu,BUDIBASE_DATASOURCE_TYPE:()=>Pp,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Lp,DEFAULT_JOBS_TABLE_ID:()=>Up,DatabaseImpl:()=>Xi,DatabaseWithConnection:()=>EN,DeprecatedViews:()=>Ki,DesignDocuments:()=>xo,DocumentType:()=>ye,InternalTable:()=>Ir,QueryBuilder:()=>dr,Replication:()=>eS,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>$e,ViewName:()=>Fr,baseGlobalDBName:()=>Uo,checkErrorCode:()=>iS,closePouchDB:()=>No,createApiKeyView:()=>YA,createNewUserEmailView:()=>HA,createPlatformAccountEmailView:()=>zA,createPlatformUserView:()=>ZA,createUserAppView:()=>KA,createView:()=>ss,dbExists:()=>gP,directCouchAllDbs:()=>sf,directCouchCall:()=>ZT,directCouchQuery:()=>Kp,directCouchUrlCall:()=>vo,doWithDB:()=>ct,extractAppUUID:()=>tN,fullSearch:()=>AP,generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Tc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>LA,generatePluginID:()=>UA,generateRoleID:()=>Df,generateRowID:()=>bf,generateTableID:()=>wA,generateTemplateID:()=>NA,generateUserMetadataID:()=>CA,generateWorkspaceAppID:()=>kA,generateWorkspaceID:()=>bA,getAllApps:()=>ea,getAllDbs:()=>jA,getAppsByIDs:()=>pP,getCouchInfo:()=>Nt,getDB:()=>qe,getDevAppID:()=>Ji,getDevAppIDs:()=>mP,getDevelopmentAppID:()=>rc,getDocParams:()=>Qr,getGlobalDBName:()=>zn,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>ai,getOAuth2ConfigParams:()=>WA,getPluginParams:()=>qA,getPouch:()=>Yp,getPouchDB:()=>Et,getProdAppID:()=>ut,getProdAppIDs:()=>fP,getQueryIndex:()=>BA,getRoleParams:()=>Sc,getRowParams:()=>Cf,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>VA,getUrlInfo:()=>Hp,getUserMetadataParams:()=>$A,getUsersByAppParams:()=>Ac,getWorkspaceAppParams:()=>QA,getWorkspaceParams:()=>GA,init:()=>ic,isDevApp:()=>Co,isDevAppID:()=>kr,isDocumentConflictError:()=>_P,isGlobalUserID:()=>DA,isProdAppID:()=>eN,isSameAppID:()=>hP,paginatedSearch:()=>TP,pagination:()=>Nf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>Lf,queryPlatformView:()=>ra,queryView:()=>Uf,queryViewRaw:()=>ta,removeKeyNumbering:()=>na,searchIndexes:()=>Ff});var Zo={};N(Zo,{AppState:()=>wf,getAppMetadata:()=>Ec,invalidateAppMetadata:()=>lP});var wf=(e=>(e.INVALID="invalid",e))(wf||{}),xA=3600,aP=60;async function uP(t){return ct(t,e=>e.get("app_metadata"),{skip_setup:!0})}function cP(t){return!t||t.state==="invalid"}async function Ec(t){let e=await fc(),r=await e.get(t);if(!r){let n=xA;try{r=await uP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=aP;else throw i}if(cP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function lP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await fc();await r.delete(t),e&&await r.store(t,e,xA)}var vf={};N(vf,{generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Tc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>LA,generatePluginID:()=>UA,generateRoleID:()=>Df,generateRowID:()=>bf,generateTableID:()=>wA,generateTemplateID:()=>NA,generateUserMetadataID:()=>CA,generateWorkspaceAppID:()=>kA,generateWorkspaceID:()=>bA,getDocParams:()=>Qr,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>ai,getOAuth2ConfigParams:()=>WA,getPluginParams:()=>qA,getQueryIndex:()=>BA,getRoleParams:()=>Sc,getRowParams:()=>Cf,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>VA,getUserMetadataParams:()=>$A,getUsersByAppParams:()=>Ac,getWorkspaceAppParams:()=>QA,getWorkspaceParams:()=>GA,isGlobalUserID:()=>DA,prefixRoleID:()=>cr});var RA=t=>{let e=gt;return t&&(e+=`${t}${v}`),`${e}${me()}`};function wA(){return`ta${v}${me()}`}function bf(t,e){return e=e||me(),`ro${v}${t}${v}${e}`}function bA(){return`workspace${v}${me()}`}function is(t){return`us${v}${t||me()}`}var dP=new RegExp(`^us${v}.+`);function DA(t){return dP.test(t)}function CA(t){return bf("ta_users",t)}function vA(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function NA(t){return`template${v}${t}${v}${me()}`}function Tc(t,e){return`${t}${v}${e}`}function Df(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return Df(t)}var PA=t=>`devinfo${v}${t}`,UA=t=>`plg${v}${t}`,LA=t=>`oauth2log${v}${t}`,MA=()=>`agentchat${v}${me()}`,FA=()=>`agenttoolsource${v}${me()}`,kA=()=>`workspace_app${v}${me()}`;function Qr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${$e}`}}function Cf(t,e,r={}){if(t==null)return Qr("ro",null,r);let n=e??`${t}${v}`;return Qr("ro",n,r)}function BA(t){return`database/${t}`}function GA(t="",e={}){return{...e,startkey:`workspace${v}${t}`,endkey:`workspace${v}${t}${$e}`}}function ai(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${v}${t}`,endkey:`us${v}${t}${$e}`}}function $A(t,e={}){return Cf("ta_users",t,e)}function Ac(t,e={}){let r=ut(t);return{...e,startkey:r,endkey:`${r}${$e}`}}function VA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${$e}`}}function Sc(t,e={}){return Qr("role",t,e)}function Xo(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${$e}"`}var qA=(t,e={})=>Qr("plg",t,e),WA=(t,e={})=>Qr("oauth2",t,e),QA=(t,e={})=>Qr("workspace_app",t,e);async function jA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await sf(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(Xo("app",i)),await n(Xo("app_dev",i)),r.push(zn(i))),r}async function ea({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await jA({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(v);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Te&&d||l===i}return!1});if(r){let u=o.filter(l=>kr(l)),c=o.filter(l=>!kr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>Ec(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:Co(l)?"development":"published"})):c.filter(l=>t?Co(l):!Co(l))}}async function pP(t){return(await Promise.allSettled(t.map(r=>Ec(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function fP(){return(await ea({idsOnly:!0})).filter(e=>!kr(e))}async function mP(){return(await ea({idsOnly:!0})).filter(e=>kr(e))}function hP(t,e){return t==null||e==null?!1:ut(t)===ut(e)}async function gP(t){return ct(t,async e=>await e.exists(),{skip_setup:!0})}function Nf(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 Pf="_design/database";function yP(){return{_id:Pf,views:{}}}async function EP(t,e){if(Ki[e])try{let r=await t.get(Pf);for(let n of Ki[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(Pf)}catch{n=yP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ss(t,e,r);throw s}}var HA=async()=>{let t=ne(),e=`function(doc) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},Qe=Ef;var Uo,Mo,Fo,ko,ei,Bo,Go,Vo,$o,Tf;async function Ut(){Uo=await Qe.init("users"),Mo=await Qe.init("session"),Fo=await Qe.init("appMetadata"),ko=await Qe.init("data_cache"),Bo=await Qe.init("locks"),ei=await Qe.init("writeThrough"),Vo=await Qe.init("invitation"),$o=await Qe.init("pwReset"),Go=await Qe.init("socket_io",1),Tf=await Qe.init("docWriteThrough")}async function hA(){Uo&&await Uo.finish(),Mo&&await Mo.finish(),Fo&&await Fo.finish(),ko&&await ko.finish(),ei&&await ei.finish(),Bo&&await Bo.finish(),Vo&&await Vo.finish(),$o&&await $o.finish(),Go&&await Go.finish(),Tf&&await Tf.finish()}process.on("exit",async()=>{await hA()});async function qo(){return Uo||await Ut(),Uo}async function Vr(){return Mo||await Ut(),Mo}async function fc(){return Fo||await Ut(),Fo}async function Af(){return ko||await Ut(),ko}async function Sf(){return ei||await Ut(),ei}async function _f(){return Bo||await Ut(),Bo}async function jN(){return Go||await Ut(),Go}async function ti(){return Vo||await Ut(),Vo}async function Wo(){return $o||await Ut(),$o}async function HN(){return ei||await Ut(),ei}function Yt(t){let e=j();return`${t}:${e}`}var ri=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Af()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Yt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[Yt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ni=new ri,ve={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}`},ii=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ii||{}),mc=(...t)=>ni.keys(...t),si=(...t)=>ni.get(...t),ur=(...t)=>ni.store(...t),Qo=(...t)=>ni.delete(...t),qr=(...t)=>ni.withCache(...t),gA=(...t)=>ni.withCacheWithDynamicTTL(...t),ns=(...t)=>ni.bustCache(...t);var nn={};P(nn,{getUser:()=>Da,getUsers:()=>W0,invalidateUser:()=>va});var Yo={};P(Yo,{addTenantToUrl:()=>YN,getTenantDB:()=>If,getTenantIDFromCtx:()=>Ho,isUserInAppTenant:()=>KN});function If(t){return qe(zn(t))}function YN(t){let e=j();if(Gr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var KN=(t,e)=>{let r;return e?r=e.tenantId||Te:r=j(),(es(t)||Te)===r},JN=Object.values(Rs),Ho=(t,e)=>{if(!Gr())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=JN),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(of()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var Ko={};P(Ko,{getPlatformDB:()=>Wr,users:()=>Mt});var Mt={};P(Mt,{addSsoUser:()=>EA,addUser:()=>rP,getUserDoc:()=>yA,lookupTenantId:()=>zN,removeUser:()=>nP,updateUserDoc:()=>ZN});function Wr(){return qe(xe.PLATFORM_INFO.name)}async function zN(t){return h.MULTI_TENANCY?(await yA(t)).tenantId:Te}async function yA(t){return Wr().get(t)}async function ZN(t){await Wr().put(t)}function XN(t,e){return{_id:t,tenantId:e}}function eP(t,e,r){return{_id:e,userId:t,tenantId:r}}function tP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Of(t,e){let r=Wr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function EA(t,e,r,n){return Of(t,()=>tP(t,e,r,n))}async function rP(t,e,r,n){let i=[Of(e,()=>XN(e,t)),Of(r,()=>eP(e,r,t))];n&&i.push(EA(n,r,e,t)),await Promise.all(i)}async function nP(t){let e=Wr(),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 li={};P(li,{getAccount:()=>Zr,getAccountByTenantId:()=>cs,getStatus:()=>ZP});var wS=q(require("node-fetch"));var ua={};P(ua,{correlation:()=>Jo,logAlert:()=>ci,logAlertWithInfo:()=>zP,logWarn:()=>us,logger:()=>Rc,system:()=>Jf});var Jo={};P(Jo,{getId:()=>xf,setHeader:()=>iP});var TA=require("correlation-id"),iP=t=>{let e=TA.getId();e&&(t["x-budibase-correlation-id"]=e)};function xf(){return TA.getId()}var xc=q(require("pino")),RS=q(require("pino-pretty"));var zf=q(require("dd-trace")),bS=require("dd-trace/ext");var Jf={};P(Jf,{getLogReadStream:()=>QP,getSingleFileMaxSizeInfo:()=>xS,localFileDestination:()=>Kf});var aa=q(require("fs")),Yf=q(require("path")),SS=q(require("rotating-file-stream"));var Hf={};P(Hf,{ObjectStore:()=>Ft,ObjectStoreBuckets:()=>oP,SIGNED_FILE_PREFIX:()=>qf,bucketTTLConfig:()=>hc,budibaseTempDir:()=>oi,clientLibraryCDNUrl:()=>kP,clientLibraryPath:()=>pS,clientLibraryUrl:()=>BP,createBucketIfNotExists:()=>oa,deleteFile:()=>vP,deleteFiles:()=>NP,deleteFolder:()=>cS,downloadTarball:()=>LP,downloadTarballDirect:()=>PP,enrichPWAImages:()=>GP,enrichPluginURLs:()=>$P,extractBucketAndPath:()=>Rf,getAppFileUrl:()=>fS,getGlobalFileS3Key:()=>mS,getGlobalFileUrl:()=>VP,getObjectMetadata:()=>UP,getPluginIconKey:()=>yS,getPluginJSKey:()=>gS,getPluginS3Dir:()=>TS,getPresignedUrl:()=>Jr,getReadStream:()=>gc,listAllObjects:()=>uS,processAutomationAttachment:()=>uP,processObjectStoreAttachment:()=>OA,retrieve:()=>aS,retrieveDirectory:()=>DP,retrieveToTmp:()=>CP,sanitizeBucket:()=>Je,sanitizeKey:()=>Me,streamUpload:()=>oS,upload:()=>wP,uploadDirectory:()=>Wf});var _c=require("@aws-sdk/client-s3"),kf=require("@aws-sdk/lib-storage"),sS=require("@aws-sdk/s3-request-presigner"),Ic=q(require("stream")),Bf=q(require("node-fetch")),Gf=q(require("tar-fs")),Vf=q(require("zlib")),Yr=require("path"),os=q(require("fs"));var zo=q(require("path")),AA=require("os"),SA=q(require("fs"));var _A=q(require("stream")),oP={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},IA=(0,zo.join)((0,AA.tmpdir)(),".budibase");try{SA.default.mkdirSync(IA)}catch(t){if(t.code!=="EEXIST")throw t}function oi(){return IA}var hc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function aP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=zo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:_A.default.Readable.fromWeb(e.body)}}async function OA(t){let e=Rf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await gc(r,n),s=zo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function uP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await aP(t):await OA(t)}var $f=require("uuid");var jr={};P(jr,{APP_DEV:()=>Ju,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>gt,AutomationViewMode:()=>Ku,BUDIBASE_DATASOURCE_TYPE:()=>Pp,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Fp,DEFAULT_EXPENSES_TABLE_ID:()=>Mp,DEFAULT_INVENTORY_TABLE_ID:()=>Up,DEFAULT_JOBS_TABLE_ID:()=>Lp,DatabaseImpl:()=>Xi,DatabaseWithConnection:()=>AN,DeprecatedViews:()=>Yi,DesignDocuments:()=>xo,DocumentType:()=>ye,InternalTable:()=>Ir,QueryBuilder:()=>dr,Replication:()=>eS,SEPARATOR:()=>v,SQLITE_DESIGN_DOC_ID:()=>Ht,SQS_DATASOURCE_INTERNAL:()=>Np,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,ViewName:()=>Fr,baseGlobalDBName:()=>Lo,checkErrorCode:()=>iS,closePouchDB:()=>No,createApiKeyView:()=>KA,createNewUserEmailView:()=>HA,createPlatformAccountEmailView:()=>zA,createPlatformUserView:()=>ZA,createUserAppView:()=>YA,createView:()=>ss,dbExists:()=>EP,directCouchAllDbs:()=>sf,directCouchCall:()=>ZT,directCouchQuery:()=>Yp,directCouchUrlCall:()=>vo,doWithDB:()=>ct,extractAppUUID:()=>nN,fullSearch:()=>_P,generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Tc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>UA,generatePluginID:()=>LA,generateRoleID:()=>Cf,generateRowID:()=>wf,generateTableID:()=>bA,generateTemplateID:()=>NA,generateUserMetadataID:()=>DA,generateWorkspaceAppID:()=>kA,generateWorkspaceID:()=>wA,getAllApps:()=>ea,getAllDbs:()=>jA,getAppsByIDs:()=>mP,getCouchInfo:()=>Nt,getDB:()=>qe,getDevAppID:()=>Ji,getDevAppIDs:()=>gP,getDevelopmentAppID:()=>rc,getDocParams:()=>Qr,getGlobalDBName:()=>zn,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>ai,getOAuth2ConfigParams:()=>WA,getPluginParams:()=>qA,getPouch:()=>Kp,getPouchDB:()=>Et,getProdAppID:()=>ut,getProdAppIDs:()=>hP,getQueryIndex:()=>BA,getRoleParams:()=>Sc,getRowParams:()=>Df,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>$A,getUrlInfo:()=>Hp,getUserMetadataParams:()=>VA,getUsersByAppParams:()=>Ac,getWorkspaceAppParams:()=>QA,getWorkspaceParams:()=>GA,init:()=>ic,isDevApp:()=>Do,isDevAppID:()=>kr,isDocumentConflictError:()=>OP,isGlobalUserID:()=>CA,isProdAppID:()=>rN,isSameAppID:()=>yP,paginatedSearch:()=>SP,pagination:()=>Nf,prefixRoleID:()=>cr,queryGlobalView:()=>lr,queryGlobalViewRaw:()=>Uf,queryPlatformView:()=>ra,queryView:()=>Lf,queryViewRaw:()=>ta,removeKeyNumbering:()=>na,searchIndexes:()=>Ff});var Zo={};P(Zo,{AppState:()=>bf,getAppMetadata:()=>Ec,invalidateAppMetadata:()=>pP});var bf=(e=>(e.INVALID="invalid",e))(bf||{}),xA=3600,cP=60;async function lP(t){return ct(t,e=>e.get("app_metadata"),{skip_setup:!0})}function dP(t){return!t||t.state==="invalid"}async function Ec(t){let e=await fc(),r=await e.get(t);if(!r){let n=xA;try{r=await lP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=cP;else throw i}if(dP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function pP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await fc();await r.delete(t),e&&await r.store(t,e,xA)}var vf={};P(vf,{generateAgentChatID:()=>MA,generateAgentToolSourceID:()=>FA,generateAppID:()=>RA,generateAppUserID:()=>Tc,generateDevInfoID:()=>PA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>UA,generatePluginID:()=>LA,generateRoleID:()=>Cf,generateRowID:()=>wf,generateTableID:()=>bA,generateTemplateID:()=>NA,generateUserMetadataID:()=>DA,generateWorkspaceAppID:()=>kA,generateWorkspaceID:()=>wA,getDocParams:()=>Qr,getGlobalIDFromUserMetadataID:()=>vA,getGlobalUserParams:()=>ai,getOAuth2ConfigParams:()=>WA,getPluginParams:()=>qA,getQueryIndex:()=>BA,getRoleParams:()=>Sc,getRowParams:()=>Df,getStartEndKeyURL:()=>Xo,getTemplateParams:()=>$A,getUserMetadataParams:()=>VA,getUsersByAppParams:()=>Ac,getWorkspaceAppParams:()=>QA,getWorkspaceParams:()=>GA,isGlobalUserID:()=>CA,prefixRoleID:()=>cr});var RA=t=>{let e=gt;return t&&(e+=`${t}${v}`),`${e}${me()}`};function bA(){return`ta${v}${me()}`}function wf(t,e){return e=e||me(),`ro${v}${t}${v}${e}`}function wA(){return`workspace${v}${me()}`}function is(t){return`us${v}${t||me()}`}var fP=new RegExp(`^us${v}.+`);function CA(t){return fP.test(t)}function DA(t){return wf("ta_users",t)}function vA(t){let e=`ro${v}ta_users${v}`;return!t||!t.includes(e)?t:t.split(e)[1]}function NA(t){return`template${v}${t}${v}${me()}`}function Tc(t,e){return`${t}${v}${e}`}function Cf(t){let e=`role${v}`;return t.startsWith(e)?t:`${e}${t}`}function cr(t){return Cf(t)}var PA=t=>`devinfo${v}${t}`,LA=t=>`plg${v}${t}`,UA=t=>`oauth2log${v}${t}`,MA=()=>`agentchat${v}${me()}`,FA=()=>`agenttoolsource${v}${me()}`,kA=()=>`workspace_app${v}${me()}`;function Qr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${v}${e}`,endkey:`${t}${v}${e}${Ve}`}}function Df(t,e,r={}){if(t==null)return Qr("ro",null,r);let n=e??`${t}${v}`;return Qr("ro",n,r)}function BA(t){return`database/${t}`}function GA(t="",e={}){return{...e,startkey:`workspace${v}${t}`,endkey:`workspace${v}${t}${Ve}`}}function ai(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${v}${t}`,endkey:`us${v}${t}${Ve}`}}function VA(t,e={}){return Df("ta_users",t,e)}function Ac(t,e={}){let r=ut(t);return{...e,startkey:r,endkey:`${r}${Ve}`}}function $A(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${v}${t}${v}`,{...r,startkey:n,endkey:`${n}${Ve}`}}function Sc(t,e={}){return Qr("role",t,e)}function Xo(t,e){let r=e?`${v}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ve}"`}var qA=(t,e={})=>Qr("plg",t,e),WA=(t,e={})=>Qr("oauth2",t,e),QA=(t,e={})=>Qr("workspace_app",t,e);async function jA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await sf(s);r=r.concat(o)}let i=j();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(Xo("app",i)),await n(Xo("app_dev",i)),r.push(zn(i))),r}async function ea({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=j();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await jA({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(v);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Te&&d||l===i}return!1});if(r){let u=o.filter(l=>kr(l)),c=o.filter(l=>!kr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>Ec(u));if(a.length===0)return[];{let c=(await Promise.allSettled(a)).filter(l=>l.status==="fulfilled"&&l.value?.state!=="invalid").map(({value:l})=>l);return e?c.map(l=>({...l,status:Do(l)?"development":"published"})):c.filter(l=>t?Do(l):!Do(l))}}async function mP(t){return(await Promise.allSettled(t.map(r=>Ec(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function hP(){return(await ea({idsOnly:!0})).filter(e=>!kr(e))}async function gP(){return(await ea({idsOnly:!0})).filter(e=>kr(e))}function yP(t,e){return t==null||e==null?!1:ut(t)===ut(e)}async function EP(t){return ct(t,async e=>await e.exists(),{skip_setup:!0})}function Nf(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 Pf="_design/database";function TP(){return{_id:Pf,views:{}}}async function AP(t,e){if(Yi[e])try{let r=await t.get(Pf);for(let n of Yi[e])delete r.views?.[n];await t.put(r)}catch{}}async function ss(t,e,r){let n;try{n=await t.get(Pf)}catch{n=TP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await ss(t,e,r);throw s}}var HA=async()=>{let t=ie(),e=`function(doc) {
10
10
  if (doc._id.startsWith("us${v}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await ss(t,e,"by_email2")},KA=async()=>{let t=ne(),e=`function(doc) {
13
+ }`;await ss(t,e,"by_email2")},YA=async()=>{let t=ie(),e=`function(doc) {
14
14
  if (doc._id.startsWith("us${v}") && doc.roles) {
15
15
  for (let prodAppId of Object.keys(doc.roles)) {
16
16
  let emitted = prodAppId + "${v}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await ss(t,e,"by_app")},YA=async()=>{let t=ne(),e=`function(doc) {
20
+ }`;await ss(t,e,"by_app")},KA=async()=>{let t=ie(),e=`function(doc) {
21
21
  if (doc._id.startsWith("devinfo") && doc.apiKey) {
22
22
  emit(doc.apiKey, doc.userId)
23
23
  }
24
- }`;await ss(t,e,"by_api_key")};async function ta(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 EP(r,t),await n(),ta(t,e,r,n,i);if(s.status===409)return ta(t,e,r,n,i);throw s}}var Uf=async(t,e,r,n,i)=>{let a=(await ta(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 JA(t,e){try{await ct(xe.PLATFORM_INFO.name,async r=>{await ss(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var zA=async()=>{let t=`function(doc) {
24
+ }`;await ss(t,e,"by_api_key")};async function ta(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 AP(r,t),await n(),ta(t,e,r,n,i);if(s.status===409)return ta(t,e,r,n,i);throw s}}var Lf=async(t,e,r,n,i)=>{let a=(await ta(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 JA(t,e){try{await ct(xe.PLATFORM_INFO.name,async r=>{await ss(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var zA=async()=>{let t=`function(doc) {
25
25
  if (doc._id.startsWith("acc_metadata${v}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
@@ -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")},ra=async(t,e)=>{let r={account_by_email:zA,platform_users_lowercase_2:ZA};return ct(xe.PLATFORM_INFO.name,async n=>{let i=r[t];return Uf(t,e,n,i,{arrayResponse:!0})})},XA={by_email2:HA,by_api_key:YA,by_app:KA},lr=async(t,e,r,n)=>{r||(r=ne());let i=XA[t];return Uf(t,e,r,i,n)};async function Lf(t,e,r){let n=ne(),i=XA[t];return ta(t,e,n,i,r)}var Mf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([No(this.source),No(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";delete e.filter;let s=e.isCreation;return delete e.isCreation,{...e,filter:(o,a)=>!s&&o._id==="_design/migrations"||i&&o._id?.startsWith("_design")?!1:o._deleted?!0:o._id?.startsWith("log_au")||o._id==="app_metadata"?!1:r?r(o,a):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},eS=Mf;var rS=q(require("node-fetch"));var na=Lr.removeKeyNumbering;function ui(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=na(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(p,g)=>ui(g)?null:`${p}:${e.preprocess(g,s)}`,u=(p,g,y="AND")=>{if(ui(g))return null;if(!Array.isArray(g))return`${p}:${g}`;let T=`${e.preprocess(g[0],{escape:!0})}`;for(let S=1;S<g.length;S++)T+=` ${y} ${e.preprocess(g[S],{escape:!0})}`;return`${p}:(${T})`},c=(p,g)=>ui(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${p}:/.*${g}.*/`),l=(p,g)=>{let y=r?"*:* AND ":"",T=r?"AND":void 0;return y+"NOT "+u(p,g,T)},d=(p,g)=>u(p,g,"OR"),f=(p,g)=>{if(ui(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let y=`${e.preprocess(g[0],s)}`;for(let T=1;T<g.length;T++)y+=` OR ${e.preprocess(g[T],s)}`;return`${p}:(${y})`};function m(p,g,y){let T="";for(let[S,O]of Object.entries(p)){S=na(S),S=e.preprocess(e.handleSpaces(S),{escape:!0});let R=g(S,O);if(R!=null){if(T.length>0||n.length>0){let E=y?.mode?y.mode:r?"OR":"AND";T+=` ${E} `}T+=R,(typeof O!="string"&&O!=null||typeof O=="string"&&O!==o&&O!=="")&&(i=!1)}}if(y?.returnBuilt)return T;n+=T}if(this.#e.string&&m(this.#e.string,(p,g)=>ui(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${p}:${g}*`)),this.#e.range&&m(this.#e.range,(p,g)=>{if(ui(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let y=e.preprocess(g.low,s),T=e.preprocess(g.high,s);return`${p}:[${y} TO ${T}]`}),this.#e.fuzzy&&m(this.#e.fuzzy,c),this.#e.equal&&m(this.#e.equal,a),this.#e.notEqual&&m(this.#e.notEqual,(p,g)=>ui(g)?null:typeof g=="boolean"?`(*:* AND !${p}:${g})`:`!${p}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,p=>(i=!1,`(*:* -${p}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,p=>(i=!1,`${p}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,f),this.#e.contains&&m(this.#e.contains,u),this.#e.notContains&&m(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&m(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,m({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Nt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await tS(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await tS(n,i,r);throw s}}};async function tS(t,e,r){let n=await(0,rS.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 nS(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 nS(t,e,r,c)}async function TP(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 AP(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 nS(t,e,r,n)}}var Ff={};N(Ff,{createUserIndex:()=>SP});async function SP(){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 iS(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 _P(t){return iS(t,409)}var ia=q(require("fs/promises")),Yr=q(require("dd-trace")),sa=require("stream/promises");var IP=require("sanitize-s3-objectkey"),OP={bucketCreationPromises:{}},qf="/files/signed",Hr={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"},xP=[Hr.html,Hr.css,Hr.js,Hr.json];function Le(t){return IP(Je(t)).replace(/\\/g,"/")}function Je(t){return t.replace(new RegExp(yt,"g"),gt)}function Ft(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 oa(t,e){e=Je(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=OP.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 RP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await ia.default.open(r)).createReadStream():s,c=Ft(),l=await oa(c,t);if(o&&l.created){let g=hc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,f=d||(a?Hr[a.toLowerCase()]:Hr.txt),m={Bucket:Je(t),Key:Le(e),Body:u,ContentType:f};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new kf.Upload({client:c,params:m}).done()}async function oS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await Yr.default.trace("streamUpload",async o=>{if(o.addTags({bucketName:t,filename:r,type:n,ttl:s}),!e)throw new Error("Stream to upload is invalid/undefined");let a=r.split(".").pop(),u=Ft(),c=await oa(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=hc(t,s);await u.putBucketLifecycleConfiguration(T)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let l=n;l||(l=a?Hr[a.toLowerCase()]:Hr.txt),o.addTags({contentType:l});let d=Je(t),f=Le(r),m={Bucket:d,Key:f,Body:e,ContentType:l,...i},g=await new kf.Upload({client:u,params:m}).done(),y=await u.headObject({Bucket:d,Key:f});return o.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}async function aS(t,e){return await Yr.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=Ft(),i={Bucket:Je(t),Key:Le(e)},s=await n.getObject(i);if(!s.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),xP.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return Ic.default.Readable.fromWeb(o)}})}async function*uS(t,e){let r=Ft(),n=(o={})=>r.listObjectsV2({...o,Bucket:Je(t),Prefix:Le(e)}),i=!1,s;do{let o={};s&&(o.ContinuationToken=s);let a=await n(o);if(a.Contents)for(let u of a.Contents)yield u;i=!!a.IsTruncated,s=a.NextContinuationToken}while(i&&s)}async function Jr(t,e,r=3600){let n=Ft({presigning:!0}),i={Bucket:Je(t),Key:Le(e)},s=await(0,sS.getSignedUrl)(n,new _c.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${qf}${a}${u}`}else return s}async function wP(t,e){return await Yr.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=Je(t),e=Le(e);let n=await aS(t,e),i=(0,Kr.join)(oi(),(0,Vf.v4)());return r.addTags({outputPath:i}),n instanceof Ic.default.Readable?(r.addTags({stream:!0}),await(0,sa.pipeline)(n,os.default.createWriteStream(i))):(r.addTags({stream:!1}),os.default.writeFileSync(i,n)),i})}async function bP(t,e){return await Yr.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,Kr.join)(oi(),(0,Vf.v4)());await ia.default.mkdir(n,{recursive:!0});let i=0;return await br.parallelForeach(uS(t,e),async s=>{i++,await Yr.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await gc(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,Kr.join)(n,...l);c.length>1&&!os.default.existsSync(d)&&await ia.default.mkdir(d,{recursive:!0}),await(0,sa.pipeline)(u,os.default.createWriteStream((0,Kr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function DP(t,e){let r=Ft();await oa(r,t);let n={Bucket:t,Key:Le(e)};return r.deleteObject(n)}async function CP(t,e){let r=Ft();await oa(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Le(i)}))}};return r.deleteObjects(n)}async function cS(t,e){t=Je(t),e=Le(e);let r=Ft(),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 cS(t,e)}async function Wf(t,e,r){return await Yr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=Je(t);let i=await ia.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Le((0,Kr.join)(r,s.name)),a=(0,Kr.join)(e,s.name);s.isDirectory()?await Wf(t,a,o):await oS({bucket:t,filename:o,stream:os.default.createReadStream(a)})}return i})}async function vP(t,e,r={}){e=Le(e);let n=await(0,Bf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,sa.pipeline)(n.body,$f.default.createUnzip(),Gf.default.extract(e))}async function NP(t,e,r){e=Je(e),r=Le(r);let n=await(0,Bf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Kr.join)(oi(),r);return await(0,sa.pipeline)(n.body,$f.default.createUnzip(),Gf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Wf(e,i,r),i}async function gc(t,e){return await Yr.default.trace("getReadStream",async r=>{t=Je(t),e=Le(e),r.addTags({bucketName:t,path:e});let n=Ft(),i={Bucket:t,Key:e},s=await n.getObject(i);if(!s.Body||!(s.Body instanceof Ic.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function PP(t,e){t=Je(t),e=Le(e);let r=Ft(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Rf(t){let e=t.split("?")[0],r=new RegExp(`^${qf}/(?<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 lS=q(require("aws-cloudfront-sign")),Oc;function UP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Oc||(Oc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Oc)}var LP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:UP(),expireTime:new Date().getTime()+1e3*60*60*24}),as=t=>{let e=Qf(t);return lS.getSignedUrl(e,LP())},Qf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var dS=q(require("querystring"));function pS(t){return`${Le(t)}/budibase-client.js`}async function MP(t,e){let r=pS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Qf(r)):await Jr(h.APPS_BUCKET_NAME,r)}function FP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${dS.default.encode(n)}`}async function fS(t){return h.CLOUDFRONT_CDN?as(t):await Jr(h.APPS_BUCKET_NAME,t)}async function kP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await fS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var BP=async(t,e,r)=>{let n=mS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),as(n)):await Jr(h.GLOBAL_BUCKET_NAME,n)},mS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function GP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await $P(e),n=await VP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function $P(t){let e=gS(t);return hS(e)}async function VP(t){let e=yS(t);if(e)return hS(e)}async function hS(t){return h.CLOUDFRONT_CDN?as(t):await Jr(h.PLUGIN_BUCKET_NAME,t)}function gS(t){return ES(t,"plugin.min.js")}function yS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return ES(t,e)}function ES(t,e){return`${TS(t.name)}/${e}`}function TS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var _S="budibase.log",IS="budibase-logs-history.txt",OS=Kf.default.join(oi(),"systemlogs");function AS(t){return Kf.default.join(OS,t)}function xS(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 Yf(){let t=xS(h.ROLLING_LOG_MAX_SIZE);return SS.createStream(_S,{size:t?.size,path:OS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:IS,initialRotation:!1})}function qP(){let t=[],e=AS(IS);if(aa.default.existsSync(e)){let i=aa.default.readFileSync(e,"utf-8").split(`
37
- `);for(let s of i.filter(o=>o))t.push(aa.default.readFileSync(s))}return t.push(aa.default.readFileSync(AS(_S))),Buffer.concat(t)}function WP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function QP(t){return t instanceof Error}function jP(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,RS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Yf(),level:t}),zr=r.length?(0,xc.default)(e,xc.default.multistream(r)):(0,xc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(y=>{jP(y)&&(d=`${d} ${y}`.trimStart()),WP(y)&&l.push(y),QP(y)&&(c=y)});let f=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:f?._id,identityType:f?.type,correlationId:xf()};let p=zf.default.scope().active();p&&zf.default.inject(p.context(),wS.formats.LOG,m);let g={err:c,pid:process.pid,...m};if(l.length){let y={},T=0;for(let S=0;S<l.length;S++){let O=l[S],R=O._logKey;R?(delete O._logKey,g[R]=O):(y[T]=O,T++)}Object.keys(y).length&&(g.data=y)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);zr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=uf()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var Rc=zr;var HP=["AccountError"];function KP(t){return t&&t.suppressAlert}function ci(t,e){e&&HP.includes(e.name)&&KP(e)||console.error(`bb-alert: ${t}`,e)}function YP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,ci(t,n)}function us(t,e){console.warn(`bb-warn: ${t}`,e)}var ca=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";Jo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,bS.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var Zf=new ca(h.INTERNAL_ACCOUNT_PORTAL_URL),Xf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(Xf)return;let e={email:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},cs=async t=>{if(Xf)return;let e={tenantId:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},JP=async()=>{if(Xf)return;let t=await Zf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};N(Es,{UserDB:()=>Yt,addAppBuilder:()=>k0,bulkGetGlobalUsersById:()=>nl,bulkUpdateGlobalUsers:()=>wa,cleanseUserObject:()=>Fm,creatorsInList:()=>di,doesUserExist:()=>P0,getAccountHolderFromUsers:()=>Vc,getAllUserIds:()=>v0,getAllUsers:()=>N0,getById:()=>mi,getCreatorCount:()=>M0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>kS,getExistingTenantUsers:()=>FS,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>N_,getGlobalUserByEmail:()=>Gt,getPlatformUsers:()=>Cc,getUserCount:()=>L0,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>pa,isCreatorSync:()=>Gc,isGlobalBuilder:()=>BS,paginatedUsers:()=>U_,removeAppBuilder:()=>B0,removePortalUserPermissions:()=>F0,searchExistingEmails:()=>lm,searchGlobalUsersByApp:()=>il,searchGlobalUsersByAppAccess:()=>Mm,searchGlobalUsersByEmail:()=>P_,validateUniqueUser:()=>$c});var dm={};N(dm,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>Vc,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>$S,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>pa,isCreatorSync:()=>Gc,isGlobalBuilder:()=>BS,validateUniqueUser:()=>$c});var cm={};N(cm,{createCode:()=>lU,deleteCode:()=>pU,getCode:()=>dU,getExistingInvites:()=>um,getInviteCodes:()=>MS,updateCode:()=>cU});var ls={};N(ls,{Duration:()=>be,DurationType:()=>am,clearCookie:()=>Xr,compare:()=>rm,getAppIdFromCtx:()=>iU,getCookie:()=>pr,hasCircularStructure:()=>oU,hash:()=>tm,isAudited:()=>sm,isClient:()=>sU,isPublicApiRequest:()=>nU,isServingApp:()=>eU,isServingBuilder:()=>tU,isServingBuilderPreview:()=>rU,isValidInternalAPIKey:()=>la,newid:()=>me,openJwt:()=>bc,resolveAppUrl:()=>PS,setCookie:()=>US,time:()=>uU,timeout:()=>im,urlHasProtocol:()=>aU,validEmail:()=>om});var em=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),zP=h.SALT_ROUNDS||10;async function tm(t){let e=await em.genSalt(zP);return em.hash(t,e)}async function rm(t,e){return em.compare(t,e)}var wc=q(require("jsonwebtoken")),nm="app"+v,CS="/app/",vS="/app/preview",ZP="/builder",NS=`${ZP}/app/`,XP="/api/public/v";async function PS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Ho(t,{includeStrategies:["subdomain"]}));let s=(await We(n,()=>ea({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function eU(t){return t.path.startsWith(`/${nm}`)?!0:t.path.startsWith(CS)}function tU(t){return t.path.startsWith(NS)}function rU(t){return t.path.startsWith(vS)}function nU(t){return t.path.startsWith(XP)}async function iU(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith(nm)?r:(r&&Ji(r)!==Ji(u)&&t.throw("App id conflict",403),r??u)}for(let u of e)if(r=n(u),r)break;t.request.body&&t.request.body.appId&&(r=n(t.request.body.appId));let i=DS(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(vS);if(t.path.startsWith(CS)&&!s&&(r=n(await PS(t))),t.request.headers.referer?.includes(NS)){let u=DS(t.request.headers.referer);r=n(u)}return r}function DS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(nm))}function bc(t){if(t)try{return wc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return wc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function la(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function pr(t,e){let r=t.cookies.get(e);if(r)return bc(r)}function US(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=wc.default.sign(e,h.JWT_SECRET));let i={expires:Zu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Xr(t,e){US(t,null,e)}function sU(t){return t.headers["x-budibase-type"]==="client"}function im(t){return new Promise(e=>setTimeout(e,t))}function sm(t){return!!Vh[t]}function oU(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 aU(t){return!!t.match(/^.+:\/\/.+$/)}function om(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 am=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(am||{}),Dc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},be=class t{constructor(e){this.ms=e}to(e){return this.ms/Dc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Dc[e]/Dc[r]}static from(e,r){return new t(r*Dc[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 uU(t){let e=performance.now();return[await t(),be.fromMilliseconds(performance.now()-e)]}var LS=be.fromDays(7).toSeconds();async function cU(t,e){await(await ti()).store(t,e,LS)}async function lU(t,e){let r=me();return await(await ti()).store(r,{email:t,info:e},LS),r}async function dU(t){let r=await(await ti()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function pU(t){await(await ti()).delete(t)}async function MS(){let r=(await(await ti()).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 um(t){return(await MS()).filter(e=>t.includes(e.email))}async function lm(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 um(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Cc(t){return await ra("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Cc(t))[0]??null}async function FS(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 kS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("account_by_email",r)}var Bc={};N(Bc,{BadRequestError:()=>Pc,BudibaseError:()=>ps,EmailUnavailableError:()=>fr,FeatureDisabledError:()=>Fc,ForbiddenError:()=>Uc,HTTPError:()=>Ge,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Nc,NotImplementedError:()=>Lc,UnexpectedError:()=>vc,UsageLimitError:()=>Mc,getPublicError:()=>kc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},kc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},Ge=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)}},vc=class extends Ge{constructor(e){super(e,500)}},Nc=class extends Ge{constructor(e){super(e,404)}},Pc=class extends Ge{constructor(e){super(e,400)}},Uc=class extends Ge{constructor(e){super(e,403)}},Lc=class extends Ge{constructor(e){super(e,501)}},Mc=class extends Ge{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Fc=class extends Ge{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")}},fr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=at.users.isBuilder,en=at.users.isAdmin,BS=at.users.isGlobalBuilder,GS=at.users.isAdminOrBuilder,tn=at.users.hasAdminPermissions,Tt=at.users.hasBuilderPermissions,$S=at.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=>Gc(i,e))}async function pa(t){let e=[];return t.userGroups&&(e=await ne().getMultiple(t.userGroups)),Gc(t,e)}function Gc(t,e){let r=at.users.isCreator(t);return!r&&t?mU(t,e):r}function mU(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 $c(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new fr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new fr(t)}}async function Vc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await ds(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var ys={};N(ys,{account:()=>i_,action:()=>s_,ai:()=>l_,analytics:()=>Wc,app:()=>o_,auditLog:()=>x_,auth:()=>tl,automation:()=>a_,backfill:()=>A_,backfillCache:()=>Xc,backup:()=>I_,datasource:()=>u_,email:()=>c_,environmentVariable:()=>O_,group:()=>S_,identification:()=>Bt,initAsyncEvents:()=>y0,installation:()=>Aa,layout:()=>p_,license:()=>d_,org:()=>f_,plugin:()=>__,processors:()=>Tm,publishEvent:()=>A,query:()=>m_,role:()=>xa,rowAction:()=>R_,rows:()=>g_,screen:()=>h_,serve:()=>E_,shutdown:()=>E0,table:()=>y_,user:()=>ze,view:()=>T_});var Tm={};N(Tm,{analyticsProcessor:()=>XS,init:()=>UU,processors:()=>hr});var Wc={};N(Wc,{enabled:()=>qc});var qc=async()=>Qc();var jS=require("posthog-node");var hU=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",gU=t=>t==="served:app:preview"||t==="served:app";var qS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},WS=async t=>{if(!hU(t))return!1;let e=await yU(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 gU(t)&&(e=e+":"+Ue()),e},yU=async t=>{let e=QS(t);return await si(e)},VS=async(t,e)=>{let r=QS(t),n=qS[t],i;switch(n){case"calendarDay":i=86400}await ur(r,e,i)};var TU=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],fa=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(TU.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=Ue();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var HS=fa;var AU=["installation:version:upgraded","installation:version:downgraded"],SU=["installation","tenant"],ma=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new HS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!AU.includes(e)&&!await qc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!SU.includes(e.type)&&!await qc()||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 pm=h.SELF_HOSTED&&!h.isDev(),ha=class{async processEvent(e,r,n){pm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){pm||console.log("[audit] identified",e)}async identifyGroup(e){pm||console.log("[audit] group identified",e)}async shutdown(){}};var Em={};N(Em,{BudibaseQueue:()=>kt,InMemoryQueue:()=>jc,JobQueue:()=>hs,QueuedProcessor:()=>ym,UnretriableError:()=>Yc,shutdown:()=>vU});var KS=q(require("events"));function _U(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 jc=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,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((u,c)=>{r(n,(d,f)=>{d?c(d):u(f)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await ht.wait(100*c),await o(i(),c);throw l}}try{let u=await o(i());this._emitter.emit("completed",n,u);let c=this._messages.indexOf(n);if(c===-1)throw"Failed deleting a processed message";this._messages.splice(c,1)}catch(u){console.error(u),this._emitter.emit("error",n,u)}this._runCount++;let a=n.opts?.jobId?.toString();a&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}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=me(),o=()=>{let u={id:s,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{u._isDiscarded=!0}};this._messages.push(u),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",u)},a=n?.delay;return a?setTimeout(o,a):o(),{id:i,finished:()=>new Promise((u,c)=>{let l=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),c(m))},d=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),u(m))};this._emitter.on("error",l),this._emitter.on("completed",d)})}}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=>_U(e))}async whenCurrentJobsFinished(){do await im(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},YS=jc;var hm=q(require("bull"));var hs=(a=>(a.AUTOMATION="automationQueue",a.APP_BACKUP="appBackupQueue",a.AUDIT_LOG="auditLogQueue",a.SYSTEM_EVENT_QUEUE="systemEventQueue",a.APP_MIGRATION="appMigration",a.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",a.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",a))(hs||{});function JS(t,e,r){xU(t,e),r&&IU(t,r)}function IU(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function At(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var OU={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event"};function xU(t,e){let r=OU[e];function n(i,s){let o=i.data.event?.appId;if(o)return af(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 Hc={};N(Hc,{cleanup:()=>RU,clear:()=>mm,set:()=>fm});var ga=[];function fm(t,e){let r=setInterval(t,e);return ga.push(r),r}function mm(t){let e=ga.indexOf(t);e!==-1&&ga.splice(e,1),clearInterval(t)}function RU(){for(let t of ga)clearInterval(t);ga=[]}var mr=q(require("dd-trace")),ya=q(require("object-sizeof")),wU=be.fromMinutes(5).toMs(),bU=be.fromSeconds(30).toMs(),gm=be.fromSeconds(60).toMs(),Ea=[],Kc;async function zS(){for(let t of Ea)await t.clean(gm,"completed"),await t.clean(gm,"failed")}async function DU(t,e,r){let n=performance.now();try{let i=await e();return mr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw mr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;mr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),mr.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 CU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ya.default)(t.data),...ZS(t.opts||{})}}var kt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:Xn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:wU,lockRenewTime:bU}};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 hm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new YS(this.jobQueue,r):n=new hm.default(this.jobQueue,r),JS(n,this.jobQueue,this.opts.removeStalledCb),Ea.push(n),!Kc&&!h.isTest()&&(Kc=fm(zS,gm),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(o,a)=>{await mr.default.trace("queue.process",async u=>{if(o.data._parentSpanContext){let c=o.data._parentSpanContext,l={traceId:c.traceId,spanId:c.spanId,toTraceId:()=>c.traceId,toSpanId:()=>c.spanId,toTraceparent:()=>""};u.addLink(l)}u.addTags({"queue.name":this.jobQueue,...CU(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),mr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,ya.default)(o.data),this.metricTags()),await this.withMetrics("queue.process",()=>a?n(o,a):n(o))})},s;return n.length===1?s=o=>i(o):s=i,r?this.queue.process(r,s):this.queue.process(s)}async add(e,r){return await mr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ya.default)(e),...ZS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},mr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ya.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return DU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function vU(){Kc&&mm(Kc),console.log("Waiting for current queue jobs to finish...");for(let t of Ea)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Ea)await t.close();Ea=[],console.log("Queues shutdown")}var Yc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},ym=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new kt(e,{maxStalledCount:o,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:s}}),this._queue.process(async(a,u)=>{try{let c=await this.processFn(a.data);u?.(null,c)}catch(c){c instanceof Yc&&await a.discard(),ci(`Failed to process job in ${this._queue.name}`,c),u?.(c)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await ht.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var gs=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new kt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await We(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&&sm(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var Ta=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var XS=new ma,NU=new ha,PU=new gs;function UU(t){return gs.init(t)}var hr=new Ta([XS,NU,PU]);var Jc={};N(Jc,{checkInstallVersion:()=>FU,getInstall:()=>Sa,getInstallFromDB:()=>Sm});var Am=q(require("semver"));var Sa=async()=>qr(Ce.INSTALLATION,86400,Sm,{useTenancy:!1});async function LU(t){let e={_id:xe.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 Sm();throw r}}var Sm=async()=>ct(xe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(xe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await LU(t);else throw r}return e}),MU=async t=>{try{await ct(xe.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await ns(Ce.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},FU=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Am.default.gt(r,e),i=Am.default.lt(r,e);await MU(r)&&(await wo({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Bt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?ci(`Invalid version "${r}" - is it semver?`):ci("Failed to retrieve version",n)}};var kU=async()=>{let t=$p(),e=Oa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=_a();return{id:e_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await zc(j()),s=_a();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 zc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=_a(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},BU=async(t,e)=>{let r=t,n="installation",i=_a(),s=h.VERSION,o=Oa(),a={id:r,type:n,hosting:i,version:s,environment:o};await _m(a,e),await Ia({...a,id:`$${n}_${r}`},e)},GU=async(t,e,r)=>{let n=await zc(t),i="tenant",s=await pi(),o=Oa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await _m(a,r),await Ia({...a,id:`$${i}_${n}`},r)},$U=async(t,e,r)=>{let n=t._id,i=await zc(t.tenantId),s="user",o=Tt(t),a=tn(t),u;Ya(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,f=await pi(),m=e?e.hosting:_a(),p=Oa();await Ia({id:n,type:s,hosting:m,installationId:f,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:p},r)},VU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ka(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=Oa();if(Ha(t)){let d=await Gt(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await hr.identify(t,e)},_m=async(t,e)=>{await hr.identifyGroup(t,e)},Oa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,_a=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>qU()?"account-portal":(await Sa()).installId,zc=async t=>h.SELF_HOSTED?t_(t):t,t_=async t=>We(t,()=>qr(Ce.UNIQUE_TENANT_ID,86400,async()=>{let e=ne(),r=await Zc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),qU=()=>h.SERVICE==="account-portal",e_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Bt={getCurrentIdentity:kU,identifyInstallationGroup:BU,identifyTenantGroup:GU,identifyUser:$U,identifyAccount:VU,identify:Ia,identifyGroup:_m,getInstallationId:pi,getUniqueTenantId:t_};var Xc={};N(Xc,{end:()=>QU,isAlreadySent:()=>xm,isBackfillingEvent:()=>Om,recordEvent:()=>Im,start:()=>WU});var WU=async t=>HU({eventWhitelist:t}),Im=async(t,e)=>{let r=Rm(t,e);await ur(r,e,void 0,{useTenancy:!1})},QU=async()=>{await KU(),await YU()},jU=async()=>si(Ce.BACKFILL_METADATA),HU=async t=>ur(Ce.BACKFILL_METADATA,t),KU=async()=>{await Qo(Ce.BACKFILL_METADATA)},YU=async()=>{let t=Rm(),e=await mc(t);for(let r of e)await Qo(r,{useTenancy:!1})},Om=async t=>{let r=(await jU())?.eventWhitelist;return!!(r&&r.includes(t))},xm=async(t,e)=>{let r=Rm(t,e);return!!await si(r,{useTenancy:!1})},JU={"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}`},Rm=(t,e)=>{let r,n=j();if(t){r=`${Ce.EVENTS}:${n}:${t}`;let i=JU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${Ce.EVENTS}:${n}:*`;return r};var gr;function el(){gr=new kt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function r_(){gr&&await gr.close()}async function n_(t){gr||el();let{event:e,identity:r}=t;$h.indexOf(e)!==-1&&r.tenantId&&await gr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Bt.getCurrentIdentity();if(!(n?!1:await Om(t))){await n_({event:t,identity:i,properties:e,timestamp:r}),await hr.processEvent(t,i,e,r);return}await xm(t,e)||(await hr.processEvent(t,i,e,r),await Im(t,e))};async function zU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function ZU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function XU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var i_={created:zU,deleted:ZU,verified:XU};async function eL(t,e){await A("action:automation_step:executed",t,e)}async function tL(t,e){await A("action:crud:executed",t,e)}async function rL(t,e){await A("action:ai_agent:executed",t,e)}var s_={aiAgentExecuted:rL,automationStepExecuted:eL,crudExecuted:tL};var nL=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function iL(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function sL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function oL(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function aL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function uL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function cL(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function lL(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function dL(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function pL(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function fL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function mL(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var o_={created:nL,updated:iL,deleted:sL,published:oL,unpublished:aL,fileImported:uL,duplicated:cL,templateImported:lL,versionUpdated:dL,versionReverted:pL,reverted:fL,exported:mL};async function hL(t,e){let n={userId:(await Bt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function gL(t){let r={userId:(await Bt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function yL(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function EL(t){let e={type:t};await A("auth:sso:updated",e)}async function TL(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function AL(t){let e={type:t};await A("auth:sso:deactivated",e)}var tl={login:hL,logout:gL,SSOCreated:yL,SSOUpdated:EL,SSOActivated:TL,SSODeactivated:AL};async function SL(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 _L(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId};await A("automation:trigger:updated",e)}async function IL(t){let e={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,audited:{name:t.name}};await A("automation:deleted",e)}async function OL(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 xL=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function RL(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 wL(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 a_={created:SL,triggerUpdated:_L,deleted:IL,tested:OL,run:xL,stepCreated:RL,stepDeleted:wL};function wm(t){return!Object.values(qa).includes(t.source)}async function bL(t,e){let r={datasourceId:t._id,source:t.source,custom:wm(t)};await A("datasource:created",r,e)}async function DL(t){let e={datasourceId:t._id,source:t.source,custom:wm(t)};await A("datasource:updated",e)}async function CL(t){let e={datasourceId:t._id,source:t.source,custom:wm(t)};await A("datasource:deleted",e)}var u_={created:bL,updated:DL,deleted:CL};async function vL(t){let e={};await A("email:smtp:created",e,t)}async function NL(){let t={};await A("email:smtp:updated",t)}var c_={SMTPCreated:vL,SMTPUpdated:NL};async function PL(t){let e={};await A("ai:config:created",e,t)}async function UL(){let t={};await A("ai:config:updated",t)}var l_={AIConfigCreated:PL,AIConfigUpdated:UL};async function LL(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function ML(t){let e={accountId:t.accountId};await A("license:activated",e)}async function FL(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function kL(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function BL(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function GL(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function $L(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var d_={planChanged:LL,activated:ML,checkoutOpened:FL,checkoutSuccess:kL,portalOpened:BL,paymentFailed:GL,paymentRecovered:$L};async function VL(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function qL(t){let e={layoutId:t};await A("layout:deleted",e)}var p_={created:VL,deleted:qL};async function WL(t){let e={};await A("org:info:name:updated",e,t)}async function QL(t){let e={};await A("org:info:logo:updated",e,t)}async function jL(t){let e={};await A("org:platformurl:updated",e,t)}async function HL(){let t={};await A("analytics:opt:out",t)}async function KL(){let t={};await A("analytics:opt:out",t)}var f_={nameUpdated:WL,logoUpdated:QL,platformURLUpdated:jL,analyticsOptOut:HL,analyticsOptIn:KL};var YL=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},JL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},zL=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},ZL=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},XL=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)},m_={created:YL,updated:JL,deleted:zL,imported:ZL,run:XL,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 xa={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 h_={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)},g_={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 y_={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 E_={servedBuilder:hM,servedApp:gM,servedAppPreview:yM};async function EM(t,e){let r={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:created",r,e)}async function TM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:updated",e)}async function AM(t){let e={userId:t._id,viaScim:Ut(),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 ze={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 UM(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 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 T_={created:NM,updated:PM,deleted:UM,exported:LM,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 Aa={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 A_={appSucceeded:HM,appFailed:KM,tenantSucceeded:YM,tenantFailed:JM,installationSucceeded:zM,installationFailed:ZM};async function XM(t,e){let r={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:created",r,e)}async function e0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:updated",e)}async function t0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:deleted",e)}async function r0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:user_added",r)}async function n0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),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 S_={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 __={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 I_={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 O_={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 x_={filtered:m0,downloaded:h0};async function g0(t,e){await A("row_action:created",t,e)}var R_={created:g0};function y0(){}var E0=async()=>{await hr.shutdown(),console.log("Events shutdown")};var bm=async t=>{await ze.deleted(t),Tt(t)&&await ze.permissionBuilderRemoved(t),tn(t)&&await ze.permissionAdminRemoved(t)},T0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},A0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},S0=async(t,e)=>{let r=t.roles,n=e?.roles;await T0(t,r,n),await A0(t,r,n)},Dm=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await cs(r)),await Bt.identifyUser(t,n),e?(await ze.updated(t),I0(t,e)&&await ze.permissionBuilderRemoved(t),x0(t,e)&&await ze.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await ze.passwordForceReset(t),t.password!==e.password&&await ze.passwordUpdated(t)):await ze.created(t),_0(t,e)&&await ze.permissionBuilderAssigned(t),O0(t,e)&&await ze.permissionAdminAssigned(t),await S0(t,e)},_0=(t,e)=>w_(t,e,Tt),I0=(t,e)=>b_(t,e,Tt),O0=(t,e)=>w_(t,e,tn),x0=(t,e)=>b_(t,e,tn),w_=(t,e,r)=>!(!r(t)||e&&r(e)),b_=(t,e,r)=>!(r(t)||!e||!r(e));var rl={};N(rl,{createASession:()=>w0,endSession:()=>b0,getSession:()=>vm,getSessionsForUser:()=>Ra,invalidateSessions:()=>fi,updateSessionTTL:()=>Cm});var C_=require("uuid");var v_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):be.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function Ra(t){return t?(await(await $r()).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 Ra(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 $r(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||us(`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){let r=await Ra(t),n=0;if(r.length>=3){let c=r.sort((f,m)=>new Date(f.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,d=c.slice(0,l).map(f=>f.sessionId);n=d.length,await fi(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await $r(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,C_.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,v_),{session:u,invalidatedSessionCount:n}}async function Cm(t){let e=await $r(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,v_)}async function b0(t,e){await(await $r()).delete(As(t,e))}async function vm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await $r()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Lm={};N(Lm,{PASSWORD_MAX_LENGTH:()=>Pm,PASSWORD_MIN_LENGTH:()=>Nm,validatePassword:()=>Um});var Nm=+(h.PASSWORD_MIN_LENGTH||12),Pm=+(h.PASSWORD_MAX_LENGTH||512);function Um(t){return!t||t.length<Nm?{valid:!1,error:`Password invalid. Minimum ${Nm} characters.`}:t.length>Pm?{valid:!1,error:`Password invalid. Maximum ${Pm} characters.`}:{valid:!0}}var D0=async t=>{let e=t._id;await Mt.removeUser(t),await bm(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()||Ya(e)?!0:(r||(r=await cs(j())),!!(r&&r.email===e.email&&Ka(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 Ge("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Um(o);if(!d.valid)throw new Ge(d.error,400)}u=r.hashPassword?await tm(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||is();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ne().allDocs(ai(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await il(e,{})).length}}static async getUsersByAppAccess(e){return await Mm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Gt(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await nl(e)}static async bulkUpdate(e){return await wa(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),i=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(f){if(f.status!==404)throw f}if(!c&&s&&(c=await Gt(s),c&&c._id!==o))throw new fr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[f,m]=await di([c,e]);d=f!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await $c(s,n);let f=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(f=Fm(f,c)),!c&&u?.length&&(f.roles={...u});let m=[];if(!o&&a.length>0)for(let p of a)m.push(t.groups.addUsers(p,[f._id]));try{let p=await i.put(f);return f._rev=p.rev,await Dm(f,c),c&&f.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,f._id,f.email,f.ssoId),await nn.invalidateUser(p.id),await Promise.all(m),i.get(f._id)}catch(p){throw p.status===409?"User exists already":p}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(f=>f.email),u=await lm(a),c=[];for(let f of e){let m=s.find(g=>g.email.toLowerCase()===f.email.toLowerCase()),p=u.includes(f.email.toLowerCase());if(m||p){c.push({email:f.email,reason:"Unavailable"});continue}f.userGroups=r||[],s.push(f),await pa(f)&&o.push(f)}let l=await cs(n),d=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let p of s)d&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!d},n,void 0,l));let f=await Promise.all(i);await wa(f);for(let p of f)await Mt.addUser(n,p._id,p.email),await Dm(p,void 0);let m=f.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],g=m.map(y=>y._id);for(let y of r)p.push(t.groups.addUsers(y,g));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ne(),n={successful:[],unsuccessful:[]},i=await Vc(e);i&&(e=e.filter(m=>m.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(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await wa(a),l=(await di(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await da(m._id)).ssoId;g&&(await Cc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await D0(m)}await Wr().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let f={};return o.reduce((m,p)=>(m[p._id]=p,m),f),u.forEach(m=>{let p=f[m.id].email;m.ok?n.successful.push({_id:m.id,email:p}):n.unsuccessful.push({_id:m.id,email:p,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 Ge('Please visit "Account" to delete this user',400):new Ge("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await pa(n)?1:0;await t.quotas.removeUsers(1,s),await bm(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 ns(Ce.CHECKLIST),await t.save(s,{hashPassword:n?.hashPassword,requirePassword:n?.requirePassword,skipPasswordValidation:n?.skipPasswordValidation,isAccountHolder:!0})}static async getGroups(e){return await this.groups.getBulk(e)}static async getGroupBuilderAppIds(e){return await this.groups.getGroupBuilderAppIds(e)}};function Da(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function nl(t,e){let n=(await ne().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Da(n)),n}async function v0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${$e}`})).rows.map(n=>n.id)}async function N0(){let t=ne(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${$e}`,include_docs:!0})).rows.map(n=>n.doc)}async function wa(t){return await ne().bulkDocs(t)}async function mi(t,e){let n=await ne().get(t);return e?.cleanup&&(n=Da(n)),n}async function Gt(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=Da(n)),n}async function P0(t){try{let e=await Gt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function il(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=Ac(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=Da(s)),s}async function Mm(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 N_(t,e){if(e)return Tc(ut(t),e._id)}async function P_(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}${$e}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Da(o)),o}var U0=8;async function U_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ne(),s=n??U0,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 il(r,a),l=d=>N_(r,d)):e?.string?.email?(u=await P_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await nl(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(ai(null,{...a,limit:void 0}))).rows.map(f=>f.doc),u=Lr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(ai(null,a))).rows.map(f=>f.doc),Nf(u,s,{paginate:!0,property:c,getKey:l})}async function L0(){return(await Lf("by_email2",{limit:0,include_docs:!1})).total_rows}async function M0(){let t=0;async function e(r){let n=await U_({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 Fm(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=ut(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=ut(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 L_=3600;async function G0(t,e){let n=await If(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 $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 Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Ca({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=G0),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await qo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,L_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!at.users.isGlobalBuilder(s)&&await We(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 qo(),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,L_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await qo()).delete(t)}var Vm={};N(Vm,{Writethrough:()=>Gm});var _s={};N(_s,{AUTO_EXTEND_POLLING_MS:()=>F_,doWithLock:()=>km,newRedlock:()=>hi});var M_=q(require("redlock"));async function W0(t,e){if(t==="custom")return hi(e);switch(t){case"try_once":return hi(Ss.TRY_ONCE);case"try_twice":return hi(Ss.TRY_TWICE);case"default":return hi(Ss.DEFAULT);case"delay_500":return hi(Ss.DELAY_500);case"auto_extend":return hi(Ss.AUTO_EXTEND);default:throw br.unreachable(t)}}var Ss={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 hi(t={}){let e={...Ss.DEFAULT,...t},n=(await _f()).client;return new M_.default([n],e)}function Q0(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var F_=be.fromSeconds(10).toMs();async function km(t,e){let r=await W0(t.type,t.customOptions),n,i;try{let s=Q0(t),o=t.type==="auto_extend"?F_: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 k_=1e4,Bm=null;async function sl(){if(!Bm){let t=await Sf();Bm=new ri(t)}return Bm}function Na(t,e){return t.name+e}function $m(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function j0(t,e,r=k_){let n=await sl(),i=e._id,s;i&&(s=await n.get(Na(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await km({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;us("Ignoring conflict in write-through cache")}})).executed||us("Ignoring redlock conflict in write-through cache")),s=$m(a,o?null:s?.lastWrite),a._id&&await n.store(Na(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function H0(t,e){let r=await sl(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=$m(s),await r.store(n,i)}return i.doc}async function K0(t,e){let r=await sl(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=$m(s),await r.store(n,i)}return i.doc}async function Y0(t,e,r){let n=await sl();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Na(t,i))}finally{await t.remove(i,r)}}var Gm=class{constructor(e,r=k_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return j0(this.db,e,r)}async get(e){return H0(this.db,e)}async tryGet(e){return K0(this.db,e)}async remove(e,r){return Y0(this.db,e,r)}};var qm={};N(qm,{createCode:()=>z0,getCode:()=>Z0,invalidateCode:()=>X0});var J0=be.fromHours(1).toSeconds();async function z0(t,e){let r=me();return await(await Wo()).store(r,{userId:t,info:e},J0),r}async function Z0(t){let r=await(await Wo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function X0(t){await(await Wo()).delete(t)}var Qm={};N(Qm,{DocWritethrough:()=>Wm,DocWritethroughProcessor:()=>Pa,getProcessor:()=>tF,init:()=>B_});var eF=100,ol,Pa=class t{static get queue(){return t._queue||(t._queue=new kt("docWritethroughQueue",{jobOptions:{attempts:eF}})),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=qe(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Wm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Pa.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function B_(){return ol=new Pa().init(),ol}function tF(){return ol||B_()}function al(t){return`config${v}${t}`}async function St(t){let e=ne();try{return await e.get(al(t))}catch(r){if(r.status===404)return;throw r}}async function rF(t){return t._id||(t._id=al(t.type)),ne().put(t)}async function Zc(){let t=await St("settings");return t||(t={_id:al("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ua({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Qc({config:t.config}),t}async function Km(){return(await Zc()).config}async function Ua(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=j();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await St("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Qc=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 St("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 nF(){return await St("google")}async function ul(){return(await nF())?.config}async function Ym(){if(!h.SELF_HOSTED)return jm();let t=await ul();return(!t||!t.activated)&&(t=jm()),t}function jm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function iF(){return St("logos_oidc")}async function sF(){return St("oidc")}async function oF(){let t=(await sF())?.config;return t?.configs&&t.configs[0]}async function Jm(t){let e=(await St("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function G_(){return St("smtp")}async function aF(t){let e=await G_();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 uF(){return(await St("scim"))?.config}async function cF(){return St("ai")}async function lF(){return St("recaptcha")}var oh={};N(oh,{AccessController:()=>Xm,BUILTIN_ROLE_IDS:()=>eh,Role:()=>sn,RoleHierarchyTraversal:()=>cl,RoleIDVersion:()=>th,builtinRoleToNumber:()=>La,checkForRoleResourceArray:()=>W_,externalRole:()=>gF,findRole:()=>Ma,getAllRoleIds:()=>AF,getAllRoles:()=>sh,getBuiltinRole:()=>V_,getBuiltinRoles:()=>nh,getDBRoleID:()=>Q_,getExternalRoleID:()=>on,getExternalRoleIDs:()=>j_,getRole:()=>yF,getUserRoleHierarchy:()=>ih,getUserRoleIdHierarchy:()=>q_,isBuiltin:()=>gi,lowerBuiltinRoleID:()=>hF,prefixRoleIDNoBuiltin:()=>Zm,roleIDsAreEqual:()=>_t,roleToNumber:()=>mF,saveRoles:()=>EF,validInherits:()=>fF});var zm=q(require("semver"));var ll=q(require("lodash/fp/cloneDeep"));var $_=require("lodash");var eh={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...eh,BUILDER:"BUILDER"},th={UUID:void 0,NAME:"name"};function pF(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=th.NAME}addInheritance(e){return e&&typeof e=="string"?e=Zm(e):e&&Array.isArray(e)&&(e=e.map(Zm)),this.inherits=e,this}},cl=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=Ma(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!pF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ma(o.inherits,n,r),o&&i.push(o),ht.roles.checkForRoleInheritanceLoops(i))break}}return(0,$_.uniqBy)(i,s=>s._id)}},rh={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 nh(){return(0,ll.default)(rh)}function gi(t){return Object.values(eh).includes(t)}function Zm(t){return gi(t)?t:cr(t)}function V_(t){let e=Object.values(rh).find(r=>t.includes(r._id));if(e)return(0,ll.default)(e)}function fF(t,e){if(!e)return!1;let r=n=>t.find(i=>_t(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function La(t){let e=nh(),r=Object.values(e).length+1;if(_t(t,he.ADMIN)||_t(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 mF(t){if(gi(t))return La(t);let e=await ih(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>_t(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(gi(n.inherits))return La(n.inherits)+1;return 0};return Math.max(...e.map(r))}function hF(t,e){return t?e&&La(t)>La(e)?e:t:e}function _t(t,e){return cr(t)===cr(e)}function gF(t){let e;return t._id&&(e=on(t._id)),{...t,_id:e,inherits:j_(t.inherits,t.version)}}function Ma(t,e,r){let n=V_(t);n||(t=cr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!gi(t)&&r?.defaultPublic?(0,ll.default)(rh.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 yF(t,e){let r=ts(),n=[];if(!gi(t)){let i=await r.tryGet(Q_(t));i&&n.push(i)}return Ma(t,n,e)}async function EF(t){await ts().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function TF(t,e){let r=await sh();if(_t(t,he.ADMIN))return r;let n=Ma(t,r,e),i=[];return n&&(i=new cl(r,e).walk(n)),i}async function q_(t){return(await ih(t)).map(r=>r._id)}async function ih(t,e){return TF(t,e)}function W_(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 AF(t){return(await sh(t)).map(r=>r._id)}async function sh(t){if(t)return ct(t,e);{let r;try{r=ts()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(Sc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=on(a._id,a.version)));let i=nh(),s=[];!r||await SF(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=>_t(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=on(a._id,u.version),n.push({...a,...u,name:a.name,_id:on(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=W_(o.permissions,a);return n}}async function SF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!zm.default.valid(r)?!0:!zm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Xm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,he.BUILDER)||_t(r,e)||_t(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await q_(r),this.userHierarchies[r]=n),n?.find(i=>_t(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let s=await this.checkScreenAccess(i,r);s&&n.push(s)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function Q_(t){return t?.startsWith("role")?t:cr(t)}function on(t,e){if(t.startsWith(`role${v}`)&&(gi(t)||e===th.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function j_(t,e){return t&&(typeof t=="string"?on(t,e):t.map(r=>on(r,e)))}var ah={};N(ah,{BUILDER:()=>RF,BUILTIN_PERMISSIONS:()=>dl,CREATOR:()=>wF,GLOBAL_BUILDER:()=>bF,PermissionImpl:()=>ge,PermissionLevel:()=>ws,PermissionType:()=>ja,doesHaveBasePermission:()=>OF,getAllowedLevels:()=>J_,getBuiltinPermissionByID:()=>IF,getBuiltinPermissions:()=>_F,isPermissionLevelHigherThanRead:()=>xF,levelToNumber:()=>Y_});var H_=q(require("lodash/flatten")),K_=q(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function Y_(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 dl={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 _F(){return(0,K_.default)(dl)}function IF(t){return Object.values(dl).find(r=>r._id===t)}function OF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(dl),s=(0,H_.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 xF(t){return Y_(t)>1}var RF="builder",wF="creator",bF="globalBuilder";var lh={};N(lh,{FlagSet:()=>fl,all:()=>NF,flags:()=>uh,getEnvFlags:()=>eI,init:()=>DF,isEnabled:()=>vF,parseEnvFlags:()=>hl,shutdown:()=>CF,testutils:()=>ch});var ml=q(require("crypto"));var z_=require("posthog-node"),Z_=q(require("dd-trace"));var X_=require("lodash");var pl;function DF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),pl=new z_.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 CF(){pl?.shutdown()}function hl(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 eI(){return hl(h.TENANT_FEATURE_FLAGS||"")}var fl=class{constructor(e){this.flagSchema=e;this.setId=ml.randomUUID()}defaults(){return(0,X_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await Z_.default.trace("features.fetch",async e=>{let r=df(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:d,key:f,value:m}of eI())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(f),!!this.isFlagName(f))){if(typeof i[f]!="boolean")throw new Error(`Feature: ${f} is not a boolean`);i[f]=m,n[`flags.${f}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let d=cf();d&&(u=ml.createHash("sha512").update(d).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,pl&&u){n.readFromPostHog=!0;let d={tenantId:c},f=await pl.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[m,p]of Object.entries(f))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${m}": ${p}`,g)}}}let l=ff();for(let[d,f]of Object.entries(l))this.isFlagName(d)&&typeof f=="boolean"&&(i[d]=f,n[`flags.${d}.source`]="override");pf(this.setId,i);for(let[d,f]of Object.entries(i))n[`flags.${d}.value`]=f;return e?.addTags(n),i})}},uh=new fl(jh);async function vF(t){return await uh.isEnabled(t)}async function NF(){return await uh.fetch()}var ch={};N(ch,{setFeatureFlags:()=>tI,withFeatureFlags:()=>LF});function PF(){let t={};for(let{tenantId:e,key:r,value:n}of hl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function UF(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 tI(t,e){let r=PF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=UF(r);return Do({TENANT_FEATURE_FLAGS:n})}function LF(t,e,r){let n=tI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var _h={};N(_h,{adminOnly:()=>Rl,auditLog:()=>_l,authError:()=>Me,buildAuthMiddleware:()=>Ek,buildCsrfMiddleware:()=>Ak,buildTenancyMiddleware:()=>Tk,builderOnly:()=>bl,builderOrAdmin:()=>wl,google:()=>yr,internalApi:()=>Ol,joiValidator:()=>ka,oidc:()=>Er,passport:()=>Sk,platformLogout:()=>Rk,refreshOAuthToken:()=>Ok,ssoCallbackUrl:()=>an,updateUserOAuth:()=>xk});var Sh={};N(Sh,{adminOnly:()=>Rl,auditLog:()=>_l,authError:()=>Me,authenticated:()=>Sl,builderOnly:()=>bl,builderOrAdmin:()=>wl,correlation:()=>hI,csp:()=>SI,csrf:()=>xl,datasource:()=>gk,errorHandling:()=>yI,featureFlagCookie:()=>_I,google:()=>yr,internalApi:()=>Ol,ip:()=>OI,joiValidator:()=>ka,local:()=>Is,oidc:()=>Er,pino:()=>fI,querystringToBody:()=>EI,ssoCallbackUrl:()=>an,tenancy:()=>Il});var Is={};N(Is,{authenticate:()=>kF,options:()=>FF});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 Km(),n="/api/global/auth";return Gr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var dh="Invalid credentials",MF="This account has expired. Please reset your password",FF={passReqToCallback:!0};async function kF(t,e,r,n){if(!e)return Me(n,"Email Required");if(!r)return Me(n,"Password Required");let i=await Gt(e);return i==null?(console.info(`user=${e} could not be found`),Me(n,dh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Me(n,dh)):i.password?await rm(r,i.password)?(delete i.password,n(null,i)):Me(n,dh):(console.info(`user=${e} has no password set`,i),Me(n,MF))}var yr={};N(yr,{buildVerifyFn:()=>iI,getCallbackUrl:()=>$F,strategyFactory:()=>ph});var Fa=t=>Promise.resolve(t);async function gl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Me(r,"sso user id required");if(!t.email)return Me(r,"sso user email required");let i=is(t.userId),s;try{s=await mi(i)}catch(a){if(!a.status||a.status!==404)return Me(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Gt(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 BF(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 BF(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 GF=require("passport-google-oauth").OAuth2Strategy;function iI(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 gl(s,!0,i,t)}}async function ph(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=iI(r);return new GF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function $F(t){return an("google",t)}var Er={};N(Er,{buildVerifyFn:()=>oI,fetchStrategyConfig:()=>QF,getCallbackUrl:()=>jF,strategyFactory:()=>WF});var sI=q(require("node-fetch"));var VF=require("@techpass/passport-openidconnect").Strategy;function oI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:qF(n,i),oauth2:{accessToken:s,refreshToken:o}};return gl(l,!1,c,t)}}function qF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&om(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function WF(t,e){try{let r=oI(e),n=new VF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function QF(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:s}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let o=await(0,sI.default)(i);if(!o.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${o.statusText}`);let a=await o.json();return{issuer:a.issuer,authorizationURL:a.authorization_endpoint,tokenURL:a.token_endpoint,userInfoURL:a.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:s}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function jF(){return an("oidc")}var fh={};N(fh,{postAuth:()=>YF,preAuth:()=>KF});var HF=require("passport-google-oauth").OAuth2Strategy;async function aI(){let t=await Ym();if(!t)throw new Error("No google configuration found");return t}async function KF(t,e,r){let n=await aI(),s=`${await Ua({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await ph(n,s,Fa);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 YF(t,e,r){let n=await aI(),s=`${await Ua({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 HF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Xr(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 JF=/\/:(.*?)(\/.*)?$/g,yi=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}}):[],Ei=(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 Th={};N(Th,{SecretOption:()=>lI,decrypt:()=>Eh,decryptFile:()=>rk,encrypt:()=>XF,encryptFile:()=>ek,getSecret:()=>yh});var Tr=q(require("crypto")),un=q(require("fs")),hh=q(require("zlib"));var mh=require("path"),yl="aes-256-ctr",cI="-",zF=1e4,ZF=32,El=16,gh=16,lI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(lI||{});function yh(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 Tl(t,e){return Tr.default.pbkdf2Sync(t,e,zF,ZF,"sha512")}function XF(t,e="api"){let r=Tr.default.randomBytes(El),n=Tl(yh(e),r),i=Tr.default.createCipheriv(yl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${cI}${a}`}function Eh(t,e="api"){let[r,n]=t.split(cI),i=Buffer.from(r,"hex"),s=Tl(yh(e),i),o=Tr.default.createDecipheriv(yl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function ek({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,mh.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,mh.join)(t,n)),a=Tr.default.randomBytes(El),u=Tr.default.randomBytes(gh),c=Tl(r,a),l=Tr.default.createCipheriv(yl,c,u);return o.write(a),o.write(u),s.pipe(hh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function tk(t){let e=un.default.createReadStream(t),r=await uI(e,El),n=await uI(e,gh);return e.close(),{salt:r,iv:n}}async function rk(t,e,r){if(un.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await tk(t),s=un.default.createReadStream(t,{start:El+gh}),o=un.default.createWriteStream(e),a=Tl(r,n),u=Tr.default.createDecipheriv(yl,a,i),c=hh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",f=>{o.close(),d(f)}),u.on("error",f=>{o.close(),d(f)}),c.on("error",f=>{o.close(),d(f)}),o.on("error",f=>{o.close(),d(f)})})}function uI(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 pI=q(require("dd-trace")),nk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ik(){return new Date(Date.now()-nk).toISOString()}function dI(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 sk(t,e){if(la(t))return{valid:!0,user:void 0};let n=Eh(t).split(v)[0];return We(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 Ca({userId:i,tenantId:n,populateUser:e})};throw new fs})}function Al(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function Sl(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=Al(n,"x-budibase-api-version");Ei(n,r)&&(s=!0);try{let u=Al(n,"x-budibase-token"),c=pr(n,"budibase:auth")||bc(u),l=Al(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=Al(n,"x-budibase-tenant-id"),f=!1,m,p=!1,g;if(c&&!l){let T=c.sessionId,S=c.userId,O;try{O=await vm(S,T),e&&e.populateUser?m=await Ca({userId:S,tenantId:O.tenantId,email:O.email,populateUser:e.populateUser(n)}):m=await Ca({userId:S,tenantId:O.tenantId,email:O.email}),m.csrfToken=O.csrfToken,g="cookie",O?.lastAccessedAt<ik()&&await Cm(O),f=!0}catch(R){f=!1,console.error(`Auth Error: ${R.message}`),Xr(n,"budibase:auth")}}if(!f&&l){let T=e.populateUser?e.populateUser(n):null,{valid:S,user:O}=await sk(l,T);S&&(f=!0,g="api_key",m=O,p=!O)}!m&&d?m={tenantId:d}:m&&"password"in m&&delete m.password,f||(f=!1);let y=T=>T&&T.email;return y(m)&&pI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),dI(n,{authenticated:f,user:m,internal:p,version:o,publicEndpoint:s,loginMethod:g}),y(m)?qp(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Xr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return dI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var _l=async(t,e)=>e();function Il(t,e,r={noTenancyRequired:!1}){let n=yi(t),i=yi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ei(s,i)};!!Ei(s,n)||(u.excludeStrategies=["query"]);let l=Ho(s,u);return s.set("x-budibase-tenant-id",l),We(l,o)}}async function Ol(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),la(r)||t.throw(403,"Unauthorized"),e()}var ok=["GET","HEAD","OPTIONS"],ak=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function xl(t={noCsrfPatterns:[]}){let e=yi(t.noCsrfPatterns);return async(r,n)=>{if(Ei(r,e)||ok.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ak.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Rl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function wl(t,e){let r=Ue(),n=h.isWorker()||!r?Tt:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}async function bl(t,e){let r=Ue(),n;if(h.isWorker()||!r?n=Tt:h.isApps()&&(n=ms),!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&t.throw(403,"Builder user only endpoint."),e()}var uk=require("koa-pino-logger"),ck=require("correlation-id");function lk(){return{logger:Rc,genReqId:ck.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}function dk(){return h.HTTP_LOGGING?uk(lk()):(t,e)=>e()}var fI=dk();var mI=require("uuid"),pk=require("correlation-id"),hI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,mI.v4)()),pk.withId(r,()=>e())};function gI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of YT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function yI(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:kc(r)};if(gI(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}}function EI(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 AI=q(require("crypto"));var TI={"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","https://www.google.com/recaptcha/api.js"],"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-*:/.]+$/,SI=async(t,e)=>{let r=AI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...TI};if(n["script-src"]=[...TI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Zo.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()};var _I=async(t,e)=>{let n=pr(t,"budibase:featureflags")?.flags||{};await mf(n,async()=>{await e()})};var ka={};N(ka,{body:()=>mk,params:()=>hk});var Ah=q(require("joi"));function II(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:Ah.default.any().optional(),updatedAt:Ah.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 II(t,"body",e)}function hk(t,e){return II(t,"params",e)}async function OI(t,e){return t.ip?await lf(t.ip,()=>e()):e()}var gk={google:fh};var xI=require("koa-passport"),yk=require("passport-local").Strategy,Dl=require("passport-oauth2-refresh"),Ek=Sl,Tk=Il,Ak=xl,Sk=xI;xI.use(new yk(Is.options,Is.authenticate));async function _k(t,e){let r=await Er.getCallbackUrl(),n,i;try{if(n=await Er.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Er.strategyFactory(n,Fa)}catch{throw new Error("Could not refresh OAuth Token")}return Dl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Dl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function Ik(t,e){let r=await yr.getCallbackUrl(t),n;try{n=await yr.strategyFactory(t,r,Fa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Dl.use(n),new Promise(i=>{Dl.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 Jm(r);return n?_k(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await ul();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 va(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 Ra(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Xr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await tl.logout(e.user?.email),await va(r)}var Oh={};N(Oh,{validate:()=>vk});var D=q(require("joi")),wk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Ih(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)});Ih(e,t)}function Dk(t){let e=D.default.object({type:D.default.string().allow(...Object.values(Ll)).required(),required:D.default.boolean().required(),default:D.default.any(),display:D.default.string()}),r=D.default.object({type:D.default.string().allow(...Object.values(Ul)),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(Ml).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()}))})});Ih(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(...Hh).required(),inputs:D.default.object().optional(),schema:D.default.object({inputs:r,outputs:r}).required()})});Ih(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 xh={};N(xh,{Client:()=>Qe,clients:()=>Vr,locks:()=>_s,utils:()=>lc});var Rh={};N(Rh,{isBlacklisted:()=>Pk,refreshBlacklist:()=>DI});var RI=q(require("dns")),vl=q(require("net"));var wI=require("util"),Cl,Nk=(0,wI.promisify)(RI.default.lookup);async function bI(t){return vl.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 DI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(vl.default.isIP(i))r.push(i);else{let s=await bI(i);r=r.concat(s)}}Cl=r}async function Pk(t){if(Cl||await DI(),Cl?.length===0)return!1;let e;return vl.default.isIP(t)?e=[t]:e=await bI(t),!!Cl?.find(r=>e.includes(r))}var bh={};N(bh,{init:()=>Lk});var Uk={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId};function CI(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 Ba=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=CI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await We(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return r_()}};var vI,wh;function Lk(t){gr||el(),wh||(wh=new Ba(t)),vI||(vI=gr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await wh.processEvent(r,n,i)}))}var Fh={};N(Fh,{COUNT_FIELD_NAME:()=>Lh,Sql:()=>GI,SqlTable:()=>Nl,designDoc:()=>Mh,utils:()=>nf});var LI=require("knex");var Mk=require("knex");function Dh(t){return["link","formula","ai"].indexOf(t)!==-1}function NI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(f=>f.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(f=>f.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(f=>f.foreignKey);for(let[f,m]of Object.entries(e.schema)){let p=n?.schema[f];if(p&&p.type||c.includes(f)||i?.updated===f)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(f)?t.string(f,255):t.text(f);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:y,toTable:T}=m.meta;t.integer(f).unsigned(),t.foreign(f).references(`${T}.${y}`)}else l.indexOf(f)===-1&&t.float(f);break;case"bigint":t.bigint(f);break;case"boolean":t.boolean(f);break;case"datetime":m.timeOnly?t.time(f):t.datetime(f,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":ht.schema.isDeprecatedSingleUserColumn(m)?t.text(f):t.json(f);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:y}=Zp(m.tableId),T=r[y];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let S=T.primary[0],O=T.schema[S].externalType;O?t.specificType(m.foreignKey,O):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${y}.${S}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(f);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:br.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Dh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,p])=>!Dh(p.type)&&e.schema[m]==null).forEach(([m,p])=>{i?.old===m||Dh(p.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function kk(t,e,r){return t.createTable(e.name,n=>{NI(n,e,r)})}function Bk(t,e,r,n,i){return t.alterTable(e.name,s=>{NI(s,e,r,n,i)})}function Gk(t,e){return t.dropTable(e.name)}var Ch=class{constructor(e){this.sqlClient=e}getBaseSqlClient(){return this.sqlClient}getSqlClient(){return this.extendedSqlClient||this.sqlClient}setExtendedSqlClient(e){this.extendedSqlClient=e}_operation(e){return e.operation}_tableQuery(e){let r=(0,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=Zi(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=Gk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Zi(n)}},Nl=Ch;var MI=require("lodash"),Lh="__bb_total";function PI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function vh(){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 FI(t){return Array.isArray(t)?t.map(e=>FI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function UI(t){return t.sourceType==="internal"||t.sourceId===ql}function Vk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function kI(t,e='"'){return`${e}${Vk(t,e)}${e}`}function Nh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=kI(t[r],e));return`[${t.join(",")}]`}function BI(t){return Jh.includes(t.type)&&!ht.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},Ph=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Lr.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()&&BI(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(!tf(e))return null}else if(r.dateOnly){let n=ef(e);return n?new Date(n):null}else return r.ignoreTimezones?oc(e)?new Date(e):Xp(e)?new Date(e+"Z"):null:oc(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,MI.cloneDeep)(e);for(let r of Object.values(Sr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Jt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(pn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let f=d.tableName,m=a?.[f]||f,p=l(f)||l(m),g=l(d.column);if((p||g)&&d.to&&d.tableName){let y=this.knex.select(this.knex.raw(1)).from({[m]:f}),T=y.clone(),S=rf(d),O;if(p?O=n:O=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),S){let R=a?.[S.through]||d.through,E=this.tableNameWithSchema(S.through,{alias:R,schema:o});T=T.innerJoin(E,function(){this.on(`${m}.${S.toPrimary}`,"=",`${R}.${S.to}`)}).where(`${R}.${S.from}`,"=",this.rawQuotedIdentifier(`${c}.${S.fromPrimary}`)),this.client==="sqlite3"&&(T=this.addJoinFieldCheck(T,S)),e=e.where(_=>{_.whereExists(i(O,T)),r&&_.orWhereNotExists(y.clone().innerJoin(E,function(){this.on(`${c}.${S.fromPrimary}`,"=",`${R}.${S.from}`)}))})}else{let R=`${m}.${d.to}`,E=`${c}.${d.from}`;T=T.where(R,"=",this.rawQuotedIdentifier(E)),e=e.where(_=>{_.whereExists(i(O,T.clone())),r&&_.orWhereNotExists(T)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(p){return s?.[p]||p}function l(p,g,y,T){let S=(O,R,E)=>{let[_,...B]=R.split("."),b=B.join("."),k=c(_);return O.andWhere(de=>y(de,k?`${k}.${b}`:b,E))};for(let O in p){let R=p[O],E=na(O),_=E.includes("."),B=n?.relationship&&_,b;if(O==="_complexIdOperator"&&(b=p[O])&&T){let k=c(u);e=T(e,b.id.map(de=>k?`${k}.${de}`:de),b.values)}else if(_)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,qk[g],E,(k,de)=>S(de,k,R)));else{let k=c(u);e=y(e,k?`${k}.${E}`:E,R)}}}let d=(p,g,y)=>((r?.fuzzyOr||o)&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):p.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),f=(p,g=!1)=>{function y(T){return(o||p===r?.containsAny)&&(T=T.or),p===r?.notContains&&(T=T.not),T}this.client==="pg"?l(p,"contains",(T,S,O)=>(T=y(T),g?T.whereRaw("COALESCE(??::jsonb \\?| array??, FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Nh(O,"'"))]):T.whereRaw("COALESCE(??::jsonb @> '??', FALSE)",[this.rawQuotedIdentifier(S),this.knex.raw(Nh(O))]))):this.client==="mysql2"||this.client==="mariadb"?l(p,"contains",(T,S,O)=>y(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(S),this.knex.raw(kI(Nh(O)))])):l(p,"contains",(T,S,O)=>(O.length===0||(T=T.where(R=>(p===r?.notContains&&(R=R.not),R=R.where(E=>{for(let _ of O){p===r?.containsAny?E=E.or:E=E.and;let B=typeof _=="string"?`"${_.toLowerCase()}"`:_;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(S)]),`%${B}%`)}}),p===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(S))),R))),T))};if(r.$and){let{$and:p}=r;for(let g of p.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:p}=r;e=e.where(g=>{for(let y of p.conditions)g.orWhere(T=>this.addFilters(T,{...y,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(p,g,y)=>{let T=this.getFieldSchema(g),S=Array.isArray(y)?y:[y];if(o&&(p=p.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly){for(let O of S)O!=null?p=p.or.whereLike(g,`${O.toISOString().slice(0,10)}%`):p=p.or.whereNull(g);return p}return p.whereIn(g,S)},(p,g,y)=>(o&&(p=p.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),p.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&l(r.string,"string",(p,g,y)=>{if(o&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3")return p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?p.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(T.name))]):p.whereILike(g,`${y}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(p,g,y)=>{let T=b=>b&&Object.keys(b).length===0&&Object.getPrototypeOf(b)===Object.prototype;T(y.low)&&(y.low=""),T(y.high)&&(y.high="");let S=ac(y.low),O=ac(y.high),R=this.getFieldSchema(g),E=g,_=y.high,B=y.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"?E=this.convertClobs(g):this.client==="sqlite3"&&R?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),_=this.knex.raw("CAST(? AS INTEGER)",[y.high]),B=this.knex.raw("CAST(? AS INTEGER)",[y.low])),o&&(p=p.or),S&&O?p.whereBetween(E,[B,_]):S?p.where(E,">=",B):O?p.where(E,"<=",_):p}),r.equal&&l(r.equal,"equal",(p,g,y)=>{let T=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let S=this.convertClobs(g);return p.where(O=>O.whereNotNull(S).andWhere(S,y))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?p.whereLike(g,`${y.toISOString().slice(0,10)}%`):p.whereNull(g):p.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&l(r.notEqual,"notEqual",(p,g,y)=>{let T=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let S=this.convertClobs(g);return p.where(O=>O.not.whereNull(S).and.where(S,"!=",y)).or.whereNull(S)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?p.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):p.not.whereNull(g):p.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&l(r.empty,"empty",(p,g)=>(o&&(p=p.or),p.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(p,g)=>(o&&(p=p.or),p.whereNotNull(g))),r.contains&&f(r.contains),r.notContains&&f(r.notContains),r.containsAny&&f(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!zp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${_r(r.documentType)}%`),e}isSqs(){return UI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;UI(e)&&e._id&&(r=e._id);let n=this.query.tableAliases||{};return n[r]?n[r]:r}addDistinctCount(e){if(!this.table.primary)throw new Error("SQL counting requires primary key to be supplied");return e.countDistinct(`${this.getTableName()}.${this.table.primary[0]} as ${Lh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,f;this.isAggregateField(a)?f=this.rawQuotedIdentifier(a):this.client==="oracledb"?f=this.convertClobs(d):f=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[f,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 d of n){let{tableName:f,through:m,to:p,from:g,fromPrimary:y,toPrimary:T}=d;if(!f||!r)continue;let S=c[f];if(!S)throw new Error(`related table "${f}" not found in datasource`);let O=a?.[f]||f,R=a?.[r]||r,E=m&&a?.[m]||m,_=this.tableNameWithSchema(f,{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 ue=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ue}??`,[V[0],V[1]]).toString()}).join(","),cn=`${O}.${T||p}`,$=s.from(_).orderBy(cn),F=m&&T&&y,I=F?`${E}.${g}`:`${O}.${p}`,W=F?`${R}.${y}`:`${R}.${g}`;if(F){let V=this.tableNameWithSchema(m,{alias:E,schema:u});$=$.join(V,function(){this.on(`${O}.${T}`,"=",`${E}.${p}`)})}$=$.where(this.rawQuotedIdentifier(I),"=",this.rawQuotedIdentifier(W));let L=V=>($=$.select(b.map(ue=>this.rawQuotedIdentifier(ue))).limit(vh()),s.select(V).from({[O]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),Y=L(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":Y=L(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${vh()})`));break;case"mysql2":case"oracledb":Y=L(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let V=s.select("*").from({[R]:$.select(k.map(ue=>s.ref(ue[1]).as(ue[0]))).limit(vh())});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({[d.column]:Y})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,f=this.tableNameWithSchema(o,{alias:c,schema:s}),m=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(m,function(){for(let p of n){let g=p.fromPrimary,y=p.from;this.orOn(`${d}.${g}`,"=",`${l}.${y}`)}}).leftJoin(f,function(){for(let p of n){let g=p.toPrimary,y=p.to;this.orOn(`${c}.${g}`,`${l}.${y}`)}}):e=e.leftJoin(f,function(){for(let p of n){let g=p.from,y=p.to;this.orOn(`${d}.${g}`,"=",`${c}.${y}`)}}),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 m=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=m}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let f=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[f]:"paginated"}));return this.addJsonRelationships(m,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())}},Uh=class extends Nl{constructor(r,n=PI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Zi(r);return i==="sqlite3"&&(s=FI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,LI.knex)(s),a,u=new Ph(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:PI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let f of a)d.push(await n(f,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===ql){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(!BI(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){Po(this.getSqlClient(),r,n)}},GI=Uh;var Mh={};N(Mh,{base:()=>Wk});function Wk(t){return{_id:Ht,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var kh={};N(kh,{jsonFromCsvString:()=>Qk});var $I=q(require("csvtojson"));async function Qk(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let s of i){let o,a=!1;try{let u=await(0,$I.default)({ignoreEmpty:r,delimiter:s}).fromString(t);for(let[,c]of u.entries()){let l=Object.keys(c);if(o==null&&(o=l),!n&&l.length===1){a=!0;break}if(o.length!==l.length){a=!0;break}for(let d of o)(c[d]===void 0||c[d]==="")&&(c[d]=null)}if(a)continue;return u}catch{continue}}throw new Error("Unable to determine delimiter")}var Bh=class{constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,s=this.controller,o=this.outputMiddlewares,a=()=>{},u=[n,...i,s,...o,a];e[r](...u)}},Pl=Bh;var VI=q(require("@koa/router")),Ti=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),s=new Pl(e,r,i);if(n.length!==0)for(let o of n)s.addMiddleware(o);return this.endpoints.push(s),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new VI.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var Ga=class{constructor(){this.groups=[]}group(...e){let r=new Ti;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(r=>r.endpointList());return e.sort((r,n)=>{let i=r.url.includes(":"),s=n.url.includes(":");return i&&!s?1:!i&&s?-1:r.url.localeCompare(n.url)}),e}};var jk={...Ko,...Ae},Hk=(t={})=>{ic(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,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UnexpectedError,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,csv,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")},ra=async(t,e)=>{let r={account_by_email:zA,platform_users_lowercase_2:ZA};return ct(xe.PLATFORM_INFO.name,async n=>{let i=r[t];return Lf(t,e,n,i,{arrayResponse:!0})})},XA={by_email2:HA,by_api_key:KA,by_app:YA},lr=async(t,e,r,n)=>{r||(r=ie());let i=XA[t];return Lf(t,e,r,i,n)};async function Uf(t,e,r){let n=ie(),i=XA[t];return ta(t,e,n,i,r)}var Mf=class{constructor({source:e,target:r}){this.source=Et(e),this.target=Et(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([No(this.source),No(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";delete e.filter;let s=e.isCreation,o=e.tablesToSync;delete e.isCreation,delete e.tablesToSync;let a=!1,u;typeof o=="string"&&o==="all"?a=!0:o&&(u=o);let c=l=>l?.startsWith("ro")||l?.startsWith("li");return{...e,filter:(l,d)=>!s&&l._id==="_design/migrations"||i&&l._id?.startsWith("_design")?!1:l._deleted||c(l._id)&&(u?.find(f=>l._id?.includes(f))||a)?!0:c(l._id)||l._id?.startsWith("log_au")||l._id==="app_metadata"?!1:r?r(l,d):!0}}async rollback(){await this.target.destroy(),this.target=Et(this.target.name),await this.replicate()}},eS=Mf;var rS=q(require("node-fetch"));var na=Ur.removeKeyNumbering;function ui(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=na(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(p,g)=>ui(g)?null:`${p}:${e.preprocess(g,s)}`,u=(p,g,y="AND")=>{if(ui(g))return null;if(!Array.isArray(g))return`${p}:${g}`;let T=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)T+=` ${y} ${e.preprocess(g[_],{escape:!0})}`;return`${p}:(${T})`},c=(p,g)=>ui(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${p}:/.*${g}.*/`),l=(p,g)=>{let y=r?"*:* AND ":"",T=r?"AND":void 0;return y+"NOT "+u(p,g,T)},d=(p,g)=>u(p,g,"OR"),f=(p,g)=>{if(ui(g))return"*:*";if(!Array.isArray(g))if(typeof g=="string")g=g.split(",");else return"";let y=`${e.preprocess(g[0],s)}`;for(let T=1;T<g.length;T++)y+=` OR ${e.preprocess(g[T],s)}`;return`${p}:(${y})`};function m(p,g,y){let T="";for(let[_,S]of Object.entries(p)){_=na(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let x=g(_,S);if(x!=null){if(T.length>0||n.length>0){let E=y?.mode?y.mode:r?"OR":"AND";T+=` ${E} `}T+=x,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(y?.returnBuilt)return T;n+=T}if(this.#e.string&&m(this.#e.string,(p,g)=>ui(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${p}:${g}*`)),this.#e.range&&m(this.#e.range,(p,g)=>{if(ui(g)||g.low==null||g.low===""||g.high==null||g.high==="")return null;let y=e.preprocess(g.low,s),T=e.preprocess(g.high,s);return`${p}:[${y} TO ${T}]`}),this.#e.fuzzy&&m(this.#e.fuzzy,c),this.#e.equal&&m(this.#e.equal,a),this.#e.notEqual&&m(this.#e.notEqual,(p,g)=>ui(g)?null:typeof g=="boolean"?`(*:* AND !${p}:${g})`:`!${p}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,p=>(i=!1,`(*:* -${p}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,p=>(i=!1,`${p}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,f),this.#e.contains&&m(this.#e.contains,u),this.#e.notContains&&m(this.compressFilters(this.#e.notContains),l),this.#e.containsAny&&m(this.#e.containsAny,d),o&&(n=this.isMultiCondition()?`(${n})`:n,r=!1,m({tableId:o},a)),i){if(this.#e.onEmptyFilter==="none")return"";if(this.#e?.allOr)return n.replace("()","(*:*)")}return n}buildSearchBody(){let e={q:this.buildSearchQuery(),limit:Math.min(this.#r,t.maxLimit),include_docs:this.#t};if(this.#i&&(e.bookmark=this.#i),this.#n){let r=this.#s==="descending"?"-":"",n=`<${this.#o}>`;e.sort=`${r}${this.handleSpaces(this.#n)}${n}`}return e}async run(){return this.#c&&await this.#m(this.#c),await this.#f()}async#m(e){let r=this.#t,n=this.#r;this.excludeDocs();let i=e,s=0;do{let o=Math.min(t.maxLimit,i);this.setLimit(o);let{bookmark:a,rows:u}=await this.#f();this.setBookmark(a),s=u.length,i-=u.length}while(i>0&&s>0);this.#t=r,this.#r=n}async#f(){let{url:e,cookie:r}=Nt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await tS(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await tS(n,i,r);throw s}}};async function tS(t,e,r){let n=await(0,rS.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 nS(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 nS(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 _P(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 nS(t,e,r,n)}}var Ff={};P(Ff,{createUserIndex:()=>IP});async function IP(){let t=ie(),e;try{e=await t.get("_design/database")}catch(n){n.status===404&&(e={_id:"_design/database"})}let r=function(n){if(n._id&&!n._id.startsWith("us_"))return;let i=["_id","_rev","password","account","license","budibaseAccess","accountPortalAccess","csrfToken"];function s(o,a){for(let u of Object.keys(o)){if(i.includes(u))continue;let c=a!=null?`${a}.${u}`:u;typeof o[u]=="string"?index(c,o[u].toLowerCase(),{facet:!0}):typeof o[u]!="object"?index(c,o[u],{facet:!0}):s(o[u],c)}}s(n)};e.indexes={user:{index:r.toString(),analyzer:{default:"keyword",name:"perfield"}}},await t.put(e)}function iS(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 OP(t){return iS(t,409)}var ia=q(require("fs/promises")),Kr=q(require("dd-trace")),sa=require("stream/promises");var xP=require("sanitize-s3-objectkey"),RP={bucketCreationPromises:{}},qf="/files/signed",Hr={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"},bP=[Hr.html,Hr.css,Hr.js,Hr.json];function Me(t){return xP(Je(t)).replace(/\\/g,"/")}function Je(t){return t.replace(new RegExp(yt,"g"),gt)}function Ft(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 oa(t,e){e=Je(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=RP.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 wP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await ia.default.open(r)).createReadStream():s,c=Ft(),l=await oa(c,t);if(o&&l.created){let g=hc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,f=d||(a?Hr[a.toLowerCase()]:Hr.txt),m={Bucket:Je(t),Key:Me(e),Body:u,ContentType:f};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new kf.Upload({client:c,params:m}).done()}async function oS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await Kr.default.trace("streamUpload",async o=>{if(o.addTags({bucketName:t,filename:r,type:n,ttl:s}),!e)throw new Error("Stream to upload is invalid/undefined");let a=r.split(".").pop(),u=Ft(),c=await oa(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=hc(t,s);await u.putBucketLifecycleConfiguration(T)}r?.endsWith(".js")?i={...i,ContentType:"application/javascript"}:r?.endsWith(".svg")&&(i={...i,ContentType:"image"});let l=n;l||(l=a?Hr[a.toLowerCase()]:Hr.txt),o.addTags({contentType:l});let d=Je(t),f=Me(r),m={Bucket:d,Key:f,Body:e,ContentType:l,...i},g=await new kf.Upload({client:u,params:m}).done(),y=await u.headObject({Bucket:d,Key:f});return o.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}async function aS(t,e){return await Kr.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=Ft(),i={Bucket:Je(t),Key:Me(e)},s=await n.getObject(i);if(!s.Body)throw new Error("Unable to retrieve object");if(r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),bP.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return Ic.default.Readable.fromWeb(o)}})}async function*uS(t,e){let r=Ft(),n=(o={})=>r.listObjectsV2({...o,Bucket:Je(t),Prefix:Me(e)}),i=!1,s;do{let o={};s&&(o.ContinuationToken=s);let a=await n(o);if(a.Contents)for(let u of a.Contents)yield u;i=!!a.IsTruncated,s=a.NextContinuationToken}while(i&&s)}async function Jr(t,e,r=3600){let n=Ft({presigning:!0}),i={Bucket:Je(t),Key:Me(e)},s=await(0,sS.getSignedUrl)(n,new _c.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${qf}${a}${u}`}else return s}async function CP(t,e){return await Kr.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=Je(t),e=Me(e);let n=await aS(t,e),i=(0,Yr.join)(oi(),(0,$f.v4)());return r.addTags({outputPath:i}),n instanceof Ic.default.Readable?(r.addTags({stream:!0}),await(0,sa.pipeline)(n,os.default.createWriteStream(i))):(r.addTags({stream:!1}),os.default.writeFileSync(i,n)),i})}async function DP(t,e){return await Kr.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,Yr.join)(oi(),(0,$f.v4)());await ia.default.mkdir(n,{recursive:!0});let i=0;return await wr.parallelForeach(uS(t,e),async s=>{i++,await Kr.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await gc(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,Yr.join)(n,...l);c.length>1&&!os.default.existsSync(d)&&await ia.default.mkdir(d,{recursive:!0}),await(0,sa.pipeline)(u,os.default.createWriteStream((0,Yr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function vP(t,e){let r=Ft();await oa(r,t);let n={Bucket:t,Key:Me(e)};return r.deleteObject(n)}async function NP(t,e){let r=Ft();await oa(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Me(i)}))}};return r.deleteObjects(n)}async function cS(t,e){t=Je(t),e=Me(e);let r=Ft(),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 cS(t,e)}async function Wf(t,e,r){return await Kr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=Je(t);let i=await ia.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Me((0,Yr.join)(r,s.name)),a=(0,Yr.join)(e,s.name);s.isDirectory()?await Wf(t,a,o):await oS({bucket:t,filename:o,stream:os.default.createReadStream(a)})}return i})}async function PP(t,e,r={}){e=Me(e);let n=await(0,Bf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,sa.pipeline)(n.body,Vf.default.createUnzip(),Gf.default.extract(e))}async function LP(t,e,r){e=Je(e),r=Me(r);let n=await(0,Bf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(oi(),r);return await(0,sa.pipeline)(n.body,Vf.default.createUnzip(),Gf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Wf(e,i,r),i}async function gc(t,e){return await Kr.default.trace("getReadStream",async r=>{t=Je(t),e=Me(e),r.addTags({bucketName:t,path:e});let n=Ft(),i={Bucket:t,Key:e},s=await n.getObject(i);if(!s.Body||!(s.Body instanceof Ic.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function UP(t,e){t=Je(t),e=Me(e);let r=Ft(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Rf(t){let e=t.split("?")[0],r=new RegExp(`^${qf}/(?<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 lS=q(require("aws-cloudfront-sign")),Oc;function MP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return Oc||(Oc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),Oc)}var FP=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:MP(),expireTime:new Date().getTime()+1e3*60*60*24}),as=t=>{let e=Qf(t);return lS.getSignedUrl(e,FP())},Qf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var dS=q(require("querystring"));function pS(t){return`${Me(t)}/budibase-client.js`}async function kP(t,e){let r=pS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Qf(r)):await Jr(h.APPS_BUCKET_NAME,r)}function BP(t,e){let r,n;try{r=j()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${dS.default.encode(n)}`}async function fS(t){return h.CLOUDFRONT_CDN?as(t):await Jr(h.APPS_BUCKET_NAME,t)}async function GP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await fS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var VP=async(t,e,r)=>{let n=mS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),as(n)):await Jr(h.GLOBAL_BUCKET_NAME,n)},mS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${j()}/${r}`),r};async function $P(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await qP(e),n=await WP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function qP(t){let e=gS(t);return hS(e)}async function WP(t){let e=yS(t);if(e)return hS(e)}async function hS(t){return h.CLOUDFRONT_CDN?as(t):await Jr(h.PLUGIN_BUCKET_NAME,t)}function gS(t){return ES(t,"plugin.min.js")}function yS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return ES(t,e)}function ES(t,e){return`${TS(t.name)}/${e}`}function TS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${j()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var _S="budibase.log",IS="budibase-logs-history.txt",OS=Yf.default.join(oi(),"systemlogs");function AS(t){return Yf.default.join(OS,t)}function xS(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}function Kf(){let t=xS(h.ROLLING_LOG_MAX_SIZE);return SS.createStream(_S,{size:t?.size,path:OS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:IS,initialRotation:!1})}function QP(){let t=[],e=AS(IS);if(aa.default.existsSync(e)){let i=aa.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let s of i.filter(o=>o))t.push(aa.default.readFileSync(s))}return t.push(aa.default.readFileSync(AS(_S))),Buffer.concat(t)}function jP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function HP(t){return t instanceof Error}function YP(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,RS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Kf(),level:t}),zr=r.length?(0,xc.default)(e,xc.default.multistream(r)):(0,xc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(y=>{YP(y)&&(d=`${d} ${y}`.trimStart()),jP(y)&&l.push(y),HP(y)&&(c=y)});let f=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:f?._id,identityType:f?.type,correlationId:xf()};let p=zf.default.scope().active();p&&zf.default.inject(p.context(),bS.formats.LOG,m);let g={err:c,pid:process.pid,...m};if(l.length){let y={},T=0;for(let _=0;_<l.length;_++){let S=l[_],x=S._logKey;x?(delete S._logKey,g[x]=S):(y[T]=S,T++)}Object.keys(y).length&&(g.data=y)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);zr?.debug(c,l)};let i=()=>{let u;try{u=j()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=uf()}catch{}return u},a=()=>{let u;try{u=ar()}catch{}return u}}var Rc=zr;var KP=["AccountError"];function JP(t){return t&&t.suppressAlert}function ci(t,e){e&&KP.includes(e.name)&&JP(e)||console.error(`bb-alert: ${t}`,e)}function zP(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,ci(t,n)}function us(t,e){console.warn(`bb-warn: ${t}`,e)}var ca=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";Jo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,wS.default)(`${this.host}${r}`,s)}async post(e,r){return this.apiCall("POST",e,r)}async get(e,r){return this.apiCall("GET",e,r)}async patch(e,r){return this.apiCall("PATCH",e,r)}async del(e,r){return this.apiCall("DELETE",e,r)}async put(e,r){return this.apiCall("PUT",e,r)}};var Zf=new ca(h.INTERNAL_ACCOUNT_PORTAL_URL),Xf=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Zr=async t=>{if(Xf)return;let e={email:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},cs=async t=>{if(Xf)return;let e={tenantId:t},r=await Zf.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by tenantId ${t}`);return(await r.json())[0]},ZP=async()=>{if(Xf)return;let t=await Zf.get("/api/status",{headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}}),e=await t.json();if(t.status!==200)throw new Error("Error getting status");return e};var Es={};P(Es,{UserDB:()=>Kt,addAppBuilder:()=>G0,bulkGetGlobalUsersById:()=>nl,bulkUpdateGlobalUsers:()=>ba,cleanseUserObject:()=>Fm,creatorsInList:()=>di,doesUserExist:()=>U0,getAccountHolderFromUsers:()=>$c,getAllUserIds:()=>P0,getAllUsers:()=>L0,getById:()=>mi,getCreatorCount:()=>k0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>kS,getExistingTenantUsers:()=>FS,getFirstPlatformUser:()=>da,getGlobalUserByAppPage:()=>N_,getGlobalUserByEmail:()=>Gt,getPlatformUsers:()=>Dc,getUserCount:()=>F0,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>VS,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>pa,isCreatorSync:()=>Gc,isGlobalBuilder:()=>BS,paginatedUsers:()=>L_,removeAppBuilder:()=>V0,removePortalUserPermissions:()=>B0,searchExistingEmails:()=>lm,searchGlobalUsersByApp:()=>il,searchGlobalUsersByAppAccess:()=>Mm,searchGlobalUsersByEmail:()=>P_,validateUniqueUser:()=>Vc});var dm={};P(dm,{creatorsInList:()=>di,getAccountHolderFromUsers:()=>$c,hasAdminPermissions:()=>tn,hasAppBuilderPermissions:()=>VS,hasBuilderPermissions:()=>Tt,isAdmin:()=>en,isAdminOrBuilder:()=>GS,isBuilder:()=>ms,isCreatorAsync:()=>pa,isCreatorSync:()=>Gc,isGlobalBuilder:()=>BS,validateUniqueUser:()=>Vc});var cm={};P(cm,{createCode:()=>pL,deleteCode:()=>mL,getCode:()=>fL,getExistingInvites:()=>um,getInviteCodes:()=>MS,updateCode:()=>dL});var ls={};P(ls,{Duration:()=>Ce,DurationType:()=>am,clearCookie:()=>Xr,compare:()=>rm,getAppIdFromCtx:()=>oL,getCookie:()=>pr,hasCircularStructure:()=>uL,hash:()=>tm,isAudited:()=>sm,isClient:()=>aL,isPublicApiRequest:()=>sL,isServingApp:()=>rL,isServingBuilder:()=>nL,isServingBuilderPreview:()=>iL,isValidInternalAPIKey:()=>la,newid:()=>me,openJwt:()=>wc,resolveAppUrl:()=>PS,setCookie:()=>LS,time:()=>lL,timeout:()=>im,urlHasProtocol:()=>cL,validEmail:()=>om});var em=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),XP=h.SALT_ROUNDS||10;async function tm(t){let e=await em.genSalt(XP);return em.hash(t,e)}async function rm(t,e){return em.compare(t,e)}var bc=q(require("jsonwebtoken")),nm="app"+v,DS="/app/",vS="/app/preview",eL="/builder",NS=`${eL}/app/`,tL="/api/public/v";async function PS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=j();!h.isDev()&&h.MULTI_TENANCY&&(n=Ho(t,{includeStrategies:["subdomain"]}));let s=(await We(n,()=>ea({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function rL(t){return t.path.startsWith(`/${nm}`)?!0:t.path.startsWith(DS)}function nL(t){return t.path.startsWith(NS)}function iL(t){return t.path.startsWith(vS)}function sL(t){return t.path.startsWith(tL)}async function oL(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith(nm)?r:(r&&Ji(r)!==Ji(u)&&t.throw("App id conflict",403),r??u)}for(let u of e)if(r=n(u),r)break;t.request.body&&t.request.body.appId&&(r=n(t.request.body.appId));let i=CS(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(vS);if(t.path.startsWith(DS)&&!s&&(r=n(await PS(t))),t.request.headers.referer?.includes(NS)){let u=CS(t.request.headers.referer);r=n(u)}return r}function CS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(nm))}function wc(t){if(t)try{return bc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return bc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function la(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function pr(t,e){let r=t.cookies.get(e);if(r)return wc(r)}function LS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=bc.default.sign(e,h.JWT_SECRET));let i={expires:Zu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function Xr(t,e){LS(t,null,e)}function aL(t){return t.headers["x-budibase-type"]==="client"}function im(t){return new Promise(e=>setTimeout(e,t))}function sm(t){return!!$h[t]}function uL(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 cL(t){return!!t.match(/^.+:\/\/.+$/)}function om(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 am=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(am||{}),Cc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},Ce=class t{constructor(e){this.ms=e}to(e){return this.ms/Cc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Cc[e]/Cc[r]}static from(e,r){return new t(r*Cc[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 lL(t){let e=performance.now();return[await t(),Ce.fromMilliseconds(performance.now()-e)]}var US=Ce.fromDays(7).toSeconds();async function dL(t,e){await(await ti()).store(t,e,US)}async function pL(t,e){let r=me();return await(await ti()).store(r,{email:t,info:e},US),r}async function fL(t){let r=await(await ti()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function mL(t){await(await ti()).delete(t)}async function MS(){let r=(await(await ti()).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 um(t){return(await MS()).filter(e=>t.includes(e.email))}async function lm(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 um(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Dc(t){return await ra("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function da(t){return(await Dc(t))[0]??null}async function FS(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 kS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ra("account_by_email",r)}var Bc={};P(Bc,{BadRequestError:()=>Pc,BudibaseError:()=>ps,EmailUnavailableError:()=>fr,FeatureDisabledError:()=>Fc,ForbiddenError:()=>Lc,HTTPError:()=>Ge,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Nc,NotImplementedError:()=>Uc,UnexpectedError:()=>vc,UsageLimitError:()=>Mc,getPublicError:()=>kc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},kc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},Ge=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)}},vc=class extends Ge{constructor(e){super(e,500)}},Nc=class extends Ge{constructor(e){super(e,404)}},Pc=class extends Ge{constructor(e){super(e,400)}},Lc=class extends Ge{constructor(e){super(e,403)}},Uc=class extends Ge{constructor(e){super(e,501)}},Mc=class extends Ge{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Fc=class extends Ge{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")}},fr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=at.users.isBuilder,en=at.users.isAdmin,BS=at.users.isGlobalBuilder,GS=at.users.isAdminOrBuilder,tn=at.users.hasAdminPermissions,Tt=at.users.hasBuilderPermissions,VS=at.users.hasAppBuilderPermissions;async function di(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ie().getMultiple(r,{allowMissing:!0}),t.map(i=>Gc(i,e))}async function pa(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Gc(t,e)}function Gc(t,e){let r=at.users.isCreator(t);return!r&&t?gL(t,e):r}function gL(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 Vc(t,e){if(h.MULTI_TENANCY){let r=await da(t);if(r!=null&&r.tenantId!==e)throw new fr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Zr(t);if(r&&r.verified&&r.tenantId!==e)throw new fr(t)}}async function $c(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={};P(ys,{account:()=>i_,action:()=>s_,ai:()=>l_,analytics:()=>Wc,app:()=>o_,auditLog:()=>x_,auth:()=>tl,automation:()=>a_,backfill:()=>A_,backfillCache:()=>Xc,backup:()=>I_,datasource:()=>u_,email:()=>c_,environmentVariable:()=>O_,group:()=>S_,identification:()=>Bt,initAsyncEvents:()=>T0,installation:()=>Aa,layout:()=>p_,license:()=>d_,org:()=>f_,plugin:()=>__,processors:()=>Tm,publishEvent:()=>A,query:()=>m_,role:()=>xa,rowAction:()=>R_,rows:()=>g_,screen:()=>h_,serve:()=>E_,shutdown:()=>A0,table:()=>y_,user:()=>ze,view:()=>T_});var Tm={};P(Tm,{analyticsProcessor:()=>XS,init:()=>ML,processors:()=>hr});var Wc={};P(Wc,{enabled:()=>qc});var qc=async()=>Qc();var jS=require("posthog-node");var yL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",EL=t=>t==="served:app:preview"||t==="served:app";var qS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},WS=async t=>{if(!yL(t))return!1;let e=await TL(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 $S(t,{timestamp:Date.now()}),!1):!0}}else return await $S(t,{timestamp:Date.now()}),!1},QS=t=>{let e=`${ve.EVENTS_RATE_LIMIT}:${t}`;return EL(t)&&(e=e+":"+Ue()),e},TL=async t=>{let e=QS(t);return await si(e)},$S=async(t,e)=>{let r=QS(t),n=qS[t],i;switch(n){case"calendarDay":i=86400}await ur(r,e,i)};var SL=["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"],fa=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(SL.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=Ue();s&&(n.appId=s);let o={distinctId:r.id,event:e,properties:n};i&&(o.timestamp=new Date(i)),(r.installationId||r.tenantId)&&(o.groups={},r.installationId&&(o.groups.installation=r.installationId,o.properties.installationId=r.installationId),r.tenantId&&(o.groups.tenant=r.tenantId,o.properties.tenantId=r.tenantId)),this.posthog.capture(o)}clearPIIProperties(e){return e.email&&delete e.email,e.audited&&delete e.audited,e}async identify(e,r){let n={distinctId:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.identify(n)}async identifyGroup(e,r){let n={distinctId:e.id,groupType:e.type,groupKey:e.id,properties:e};r&&(n.timestamp=new Date(r)),this.posthog.groupIdentify(n)}async shutdown(){await this.posthog.shutdown()}};var HS=fa;var _L=["installation:version:upgraded","installation:version:downgraded"],IL=["installation","tenant"],ma=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new HS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!_L.includes(e)&&!await qc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!IL.includes(e.type)&&!await qc()||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 pm=h.SELF_HOSTED&&!h.isDev(),ha=class{async processEvent(e,r,n){pm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){pm||console.log("[audit] identified",e)}async identifyGroup(e){pm||console.log("[audit] group identified",e)}async shutdown(){}};var Em={};P(Em,{BudibaseQueue:()=>kt,InMemoryQueue:()=>jc,JobQueue:()=>hs,QueuedProcessor:()=>ym,UnretriableError:()=>Kc,shutdown:()=>PL});var YS=q(require("events"));function OL(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 jc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new YS.default.EventEmitter,this._runCount=0,this._addCount=0,this._queuedJobIds=new Set,this._attempts=r?.defaultJobOptions?.attempts||1}async process(e,r){r=typeof e=="number"?r:e,this._emitter.on("message",async n=>{if(!n.manualTrigger&&n.opts?.repeat!=null)return;function i(){return r.length===1?r(n):new Promise((u,c)=>{r(n,(d,f)=>{d?c(d):u(f)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await ht.wait(100*c),await o(i(),c);throw l}}try{let u=await o(i());this._emitter.emit("completed",n,u);let c=this._messages.indexOf(n);if(c===-1)throw"Failed deleting a processed message";this._messages.splice(c,1)}catch(u){console.error(u),this._emitter.emit("error",n,u)}this._runCount++;let a=n.opts?.jobId?.toString();a&&n.opts?.removeOnComplete&&this._queuedJobIds.delete(a)})}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=me(),o=()=>{let u={id:s,timestamp:Date.now(),queue:this,data:e,opts:n,discard:async()=>{u._isDiscarded=!0}};this._messages.push(u),this._messages.length>1e3&&this._messages.shift(),this._addCount++,this._emitter.emit("message",u)},a=n?.delay;return a?setTimeout(o,a):o(),{id:i,finished:()=>new Promise((u,c)=>{let l=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),c(m))},d=(f,m)=>{f.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),u(m))};this._emitter.on("error",l),this._emitter.on("completed",d)})}}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=>OL(e))}async whenCurrentJobsFinished(){do await im(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},KS=jc;var hm=q(require("bull"));var hs=(a=>(a.AUTOMATION="automationQueue",a.APP_BACKUP="appBackupQueue",a.AUDIT_LOG="auditLogQueue",a.SYSTEM_EVENT_QUEUE="systemEventQueue",a.APP_MIGRATION="appMigration",a.DOC_WRITETHROUGH_QUEUE="docWritethroughQueue",a.DEV_REVERT_PROCESSOR="devRevertProcessorQueue",a))(hs||{});function JS(t,e,r){bL(t,e),r&&xL(t,r)}function xL(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 RL={automationQueue:"automation-event",appBackupQueue:"app-backup-event",auditLogQueue:"audit-log-event",systemEventQueue:"system-event",appMigration:"app-migration",docWritethroughQueue:"doc-writethrough",devRevertProcessorQueue:"dev-revert-event"};function bL(t,e){let r=RL[e];function n(i,s){let o=i.data.event?.appId;if(o)return af(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 Hc={};P(Hc,{cleanup:()=>wL,clear:()=>mm,set:()=>fm});var ga=[];function fm(t,e){let r=setInterval(t,e);return ga.push(r),r}function mm(t){let e=ga.indexOf(t);e!==-1&&ga.splice(e,1),clearInterval(t)}function wL(){for(let t of ga)clearInterval(t);ga=[]}var mr=q(require("dd-trace")),ya=q(require("object-sizeof")),CL=Ce.fromMinutes(5).toMs(),DL=Ce.fromSeconds(30).toMs(),gm=Ce.fromSeconds(60).toMs(),Ea=[],Yc;async function zS(){for(let t of Ea)await t.clean(gm,"completed"),await t.clean(gm,"failed")}async function vL(t,e,r){let n=performance.now();try{let i=await e();return mr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw mr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;mr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),mr.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 NL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,ya.default)(t.data),...ZS(t.opts||{})}}var kt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:Xn(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:CL,lockRenewTime:DL}};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 hm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new KS(this.jobQueue,r):n=new hm.default(this.jobQueue,r),JS(n,this.jobQueue,this.opts.removeStalledCb),Ea.push(n),!Yc&&!h.isTest()&&(Yc=fm(zS,gm),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(o,a)=>{await mr.default.trace("queue.process",async u=>{if(o.data._parentSpanContext){let c=o.data._parentSpanContext,l={traceId:c.traceId,spanId:c.spanId,toTraceId:()=>c.traceId,toSpanId:()=>c.spanId,toTraceparent:()=>""};u.addLink(l)}u.addTags({"queue.name":this.jobQueue,...NL(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),mr.default.dogstatsd.distribution("queue.process.sizeBytes",(0,ya.default)(o.data),this.metricTags()),await this.withMetrics("queue.process",()=>a?n(o,a):n(o))})},s;return n.length===1?s=o=>i(o):s=i,r?this.queue.process(r,s):this.queue.process(s)}async add(e,r){return await mr.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ya.default)(e),...ZS(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},mr.default.dogstatsd.distribution("queue.add.sizeBytes",(0,ya.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return vL(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function PL(){Yc&&mm(Yc),console.log("Waiting for current queue jobs to finish...");for(let t of Ea)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Ea)await t.close();Ea=[],console.log("Queues shutdown")}var Kc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},ym=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new kt(e,{maxStalledCount:o,jobOptions:{attempts:n,removeOnFail:i,removeOnComplete:s}}),this._queue.process(async(a,u)=>{try{let c=await this.processFn(a.data);u?.(null,c)}catch(c){c instanceof Kc&&await a.discard(),ci(`Failed to process job in ${this._queue.name}`,c),u?.(c)}})}async close(e){await this._queue.close(e)}async execute(e){try{let r=await this._queue.add(e);return{success:!0,result:await ht.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var gs=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new kt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await We(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&&sm(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Ue(),hostInfo:r.hostInfo},tenantId:j()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var Ta=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var XS=new ma,LL=new ha,UL=new gs;function ML(t){return gs.init(t)}var hr=new Ta([XS,LL,UL]);var Jc={};P(Jc,{checkInstallVersion:()=>BL,getInstall:()=>Sa,getInstallFromDB:()=>Sm});var Am=q(require("semver"));var Sa=async()=>qr(ve.INSTALLATION,86400,Sm,{useTenancy:!1});async function FL(t){let e={_id:xe.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 Sm();throw r}}var Sm=async()=>ct(xe.PLATFORM_INFO.name,async t=>{let e;try{e=await t.get(xe.PLATFORM_INFO.docs.install)}catch(r){if(r.status===404)e=await FL(t);else throw r}return e}),kL=async t=>{try{await ct(xe.PLATFORM_INFO.name,async e=>{let r=await Sa();r.version=t,await e.put(r),await ns(ve.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},BL=async()=>{let t=await Sa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Am.default.gt(r,e),i=Am.default.lt(r,e);await kL(r)&&(await bo({_id:t.installId,type:"installation"},async()=>{n?await Aa.upgraded(e,r):i&&await Aa.downgraded(e,r)}),await Bt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?ci(`Invalid version "${r}" - is it semver?`):ci("Failed to retrieve version",n)}};var GL=async()=>{let t=Vp(),e=Oa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await pi(),i=_a();return{id:e_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await pi(),i=await zc(j()),s=_a();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 zc(j()),s=await pi(),o=n.account,a;return o?a=o.hosting:a=_a(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:j(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},VL=async(t,e)=>{let r=t,n="installation",i=_a(),s=h.VERSION,o=Oa(),a={id:r,type:n,hosting:i,version:s,environment:o};await _m(a,e),await Ia({...a,id:`$${n}_${r}`},e)},$L=async(t,e,r)=>{let n=await zc(t),i="tenant",s=await pi(),o=Oa(),a={id:n,type:i,hosting:e,environment:o,installationId:s};await _m(a,r),await Ia({...a,id:`$${i}_${n}`},r)},qL=async(t,e,r)=>{let n=t._id,i=await zc(t.tenantId),s="user",o=Tt(t),a=tn(t),u;Ka(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,f=await pi(),m=e?e.hosting:_a(),p=Oa();await Ia({id:n,type:s,hosting:m,installationId:f,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:p},r)},WL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ya(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await pi(),c=Oa();if(Ha(t)){let d=await Gt(t.email);d?._id&&(e=d._id)}await Ia({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ia=async(t,e)=>{await hr.identify(t,e)},_m=async(t,e)=>{await hr.identifyGroup(t,e)},Oa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,_a=()=>h.SELF_HOSTED?"self":"cloud",pi=async()=>QL()?"account-portal":(await Sa()).installId,zc=async t=>h.SELF_HOSTED?t_(t):t,t_=async t=>We(t,()=>qr(ve.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Zc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,await e.put(r),n)})),QL=()=>h.SERVICE==="account-portal",e_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Bt={getCurrentIdentity:GL,identifyInstallationGroup:VL,identifyTenantGroup:$L,identifyUser:qL,identifyAccount:WL,identify:Ia,identifyGroup:_m,getInstallationId:pi,getUniqueTenantId:t_};var Xc={};P(Xc,{end:()=>HL,isAlreadySent:()=>xm,isBackfillingEvent:()=>Om,recordEvent:()=>Im,start:()=>jL});var jL=async t=>KL({eventWhitelist:t}),Im=async(t,e)=>{let r=Rm(t,e);await ur(r,e,void 0,{useTenancy:!1})},HL=async()=>{await JL(),await zL()},YL=async()=>si(ve.BACKFILL_METADATA),KL=async t=>ur(ve.BACKFILL_METADATA,t),JL=async()=>{await Qo(ve.BACKFILL_METADATA)},zL=async()=>{let t=Rm(),e=await mc(t);for(let r of e)await Qo(r,{useTenancy:!1})},Om=async t=>{let r=(await YL())?.eventWhitelist;return!!(r&&r.includes(t))},xm=async(t,e)=>{let r=Rm(t,e);return!!await si(r,{useTenancy:!1})},ZL={"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}`},Rm=(t,e)=>{let r,n=j();if(t){r=`${ve.EVENTS}:${n}:${t}`;let i=ZL[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${ve.EVENTS}:${n}:*`;return r};var gr;function el(){gr=new kt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function r_(){gr&&await gr.close()}async function n_(t){gr||el();let{event:e,identity:r}=t;Vh.indexOf(e)!==-1&&r.tenantId&&await gr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Bt.getCurrentIdentity();if(!(n?!1:await Om(t))){await n_({event:t,identity:i,properties:e,timestamp:r}),await hr.processEvent(t,i,e,r);return}await xm(t,e)||(await hr.processEvent(t,i,e,r),await Im(t,e))};async function XL(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function eU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function tU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var i_={created:XL,deleted:eU,verified:tU};async function rU(t,e){await A("action:automation_step:executed",t,e)}async function nU(t,e){await A("action:crud:executed",t,e)}async function iU(t,e){await A("action:ai_agent:executed",t,e)}var s_={aiAgentExecuted:iU,automationStepExecuted:rU,crudExecuted:nU};var sU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function oU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function aU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function uU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function cU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function lU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function dU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function pU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function fU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function mU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function hU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function gU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var o_={created:sU,updated:oU,deleted:aU,published:uU,unpublished:cU,fileImported:lU,duplicated:dU,templateImported:pU,versionUpdated:fU,versionReverted:mU,reverted:hU,exported:gU};async function yU(t,e){let n={userId:(await Bt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function EU(t){let r={userId:(await Bt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function TU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function AU(t){let e={type:t};await A("auth:sso:updated",e)}async function SU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function _U(t){let e={type:t};await A("auth:sso:deactivated",e)}var tl={login:yU,logout:EU,SSOCreated:TU,SSOUpdated:AU,SSOActivated:SU,SSODeactivated:_U};async function IU(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 OU(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 xU(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 RU(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 bU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function wU(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 CU(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 a_={created:IU,triggerUpdated:OU,deleted:xU,tested:RU,run:bU,stepCreated:wU,stepDeleted:CU};function bm(t){return!Object.values(qa).includes(t.source)}async function DU(t,e){let r={datasourceId:t._id,source:t.source,custom:bm(t)};await A("datasource:created",r,e)}async function vU(t){let e={datasourceId:t._id,source:t.source,custom:bm(t)};await A("datasource:updated",e)}async function NU(t){let e={datasourceId:t._id,source:t.source,custom:bm(t)};await A("datasource:deleted",e)}var u_={created:DU,updated:vU,deleted:NU};async function PU(t){let e={};await A("email:smtp:created",e,t)}async function LU(){let t={};await A("email:smtp:updated",t)}var c_={SMTPCreated:PU,SMTPUpdated:LU};async function UU(t){let e={};await A("ai:config:created",e,t)}async function MU(){let t={};await A("ai:config:updated",t)}var l_={AIConfigCreated:UU,AIConfigUpdated:MU};async function FU(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function kU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function BU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function GU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function VU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function $U(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function qU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var d_={planChanged:FU,activated:kU,checkoutOpened:BU,checkoutSuccess:GU,portalOpened:VU,paymentFailed:$U,paymentRecovered:qU};async function WU(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 p_={created:WU,deleted:QU};async function jU(t){let e={};await A("org:info:name:updated",e,t)}async function HU(t){let e={};await A("org:info:logo:updated",e,t)}async function YU(t){let e={};await A("org:platformurl:updated",e,t)}async function KU(){let t={};await A("analytics:opt:out",t)}async function JU(){let t={};await A("analytics:opt:out",t)}var f_={nameUpdated:jU,logoUpdated:HU,platformURLUpdated:YU,analyticsOptOut:KU,analyticsOptIn:JU};var zU=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},ZU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},XU=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:deleted",r)},eM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},tM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},rM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},m_={created:zU,updated:ZU,deleted:XU,imported:eM,run:tM,previewed:rM};async function nM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function iM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function sM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function oM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function aM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var xa={created:nM,updated:iM,deleted:sM,assigned:oM,unassigned:aM};async function uM(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 cM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var h_={created:uM,deleted:cM};var lM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},dM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},g_={created:lM,imported:dM};async function pM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function fM(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 mM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:deleted",e)}async function hM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function gM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var y_={created:pM,updated:fM,deleted:mM,exported:hM,imported:gM};async function yM(t){let e={timezone:t};await A("served:builder",e)}async function EM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function TM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var E_={servedBuilder:yM,servedApp:EM,servedAppPreview:TM};async function AM(t,e){let r={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:created",r,e)}async function SM(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:updated",e)}async function _M(t){let e={userId:t._id,viaScim:Lt(),audited:{email:t.email}};await A("user:deleted",e)}async function IM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function OM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function xM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function RM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function bM(t){let e={audited:{email:t}};await A("user:invited",e)}async function wM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function CM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function vM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function NM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function PM(t){let e={users:t};await A("user:data:collaboration",e)}var ze={created:AM,updated:SM,deleted:_M,permissionAdminAssigned:IM,permissionAdminRemoved:OM,permissionBuilderAssigned:xM,permissionBuilderRemoved:RM,invited:bM,inviteAccepted:wM,passwordForceReset:CM,passwordUpdated:DM,passwordResetRequested:vM,passwordReset:NM,dataCollaboration:PM};async function LM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function UM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function MM(t){let e={tableId:t.tableId};await A("view:deleted",e)}async function FM(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function kM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function BM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function GM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function VM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function $M(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function qM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function WM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var T_={created:LM,updated:UM,deleted:MM,exported:FM,filterCreated:kM,filterUpdated:BM,filterDeleted:GM,calculationCreated:VM,calculationUpdated:$M,calculationDeleted:qM,viewJoinCreated:WM};async function QM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function jM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function HM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function YM(){let t={};await A("installation:firstStartup",t)}var Aa={versionChecked:QM,upgraded:jM,downgraded:HM,firstStartup:YM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function KM(t){Ts||await A("app:backfill:succeeded",t)}async function JM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function zM(t){Ts||await A("tenant:backfill:succeeded",t)}async function ZM(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function XM(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function e0(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var A_={appSucceeded:KM,appFailed:JM,tenantSucceeded:zM,tenantFailed:ZM,installationSucceeded:XM,installationFailed:e0};async function t0(t,e){let r={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function r0(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:updated",e)}async function n0(t){let e={groupId:t._id,viaScim:Lt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function i0(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function s0(t,e){let r={count:t,groupId:e._id,viaScim:Lt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function o0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function a0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var S_={created:t0,updated:r0,deleted:n0,usersAdded:i0,usersDeleted:s0,createdOnboarding:o0,permissionsEdited:a0};async function u0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function c0(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 l0(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 __={init:u0,imported:c0,deleted:l0};async function d0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function p0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var I_={appBackupRestored:d0,appBackupTriggered:p0};async function f0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function m0(t){let e={name:t};await A("environment_variable:deleted",e)}async function h0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var O_={created:f0,deleted:m0,upgradePanelOpened:h0};async function g0(t){let e={filters:t};await A("audit_log:filtered",e)}async function y0(t){let e={filters:t};await A("audit_log:downloaded",e)}var x_={filtered:g0,downloaded:y0};async function E0(t,e){await A("row_action:created",t,e)}var R_={created:E0};function T0(){}var A0=async()=>{await hr.shutdown(),console.log("Events shutdown")};var wm=async t=>{await ze.deleted(t),Tt(t)&&await ze.permissionBuilderRemoved(t),tn(t)&&await ze.permissionAdminRemoved(t)},S0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await xa.assigned(t,i)},_0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await xa.unassigned(t,i)},I0=async(t,e)=>{let r=t.roles,n=e?.roles;await S0(t,r,n),await _0(t,r,n)},Cm=async(t,e)=>{let r=j(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await cs(r)),await Bt.identifyUser(t,n),e?(await ze.updated(t),x0(t,e)&&await ze.permissionBuilderRemoved(t),b0(t,e)&&await ze.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await ze.passwordForceReset(t),t.password!==e.password&&await ze.passwordUpdated(t)):await ze.created(t),O0(t,e)&&await ze.permissionBuilderAssigned(t),R0(t,e)&&await ze.permissionAdminAssigned(t),await I0(t,e)},O0=(t,e)=>b_(t,e,Tt),x0=(t,e)=>w_(t,e,Tt),R0=(t,e)=>b_(t,e,tn),b0=(t,e)=>w_(t,e,tn),b_=(t,e,r)=>!(!r(t)||e&&r(e)),w_=(t,e,r)=>!(r(t)||!e||!r(e));var rl={};P(rl,{createASession:()=>C0,endSession:()=>D0,getSession:()=>vm,getSessionsForUser:()=>Ra,invalidateSessions:()=>fi,updateSessionTTL:()=>Dm});var D_=require("uuid");var v_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):Ce.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function Ra(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 Ra(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()||us(`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 C0(t,e){let r=await Ra(t),n=0;if(r.length>=3){let c=r.sort((f,m)=>new Date(f.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,d=c.slice(0,l).map(f=>f.sessionId);n=d.length,await fi(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await Vr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,D_.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,v_),{session:u,invalidatedSessionCount:n}}async function Dm(t){let e=await Vr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,v_)}async function D0(t,e){await(await Vr()).delete(As(t,e))}async function vm(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 Um={};P(Um,{PASSWORD_MAX_LENGTH:()=>Pm,PASSWORD_MIN_LENGTH:()=>Nm,validatePassword:()=>Lm});var Nm=+(h.PASSWORD_MIN_LENGTH||12),Pm=+(h.PASSWORD_MAX_LENGTH||512);function Lm(t){return!t||t.length<Nm?{valid:!1,error:`Password invalid. Minimum ${Nm} characters.`}:t.length>Pm?{valid:!1,error:`Password invalid. Maximum ${Pm} characters.`}:{valid:!0}}var v0=async t=>{let e=t._id;await Mt.removeUser(t),await wm(t),await nn.invalidateUser(e),await fi(e,{reason:"bulk-deletion"})},Kt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&en(e)?!1:await t.features.isSSOEnforced()||Ka(e)?!0:(r||(r=await cs(j())),!!(r&&r.email===e.email&&Ya(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 Ge("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Lm(o);if(!d.valid)throw new Ge(d.error,400)}u=r.hashPassword?await tm(o):o}else i&&(u=i.password);let c=r.requirePassword&&!await t.features.isSSOEnforced();if(!u&&c)throw"Password must be specified.";a=a||is();let l={createdAt:Date.now(),...i,...e,_id:a,password:u,tenantId:n};return l.roles||(l.roles={}),l.status==null&&(l.status="active"),l}static async allUsers(){return(await ie().allDocs(ai(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await il(e,{})).length}}static async getUsersByAppAccess(e){return await Mm(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Gt(e)}static async getUser(e){let r=await mi(e);return r&&delete r.password,r}static async bulkGet(e){return await nl(e)}static async bulkUpdate(e){return await ba(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=j(),i=ie(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await mi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(f){if(f.status!==404)throw f}if(!c&&s&&(c=await Gt(s),c&&c._id!==o))throw new fr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[f,m]=await di([c,e]);d=f!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Vc(s,n);let f=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(f=Fm(f,c)),!c&&u?.length&&(f.roles={...u});let m=[];if(!o&&a.length>0)for(let p of a)m.push(t.groups.addUsers(p,[f._id]));try{let p=await i.put(f);return f._rev=p.rev,await Cm(f,c),c&&f.email!==c.email&&await Mt.removeUser({email:c.email}),await Mt.addUser(n,f._id,f.email,f.ssoId),await nn.invalidateUser(p.id),await Promise.all(m),i.get(f._id)}catch(p){throw p.status===409?"User exists already":p}})}static async bulkCreate(e,r){let n=j(),i=[],s=[],o=[],a=e.map(f=>f.email),u=await lm(a),c=[];for(let f of e){let m=s.find(g=>g.email.toLowerCase()===f.email.toLowerCase()),p=u.includes(f.email.toLowerCase());if(m||p){c.push({email:f.email,reason:"Unavailable"});continue}f.userGroups=r||[],s.push(f),await pa(f)&&o.push(f)}let l=await cs(n),d=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let p of s)d&&delete p.password,i.push(t.buildUser(p,{hashPassword:!0,requirePassword:!d},n,void 0,l));let f=await Promise.all(i);await ba(f);for(let p of f)await Mt.addUser(n,p._id,p.email),await Cm(p,void 0);let m=f.map(p=>({_id:p._id,email:p.email}));if(Array.isArray(m)&&r){let p=[],g=m.map(y=>y._id);for(let y of r)p.push(t.groups.addUsers(y,g));await Promise.all(p)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await $c(e);i&&(e=e.filter(m=>m.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(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await ba(a),l=(await di(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await da(m._id)).ssoId;g&&(await Dc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await v0(m)}await Wr().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let f={};return o.reduce((m,p)=>(m[p._id]=p,m),f),u.forEach(m=>{let p=f[m.id].email;m.ok?n.successful.push({_id:m.id,email:p}):n.unsuccessful.push({_id:m.id,email:p,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await Zr(o))throw n.userId===ar()._id?new Ge('Please visit "Account" to delete this user',400):new Ge("Account holder cannot be deleted",400)}await Mt.removeUser(n),await r.remove(i,n._rev);let s=await pa(n)?1:0;await t.quotas.removeUsers(1,s),await wm(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 ns(ve.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 Ca(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function nl(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ca(n)),n}async function P0(){let t=ie(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`})).rows.map(n=>n.id)}async function L0(){let t=ie(),e=`us${v}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`,include_docs:!0})).rows.map(n=>n.doc)}async function ba(t){return await ie().bulkDocs(t)}async function mi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Ca(n)),n}async function Gt(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=Ca(n)),n}async function U0(t){try{let e=await Gt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function il(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=Ac(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=Ca(s)),s}async function Mm(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 ie().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function N_(t,e){if(e)return Tc(ut(t),e._id)}async function P_(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}${Ve}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Ca(o)),o}var M0=8;async function L_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??M0,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 il(r,a),l=d=>N_(r,d)):e?.string?.email?(u=await P_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await nl(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(ai(null,{...a,limit:void 0}))).rows.map(f=>f.doc),u=Ur.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(ai(null,a))).rows.map(f=>f.doc),Nf(u,s,{paginate:!0,property:c,getKey:l})}async function F0(){return(await Uf("by_email2",{limit:0,include_docs:!1})).total_rows}async function k0(){let t=0;async function e(r){let n=await L_({bookmark:r}),i=await di(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function B0(t){return delete t.admin,delete t.builder,t}function Fm(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 G0(t,e){let r=ut(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Kt.save(t,{hashPassword:!1})}async function V0(t,e){let r=ut(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Kt.save(t,{hashPassword:!1})}var U_=3600;async function $0(t,e){let n=await If(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 q0(t){let e=await Kt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await Zr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Da({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=$0),!e)try{e=j()}catch{e=await Mt.lookupTenantId(t)}let i=await qo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,U_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!at.users.isGlobalBuilder(s)&&await We(e,async()=>{let o=await Kt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function W0(t){let e=await qo(),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 q0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,U_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function va(t){await(await qo()).delete(t)}var $m={};P($m,{Writethrough:()=>Gm});var _s={};P(_s,{AUTO_EXTEND_POLLING_MS:()=>F_,doWithLock:()=>km,newRedlock:()=>hi});var M_=q(require("redlock"));async function j0(t,e){if(t==="custom")return hi(e);switch(t){case"try_once":return hi(Ss.TRY_ONCE);case"try_twice":return hi(Ss.TRY_TWICE);case"default":return hi(Ss.DEFAULT);case"delay_500":return hi(Ss.DELAY_500);case"auto_extend":return hi(Ss.AUTO_EXTEND);default:throw wr.unreachable(t)}}var Ss={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 hi(t={}){let e={...Ss.DEFAULT,...t},n=(await _f()).client;return new M_.default([n],e)}function H0(t){let r=`lock:${t.systemLock?"system":j()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var F_=Ce.fromSeconds(10).toMs();async function km(t,e){let r=await j0(t.type,t.customOptions),n,i;try{let s=H0(t),o=t.type==="auto_extend"?F_: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 k_=1e4,Bm=null;async function sl(){if(!Bm){let t=await Sf();Bm=new ri(t)}return Bm}function Na(t,e){return t.name+e}function Vm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function Y0(t,e,r=k_){let n=await sl(),i=e._id,s;i&&(s=await n.get(Na(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await km({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;us("Ignoring conflict in write-through cache")}})).executed||us("Ignoring redlock conflict in write-through cache")),s=Vm(a,o?null:s?.lastWrite),a._id&&await n.store(Na(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function K0(t,e){let r=await sl(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Vm(s),await r.store(n,i)}return i.doc}async function J0(t,e){let r=await sl(),n=Na(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Vm(s),await r.store(n,i)}return i.doc}async function z0(t,e,r){let n=await sl();if(!e)throw new Error("No ID/Rev provided.");let i=typeof e=="string"?e:e._id;r=typeof e=="string"?r:e._rev;try{await n.delete(Na(t,i))}finally{await t.remove(i,r)}}var Gm=class{constructor(e,r=k_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return Y0(this.db,e,r)}async get(e){return K0(this.db,e)}async tryGet(e){return J0(this.db,e)}async remove(e,r){return z0(this.db,e,r)}};var qm={};P(qm,{createCode:()=>X0,getCode:()=>eF,invalidateCode:()=>tF});var Z0=Ce.fromHours(1).toSeconds();async function X0(t,e){let r=me();return await(await Wo()).store(r,{userId:t,info:e},Z0),r}async function eF(t){let r=await(await Wo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function tF(t){await(await Wo()).delete(t)}var Qm={};P(Qm,{DocWritethrough:()=>Wm,DocWritethroughProcessor:()=>Pa,getProcessor:()=>nF,init:()=>B_});var rF=100,ol,Pa=class t{static get queue(){return t._queue||(t._queue=new kt("docWritethroughQueue",{jobOptions:{attempts:rF}})),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=qe(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},Wm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Pa.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function B_(){return ol=new Pa().init(),ol}function nF(){return ol||B_()}function al(t){return`config${v}${t}`}async function St(t){let e=ie();try{return await e.get(al(t))}catch(r){if(r.status===404)return;throw r}}async function iF(t){return t._id||(t._id=al(t.type)),ie().put(t)}async function Zc(){let t=await St("settings");return t||(t={_id:al("settings"),type:"settings",config:{}}),t.config.platformUrl=await La({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Qc({config:t.config}),t}async function Ym(){return(await Zc()).config}async function La(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 St("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Qc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await qr(ve.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await St("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 sF(){return await St("google")}async function ul(){return(await sF())?.config}async function Km(){if(!h.SELF_HOSTED)return jm();let t=await ul();return(!t||!t.activated)&&(t=jm()),t}function jm(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function oF(){return St("logos_oidc")}async function aF(){return St("oidc")}async function uF(){let t=(await aF())?.config;return t?.configs&&t.configs[0]}async function Jm(t){let e=(await St("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function G_(){return St("smtp")}async function cF(t){let e=await G_();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 lF(){return(await St("scim"))?.config}async function dF(){return St("ai")}async function pF(){return St("recaptcha")}var oh={};P(oh,{AccessController:()=>Xm,BUILTIN_ROLE_IDS:()=>eh,Role:()=>sn,RoleHierarchyTraversal:()=>cl,RoleIDVersion:()=>th,builtinRoleToNumber:()=>Ua,checkForRoleResourceArray:()=>W_,externalRole:()=>EF,findRole:()=>Ma,getAllRoleIds:()=>_F,getAllRoles:()=>sh,getBuiltinRole:()=>$_,getBuiltinRoles:()=>nh,getDBRoleID:()=>Q_,getExternalRoleID:()=>on,getExternalRoleIDs:()=>j_,getRole:()=>TF,getUserRoleHierarchy:()=>ih,getUserRoleIdHierarchy:()=>q_,isBuiltin:()=>gi,lowerBuiltinRoleID:()=>yF,prefixRoleIDNoBuiltin:()=>Zm,roleIDsAreEqual:()=>_t,roleToNumber:()=>gF,saveRoles:()=>AF,validInherits:()=>hF});var zm=q(require("semver"));var ll=q(require("lodash/fp/cloneDeep"));var V_=require("lodash");var eh={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...eh,BUILDER:"BUILDER"},th={UUID:void 0,NAME:"name"};function mF(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=th.NAME}addInheritance(e){return e&&typeof e=="string"?e=Zm(e):e&&Array.isArray(e)&&(e=e.map(Zm)),this.inherits=e,this}},cl=class{constructor(e,r){this.allRoles=e,this.opts=r}walk(e){let r=this.opts,n=this.allRoles,i=[];if(!e||!e._id)return i;if(i.push(e),Array.isArray(e.inherits))for(let s of e.inherits){let o=Ma(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!mF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ma(o.inherits,n,r),o&&i.push(o),ht.roles.checkForRoleInheritanceLoops(i))break}}return(0,V_.uniqBy)(i,s=>s._id)}},rh={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 nh(){return(0,ll.default)(rh)}function gi(t){return Object.values(eh).includes(t)}function Zm(t){return gi(t)?t:cr(t)}function $_(t){let e=Object.values(rh).find(r=>t.includes(r._id));if(e)return(0,ll.default)(e)}function hF(t,e){if(!e)return!1;let r=n=>t.find(i=>_t(i._id,n));if(Array.isArray(e)){let n=e.filter(i=>r(i));return e.length!==0&&n.length===e.length}else return!!r(e)}function Ua(t){let e=nh(),r=Object.values(e).length+1;if(_t(t,he.ADMIN)||_t(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 gF(t){if(gi(t))return Ua(t);let e=await ih(t,{defaultPublic:!0}),r=n=>{if(!n.inherits)return 0;if(Array.isArray(n.inherits)){let i=n.inherits.map(s=>{let o=e.find(a=>_t(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(gi(n.inherits))return Ua(n.inherits)+1;return 0};return Math.max(...e.map(r))}function yF(t,e){return t?e&&Ua(t)>Ua(e)?e:t:e}function _t(t,e){return cr(t)===cr(e)}function EF(t){let e;return t._id&&(e=on(t._id)),{...t,_id:e,inherits:j_(t.inherits,t.version)}}function Ma(t,e,r){let n=$_(t);n||(t=cr(t));let i=e.find(s=>s._id&&_t(s._id,t));return!i&&!gi(t)&&r?.defaultPublic?(0,ll.default)(rh.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 TF(t,e){let r=ts(),n=[];if(!gi(t)){let i=await r.tryGet(Q_(t));i&&n.push(i)}return Ma(t,n,e)}async function AF(t){await ts().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:cr(r._id)})))}async function SF(t,e){let r=await sh();if(_t(t,he.ADMIN))return r;let n=Ma(t,r,e),i=[];return n&&(i=new cl(r,e).walk(n)),i}async function q_(t){return(await ih(t)).map(r=>r._id)}async function ih(t,e){return SF(t,e)}function W_(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 _F(t){return(await sh(t)).map(r=>r._id)}async function sh(t){if(t)return ct(t,e);{let r;try{r=ts()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(Sc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=on(a._id,a.version)));let i=nh(),s=[];!r||await IF(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=>_t(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=on(a._id,u.version),n.push({...a,...u,name:a.name,_id:on(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=W_(o.permissions,a);return n}}async function IF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!zm.default.valid(r)?!0:!zm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var Xm=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||_t(e,he.BUILDER)||_t(r,e)||_t(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await q_(r),this.userHierarchies[r]=n),n?.find(i=>_t(i,e))!==void 0}async checkScreensAccess(e,r){let n=[];for(let i of e){let s=await this.checkScreenAccess(i,r);s&&n.push(s)}return n}async checkScreenAccess(e,r){let n=e&&e.routing?e.routing.roleId:void 0;return await this.hasAccess(n,r)?e:null}};function Q_(t){return t?.startsWith("role")?t:cr(t)}function on(t,e){if(t.startsWith(`role${v}`)&&(gi(t)||e===th.NAME)){let r=t.split(v);return r.shift(),r.join(v)}return t}function j_(t,e){return t&&(typeof t=="string"?on(t,e):t.map(r=>on(r,e)))}var ah={};P(ah,{BUILDER:()=>wF,BUILTIN_PERMISSIONS:()=>dl,CREATOR:()=>CF,GLOBAL_BUILDER:()=>DF,PermissionImpl:()=>ge,PermissionLevel:()=>bs,PermissionType:()=>ja,doesHaveBasePermission:()=>RF,getAllowedLevels:()=>J_,getBuiltinPermissionByID:()=>xF,getBuiltinPermissions:()=>OF,isPermissionLevelHigherThanRead:()=>bF,levelToNumber:()=>K_});var H_=q(require("lodash/flatten")),Y_=q(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function K_(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 dl={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 OF(){return(0,Y_.default)(dl)}function xF(t){return Object.values(dl).find(r=>r._id===t)}function RF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(dl),s=(0,H_.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 bF(t){return K_(t)>1}var wF="builder",CF="creator",DF="globalBuilder";var lh={};P(lh,{FlagSet:()=>fl,all:()=>LF,flags:()=>uh,getEnvFlags:()=>eI,init:()=>vF,isEnabled:()=>PF,parseEnvFlags:()=>hl,shutdown:()=>NF,testutils:()=>ch});var ml=q(require("crypto"));var z_=require("posthog-node"),Z_=q(require("dd-trace"));var X_=require("lodash");var pl;function vF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),pl=new z_.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:Ce.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function NF(){pl?.shutdown()}function hl(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 eI(){return hl(h.TENANT_FEATURE_FLAGS||"")}var fl=class{constructor(e){this.flagSchema=e;this.setId=ml.randomUUID()}defaults(){return(0,X_.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await Z_.default.trace("features.fetch",async e=>{let r=df(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=j(),o=new Set;for(let{tenantId:d,key:f,value:m}of eI())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(f),!!this.isFlagName(f))){if(typeof i[f]!="boolean")throw new Error(`Feature: ${f} is not a boolean`);i[f]=m,n[`flags.${f}.source`]="environment"}let a=ar(),u=a?._id;if(!u){let d=cf();d&&(u=ml.createHash("sha512").update(d).digest("hex"))}let c=a?.tenantId;if(c||(c=s),n["identity.type"]=a?.type,n["identity._id"]=a?._id,n.tenantId=c,n.userId=u,pl&&u){n.readFromPostHog=!0;let d={tenantId:c},f=await pl.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[m,p]of Object.entries(f))if(this.isFlagName(m)){if(typeof p!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${p}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=p,n[`flags.${m}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${m}": ${p}`,g)}}}let l=ff();for(let[d,f]of Object.entries(l))this.isFlagName(d)&&typeof f=="boolean"&&(i[d]=f,n[`flags.${d}.source`]="override");pf(this.setId,i);for(let[d,f]of Object.entries(i))n[`flags.${d}.value`]=f;return e?.addTags(n),i})}},uh=new fl(jh);async function PF(t){return await uh.isEnabled(t)}async function LF(){return await uh.fetch()}var ch={};P(ch,{setFeatureFlags:()=>tI,withFeatureFlags:()=>FF});function UF(){let t={};for(let{tenantId:e,key:r,value:n}of hl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function MF(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 tI(t,e){let r=UF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=MF(r);return Co({TENANT_FEATURE_FLAGS:n})}function FF(t,e,r){let n=tI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var _h={};P(_h,{adminOnly:()=>Rl,auditLog:()=>_l,authError:()=>Fe,buildAuthMiddleware:()=>Ak,buildCsrfMiddleware:()=>_k,buildTenancyMiddleware:()=>Sk,builderOnly:()=>wl,builderOrAdmin:()=>bl,google:()=>yr,internalApi:()=>Ol,joiValidator:()=>ka,oidc:()=>Er,passport:()=>Ik,platformLogout:()=>wk,refreshOAuthToken:()=>Rk,ssoCallbackUrl:()=>an,updateUserOAuth:()=>bk});var Sh={};P(Sh,{adminOnly:()=>Rl,auditLog:()=>_l,authError:()=>Fe,authenticated:()=>Sl,builderOnly:()=>wl,builderOrAdmin:()=>bl,correlation:()=>hI,csp:()=>SI,csrf:()=>xl,datasource:()=>Ek,errorHandling:()=>yI,featureFlagCookie:()=>_I,google:()=>yr,internalApi:()=>Ol,ip:()=>OI,joiValidator:()=>ka,local:()=>Is,oidc:()=>Er,pino:()=>fI,querystringToBody:()=>EI,ssoCallbackUrl:()=>an,tenancy:()=>Il});var Is={};P(Is,{authenticate:()=>GF,options:()=>BF});function Fe(t,e,r){return t(r,null,{message:e})}async function an(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Ym(),n="/api/global/auth";return Gr()&&(n+=`/${j()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var dh="Invalid credentials",kF="This account has expired. Please reset your password",BF={passReqToCallback:!0};async function GF(t,e,r,n){if(!e)return Fe(n,"Email Required");if(!r)return Fe(n,"Password Required");let i=await Gt(e);return i==null?(console.info(`user=${e} could not be found`),Fe(n,dh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Fe(n,dh)):i.password?await rm(r,i.password)?(delete i.password,n(null,i)):Fe(n,dh):(console.info(`user=${e} has no password set`,i),Fe(n,kF))}var yr={};P(yr,{buildVerifyFn:()=>iI,getCallbackUrl:()=>qF,strategyFactory:()=>ph});var Fa=t=>Promise.resolve(t);async function gl(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Fe(r,"sso user id required");if(!t.email)return Fe(r,"sso user email required");let i=is(t.userId),s;try{s=await mi(i)}catch(a){if(!a.status||a.status!==404)return Fe(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Gt(t.email)),!s&&e)return Fe(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 VF(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Fe(r,"Error saving user",a)}return r(null,o)}async function VF(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 $F=require("passport-google-oauth").OAuth2Strategy;function iI(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 gl(s,!0,i,t)}}async function ph(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=iI(r);return new $F({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function qF(t){return an("google",t)}var Er={};P(Er,{buildVerifyFn:()=>oI,fetchStrategyConfig:()=>HF,getCallbackUrl:()=>YF,strategyFactory:()=>jF});var sI=q(require("node-fetch"));var WF=require("@techpass/passport-openidconnect").Strategy;function oI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:QF(n,i),oauth2:{accessToken:s,refreshToken:o}};return gl(l,!1,c,t)}}function QF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&om(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function jF(t,e){try{let r=oI(e),n=new WF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function HF(t,e){try{let{clientID:r,clientSecret:n,configUrl:i,pkce:s}=t;if(!r||!n||!e||!i)throw new Error("Configuration invalid. Must contain clientID, clientSecret, callbackUrl and configUrl");let o=await(0,sI.default)(i);if(!o.ok)throw new Error(`Unexpected response when fetching openid-configuration: ${o.statusText}`);let a=await o.json();return{issuer:a.issuer,authorizationURL:a.authorization_endpoint,tokenURL:a.token_endpoint,userInfoURL:a.userinfo_endpoint,clientID:r,clientSecret:n,callbackURL:e,pkce:s}}catch(r){throw new Error(`Error constructing OIDC authentication configuration - ${r}`)}}async function YF(){return an("oidc")}var fh={};P(fh,{postAuth:()=>zF,preAuth:()=>JF});var KF=require("passport-google-oauth").OAuth2Strategy;async function aI(){let t=await Km();if(!t)throw new Error("No google configuration found");return t}async function JF(t,e,r){let n=await aI(),s=`${await La({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await ph(n,s,Fa);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 zF(t,e,r){let n=await aI(),s=`${await La({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 KF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{Xr(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 ZF=/\/:(.*?)(\/.*)?$/g,yi=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(ZF);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}}):[],Ei=(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 Th={};P(Th,{SecretOption:()=>lI,decrypt:()=>Eh,decryptFile:()=>ik,encrypt:()=>tk,encryptFile:()=>rk,getSecret:()=>yh});var Tr=q(require("crypto")),un=q(require("fs")),hh=q(require("zlib"));var mh=require("path"),yl="aes-256-ctr",cI="-",XF=1e4,ek=32,El=16,gh=16,lI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(lI||{});function yh(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 Tl(t,e){return Tr.default.pbkdf2Sync(t,e,XF,ek,"sha512")}function tk(t,e="api"){let r=Tr.default.randomBytes(El),n=Tl(yh(e),r),i=Tr.default.createCipheriv(yl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${cI}${a}`}function Eh(t,e="api"){let[r,n]=t.split(cI),i=Buffer.from(r,"hex"),s=Tl(yh(e),i),o=Tr.default.createDecipheriv(yl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function rk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,mh.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,mh.join)(t,n)),a=Tr.default.randomBytes(El),u=Tr.default.randomBytes(gh),c=Tl(r,a),l=Tr.default.createCipheriv(yl,c,u);return o.write(a),o.write(u),s.pipe(hh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function nk(t){let e=un.default.createReadStream(t),r=await uI(e,El),n=await uI(e,gh);return e.close(),{salt:r,iv:n}}async function ik(t,e,r){if(un.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await nk(t),s=un.default.createReadStream(t,{start:El+gh}),o=un.default.createWriteStream(e),a=Tl(r,n),u=Tr.default.createDecipheriv(yl,a,i),c=hh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",f=>{o.close(),d(f)}),u.on("error",f=>{o.close(),d(f)}),c.on("error",f=>{o.close(),d(f)}),o.on("error",f=>{o.close(),d(f)})})}function uI(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 pI=q(require("dd-trace")),sk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function ok(){return new Date(Date.now()-sk).toISOString()}function dI(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 ak(t,e){if(la(t))return{valid:!0,user:void 0};let n=Eh(t).split(v)[0];return We(n,async()=>{let i;try{let s=ie();i=await lr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Da({userId:i,tenantId:n,populateUser:e})};throw new fs})}function Al(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function Sl(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=Al(n,"x-budibase-api-version");Ei(n,r)&&(s=!0);try{let u=Al(n,"x-budibase-token"),c=pr(n,"budibase:auth")||wc(u),l=Al(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=Al(n,"x-budibase-tenant-id"),f=!1,m,p=!1,g;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await vm(_,T),e&&e.populateUser?m=await Da({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await Da({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<ok()&&await Dm(S),f=!0}catch(x){f=!1,console.error(`Auth Error: ${x.message}`),Xr(n,"budibase:auth")}}if(!f&&l){let T=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await ak(l,T);_&&(f=!0,g="api_key",m=S,p=!S)}!m&&d?m={tenantId:d}:m&&"password"in m&&delete m.password,f||(f=!1);let y=T=>T&&T.email;return y(m)&&pI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),dI(n,{authenticated:f,user:m,internal:p,version:o,publicEndpoint:s,loginMethod:g}),y(m)?qp(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?Xr(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return dI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var _l=async(t,e)=>e();function Il(t,e,r={noTenancyRequired:!1}){let n=yi(t),i=yi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ei(s,i)};!!Ei(s,n)||(u.excludeStrategies=["query"]);let l=Ho(s,u);return s.set("x-budibase-tenant-id",l),We(l,o)}}async function Ol(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),la(r)||t.throw(403,"Unauthorized"),e()}var uk=["GET","HEAD","OPTIONS"],ck=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function xl(t={noCsrfPatterns:[]}){let e=yi(t.noCsrfPatterns);return async(r,n)=>{if(Ei(r,e)||uk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!ck.filter(u=>s.includes(u)).length||r.internal)return n();let o=r.user?.csrfToken;if(!o)return n();let a=r.get("x-csrf-token");return(!a||a!==o)&&r.throw(403,"Invalid CSRF token"),n()}}var Rl=async(t,e)=>(!t.internal&&!en(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function bl(t,e){let r=Ue(),n=h.isWorker()||!r?Tt:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!en(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}async function wl(t,e){let r=Ue(),n;if(h.isWorker()||!r?n=Tt:h.isApps()&&(n=ms),!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 lk=require("koa-pino-logger"),dk=require("correlation-id");function pk(){return{logger:Rc,genReqId:dk.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 fk(){return h.HTTP_LOGGING?lk(pk()):(t,e)=>e()}var fI=fk();var mI=require("uuid"),mk=require("correlation-id"),hI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,mI.v4)()),mk.withId(r,()=>e())};function gI(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 yI(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:kc(r)};if(gI(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}}function EI(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 AI=q(require("crypto"));var TI={"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","https://www.google.com/recaptcha/api.js"],"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'"]},hk=/^[A-Za-z0-9-*:/.]+$/,SI=async(t,e)=>{let r=AI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...TI};if(n["script-src"]=[...TI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await Zo.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
+ `).filter(c=>hk.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()};var _I=async(t,e)=>{let n=pr(t,"budibase:featureflags")?.flags||{};await mf(n,async()=>{await e()})};var ka={};P(ka,{body:()=>gk,params:()=>yk});var Ah=q(require("joi"));function II(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:Ah.default.any().optional(),updatedAt:Ah.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 gk(t,e){return II(t,"body",e)}function yk(t,e){return II(t,"params",e)}async function OI(t,e){return t.ip?await lf(t.ip,()=>e()):e()}var Ek={google:fh};var xI=require("koa-passport"),Tk=require("passport-local").Strategy,Cl=require("passport-oauth2-refresh"),Ak=Sl,Sk=Il,_k=xl,Ik=xI;xI.use(new Tk(Is.options,Is.authenticate));async function Ok(t,e){let r=await Er.getCallbackUrl(),n,i;try{if(n=await Er.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Er.strategyFactory(n,Fa)}catch{throw new Error("Could not refresh OAuth Token")}return Cl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Cl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function xk(t,e){let r=await yr.getCallbackUrl(t),n;try{n=await yr.strategyFactory(t,r,Fa)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Cl.use(n),new Promise(i=>{Cl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Rk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Jm(r);return n?Ok(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await ul();return n?xk(n,t):{err:{data:"Google configuration not found"}}}}}async function bk(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ie(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await va(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function 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=pr(e,"budibase:auth"),s=await Ra(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):Xr(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await fi(r,{sessionIds:o,reason:"logout"}),await tl.logout(e.user?.email),await va(r)}var Oh={};P(Oh,{validate:()=>Pk});var C=q(require("joi")),Ck=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Ih(t,e){let{error:r}=t.validate(e);if(r)throw r}function Dk(t){let e=C.default.object({type:C.default.string().allow("component").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),settings:C.default.array().items(C.default.object().unknown(!0)).required()}).unknown(!0)});Ih(e,t)}function vk(t){let e=C.default.object({type:C.default.string().allow(...Object.values(Ul)).required(),required:C.default.boolean().required(),default:C.default.any(),display:C.default.string()}),r=C.default.object({type:C.default.string().allow(...Object.values(Ll)),readable:C.default.boolean(),displayName:C.default.string(),fields:C.default.object().pattern(C.default.string(),e)}).required(),n=C.default.object({type:C.default.string().allow("datasource").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({docs:C.default.string(),plus:C.default.boolean().optional(),isSQL:C.default.boolean().optional(),auth:C.default.object({type:C.default.string().required()}).optional(),features:C.default.object(Object.fromEntries(Object.values(Ml).map(i=>[i,C.default.boolean().optional()]))).optional(),relationships:C.default.boolean().optional(),description:C.default.string().required(),friendlyName:C.default.string().required(),type:C.default.string().allow(...Ck),datasource:C.default.object().pattern(C.default.string(),e).required(),query:C.default.object().pattern(C.default.string(),r).unknown(!0).required(),extra:C.default.object().pattern(C.default.string(),C.default.object({type:C.default.string().required(),displayName:C.default.string().required(),required:C.default.boolean(),data:C.default.object()}))})});Ih(n,t)}function Nk(t){let e=C.default.object().pattern(C.default.string(),{type:C.default.string().allow(...Object.values(Z)).required(),customType:C.default.string().allow(...Object.values(pe)),title:C.default.string(),description:C.default.string(),enum:C.default.array().items(C.default.string()),pretty:C.default.array().items(C.default.string())}),r=C.default.object({properties:e,required:C.default.array().items(C.default.string())}).concat(e).required(),n=C.default.object({type:C.default.string().allow("automation").required(),metadata:C.default.object().unknown(!0).required(),hash:C.default.string().optional(),version:C.default.string().optional(),schema:C.default.object({name:C.default.string().required(),tagline:C.default.string().required(),icon:C.default.string().required(),description:C.default.string().required(),type:C.default.string().allow("ACTION","LOGIC").required(),stepId:C.default.string().disallow(...Hh).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});Ih(n,t)}function Pk(t){switch(t?.type){case"component":Dk(t);break;case"datasource":vk(t);break;case"automation":Nk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var xh={};P(xh,{Client:()=>Qe,clients:()=>$r,locks:()=>_s,utils:()=>lc});var Rh={};P(Rh,{isBlacklisted:()=>Uk,refreshBlacklist:()=>CI});var RI=q(require("dns")),vl=q(require("net"));var bI=require("util"),Dl,Lk=(0,bI.promisify)(RI.default.lookup);async function wI(t){return vl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Lk(t,{all:!0})).map(r=>r.address)}async function CI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(vl.default.isIP(i))r.push(i);else{let s=await wI(i);r=r.concat(s)}}Dl=r}async function Uk(t){if(Dl||await CI(),Dl?.length===0)return!1;let e;return vl.default.isIP(t)?e=[t]:e=await wI(t),!!Dl?.find(r=>e.includes(r))}var wh={};P(wh,{init:()=>Fk});var Mk={"user:created":t=>t.userId,"user:updated":t=>t.userId,"user:deleted":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:admin:removed":t=>t.userId,"user:builder:assigned":t=>t.userId,"user:builder:removed":t=>t.userId,"user_group:created":t=>t.groupId,"user_group:updated":t=>t.groupId,"user_group:deleted":t=>t.groupId,"user_group:user_added":t=>t.groupId,"user_group:users_deleted":t=>t.groupId,"user_group:permissions_edited":t=>t.groupId};function DI(t,e){let r=Mk[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Ba=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=DI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await We(i,async()=>{await a({id:s,tenantId:i})})}shutdown(){return r_()}};var vI,bh;function Fk(t){gr||el(),bh||(bh=new Ba(t)),vI||(vI=gr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await bh.processEvent(r,n,i)}))}var Fh={};P(Fh,{COUNT_FIELD_NAME:()=>Uh,Sql:()=>GI,SqlTable:()=>Nl,designDoc:()=>Mh,utils:()=>nf});var UI=require("knex");var kk=require("knex");function Ch(t){return["link","formula","ai"].indexOf(t)!==-1}function NI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(f=>f.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(f=>f.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(f=>f.foreignKey);for(let[f,m]of Object.entries(e.schema)){let p=n?.schema[f];if(p&&p.type||c.includes(f)||i?.updated===f)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(f)?t.string(f,255):t.text(f);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:y,toTable:T}=m.meta;t.integer(f).unsigned(),t.foreign(f).references(`${T}.${y}`)}else l.indexOf(f)===-1&&t.float(f);break;case"bigint":t.bigint(f);break;case"boolean":t.boolean(f);break;case"datetime":m.timeOnly?t.time(f):t.datetime(f,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":ht.schema.isDeprecatedSingleUserColumn(m)?t.text(f):t.json(f);break;case"link":if(m.relationshipType!=="many-to-one"&&m.relationshipType!=="many-to-many"){if(!m.foreignKey||!m.tableId)throw new Error("Invalid relationship schema");let{tableName:y}=Zp(m.tableId),T=r[y];if(!T||!T.primary)throw new Error("Referenced table doesn't exist or has no primary keys");let _=T.primary[0],S=T.schema[_].externalType;S?t.specificType(m.foreignKey,S):t.integer(m.foreignKey).unsigned(),t.foreign(m.foreignKey).references(`${y}.${_}`)}break;case"signature_single":case"attachment":case"attachment_single":t.json(f);break;case"formula":break;case"ai":break;case"auto":case"json":case"internal":throw new Error(`${m.type} is not a valid SQL type`);default:wr.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Ch(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,p])=>!Ch(p.type)&&e.schema[m]==null).forEach(([m,p])=>{i?.old===m||Ch(p.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function Gk(t,e,r){return t.createTable(e.name,n=>{NI(n,e,r)})}function Vk(t,e,r,n,i){return t.alterTable(e.name,s=>{NI(s,e,r,n,i)})}function $k(t,e){return t.dropTable(e.name)}var Dh=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,kk.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=Gk(r,e.table,e.tables);break;case"UPDATE_TABLE":if(!e.table)throw new Error("Must specify old table for update");if(this.sqlClient==="mysql2"&&e.meta?.renamed){let i=e.meta.renamed.updated;return{sql:`alter table ${e?.schema?`\`${e.schema}\`.\`${e.table.name}\``:`\`${e.table.name}\``} rename column \`${e.meta.renamed.old}\` to \`${i}\`;`,bindings:[]}}if(n=Vk(r,e.table,e.tables,e.meta?.oldTable,e.meta?.renamed),this.sqlClient==="mssql"&&e.meta?.renamed){let i=e.meta.renamed.old,s=e.meta.renamed.updated,o=e?.schema?`${e.schema}.${e.table.name}`:`${e.table.name}`,a=Zi(n);if(Array.isArray(a))for(let u of a)u.sql.startsWith("exec sp_rename")&&(u.sql=`exec sp_rename '${o}.${i}', '${s}', 'COLUMN'`,u.bindings=[]);return a}break;case"DELETE_TABLE":n=$k(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Zi(n)}},Nl=Dh;var MI=require("lodash"),Uh="__bb_total";function PI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function vh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function qk(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 FI(t){return Array.isArray(t)?t.map(e=>FI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function LI(t){return t.sourceType==="internal"||t.sourceId===ql}function Wk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function kI(t,e='"'){return`${e}${Wk(t,e)}${e}`}function Nh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=kI(t[r],e));return`[${t.join(",")}]`}function BI(t){return Jh.includes(t.type)&&!ht.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},Ph=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_ARRAY:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="array",POSTGRES_MONEY:e=>this.client==="pg"&&e?.externalType?.includes("money"),POSTGRES_ENUM:e=>this.client==="pg"&&e?.externalType?.toLowerCase()==="user-defined"&&e?.type==="options",MSSQL_DATES:e=>this.client==="mssql"&&e?.type==="datetime"&&e.timeOnly};this.client=e,this.query=n,this.knex=r,this.splitter=new Ur.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}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(".")}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()&&BI(r)&&typeof e=="object")return JSON.stringify(e);if(this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(r))return`{${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(!tf(e))return null}else if(r.dateOnly){let n=ef(e);return n?new Date(n):null}else return r.ignoreTimezones?oc(e)?new Date(e):Xp(e)?new Date(e+"Z"):null:oc(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,MI.cloneDeep)(e);for(let r of Object.values(Sr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(Jt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(pn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let f=d.tableName,m=a?.[f]||f,p=l(f)||l(m),g=l(d.column);if((p||g)&&d.to&&d.tableName){let y=this.knex.select(this.knex.raw(1)).from({[m]:f}),T=y.clone(),_=rf(d),S;if(p?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let x=a?.[_.through]||d.through,E=this.tableNameWithSchema(_.through,{alias:x,schema:o});T=T.innerJoin(E,function(){this.on(`${m}.${_.toPrimary}`,"=",`${x}.${_.to}`)}).where(`${x}.${_.from}`,"=",this.rawQuotedIdentifier(`${c}.${_.fromPrimary}`)),this.client==="sqlite3"&&(T=this.addJoinFieldCheck(T,_)),e=e.where(I=>{I.whereExists(i(S,T)),r&&I.orWhereNotExists(y.clone().innerJoin(E,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${x}.${_.from}`)}))})}else{let x=`${m}.${d.to}`,E=`${c}.${d.from}`;T=T.where(x,"=",this.rawQuotedIdentifier(E)),e=e.where(I=>{I.whereExists(i(S,T.clone())),r&&I.orWhereNotExists(T)})}}}return e}addFilters(e,r,n){if(!r)return e;let i=this;r=this.parseFilters({...r});let s=this.query.tableAliases,o=r.allOr,u=this.client==="sqlite3"?this.table._id:this.table.name;function c(p){return s?.[p]||p}function l(p,g,y,T){let _=(S,x,E)=>{let[I,...k]=x.split("."),w=k.join("."),B=c(I);return S.andWhere(de=>y(de,B?`${B}.${w}`:w,E))};for(let S in p){let x=p[S],E=na(S),I=E.includes("."),k=n?.relationship&&I,w;if(S==="_complexIdOperator"&&(w=p[S])&&T){let B=c(u);e=T(e,w.id.map(de=>B?`${B}.${de}`:de),w.values)}else if(I)k&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,Qk[g],E,(B,de)=>_(de,B,x)));else{let B=c(u);e=y(e,B?`${B}.${E}`:E,x)}}}let d=(p,g,y)=>((r?.fuzzyOr||o)&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3"?p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):p.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),f=(p,g=!1)=>{function y(T){return(o||p===r?.containsAny)&&(T=T.or),p===r?.notContains&&(T=T.not),T}this.client==="pg"?l(p,"contains",(T,_,S)=>{T=y(T);let x=this.getFieldSchema(_),E="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(x)&&(E="",S=`{${S.map(k=>k.substring(1,k.length-1))}}`),g?T.whereRaw(E?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),E?this.knex.raw(Nh(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${E} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),E?this.knex.raw(Nh(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(p,"contains",(T,_,S)=>y(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(kI(Nh(S)))])):l(p,"contains",(T,_,S)=>(S.length===0||(T=T.where(x=>(p===r?.notContains&&(x=x.not),x=x.where(E=>{for(let I of S){p===r?.containsAny?E=E.or:E=E.and;let k=typeof I=="string"?`"${I.toLowerCase()}"`:I;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${k}%`)}}),p===r?.notContains&&(x=x.or.whereNull(this.rawQuotedIdentifier(_))),x))),T))};if(r.$and){let{$and:p}=r;for(let g of p.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:p}=r;e=e.where(g=>{for(let y of p.conditions)g.orWhere(T=>this.addFilters(T,{...y,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(p,g,y)=>{let T=this.getFieldSchema(g),_=Array.isArray(y)?y:[y];if(o&&(p=p.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly){for(let S of _)S!=null?p=p.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):p=p.or.whereNull(g);return p}return p.whereIn(g,_)},(p,g,y)=>(o&&(p=p.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),p.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&l(r.string,"string",(p,g,y)=>{if(o&&(p=p.or),this.client==="oracledb"||this.client==="sqlite3")return p.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?p.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(T.name))]):p.whereILike(g,`${y}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(p,g,y)=>{let T=w=>w&&Object.keys(w).length===0&&Object.getPrototypeOf(w)===Object.prototype;T(y.low)&&(y.low=""),T(y.high)&&(y.high="");let _=ac(y.low),S=ac(y.high),x=this.getFieldSchema(g),E=g,I=y.high,k=y.low;return this.client==="sqlite3"&&x?.type==="datetime"&&x.dateOnly&&(I!=null&&(I=`${I.toISOString().slice(0,10)}T23:59:59.999Z`),k!=null&&(k=k.toISOString().slice(0,10))),this.client==="oracledb"?E=this.convertClobs(g):this.client==="sqlite3"&&x?.type==="bigint"&&(E=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[y.high]),k=this.knex.raw("CAST(? AS INTEGER)",[y.low])),o&&(p=p.or),_&&S?p.whereBetween(E,[k,I]):_?p.where(E,">=",k):S?p.where(E,"<=",I):p}),r.equal&&l(r.equal,"equal",(p,g,y)=>{let T=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return p.where(S=>S.whereNotNull(_).andWhere(_,y))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?p.whereLike(g,`${y.toISOString().slice(0,10)}%`):p.whereNull(g):p.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&l(r.notEqual,"notEqual",(p,g,y)=>{let T=this.getFieldSchema(g);if(o&&(p=p.or),this.client==="mssql")return p.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return p.where(S=>S.not.whereNull(_).and.where(_,"!=",y)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?p.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):p.not.whereNull(g):p.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&l(r.empty,"empty",(p,g)=>(o&&(p=p.or),p.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(p,g)=>(o&&(p=p.or),p.whereNotNull(g))),r.contains&&f(r.contains),r.notContains&&f(r.notContains),r.containsAny&&f(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!zp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${_r(r.documentType)}%`),e}isSqs(){return LI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;LI(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 ${Uh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,f;this.isAggregateField(a)?f=this.rawQuotedIdentifier(a):this.client==="oracledb"?f=this.convertClobs(d):f=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[f,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 d of n){let{tableName:f,through:m,to:p,from:g,fromPrimary:y,toPrimary:T}=d;if(!f||!r)continue;let _=c[f];if(!_)throw new Error(`related table "${f}" not found in datasource`);let S=a?.[f]||f,x=a?.[r]||r,E=m&&a?.[m]||m,I=this.tableNameWithSchema(f,{alias:S,schema:u}),k=[..._?.primary||[],_?.primaryDisplay].filter($=>$),w=qk(l.filter($=>$.split(".")[0]===S),k);w=w.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=w.map($=>this.buildJsonField(_,$));if(!B.length)continue;let de=B.map($=>{let ue=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ue}??`,[$[0],$[1]]).toString()}).join(","),cn=`${S}.${T||p}`,V=s.from(I).orderBy(cn),F=m&&T&&y,N=F?`${E}.${g}`:`${S}.${p}`,W=F?`${x}.${y}`:`${x}.${g}`;if(F){let $=this.tableNameWithSchema(m,{alias:E,schema:u});V=V.join($,function(){this.on(`${S}.${T}`,"=",`${E}.${p}`)})}V=V.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(W));let O=$=>(V=V.select(w.map(ue=>this.rawQuotedIdentifier(ue))).limit(vh()),s.select($).from({[S]:V})),K;switch(i){case"sqlite3":V=this.addJoinFieldCheck(V,d),K=O(this.knex.raw(`json_group_array(json_object(${de}))`));break;case"pg":K=O(this.knex.raw(`json_agg(json_build_object(${de}))`));break;case"mariadb":K=V.select(s.raw(`json_arrayagg(json_object(${de}) LIMIT ${vh()})`));break;case"mysql2":case"oracledb":K=O(this.knex.raw(`json_arrayagg(json_object(${de}))`));break;case"mssql":{let $=s.select("*").from({[x]:V.select(B.map(ue=>s.ref(ue[1]).as(ue[0]))).limit(vh())});K=s.raw(`(SELECT ?? = (${$} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:K})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,f=this.tableNameWithSchema(o,{alias:c,schema:s}),m=u?this.tableNameWithSchema(u,{alias:l,schema:s}):void 0;return u?e=e.leftJoin(m,function(){for(let p of n){let g=p.fromPrimary,y=p.from;this.orOn(`${d}.${g}`,"=",`${l}.${y}`)}}).leftJoin(f,function(){for(let p of n){let g=p.toPrimary,y=p.to;this.orOn(`${c}.${g}`,`${l}.${y}`)}}):e=e.leftJoin(f,function(){for(let p of n){let g=p.from,y=p.to;this.orOn(`${d}.${g}`,"=",`${c}.${y}`)}}),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 m=(i.page<=1?0:i.page-1)*i.limit;l=i.limit,c=m}else i&&i.offset&&i.limit?(l=i.limit,c=i.offset):i&&i.limit&&(l=i.limit);r!=="COUNT"&&(l!=null&&(u=u.limit(l)),c!=null&&(u=u.offset(c)));let d=this.query.resource?.aggregations||[];if(r==="COUNT"?u=this.addDistinctCount(u):d.length>0?u=this.addAggregations(u,d):u=u.select(this.generateSelectStatement()),r!=="COUNT"&&(u=this.addSorting(u)),u=this.addFilters(u,n,{relationship:!0}),s?.length&&d.length===0){let f=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[f]:"paginated"}));return this.addJsonRelationships(m,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())}},Lh=class extends Nl{constructor(r,n=PI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=Zi(r);return i==="sqlite3"&&(s=FI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,UI.knex)(s),a,u=new Ph(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:PI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let f of a)d.push(await n(f,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===ql){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(!BI(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){Po(this.getSqlClient(),r,n)}},GI=Lh;var Mh={};P(Mh,{base:()=>jk});function jk(t){return{_id:Ht,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var kh={};P(kh,{jsonFromCsvString:()=>Hk});var VI=q(require("csvtojson"));async function Hk(t,e){let{ignoreEmpty:r=!1,allowSingleColumn:n=!1,possibleDelimiters:i=[",",";",":","|","~"," "," "]}=e||{};for(let s of i){let o,a=!1;try{let u=await(0,VI.default)({ignoreEmpty:r,delimiter:s}).fromString(t);for(let[,c]of u.entries()){let l=Object.keys(c);if(o==null&&(o=l),!n&&l.length===1){a=!0;break}if(o.length!==l.length){a=!0;break}for(let d of o)(c[d]===void 0||c[d]==="")&&(c[d]=null)}if(a)continue;return u}catch{continue}}throw new Error("Unable to determine delimiter")}var Bh=class{constructor(e,r,n){this.method=e,this.url=r,this.controller=n,this.middlewares=[],this.outputMiddlewares=[]}addMiddleware(e,r){return r?.first?this.middlewares.unshift(e):this.middlewares.push(e),this}addOutputMiddleware(e,r){return r?.first?this.outputMiddlewares.unshift(e):this.outputMiddlewares.push(e),this}apply(e){let r=this.method,n=this.url,i=this.middlewares,s=this.controller,o=this.outputMiddlewares,a=()=>{},u=[n,...i,s,...o,a];e[r](...u)}},Pl=Bh;var $I=q(require("@koa/router")),Ti=class{constructor(){this.endpoints=[];this.middlewares=[];this.outputMiddlewares=[];this.applied=!1;this.locked=!1}addGroupMiddleware(e,r={first:!0}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.middlewares.push({fn:e,first:r.first}),this}addGroupMiddlewareOutput(e,r={first:!1}){if(this.locked)throw new Error("Group locked, no more middleware can be added.");return this.outputMiddlewares.push({fn:e,first:r.first}),this}addEndpoint(e,r,...n){let i=n.pop(),s=new Pl(e,r,i);if(n.length!==0)for(let o of n)s.addMiddleware(o);return this.endpoints.push(s),this}lockMiddleware(){this.locked=!0}post(e,...r){return this.addEndpoint("post",e,...r)}patch(e,...r){return this.addEndpoint("patch",e,...r)}put(e,...r){return this.addEndpoint("put",e,...r)}get(e,...r){return this.addEndpoint("get",e,...r)}delete(e,...r){return this.addEndpoint("delete",e,...r)}head(e,...r){return this.addEndpoint("head",e,...r)}apply(e){let r=this.endpointList();e||(e=new $I.default);for(let n of r)n.apply(e);return e}endpointList(){if(this.applied)throw new Error("Already applied to router");this.applied=!0;for(let e of this.endpoints)this.middlewares.forEach(({fn:r,first:n})=>e.addMiddleware(r,{first:n})),this.outputMiddlewares.forEach(({fn:r,first:n})=>e.addOutputMiddleware(r,{first:n}));return this.endpoints}};var Ga=class{constructor(){this.groups=[]}group(...e){let r=new Ti;return e.length&&e.forEach(n=>{"first"in n?r.addGroupMiddleware(n.middleware,{first:n.first}):r.addGroupMiddleware(n)}),this.groups.push(r),r}listAllEndpoints(){let e=this.groups.flatMap(i=>i.endpointList()),r=[],n=[];for(let i of e)i.url.includes(":")?n.push(i):r.push(i);return[...r,...n]}};var Yk={...Yo,...Ae},Kk=(t={})=>{ic(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,Endpoint,EndpointGroup,EndpointGroupList,FeatureDisabledError,ForbiddenError,GlobalRole,HTTPError,Header,InternalTable,InvalidAPIKeyError,MAX_VALID_DATE,MIN_VALID_DATE,NotFoundError,NotImplementedError,RedisClient,SEPARATOR,SQLITE_DESIGN_DOC_ID,SQS_DATASOURCE_INTERNAL,StaticDatabases,UNICODE_MAX,UnexpectedError,UsageLimitError,UserStatus,ViewName,accounts,auth,blacklist,cache,configs,constants,context,csv,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