@budibase/backend-core 3.18.0 → 3.18.2

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,31 +1,31 @@
1
- "use strict";var HI=Object.create;var qa=Object.defineProperty;var KI=Object.getOwnPropertyDescriptor;var YI=Object.getOwnPropertyNames;var JI=Object.getPrototypeOf,zI=Object.prototype.hasOwnProperty;var j=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),P=(t,e)=>{for(var r in e)qa(t,r,{get:e[r],enumerable:!0})},$h=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of YI(e))!zI.call(t,i)&&i!==r&&qa(t,i,{get:()=>e[i],enumerable:!(n=KI(e,i))||n.enumerable});return t};var W=(t,e,r)=>(r=t!=null?HI(JI(t)):{},$h(e||!t||!t.__esModule?qa(r,"default",{value:t,enumerable:!0}):r,t)),ZI=t=>$h(qa({},"__esModule",{value:!0}),t);var hg=j((Zl,Xl)=>{"use strict";(function(t,e){typeof Zl=="object"&&typeof Xl<"u"?Xl.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(Zl,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",p="date",m="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,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 q=String(V);return!q||q.length>=F?V:""+Array(F+1-q.length).join(N)+V},_={s:T,z:function(V){var F=-V.utcOffset(),N=Math.abs(F),q=Math.floor(N/60),O=N%60;return(F<=0?"+":"-")+T(q,2,"0")+":"+T(O,2,"0")},m:function V(F,N){if(F.date()<N.date())return-V(N,F);var q=12*(N.year()-F.year())+(N.month()-F.month()),O=F.clone().add(q,c),K=N-O<0,$=F.clone().add(q+(K?-1:1),c);return+(-(q+(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:p,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,q){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!q&&O&&(S=O),O||!q&&S},D=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 D(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(q){var O=q.date,K=q.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(f);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,q){var O=D(N);return this.startOf(q)<=O&&O<=this.endOf(q)},F.isAfter=function(N,q){return D(N)<this.startOf(q)},F.isBefore=function(N,q){return this.endOf(q)<D(N)},F.$g=function(N,q,O){return B.u(N)?this[q]:this.set(O,N)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(N,q){var O=this,K=!!B.u(q)||q,$=B.p(N),ue=function(pn,je){var Or=B.w(O.$u?Date.UTC(O.$y,je,pn):new Date(O.$y,je,pn),O);return K?Or:Or.endOf(a)},Oe=function(pn,je){return B.w(O.toDate()[pn].apply(O.toDate("s"),(K?[0,0,0,0]:[23,59,59,999]).slice(je)),O)},Ne=this.$W,ke=this.$M,dt=this.$D,J="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 dn=this.$locale().weekStart||0,xs=(Ne<dn?Ne+7:Ne)-dn;return ue(K?dt-xs:dt+(6-xs),ke);case a:case p:return Oe(J+"Hours",0);case o:return Oe(J+"Minutes",1);case s:return Oe(J+"Seconds",2);case i:return Oe(J+"Milliseconds",3);default:return this.clone()}},F.endOf=function(N){return this.startOf(N,!1)},F.$set=function(N,q){var O,K=B.p(N),$="set"+(this.$u?"UTC":""),ue=(O={},O[a]=$+"Date",O[p]=$+"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+(q-this.$W):q;if(K===c||K===d){var Ne=this.clone().set(p,1);Ne.$d[ue](Oe),Ne.init(),this.$d=Ne.set(p,Math.min(this.$D,Ne.daysInMonth())).$d}else ue&&this.$d[ue](Oe);return this.init(),this},F.set=function(N,q){return this.clone().$set(N,q)},F.get=function(N){return this[B.p(N)]()},F.add=function(N,q){var O,K=this;N=Number(N);var $=B.p(q),ue=function(ke){var dt=D(K);return B.w(dt.date(dt.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,q){return this.add(-1*N,q)},F.format=function(N){var q=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,dt=O.months,J=O.meridiem,dn=function(je,Or,Rs,Wa){return je&&(je[Or]||je(q,K))||Rs[Or].slice(0,Wa)},xs=function(je){return B.s(ue%12||12,je,"0")},pn=J||function(je,Or,Rs){var Wa=je<12?"AM":"PM";return Rs?Wa.toLowerCase():Wa};return K.replace(g,function(je,Or){return Or||function(Rs){switch(Rs){case"YY":return String(q.$y).slice(-2);case"YYYY":return B.s(q.$y,4,"0");case"M":return Ne+1;case"MM":return B.s(Ne+1,2,"0");case"MMM":return dn(O.monthsShort,Ne,dt,3);case"MMMM":return dn(dt,Ne);case"D":return q.$D;case"DD":return B.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return dn(O.weekdaysMin,q.$W,ke,2);case"ddd":return dn(O.weekdaysShort,q.$W,ke,3);case"dddd":return ke[q.$W];case"H":return String(ue);case"HH":return B.s(ue,2,"0");case"h":return xs(1);case"hh":return xs(2);case"a":return pn(ue,Oe,!0);case"A":return pn(ue,Oe,!1);case"m":return String(Oe);case"mm":return B.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return B.s(q.$s,2,"0");case"SSS":return B.s(q.$ms,3,"0");case"Z":return $}return null}(je)||$.replace(":","")})},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(N,q,O){var K,$=this,ue=B.p(q),Oe=D(N),Ne=(Oe.utcOffset()-this.utcOffset())*e,ke=this-Oe,dt=function(){return B.m($,Oe)};switch(ue){case d:K=dt()/12;break;case c:K=dt();break;case l:K=dt()/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,q){if(!N)return this.$L;var O=this.clone(),K=k(N,q,!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}(),ln=de.prototype;return D.prototype=ln,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",p]].forEach(function(V){ln[V[1]]=function(F){return this.$g(F,V[0],V[1])}}),D.extend=function(V,F){return V.$i||(V(F,de,D),V.$i=!0),D},D.locale=k,D.isDayjs=I,D.unix=function(V){return D(1e3*V)},D.en=x[S],D.Ls=x,D.p={},D})});var Rt=j(Ke=>{"use strict";Object.defineProperty(Ke,"__esModule",{value:!0});Ke.Err=Ke.Valid=Ke.err=Ke.valid=void 0;var Rx=t=>new du(t);Ke.valid=Rx;var wx=t=>new pu(t);Ke.err=wx;var du=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=du;var pu=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=pu});var wt=j(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0})});var Nr=j(nd=>{"use strict";Object.defineProperty(nd,"__esModule",{value:!0});qt();var oe=Rt();wt();var bx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],Dx=["sun","mon","tue","wed","thu","fri","sat"],Cx=(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&&bx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&Dx.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)},vx=(t,e,r)=>{if(t==="*")return Cx(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)},Ag=(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),Nx=(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 vx(n[0],e,r);if(n.length===2){let i=Ag(n[0],e,r,0),s=Ag(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,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)")},Px=(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=Nx(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)},Lx=(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(Px(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)};nd.default=Lx});var Sg=j(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 Mx=Rt(),Fx=Ux(Nr());wt();var kx=(t,e)=>{if(!t.seconds)return(0,Mx.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,Fx.default)(r,"seconds",e)};Ms.default=kx});var _g=j(Fs=>{"use strict";var Bx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var Gx=Rt(),Vx=Bx(Nr());wt();var $x=(t,e)=>{if(!t.minutes)return(0,Gx.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,Vx.default)(r,"minutes",e)};Fs.default=$x});var Ig=j(ks=>{"use strict";var Wx=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});qt();var qx=Rt(),Qx=Wx(Nr());wt();var jx=(t,e)=>{if(!t.hours)return(0,qx.err)(["hours field is undefined."]);let{hours:r}=t;return(0,Qx.default)(r,"hours",e)};ks.default=jx});var Og=j(Gs=>{"use strict";var Hx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var Bs=Rt(),Kx=Hx(Nr());wt();var Yx=(t,e)=>{if(!t.daysOfMonth)return(0,Bs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Bs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Bs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Bs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Bs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Kx.default)(r,"daysOfMonth",e)};Gs.default=Yx});var xg=j(Vs=>{"use strict";var Jx=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});qt();var zx=Rt(),Zx=Jx(Nr());wt();var Xx=(t,e)=>{if(!t.months)return(0,zx.err)(["months field is undefined."]);let{months:r}=t;return(0,Zx.default)(r,"months",e)};Vs.default=Xx});var Rg=j(Ws=>{"use strict";var eR=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});qt();var $s=Rt(),tR=eR(Nr());wt();var rR=(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,tR.default)(r,"daysOfWeek",e)};Ws.default=rR});var wg=j(qs=>{"use strict";var nR=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});qt();var iR=Rt(),sR=nR(Nr());wt();var oR=(t,e)=>{if(!t.years)return(0,iR.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,sR.default)(r,"years",e)};qs.default=oR});var vg=j((bQ,Cg)=>{"use strict";var id;try{id=Map}catch{}var sd;try{sd=Set}catch{}function bg(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(Dg);if(id&&t instanceof id)return new Map(Array.from(t.entries()));if(sd&&t instanceof sd)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]:bg(t[i],e,r)}return n}return t}function Dg(t){return bg(t,[],[])}Cg.exports=Dg});var Qs=j(od=>{"use strict";Object.defineProperty(od,"__esModule",{value:!0});od.default=fR;var aR=Object.prototype.toString,uR=Error.prototype.toString,cR=RegExp.prototype.toString,lR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",dR=/^Symbol\((.*)\)(.*)$/;function pR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Ng(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return pR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return lR.call(t).replace(dR,"Symbol($1)");let n=aR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+uR.call(t)+"]":n==="RegExp"?cR.call(t):null}function fR(t,e){let r=Ng(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Ng(this[n],e);return s!==null?s:i},2)}});var rr=j(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 Pg=mR(Qs());function mR(t){return t&&t.__esModule?t:{default:t}}var Lg={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,Pg.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Pg.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=Lg;var Ug={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=Ug;var Mg={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=Mg;var Fg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Pe.date=Fg;var kg={isValue:"${path} field must be ${value}"};Pe.boolean=kg;var Bg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Pe.object=Bg;var Gg={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=Gg;var hR=Object.assign(Object.create(null),{mixed:Lg,string:Ug,number:Mg,date:Fg,object:Bg,array:Gg,boolean:kg});Pe.default=hR});var Ni=j(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var gR=t=>t&&t.__isYupSchema__;fu.default=gR});var $g=j(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var yR=Vg(require("lodash/has")),ER=Vg(Ni());function Vg(t){return t&&t.__esModule?t:{default:t}}var ad=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,yR.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,ER.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},TR=ad;mu.default=TR});var cd=j(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=AR;function AR(t){return t==null?[]:[].concat(t)}});var vn=j(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var SR=Wg(Qs()),_R=Wg(cd());function Wg(t){return t&&t.__esModule?t:{default:t}}function ld(){return ld=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},ld.apply(this,arguments)}var IR=/\$\{\s*(\w+)\s*\}/g,dd=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=ld({},r,{path:n})),typeof e=="string"?e.replace(IR,(i,s)=>(0,SR.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,_R.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)}};hu.default=dd});var gu=j(fd=>{"use strict";Object.defineProperty(fd,"__esModule",{value:!0});fd.default=RR;var pd=OR(vn());function OR(t){return t&&t.__esModule?t:{default:t}}var xR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function RR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=xR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new pd.default(o,s,u)):c(null,s);for(let p=0;p<n.length;p++){let m=n[p];m(i,function(g){if(g){if(!pd.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 pd.default(o,s,u),s);return}c(null,s)}})}}});var js=j((MQ,Kg)=>{"use strict";function Nn(t){this._maxSize=t,this.clear()}Nn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Nn.prototype.get=function(t){return this._values[t]};Nn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var wR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Hg=/^\d+$/,bR=/^\d/,DR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,CR=/^\s*(['"]?)(.*?)(\1)\s*$/,gd=512,qg=new Nn(gd),Qg=new Nn(gd),jg=new Nn(gd);Kg.exports={Cache:Nn,split:hd,normalizePath:md,setter:function(t){var e=md(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=md(t);return jg.get(t)||jg.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+(yd(r)||Hg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){vR(Array.isArray(t)?t:hd(t),e,r)}};function md(t){return qg.get(t)||qg.set(t,hd(t).map(function(e){return e.replace(CR,"$2")}))}function hd(t){return t.match(wR)||[""]}function vR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(LR(i)&&(i='"'+i+'"'),a=yd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function yd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function NR(t){return t.match(bR)&&!t.match(Hg)}function PR(t){return DR.test(t)}function LR(t){return!yd(t)&&(NR(t)||PR(t))}});var Pn=j(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.create=MR;Ks.default=void 0;var UR=js(),yu={context:"$",value:"."};function MR(t,e){return new Hs(t,e)}var Hs=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===yu.context,this.isValue=this.key[0]===yu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?yu.context:this.isValue?yu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,UR.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}};Ks.default=Hs;Hs.prototype.__isYupRef=!0});var Yg=j(Td=>{"use strict";Object.defineProperty(Td,"__esModule",{value:!0});Td.default=GR;var FR=Ed(require("lodash/mapValues")),Eu=Ed(vn()),kR=Ed(Pn());function Ed(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Tu.apply(this,arguments)}function BR(t,e){if(t==null)return{};var r={},n=Object.keys(t),i,s;for(s=0;s<n.length;s++)i=n[s],!(e.indexOf(i)>=0)&&(r[i]=t[i]);return r}function GR(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=BR(r,["value","path","label","options","originalValue","sync"]),{name:d,test:p,params:m,message:f}=t,{parent:g,context:y}=a;function T(I){return kR.default.isRef(I)?I.getValue(i,g,y):I}function _(I={}){let k=(0,FR.default)(Tu({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),D=new Eu.default(Eu.default.formatError(I.message||f,k),i,k.path,I.type||d);return D.params=k,D}let S=Tu({path:s,parent:g,type:d,createError:_,resolve:T,options:a,originalValue:u},l);if(!c){try{Promise.resolve(p.call(S,i,S)).then(I=>{Eu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let x;try{var E;if(x=p.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}Eu.default.isError(x)?n(x):x?n(null,x):n(_())}return e.OPTIONS=t,e}});var Ad=j(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.getIn=Jg;Ys.default=void 0;var VR=js(),$R=t=>t.substr(0,t.length-1).substr(1);function Jg(t,e,r,n=r){let i,s,o;return e?((0,VR.forEach)(e,(a,u,c)=>{let l=u?$R(a):a;if(t=t.resolve({context:n,parent:i,value:r}),t.innerType){let d=c?parseInt(l,10):0;if(r&&d>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);i=r,r=r&&r[d],t=t.innerType}if(!c){if(!t.fields||!t.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);i=r,r=r&&r[l],t=t.fields[l]}s=l,o=u?"["+a+"]":"."+a}),{schema:t,parent:i,parentPath:s}):{parent:i,parentPath:e,schema:t}}var WR=(t,e,r,n)=>Jg(t,e,r,n).schema,qR=WR;Ys.default=qR});var Zg=j(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var zg=QR(Pn());function QR(t){return t&&t.__esModule?t:{default:t}}var Sd=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){zg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){zg.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}};Au.default=Sd});var ir=j(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.default=void 0;var Xg=nr(vg()),Pi=rr(),jR=nr($g()),ey=nr(gu()),Su=nr(Yg()),ty=nr(Qs()),HR=nr(Pn()),KR=Ad(),YR=nr(cd()),ry=nr(vn()),ny=nr(Zg());function nr(t){return t&&t.__esModule?t:{default:t}}function mt(){return mt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},mt.apply(this,arguments)}var bt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new ny.default,this._blacklist=new ny.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Pi.mixed.notType)}),this.type=e?.type||"mixed",this.spec=mt({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=mt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,Xg.default)(mt({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=mt({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(mt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,ty.default)(e),o=(0,ty.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 aO=Object.create;var Qa=Object.defineProperty;var uO=Object.getOwnPropertyDescriptor;var cO=Object.getOwnPropertyNames;var lO=Object.getPrototypeOf,dO=Object.prototype.hasOwnProperty;var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),N=(t,e)=>{for(var r in e)Qa(t,r,{get:e[r],enumerable:!0})},Zh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of cO(e))!dO.call(t,i)&&i!==r&&Qa(t,i,{get:()=>e[i],enumerable:!(n=uO(e,i))||n.enumerable});return t};var V=(t,e,r)=>(r=t!=null?aO(lO(t)):{},Zh(e||!t||!t.__esModule?Qa(r,"default",{value:t,enumerable:!0}):r,t)),pO=t=>Zh(Qa({},"__esModule",{value:!0}),t);var Og=H((ed,td)=>{"use strict";(function(t,e){typeof ed=="object"&&typeof td<"u"?td.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(ed,function(){"use strict";var t=1e3,e=6e4,r=36e5,n="millisecond",i="second",s="minute",o="hour",a="day",u="week",c="month",l="quarter",d="year",p="date",m="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,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 k=["th","st","nd","rd"],P=$%100;return"["+$+(k[(P-20)%10]||k[P]||k[0])+"]"}},T=function($,k,P){var q=String($);return!q||q.length>=k?$:""+Array(k+1-q.length).join(P)+$},_={s:T,z:function($){var k=-$.utcOffset(),P=Math.abs(k),q=Math.floor(P/60),O=P%60;return(k<=0?"+":"-")+T(q,2,"0")+":"+T(O,2,"0")},m:function $(k,P){if(k.date()<P.date())return-$(P,k);var q=12*(P.year()-k.year())+(P.month()-k.month()),O=k.clone().add(q,c),Y=P-O<0,W=k.clone().add(q+(Y?-1:1),c);return+(-(q+(P-O)/(Y?O-W:W-O))||0)},a:function($){return $<0?Math.ceil($)||0:Math.floor($)},p:function($){return{M:c,y:d,w:u,d:a,D:p,h:o,m:s,s:i,ms:n,Q:l}[$]||String($||"").toLowerCase().replace(/s$/,"")},u:function($){return $===void 0}},S="en",R={};R[S]=y;var E="$isDayjsObject",I=function($){return $ instanceof se||!(!$||!$[E])},B=function $(k,P,q){var O;if(!k)return S;if(typeof k=="string"){var Y=k.toLowerCase();R[Y]&&(O=Y),P&&(R[Y]=P,O=Y);var W=k.split("-");if(!O&&W.length>1)return $(W[0])}else{var ce=k.name;R[ce]=k,O=ce}return!q&&O&&(S=O),O||!q&&S},L=function($,k){if(I($))return $.clone();var P=typeof k=="object"?k:{};return P.date=$,P.args=arguments,new se(P)},F=_;F.l=B,F.i=I,F.w=function($,k){return L($,{locale:k.$L,utc:k.$u,x:k.$x,$offset:k.$offset})};var se=function(){function $(P){this.$L=B(P.locale,null,!0),this.parse(P),this.$x=this.$x||P.x||{},this[E]=!0}var k=$.prototype;return k.parse=function(P){this.$d=function(q){var O=q.date,Y=q.utc;if(O===null)return new Date(NaN);if(F.u(O))return new Date;if(O instanceof Date)return new Date(O);if(typeof O=="string"&&!/Z$/i.test(O)){var W=O.match(f);if(W){var ce=W[2]-1||0,Oe=(W[7]||"0").substring(0,3);return Y?new Date(Date.UTC(W[1],ce,W[3]||1,W[4]||0,W[5]||0,W[6]||0,Oe)):new Date(W[1],ce,W[3]||1,W[4]||0,W[5]||0,W[6]||0,Oe)}}return new Date(O)}(P),this.init()},k.init=function(){var P=this.$d;this.$y=P.getFullYear(),this.$M=P.getMonth(),this.$D=P.getDate(),this.$W=P.getDay(),this.$H=P.getHours(),this.$m=P.getMinutes(),this.$s=P.getSeconds(),this.$ms=P.getMilliseconds()},k.$utils=function(){return F},k.isValid=function(){return this.$d.toString()!==m},k.isSame=function(P,q){var O=L(P);return this.startOf(q)<=O&&O<=this.endOf(q)},k.isAfter=function(P,q){return L(P)<this.startOf(q)},k.isBefore=function(P,q){return this.endOf(q)<L(P)},k.$g=function(P,q,O){return F.u(P)?this[q]:this.set(O,P)},k.unix=function(){return Math.floor(this.valueOf()/1e3)},k.valueOf=function(){return this.$d.getTime()},k.startOf=function(P,q){var O=this,Y=!!F.u(q)||q,W=F.p(P),ce=function(hn,He){var br=F.w(O.$u?Date.UTC(O.$y,He,hn):new Date(O.$y,He,hn),O);return Y?br:br.endOf(a)},Oe=function(hn,He){return F.w(O.toDate()[hn].apply(O.toDate("s"),(Y?[0,0,0,0]:[23,59,59,999]).slice(He)),O)},Ne=this.$W,Ge=this.$M,lt=this.$D,J="set"+(this.$u?"UTC":"");switch(W){case d:return Y?ce(1,0):ce(31,11);case c:return Y?ce(1,Ge):ce(0,Ge+1);case u:var mn=this.$locale().weekStart||0,Ds=(Ne<mn?Ne+7:Ne)-mn;return ce(Y?lt-Ds:lt+(6-Ds),Ge);case a:case p:return Oe(J+"Hours",0);case o:return Oe(J+"Minutes",1);case s:return Oe(J+"Seconds",2);case i:return Oe(J+"Milliseconds",3);default:return this.clone()}},k.endOf=function(P){return this.startOf(P,!1)},k.$set=function(P,q){var O,Y=F.p(P),W="set"+(this.$u?"UTC":""),ce=(O={},O[a]=W+"Date",O[p]=W+"Date",O[c]=W+"Month",O[d]=W+"FullYear",O[o]=W+"Hours",O[s]=W+"Minutes",O[i]=W+"Seconds",O[n]=W+"Milliseconds",O)[Y],Oe=Y===a?this.$D+(q-this.$W):q;if(Y===c||Y===d){var Ne=this.clone().set(p,1);Ne.$d[ce](Oe),Ne.init(),this.$d=Ne.set(p,Math.min(this.$D,Ne.daysInMonth())).$d}else ce&&this.$d[ce](Oe);return this.init(),this},k.set=function(P,q){return this.clone().$set(P,q)},k.get=function(P){return this[F.p(P)]()},k.add=function(P,q){var O,Y=this;P=Number(P);var W=F.p(q),ce=function(Ge){var lt=L(Y);return F.w(lt.date(lt.date()+Math.round(Ge*P)),Y)};if(W===c)return this.set(c,this.$M+P);if(W===d)return this.set(d,this.$y+P);if(W===a)return ce(1);if(W===u)return ce(7);var Oe=(O={},O[s]=e,O[o]=r,O[i]=t,O)[W]||1,Ne=this.$d.getTime()+P*Oe;return F.w(Ne,this)},k.subtract=function(P,q){return this.add(-1*P,q)},k.format=function(P){var q=this,O=this.$locale();if(!this.isValid())return O.invalidDate||m;var Y=P||"YYYY-MM-DDTHH:mm:ssZ",W=F.z(this),ce=this.$H,Oe=this.$m,Ne=this.$M,Ge=O.weekdays,lt=O.months,J=O.meridiem,mn=function(He,br,Cs,qa){return He&&(He[br]||He(q,Y))||Cs[br].slice(0,qa)},Ds=function(He){return F.s(ce%12||12,He,"0")},hn=J||function(He,br,Cs){var qa=He<12?"AM":"PM";return Cs?qa.toLowerCase():qa};return Y.replace(g,function(He,br){return br||function(Cs){switch(Cs){case"YY":return String(q.$y).slice(-2);case"YYYY":return F.s(q.$y,4,"0");case"M":return Ne+1;case"MM":return F.s(Ne+1,2,"0");case"MMM":return mn(O.monthsShort,Ne,lt,3);case"MMMM":return mn(lt,Ne);case"D":return q.$D;case"DD":return F.s(q.$D,2,"0");case"d":return String(q.$W);case"dd":return mn(O.weekdaysMin,q.$W,Ge,2);case"ddd":return mn(O.weekdaysShort,q.$W,Ge,3);case"dddd":return Ge[q.$W];case"H":return String(ce);case"HH":return F.s(ce,2,"0");case"h":return Ds(1);case"hh":return Ds(2);case"a":return hn(ce,Oe,!0);case"A":return hn(ce,Oe,!1);case"m":return String(Oe);case"mm":return F.s(Oe,2,"0");case"s":return String(q.$s);case"ss":return F.s(q.$s,2,"0");case"SSS":return F.s(q.$ms,3,"0");case"Z":return W}return null}(He)||W.replace(":","")})},k.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},k.diff=function(P,q,O){var Y,W=this,ce=F.p(q),Oe=L(P),Ne=(Oe.utcOffset()-this.utcOffset())*e,Ge=this-Oe,lt=function(){return F.m(W,Oe)};switch(ce){case d:Y=lt()/12;break;case c:Y=lt();break;case l:Y=lt()/3;break;case u:Y=(Ge-Ne)/6048e5;break;case a:Y=(Ge-Ne)/864e5;break;case o:Y=Ge/r;break;case s:Y=Ge/e;break;case i:Y=Ge/t;break;default:Y=Ge}return O?Y:F.a(Y)},k.daysInMonth=function(){return this.endOf(c).$D},k.$locale=function(){return R[this.$L]},k.locale=function(P,q){if(!P)return this.$L;var O=this.clone(),Y=B(P,q,!0);return Y&&(O.$L=Y),O},k.clone=function(){return F.w(this.$d,this)},k.toDate=function(){return new Date(this.valueOf())},k.toJSON=function(){return this.isValid()?this.toISOString():null},k.toISOString=function(){return this.$d.toISOString()},k.toString=function(){return this.$d.toUTCString()},$}(),Xt=se.prototype;return L.prototype=Xt,[["$ms",n],["$s",i],["$m",s],["$H",o],["$W",a],["$M",c],["$y",d],["$D",p]].forEach(function($){Xt[$[1]]=function(k){return this.$g(k,$[0],$[1])}}),L.extend=function($,k){return $.$i||($(k,se,L),$.$i=!0),L},L.locale=B,L.isDayjs=I,L.unix=function($){return L(1e3*$)},L.en=R[S],L.Ls=R,L.p={},L})});var wt=H(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.Err=Je.Valid=Je.err=Je.valid=void 0;var Kx=t=>new du(t);Je.valid=Kx;var Yx=t=>new pu(t);Je.err=Yx;var du=class{constructor(e){this.value=e}isValid(){return!0}isError(){return!this.isValid()}getValue(){return this.value}getError(){throw new Error("Tried to get error from a valid.")}map(e){return(0,Je.valid)(e(this.value))}mapErr(e){return(0,Je.valid)(this.value)}};Je.Valid=du;var pu=class{constructor(e){this.error=e}isError(){return!0}isValid(){return!this.isError()}getValue(){throw new Error("Tried to get success value from an error.")}getError(){return this.error}map(e){return(0,Je.err)(this.error)}mapErr(e){return(0,Je.err)(e(this.error))}};Je.Err=pu});var bt=H(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0})});var Mr=H(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});jt();var ue=wt();bt();var Jx=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],zx=["sun","mon","tue","wed","thu","fri","sat"],Zx=(t,e)=>e[t].lowerLimit===e.preset[t].minValue&&e[t].upperLimit===e.preset[t].maxValue,Ms=(t,e,r)=>{if(e==="months"&&r.useAliases&&Jx.indexOf(t.toLowerCase())!==-1||e==="daysOfWeek"&&r.useAliases&&zx.indexOf(t.toLowerCase())!==-1)return(0,ue.valid)(!0);let n=Number(t);if(isNaN(n))return(0,ue.err)(`Element '${t} of ${e} field is invalid.`);let{lowerLimit:i}=r[e],{upperLimit:s}=r[e];return i&&n<i?(0,ue.err)(`Number ${n} of ${e} field is smaller than lower limit '${i}'`):s&&n>s?(0,ue.err)(`Number ${n} of ${e} field is bigger than upper limit '${s}'`):(0,ue.valid)(!0)},Xx=(t,e,r)=>{if(t==="*")return Zx(e,r)?(0,ue.valid)(!0):(0,ue.err)(`Field ${e} uses wildcard '*', but is limited to ${r[e].lowerLimit}-${r[e].upperLimit}`);if(t==="")return(0,ue.err)(`One of the elements is empty in ${e} field.`);if(e==="daysOfMonth"&&r.useLastDayOfMonth&&t==="L")return(0,ue.valid)(!0);if(e==="daysOfWeek"&&r.useLastDayOfWeek&&t.endsWith("L")){let n=t.slice(0,-1);return n===""?(0,ue.valid)(!0):Ms(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,ue.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,ue.valid)(!0):Ms(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,ue.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,ue.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,ue.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ms(n,e,r)}return Ms(t,e,r)},Dg=(t,e,r,n)=>t==="*"?(0,ue.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,ue.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,ue.valid)(!0):Ms(t,e,r),eR=(t,e,r)=>{let n=t.split("-");if(n.length>2)return(0,ue.err)(`List element '${t}' is not valid. (More than one '-')`);if(n.length===1)return Xx(n[0],e,r);if(n.length===2){let i=Dg(n[0],e,r,0),s=Dg(n[1],e,r,1);return i.isError()?i:s.isError()?s:Number(n[0])>Number(n[1])?(0,ue.err)(`Lower range end '${n[0]}' is bigger than upper range end '${n[1]}' of ${e} field.`):(0,ue.valid)(!0)}return(0,ue.err)("Some other error in checkFirstStepElement (rangeArray less than 1)")},tR=(t,e,r)=>{let n=t.split("/");if(n.length>2)return(0,ue.err)(`List element '${t}' is not valid. (More than one '/')`);let i=eR(n[0],e,r);if(i.isError())return i;if(n.length===2){let s=n[1];if(!s)return(0,ue.err)(`Second step element '${s}' of '${t}' is not valid (doesnt exist).`);if(isNaN(Number(s)))return(0,ue.err)(`Second step element '${s}' of '${t}' is not valid (not a number).`);if(Number(s)===0)return(0,ue.err)(`Second step element '${s}' of '${t}' cannot be zero.`)}return(0,ue.valid)(!0)},rR=(t,e,r)=>{if(!["seconds","minutes","hours","daysOfMonth","months","daysOfWeek","years"].includes(e))return(0,ue.err)([`Cron field type '${e}' does not exist.`]);if(t==="?")return e==="daysOfMonth"||e==="daysOfWeek"?r.useBlankDay?(0,ue.valid)(!0):(0,ue.err)([`useBlankDay is not enabled, but is used in ${e} field`]):(0,ue.err)([`blank notation is not allowed in ${e} field`]);let n=t.split(","),i=[];if(n.forEach(o=>{i.push(tR(o,e,r))}),i.every(o=>o.isValid()))return(0,ue.valid)(!0);let s=[];return i.forEach(o=>{o.isError()&&s.push(o.getError())}),(0,ue.err)(s)};sd.default=rR});var Cg=H(ks=>{"use strict";var nR=ks&&ks.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ks,"__esModule",{value:!0});jt();var iR=wt(),sR=nR(Mr());bt();var oR=(t,e)=>{if(!t.seconds)return(0,iR.err)(["seconds field is undefined, but useSeconds options is enabled."]);let{seconds:r}=t;return(0,sR.default)(r,"seconds",e)};ks.default=oR});var vg=H(Fs=>{"use strict";var aR=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});jt();var uR=wt(),cR=aR(Mr());bt();var lR=(t,e)=>{if(!t.minutes)return(0,uR.err)(["minutes field is undefined."]);let{minutes:r}=t;return(0,cR.default)(r,"minutes",e)};Fs.default=lR});var Ng=H(Bs=>{"use strict";var dR=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});jt();var pR=wt(),fR=dR(Mr());bt();var mR=(t,e)=>{if(!t.hours)return(0,pR.err)(["hours field is undefined."]);let{hours:r}=t;return(0,fR.default)(r,"hours",e)};Bs.default=mR});var Pg=H(Vs=>{"use strict";var hR=Vs&&Vs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Vs,"__esModule",{value:!0});jt();var Gs=wt(),gR=hR(Mr());bt();var yR=(t,e)=>{if(!t.daysOfMonth)return(0,Gs.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Gs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Gs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,Gs.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,Gs.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,gR.default)(r,"daysOfMonth",e)};Vs.default=yR});var Lg=H($s=>{"use strict";var ER=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});jt();var TR=wt(),AR=ER(Mr());bt();var SR=(t,e)=>{if(!t.months)return(0,TR.err)(["months field is undefined."]);let{months:r}=t;return(0,AR.default)(r,"months",e)};$s.default=SR});var Ug=H(qs=>{"use strict";var _R=qs&&qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(qs,"__esModule",{value:!0});jt();var Ws=wt(),IR=_R(Mr());bt();var OR=(t,e)=>{if(!t.daysOfWeek)return(0,Ws.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Ws.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Ws.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ws.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Ws.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,IR.default)(r,"daysOfWeek",e)};qs.default=OR});var Mg=H(Qs=>{"use strict";var xR=Qs&&Qs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qs,"__esModule",{value:!0});jt();var RR=wt(),wR=xR(Mr());bt();var bR=(t,e)=>{if(!t.years)return(0,RR.err)(["years field is undefined, but useYears option is enabled."]);let{years:r}=t;return(0,wR.default)(r,"years",e)};Qs.default=bR});var Gg=H((Aj,Bg)=>{"use strict";var od;try{od=Map}catch{}var ad;try{ad=Set}catch{}function kg(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(Fg);if(od&&t instanceof od)return new Map(Array.from(t.entries()));if(ad&&t instanceof ad)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]:kg(t[i],e,r)}return n}return t}function Fg(t){return kg(t,[],[])}Bg.exports=Fg});var js=H(ud=>{"use strict";Object.defineProperty(ud,"__esModule",{value:!0});ud.default=UR;var DR=Object.prototype.toString,CR=Error.prototype.toString,vR=RegExp.prototype.toString,NR=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",PR=/^Symbol\((.*)\)(.*)$/;function LR(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function Vg(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return LR(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return NR.call(t).replace(PR,"Symbol($1)");let n=DR.call(t).slice(8,-1);return n==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):n==="Error"||t instanceof Error?"["+CR.call(t)+"]":n==="RegExp"?vR.call(t):null}function UR(t,e){let r=Vg(t,e);return r!==null?r:JSON.stringify(t,function(n,i){let s=Vg(this[n],e);return s!==null?s:i},2)}});var or=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 $g=MR(js());function MR(t){return t&&t.__esModule?t:{default:t}}var Wg={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:n})=>{let i=n!=null&&n!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,$g.default)(r,!0)}\``+(i?` (cast from the value \`${(0,$g.default)(n,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};Pe.mixed=Wg;var qg={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=qg;var Qg={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=Qg;var jg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Pe.date=jg;var Hg={isValue:"${path} field must be ${value}"};Pe.boolean=Hg;var Kg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Pe.object=Kg;var Yg={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=Yg;var kR=Object.assign(Object.create(null),{mixed:Wg,string:qg,number:Qg,date:jg,object:Kg,array:Yg,boolean:Hg});Pe.default=kR});var Li=H(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var FR=t=>t&&t.__isYupSchema__;fu.default=FR});var zg=H(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var BR=Jg(require("lodash/has")),GR=Jg(Li());function Jg(t){return t&&t.__esModule?t:{default:t}}var cd=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,BR.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,GR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},VR=cd;mu.default=VR});var dd=H(ld=>{"use strict";Object.defineProperty(ld,"__esModule",{value:!0});ld.default=$R;function $R(t){return t==null?[]:[].concat(t)}});var Un=H(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.default=void 0;var WR=Zg(js()),qR=Zg(dd());function Zg(t){return t&&t.__esModule?t:{default:t}}function pd(){return pd=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},pd.apply(this,arguments)}var QR=/\$\{\s*(\w+)\s*\}/g,fd=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=pd({},r,{path:n})),typeof e=="string"?e.replace(QR,(i,s)=>(0,WR.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,qR.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)}};hu.default=fd});var gu=H(hd=>{"use strict";Object.defineProperty(hd,"__esModule",{value:!0});hd.default=KR;var md=jR(Un());function jR(t){return t&&t.__esModule?t:{default:t}}var HR=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function KR(t,e){let{endEarly:r,tests:n,args:i,value:s,errors:o,sort:a,path:u}=t,c=HR(e),l=n.length,d=[];if(o=o||[],!l)return o.length?c(new md.default(o,s,u)):c(null,s);for(let p=0;p<n.length;p++){let m=n[p];m(i,function(g){if(g){if(!md.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 md.default(o,s,u),s);return}c(null,s)}})}}});var Hs=H((bj,ny)=>{"use strict";function Mn(t){this._maxSize=t,this.clear()}Mn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Mn.prototype.get=function(t){return this._values[t]};Mn.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var YR=/[^.^\]^[]+|(?=\[\]|\.\.)/g,ry=/^\d+$/,JR=/^\d/,zR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,ZR=/^\s*(['"]?)(.*?)(\1)\s*$/,Ed=512,Xg=new Mn(Ed),ey=new Mn(Ed),ty=new Mn(Ed);ny.exports={Cache:Mn,split:yd,normalizePath:gd,setter:function(t){var e=gd(t);return ey.get(t)||ey.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=gd(t);return ty.get(t)||ty.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+(Td(r)||ry.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){XR(Array.isArray(t)?t:yd(t),e,r)}};function gd(t){return Xg.get(t)||Xg.set(t,yd(t).map(function(e){return e.replace(ZR,"$2")}))}function yd(t){return t.match(YR)||[""]}function XR(t,e,r){var n=t.length,i,s,o,a;for(s=0;s<n;s++)i=t[s],i&&(rw(i)&&(i='"'+i+'"'),a=Td(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Td(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function ew(t){return t.match(JR)&&!t.match(ry)}function tw(t){return zR.test(t)}function rw(t){return!Td(t)&&(ew(t)||tw(t))}});var kn=H(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=iw;Ys.default=void 0;var nw=Hs(),yu={context:"$",value:"."};function iw(t,e){return new Ks(t,e)}var Ks=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]===yu.context,this.isValue=this.key[0]===yu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?yu.context:this.isValue?yu.value:"";this.path=this.key.slice(n.length),this.getter=this.path&&(0,nw.getter)(this.path,!0),this.map=r.map}getValue(e,r,n){let i=this.isContext?n:this.isValue?e:r;return this.getter&&(i=this.getter(i||{})),this.map&&(i=this.map(i)),i}cast(e,r){return this.getValue(e,r?.parent,r?.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};Ys.default=Ks;Ks.prototype.__isYupRef=!0});var iy=H(Sd=>{"use strict";Object.defineProperty(Sd,"__esModule",{value:!0});Sd.default=uw;var sw=Ad(require("lodash/mapValues")),Eu=Ad(Un()),ow=Ad(kn());function Ad(t){return t&&t.__esModule?t:{default:t}}function Tu(){return Tu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Tu.apply(this,arguments)}function aw(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 uw(t){function e(r,n){let{value:i,path:s="",label:o,options:a,originalValue:u,sync:c}=r,l=aw(r,["value","path","label","options","originalValue","sync"]),{name:d,test:p,params:m,message:f}=t,{parent:g,context:y}=a;function T(I){return ow.default.isRef(I)?I.getValue(i,g,y):I}function _(I={}){let B=(0,sw.default)(Tu({value:i,originalValue:u,label:o,path:I.path||s},m,I.params),T),L=new Eu.default(Eu.default.formatError(I.message||f,B),i,B.path,I.type||d);return L.params=B,L}let S=Tu({path:s,parent:g,type:d,createError:_,resolve:T,options:a,originalValue:u},l);if(!c){try{Promise.resolve(p.call(S,i,S)).then(I=>{Eu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let R;try{var E;if(R=p.call(S,i,S),typeof((E=R)==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}Eu.default.isError(R)?n(R):R?n(null,R):n(_())}return e.OPTIONS=t,e}});var _d=H(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.getIn=sy;Js.default=void 0;var cw=Hs(),lw=t=>t.substr(0,t.length-1).substr(1);function sy(t,e,r,n=r){let i,s,o;return e?((0,cw.forEach)(e,(a,u,c)=>{let l=u?lw(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 dw=(t,e,r,n)=>sy(t,e,r,n).schema,pw=dw;Js.default=pw});var ay=H(Au=>{"use strict";Object.defineProperty(Au,"__esModule",{value:!0});Au.default=void 0;var oy=fw(kn());function fw(t){return t&&t.__esModule?t:{default:t}}var Id=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){oy.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){oy.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}};Au.default=Id});var ur=H(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.default=void 0;var uy=ar(Gg()),Ui=or(),mw=ar(zg()),cy=ar(gu()),Su=ar(iy()),ly=ar(js()),hw=ar(kn()),gw=_d(),yw=ar(dd()),dy=ar(Un()),py=ar(ay());function ar(t){return t&&t.__esModule?t:{default:t}}function mt(){return mt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},mt.apply(this,arguments)}var Dt=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new py.default,this._blacklist=new py.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Ui.mixed.notType)}),this.type=e?.type||"mixed",this.spec=mt({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e?.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=mt({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,uy.default)(mt({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let n=e(this);return this._mutate=r,n}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,n=e.clone(),i=mt({},r.spec,n.spec);return n.spec=i,n._typeError||(n._typeError=r._typeError),n._whitelistError||(n._whitelistError=r._whitelistError),n._blacklistError||(n._blacklistError=r._blacklistError),n._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),n._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),n.tests=r.tests,n.exclusiveTests=r.exclusiveTests,n.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),n}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let n=r.conditions;r=r.clone(),r.conditions=[],r=n.reduce((i,s)=>s.resolve(i,e),r),r=r.resolve(e)}return r}cast(e,r={}){let n=this.resolve(mt({value:e},r)),i=n._cast(e,r);if(e!==void 0&&r.assert!==!1&&n.isType(i)!==!0){let s=(0,ly.default)(e),o=(0,ly.default)(i);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${n._type}".
2
2
 
3
3
  attempted value: ${s}
4
- `+(o!==s?`result of cast: ${o}`:""))}return i}_cast(e,r){let n=e===void 0?e:this.transforms.reduce((i,s)=>s.call(this,i,e,this),e);return n===void 0&&(n=this.getDefault()),n}_validate(e,r={},n){let{sync:i,path:s,from:o=[],originalValue:a=e,strict:u=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,l=e;u||(l=this._cast(l,mt({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,ey.default)({args:d,value:l,path:s,sync:i,tests:p,endEarly:c},m=>{if(m)return void n(m,l);(0,ey.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(mt({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(mt({},r,{value:e})),i;return n._validate(e,mt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(ry.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(ry.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Xg.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,Su.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,YR.default)(e).map(s=>new HR.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new jR.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Su.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,Su.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,Su.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)}}};_u.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,KR.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},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 sy=j(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=iy;Js.default=void 0;var JR=zR(ir());function zR(t){return t&&t.__esModule?t:{default:t}}var _d=JR.default,ZR=_d;Js.default=ZR;function iy(){return new _d}iy.prototype=_d.prototype});var Li=j(Iu=>{"use strict";Object.defineProperty(Iu,"__esModule",{value:!0});Iu.default=void 0;var XR=t=>t==null;Iu.default=XR});var ly=j(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=cy;Zs.default=void 0;var ew=uy(ir()),oy=rr(),ay=uy(Li());function uy(t){return t&&t.__esModule?t:{default:t}}function cy(){return new zs}var zs=class extends ew.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=oy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,ay.default)(r)||r===!0}})}isFalse(e=oy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,ay.default)(r)||r===!1}})}};Zs.default=zs;cy.prototype=zs.prototype});var fy=j(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=py;eo.default=void 0;var Qt=rr(),sr=dy(Li()),tw=dy(ir());function dy(t){return t&&t.__esModule?t:{default:t}}var rw=/^((([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,nw=/^((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,iw=/^(?:[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,sw=t=>(0,sr.default)(t)||t===t.trim(),ow={}.toString();function py(){return new Xs}var Xs=class extends tw.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===ow?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Qt.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,sr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Qt.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,sr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Qt.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,sr.default)(n)||n.length<=this.resolve(e)}})}matches(e,r){let n=!1,i,s;return r&&(typeof r=="object"?{excludeEmptyString:n=!1,message:i,name:s}=r:i=r),this.test({name:s||"matches",message:i||Qt.string.matches,params:{regex:e},test:o=>(0,sr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Qt.string.email){return this.matches(rw,{name:"email",message:e,excludeEmptyString:!0})}url(e=Qt.string.url){return this.matches(nw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Qt.string.uuid){return this.matches(iw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Qt.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:sw})}lowercase(e=Qt.string.lowercase){return this.transform(r=>(0,sr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,sr.default)(r)||r===r.toLowerCase()})}uppercase(e=Qt.string.uppercase){return this.transform(r=>(0,sr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,sr.default)(r)||r===r.toUpperCase()})}};eo.default=Xs;py.prototype=Xs.prototype});var gy=j(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=hy;ro.default=void 0;var Ln=rr(),Un=my(Li()),aw=my(ir());function my(t){return t&&t.__esModule?t:{default:t}}var uw=t=>t!=+t;function hy(){return new to}var to=class extends aw.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"&&!uw(e)}min(e,r=Ln.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=Ln.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=Ln.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=Ln.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=Ln.number.positive){return this.moreThan(0,e)}negative(e=Ln.number.negative){return this.lessThan(0,e)}integer(e=Ln.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Un.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Un.default)(e)?e:e|0)}round(e){var r,n=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(n.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+n.join(", "));return this.transform(i=>(0,Un.default)(i)?i:Math[e](i))}};ro.default=to;hy.prototype=to.prototype});var yy=j(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});Id.default=lw;var cw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function lw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=cw.exec(t)){for(var s=0,o;o=e[s];++s)i[o]=+i[o]||0;i[2]=(+i[2]||1)-1,i[3]=+i[3]||1,i[7]=i[7]?String(i[7]).substr(0,3):0,(i[8]===void 0||i[8]==="")&&(i[9]===void 0||i[9]==="")?n=+new Date(i[1],i[2],i[3],i[4],i[5],i[6],i[7]):(i[8]!=="Z"&&i[9]!==void 0&&(r=i[10]*60+i[11],i[9]==="+"&&(r=0-r)),n=Date.UTC(i[1],i[2],i[3],i[4],i[5]+r,i[6],i[7]))}else n=Date.parse?Date.parse(t):NaN;return n}});var Ay=j(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=xd;no.default=void 0;var dw=Ou(yy()),Ey=rr(),Ty=Ou(Li()),pw=Ou(Pn()),fw=Ou(ir());function Ou(t){return t&&t.__esModule?t:{default:t}}var Od=new Date(""),mw=t=>Object.prototype.toString.call(t)==="[object Date]";function xd(){return new Ui}var Ui=class extends fw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,dw.default)(e),isNaN(e)?Od:new Date(e))})})}_typeCheck(e){return mw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(pw.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=Ey.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Ty.default)(i)||i>=this.resolve(n)}})}max(e,r=Ey.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Ty.default)(i)||i<=this.resolve(n)}})}};no.default=Ui;Ui.INVALID_DATE=Od;xd.prototype=Ui.prototype;xd.INVALID_DATE=Od});var _y=j((YQ,Rd)=>{"use strict";Rd.exports=function(t){return Sy(hw(t),t)};Rd.exports.array=Sy;function Sy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=gw(e),a=yw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var p;try{p=", node was:"+JSON.stringify(c)}catch{p=""}throw new Error("Cyclic dependency"+p)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){d.add(c);do{var f=m[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function hw(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 gw(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 yw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Iy=j(wd=>{"use strict";Object.defineProperty(wd,"__esModule",{value:!0});wd.default=Iw;var Ew=xu(require("lodash/has")),Tw=xu(_y()),Aw=js(),Sw=xu(Pn()),_w=xu(Ni());function xu(t){return t&&t.__esModule?t:{default:t}}function Iw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,Aw.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Ew.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Sw.default.isRef(o)&&o.isSibling?i(o.path,s):(0,_w.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Tw.default.array(n,r).reverse()}});var xy=j(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});bd.default=Ow;function Oy(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 Ow(t){return(e,r)=>Oy(t,e)-Oy(t,r)}});var Ny=j(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=vy;so.default=void 0;var Ry=jt(require("lodash/has")),wy=jt(require("lodash/snakeCase")),xw=jt(require("lodash/camelCase")),Rw=jt(require("lodash/mapKeys")),ww=jt(require("lodash/mapValues")),bw=js(),by=rr(),Dw=jt(Iy()),Cy=jt(xy()),Cw=jt(gu()),vw=jt(vn()),Dd=jt(ir());function jt(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 Dy=t=>Object.prototype.toString.call(t)==="[object Object]";function Nw(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var Pw=(0,Cy.default)([]),io=class extends Dd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Pw,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 Dy(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 p=s[d],m=(0,Ry.default)(i,d);if(p){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,p=p.resolve({value:g,context:r.context,parent:u});let y="spec"in p?p.spec:void 0,T=y?.strict;if(y?.strip){l=l||d in i;continue}f=!r.__validating||!T?p.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}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(!vw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!Dy(d)){n(i[0]||null,d);return}a=a||d;let p=this._nodes.map(m=>(f,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,Cw.default)({sync:s,tests:p,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=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 Dd.default&&s instanceof Dd.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,Cy.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,Dw.default)(i,n._excludedEdges),n}pick(e){let r={};for(let n of e)this.fields[n]&&(r[n]=this.fields[n]);return this.clone().withMutation(n=>(n.fields={},n.shape(r)))}omit(e){let r=this.clone(),n=r.fields;r.fields={};for(let i of e)delete n[i];return r.withMutation(()=>r.shape(n))}from(e,r,n){let i=(0,bw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Ry.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=by.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=Nw(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=by.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Rw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(xw.default)}snakeCase(){return this.transformKeys(wy.default)}constantCase(){return this.transformKeys(e=>(0,wy.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,ww.default)(this.fields,r=>r.describe()),e}};so.default=io;function vy(t){return new io(t)}vy.prototype=io.prototype});var Ly=j(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Py;ao.default=void 0;var Cd=Fi(Li()),Lw=Fi(Ni()),Uw=Fi(Qs()),vd=rr(),Mw=Fi(gu()),Fw=Fi(vn()),kw=Fi(ir());function Fi(t){return t&&t.__esModule?t:{default:t}}function Ru(){return Ru=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},Ru.apply(this,arguments)}function Py(t){return new oo(t)}var oo=class extends kw.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,Ru({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,f)=>{if(m){if(!Fw.default.isError(m)||l)return void n(m,f);o.push(m)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}p=p||f;let g=new Array(f.length);for(let y=0;y<f.length;y++){let T=f[y],_=`${r.path||""}[${y}]`,S=Ru({},r,{path:_,strict:!0,parent:f,index:y,originalValue:p[y]});g[y]=(x,E)=>c.validate(T,S,E)}(0,Mw.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Lw.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Uw.default)(e));return r.innerType=e,r}length(e,r=vd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Cd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||vd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Cd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||vd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Cd.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};ao.default=oo;Py.prototype=oo.prototype});var Uy=j(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=Vw;uo.default=void 0;var Bw=Gw(Ni());function Gw(t){return t&&t.__esModule?t:{default:t}}function Vw(t){return new wu(t)}var wu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,Bw.default)(i))throw new TypeError("lazy() functions must return a valid schema");return i.resolve(n)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,n){return this._resolve(e,r).validate(e,r,n)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,n){return this._resolve(r,n).validateAt(e,r,n)}validateSyncAt(e,r,n){return this._resolve(r,n).validateSyncAt(e,r,n)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},$w=wu;uo.default=$w});var My=j(Nd=>{"use strict";Object.defineProperty(Nd,"__esModule",{value:!0});Nd.default=Qw;var Ww=qw(rr());function qw(t){return t&&t.__esModule?t:{default:t}}function Qw(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{Ww.default[e][r]=t[e][r]})})}});var Ld=j(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.addMethod=Zw;Object.defineProperty(me,"MixedSchema",{enumerable:!0,get:function(){return Fy.default}});Object.defineProperty(me,"mixed",{enumerable:!0,get:function(){return Fy.create}});Object.defineProperty(me,"BooleanSchema",{enumerable:!0,get:function(){return Pd.default}});Object.defineProperty(me,"bool",{enumerable:!0,get:function(){return Pd.create}});Object.defineProperty(me,"boolean",{enumerable:!0,get:function(){return Pd.create}});Object.defineProperty(me,"StringSchema",{enumerable:!0,get:function(){return ky.default}});Object.defineProperty(me,"string",{enumerable:!0,get:function(){return ky.create}});Object.defineProperty(me,"NumberSchema",{enumerable:!0,get:function(){return By.default}});Object.defineProperty(me,"number",{enumerable:!0,get:function(){return By.create}});Object.defineProperty(me,"DateSchema",{enumerable:!0,get:function(){return Gy.default}});Object.defineProperty(me,"date",{enumerable:!0,get:function(){return Gy.create}});Object.defineProperty(me,"ObjectSchema",{enumerable:!0,get:function(){return Vy.default}});Object.defineProperty(me,"object",{enumerable:!0,get:function(){return Vy.create}});Object.defineProperty(me,"ArraySchema",{enumerable:!0,get:function(){return $y.default}});Object.defineProperty(me,"array",{enumerable:!0,get:function(){return $y.create}});Object.defineProperty(me,"ref",{enumerable:!0,get:function(){return jw.create}});Object.defineProperty(me,"lazy",{enumerable:!0,get:function(){return Hw.create}});Object.defineProperty(me,"ValidationError",{enumerable:!0,get:function(){return Kw.default}});Object.defineProperty(me,"reach",{enumerable:!0,get:function(){return Yw.default}});Object.defineProperty(me,"isSchema",{enumerable:!0,get:function(){return Wy.default}});Object.defineProperty(me,"setLocale",{enumerable:!0,get:function(){return Jw.default}});Object.defineProperty(me,"BaseSchema",{enumerable:!0,get:function(){return zw.default}});var Fy=Mn(sy()),Pd=Mn(ly()),ky=Mn(fy()),By=Mn(gy()),Gy=Mn(Ay()),Vy=Mn(Ny()),$y=Mn(Ly()),jw=Pn(),Hw=Uy(),Kw=co(vn()),Yw=co(Ad()),Wy=co(Ni()),Jw=co(My()),zw=co(ir());function co(t){return t&&t.__esModule?t:{default:t}}function qy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return qy=function(){return t},t}function Mn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=qy();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 Zw(t,e,r){if(!t||!(0,Wy.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=j(Md=>{"use strict";Object.defineProperty(Md,"__esModule",{value:!0});var Ud=Fd();Md.default=()=>{(0,Ud.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,Ud.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,Ud.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 Fd=j(Le=>{"use strict";var Xw=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]}),eb=Le&&Le.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),tb=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)&&Xw(e,t,r);return eb(e,t),e},rb=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=tb(Ld());Ld();var lo=Rt(),nb=rb(Qy());wt();var Fn={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}}},jy=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(),ib=t=>Fn[t]?(0,lo.valid)(Fn[t]):(0,lo.err)(`Option preset '${t}' not found.`);Le.getOptionPreset=ib;var sb=()=>Fn;Le.getOptionPresets=sb;var ob=(t,e)=>{Fn[t]=jy.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Le.registerOptionPreset=ob;var ab=t=>{var e,r,n,i,s,o,a,u,c,l,d,p,m,f,g,y,T,_,S,x;try{(0,nb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Fn[t.preset])return(0,lo.err)([`Option preset ${t.preset} does not exist.`]);E=Fn[t.preset]}else E=t.preset;else E=Fn.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:(p=E.hours.upperLimit)!==null&&p!==void 0?p:E.hours.maxValue},daysOfMonth:{lowerLimit:(m=E.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:E.daysOfMonth.minValue,upperLimit:(f=E.daysOfMonth.upperLimit)!==null&&f!==void 0?f: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),D=b.object({presetId:b.string().required(),preset:jy.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,lo.valid)(D)}catch(E){return(0,lo.err)(E.errors)}};Le.validateOptions=ab});var qt=j((po,Bd)=>{"use strict";var Bn=po&&po.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(po,"__esModule",{value:!0});var kn=Rt(),ub=Bn(Sg()),cb=Bn(_g()),lb=Bn(Ig()),db=Bn(Og()),pb=Bn(xg()),fb=Bn(Rg()),mb=Bn(wg()),hb=Fd();wt();var gb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,kn.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,kn.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,kn.err)(`Expected 5 values, but got ${r.length}.`);let n={seconds:e.useSeconds?r[0]:void 0,minutes:r[e.useSeconds?1:0],hours:r[e.useSeconds?2:1],daysOfMonth:r[e.useSeconds?3:2],months:r[e.useSeconds?4:3],daysOfWeek:r[e.useSeconds?5:4],years:e.useYears?r[e.useSeconds?6:5]:void 0};return(0,kn.valid)(n)},kd=(t,e={})=>{let r=(0,hb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=gb(t,n);if(i.isError())return(0,kn.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,ub.default)(s,n)),o.push((0,cb.default)(s,n)),o.push((0,lb.default)(s,n)),o.push((0,db.default)(s,n)),o.push((0,pb.default)(s,n)),o.push((0,fb.default)(s,n)),n.useYears&&o.push((0,mb.default)(s,n)),o.every(u=>u.isValid()))return(0,kn.valid)(s);let a=[];return o.forEach(u=>{u.isError()&&u.getError().forEach(c=>{a.push(c)})}),a.forEach((u,c)=>{a[c]=`${u} (Input cron: '${t}')`}),(0,kn.err)(a)};po.default=kd;Bd.exports=kd;Bd.exports.default=kd});var gT=j(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});var ar=class extends Error{},Kd=class extends ar{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Yd=class extends ar{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Jd=class extends ar{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},$n=class extends ar{},Lu=class extends ar{constructor(e){super(`Invalid unit ${e}`)}},Ye=class extends ar{},Ht=class extends ar{constructor(){super("Zone is an abstract class")}},v="numeric",vt="short",st="long",Uu={year:v,month:v,day:v},EE={year:v,month:vt,day:v},yb={year:v,month:vt,day:v,weekday:vt},TE={year:v,month:st,day:v},AE={year:v,month:st,day:v,weekday:st},SE={hour:v,minute:v},_E={hour:v,minute:v,second:v},IE={hour:v,minute:v,second:v,timeZoneName:vt},OE={hour:v,minute:v,second:v,timeZoneName:st},xE={hour:v,minute:v,hourCycle:"h23"},RE={hour:v,minute:v,second:v,hourCycle:"h23"},wE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:vt},bE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:st},DE={year:v,month:v,day:v,hour:v,minute:v},CE={year:v,month:v,day:v,hour:v,minute:v,second:v},vE={year:v,month:vt,day:v,hour:v,minute:v},NE={year:v,month:vt,day:v,hour:v,minute:v,second:v},Eb={year:v,month:vt,day:v,weekday:vt,hour:v,minute:v},PE={year:v,month:st,day:v,hour:v,minute:v,timeZoneName:vt},LE={year:v,month:st,day:v,hour:v,minute:v,second:v,timeZoneName:vt},UE={year:v,month:st,day:v,weekday:st,hour:v,minute:v,timeZoneName:st},ME={year:v,month:st,day:v,weekday:st,hour:v,minute:v,second:v,timeZoneName:st},Mr=class{get type(){throw new Ht}get name(){throw new Ht}get ianaName(){return this.name}get isUniversal(){throw new Ht}offsetName(e,r){throw new Ht}formatOffset(e,r){throw new Ht}offset(e){throw new Ht}equals(e){throw new Ht}get isValid(){throw new Ht}},Gd=null,To=class t extends Mr{static get instance(){return Gd===null&&(Gd=new t),Gd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return kE(e,r,n)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},Nu={};function Tb(t){return Nu[t]||(Nu[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"})),Nu[t]}var Ab={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Sb(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 _b(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=Ab[s];s==="era"?n[a]=o:ae(a)||(n[a]=parseInt(o,10))}return n}var bu={},ur=class t extends Mr{static create(e){return bu[e]||(bu[e]=new t(e)),bu[e]}static resetCache(){bu={},Nu={}}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 kE(e,r,n,this.name)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=Tb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?_b(n,r):Sb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let p=up({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,f=m%1e3;return m-=f>=0?f:1e3+f,(p-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},Hy={};function Ib(t,e={}){let r=JSON.stringify([t,e]),n=Hy[r];return n||(n=new Intl.ListFormat(t,e),Hy[r]=n),n}var zd={};function Zd(t,e={}){let r=JSON.stringify([t,e]),n=zd[r];return n||(n=new Intl.DateTimeFormat(t,e),zd[r]=n),n}var Xd={};function Ob(t,e={}){let r=JSON.stringify([t,e]),n=Xd[r];return n||(n=new Intl.NumberFormat(t,e),Xd[r]=n),n}var ep={};function xb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=ep[i];return s||(s=new Intl.RelativeTimeFormat(t,e),ep[i]=s),s}var go=null;function Rb(){return go||(go=new Intl.DateTimeFormat().resolvedOptions().locale,go)}function wb(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=Zd(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=Zd(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function bb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Db(t){let e=[];for(let r=1;r<=12;r++){let n=_e.utc(2016,r,1);e.push(t(n))}return e}function Cb(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 Du(t,e,r,n,i){let s=t.listingMode(r);return s==="error"?null:s==="en"?n(e):i(e)}function vb(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 tp=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=Ob(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):ap(e,3);return Re(r,this.padTo)}}},rp=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&&ur.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=Zd(r,s)}format(){return this.dtf.format(this.dt.toJSDate())}formatToParts(){return this.dtf.formatToParts(this.dt.toJSDate())}resolvedOptions(){return this.dtf.resolvedOptions()}},np=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&FE()&&(this.rtf=xb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):Hb(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":Rb()),a=r||Ee.defaultNumberingSystem,u=n||Ee.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){go=null,zd={},Xd={},ep={}}static fromObject({locale:e,numberingSystem:r,outputCalendar:n}={}){return t.create(e,r,n)}constructor(e,r,n,i){let[s,o,a]=wb(e);this.locale=s,this.numberingSystem=r||o||null,this.outputCalendar=n||a||null,this.intl=bb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=vb(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 Du(this,e,n,VE,()=>{let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";return this.monthsCache[s][e]||(this.monthsCache[s][e]=Db(o=>this.extract(o,i,"month"))),this.monthsCache[s][e]})}weekdays(e,r=!1,n=!0){return Du(this,e,n,qE,()=>{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]=Cb(o=>this.extract(o,i,"weekday"))),this.weekdaysCache[s][e]})}meridiems(e=!0){return Du(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 Du(this,e,r,jE,()=>{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 tp(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new rp(e,this.intl,r)}relFormatter(e={}){return new np(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ib(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us")}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}},Vd=null,ot=class t extends Mr{static get utcInstance(){return Vd===null&&(Vd=new t(0)),Vd}static instance(e){return e===0?t.utcInstance:new t(e)}static parseSpecifier(e){if(e){let r=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(r)return new t(Vu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Eo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Eo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Eo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},Mu=class extends Mr{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Ur(t,e){if(ae(t)||t===null)return e;if(t instanceof Mr)return t;if(Nb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?To.instance:r==="utc"||r==="gmt"?ot.utcInstance:ot.parseSpecifier(r)||ur.create(t)}else return qn(t)?ot.instance(t):typeof t=="object"&&t.offset&&typeof t.offset=="number"?t:new Mu(t)}var Ky=()=>Date.now(),Yy="system",Jy=null,zy=null,Zy=null,Xy=60,eE,Ee=class{static get now(){return Ky}static set now(e){Ky=e}static set defaultZone(e){Yy=e}static get defaultZone(){return Ur(Yy,To.instance)}static get defaultLocale(){return Jy}static set defaultLocale(e){Jy=e}static get defaultNumberingSystem(){return zy}static set defaultNumberingSystem(e){zy=e}static get defaultOutputCalendar(){return Zy}static set defaultOutputCalendar(e){Zy=e}static get twoDigitCutoffYear(){return Xy}static set twoDigitCutoffYear(e){Xy=e%100}static get throwOnInvalid(){return eE}static set throwOnInvalid(e){eE=e}static resetCaches(){Se.resetCache(),ur.resetCache()}};function ae(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function Gu(t){return typeof t=="number"&&t%1===0}function Nb(t){return typeof t=="string"}function Pb(t){return Object.prototype.toString.call(t)==="[object Date]"}function FE(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Lb(t){return Array.isArray(t)?t:[t]}function tE(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 Ub(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Vi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function or(t,e,r){return Gu(t)&&t>=e&&t<=r}function Mb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Lr(t){if(!(ae(t)||t===null||t===""))return parseInt(t,10)}function Gn(t){if(!(ae(t)||t===null||t===""))return parseFloat(t)}function op(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function ap(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function Ao(t){return t%4===0&&(t%100!==0||t%400===0)}function yo(t){return Ao(t)?366:365}function Fu(t,e){let r=Mb(e-1,12)+1,n=t+(e-r)/12;return r===2?Ao(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function up(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 ku(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 ip(t){return t>99?t:t>Ee.twoDigitCutoffYear?1900+t:2e3+t}function kE(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 Vu(t,e){let r=parseInt(t,10);Number.isNaN(r)&&(r=0);let n=parseInt(e,10)||0,i=r<0||Object.is(r,-0)?-n:n;return r*60+i}function BE(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function Bu(t,e){let r={};for(let n in t)if(Vi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=BE(i)}return r}function Eo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function $u(t){return Ub(t,["hour","minute","second","millisecond"])}var Fb=["January","February","March","April","May","June","July","August","September","October","November","December"],GE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],kb=["J","F","M","A","M","J","J","A","S","O","N","D"];function VE(t){switch(t){case"narrow":return[...kb];case"short":return[...GE];case"long":return[...Fb];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 $E=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],WE=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Bb=["M","T","W","T","F","S","S"];function qE(t){switch(t){case"narrow":return[...Bb];case"short":return[...WE];case"long":return[...$E];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var QE=["AM","PM"],Gb=["Before Christ","Anno Domini"],Vb=["BC","AD"],$b=["B","A"];function jE(t){switch(t){case"narrow":return[...$b];case"short":return[...Vb];case"long":return[...Gb];default:return null}}function Wb(t){return QE[t.hour<12?0:1]}function qb(t,e){return qE(e)[t.weekday-1]}function Qb(t,e){return VE(e)[t.month-1]}function jb(t,e){return jE(e)[t.year<0?0:1]}function Hb(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 rE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Kb={D:Uu,DD:EE,DDD:TE,DDDD:AE,t:SE,tt:_E,ttt:IE,tttt:OE,T:xE,TT:RE,TTT:wE,TTTT:bE,f:DE,ff:vE,fff:PE,ffff:UE,F:CE,FF:NE,FFF:LE,FFFF:ME},nt=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 Kb[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,f)=>this.loc.extract(e,m,f),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?Wb(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,f)=>n?Qb(e,m):s(f?{month:m}:{month:m,day:"numeric"},"month"),c=(m,f)=>n?qb(e,m):s(f?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let f=t.macroTokenToFormatOpts(m);return f?this.formatWithSystemDefault(e,f):m},d=m=>n?jb(e,m):s({era:m},"era"),p=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 rE(t.parseFormat(r),p)}formatDurationFromString(e,r){let n=u=>{switch(u[0]){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":return"hour";case"d":return"day";case"w":return"week";case"M":return"month";case"y":return"year";default:return null}},i=u=>c=>{let l=n(c);return l?this.num(u.get(l),c.length):c},s=t.parseFormat(r),o=s.reduce((u,{literal:c,val:l})=>c?u:u.concat(l),[]),a=e.shiftTo(...o.map(n).filter(u=>u));return rE(s,i(a))}},it=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},HE=/[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 Wi(...t){return e=>t.reduce(([r,n,i],s)=>{let[o,a,u]=s(e,i);return[{...r,...o},a||n,u]},[{},null,1]).slice(0,2)}function qi(t,...e){if(t==null)return[null,null];for(let[r,n]of e){let i=r.exec(t);if(i)return n(i)}return[null,null]}function KE(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Lr(e[r+i]);return[n,null,r+i]}}var YE=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Yb=`(?:${YE.source}?(?:\\[(${HE.source})\\])?)?`,cp=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,JE=RegExp(`${cp.source}${Yb}`),lp=RegExp(`(?:T${JE.source})?`),Jb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,zb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Zb=/(\d{4})-?(\d{3})/,Xb=KE("weekYear","weekNumber","weekDay"),eD=KE("year","ordinal"),tD=/(\d{4})-(\d\d)-(\d\d)/,zE=RegExp(`${cp.source} ?(?:${YE.source}|(${HE.source}))?`),rD=RegExp(`(?: ${zE.source})?`);function Gi(t,e,r){let n=t[e];return ae(n)?r:Lr(n)}function nD(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:op(t[e+3])},null,e+4]}function So(t,e){let r=!t[e]&&!t[e+1],n=Vu(t[e+1],t[e+2]),i=r?null:ot.instance(n);return[{},i,e+3]}function _o(t,e){let r=t[e]?ur.create(t[e]):null;return[{},r,e+1]}var iD=RegExp(`^T?${cp.source}$`),sD=/^-?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 oD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",p=(m,f=!1)=>m!==void 0&&(f||m&&l)?-m:m;return[{years:p(Gn(r)),months:p(Gn(n)),weeks:p(Gn(i)),days:p(Gn(s)),hours:p(Gn(o)),minutes:p(Gn(a)),seconds:p(Gn(u),u==="-0"),milliseconds:p(op(c),d)}]}var aD={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 dp(t,e,r,n,i,s,o){let a={year:e.length===2?ip(Lr(e)):Lr(e),month:GE.indexOf(r)+1,day:Lr(n),hour:Lr(i),minute:Lr(s)};return o&&(a.second=Lr(o)),t&&(a.weekday=t.length>3?$E.indexOf(t)+1:WE.indexOf(t)+1),a}var uD=/^(?:(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 cD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,p=dp(e,i,n,r,s,o,a),m;return u?m=aD[u]:c?m=0:m=Vu(l,d),[p,new ot(m)]}function lD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var dD=/^(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$/,pD=/^(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$/,fD=/^(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 nE(t){let[,e,r,n,i,s,o,a]=t;return[dp(e,i,n,r,s,o,a),ot.utcInstance]}function mD(t){let[,e,r,n,i,s,o,a]=t;return[dp(e,a,r,n,i,s,o),ot.utcInstance]}var hD=$i(Jb,lp),gD=$i(zb,lp),yD=$i(Zb,lp),ED=$i(JE),ZE=Wi(nD,Qi,So,_o),TD=Wi(Xb,Qi,So,_o),AD=Wi(eD,Qi,So,_o),SD=Wi(Qi,So,_o);function _D(t){return qi(t,[hD,ZE],[gD,TD],[yD,AD],[ED,SD])}function ID(t){return qi(lD(t),[uD,cD])}function OD(t){return qi(t,[dD,nE],[pD,nE],[fD,mD])}function xD(t){return qi(t,[sD,oD])}var RD=Wi(Qi);function wD(t){return qi(t,[iD,RD])}var bD=$i(tD,rD),DD=$i(zE),CD=Wi(Qi,So,_o);function vD(t){return qi(t,[bD,ZE],[DD,CD])}var ND="Invalid Duration",XE={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}},PD={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},...XE},ht=146097/400,ki=146097/4800,LD={years:{quarters:4,months:12,weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},quarters:{months:3,weeks:ht/28,days:ht/4,hours:ht*24/4,minutes:ht*24*60/4,seconds:ht*24*60*60/4,milliseconds:ht*24*60*60*1e3/4},months:{weeks:ki/7,days:ki,hours:ki*24,minutes:ki*24*60,seconds:ki*24*60*60,milliseconds:ki*24*60*60*1e3},...XE},Vn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],UD=Vn.slice(0).reverse();function Pr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new Ce(n)}function MD(t){return t<0?Math.floor(t):Math.ceil(t)}function eT(t,e,r,n,i){let s=t[i][r],o=e[r]/s,a=Math.sign(o)===Math.sign(n[i]),u=!a&&n[i]!==0&&Math.abs(o)<=1?MD(o):Math.trunc(o);n[i]+=u,e[r]-=u*s}function FD(t,e){UD.reduce((r,n)=>ae(e[n])?r:(r&&eT(t,e,r,e,n),n),null)}function kD(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var Ce=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?LD:PD;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:Bu(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]=xD(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]=wD(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 it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Jd(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 Lu(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?nt.create(this.loc,n).formatDurationFromString(this,e):ND}toHuman(e={}){let r=Vn.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+=ap(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 Vn)(Vi(r.values,i)||Vi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return Pr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=BE(e(this.values[n],n));return Pr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Bu(e,t.normalizeUnit)};return Pr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Pr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return FD(this.matrix,e),Pr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=kD(this.normalize().shiftToAll().toObject());return Pr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of Vn)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)Vn.indexOf(c)>Vn.indexOf(o)&&eT(this.matrix,i,c,r,o)}else qn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return Pr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Pr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of Vn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Bi="Invalid Interval";function BD(t,e){return!t||!t.isValid?Qn.invalid("missing or invalid start"):!e||!e.isValid?Qn.invalid("missing or invalid end"):e<t?Qn.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}var Qn=class t{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the Interval is invalid");let n=e instanceof it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Yd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=ho(e),i=ho(r),s=BD(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=Ce.fromDurationLike(r),i=ho(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Ce.fromDurationLike(r),i=ho(e);return t.fromDateTimes(i.minus(n),i)}static fromISO(e,r){let[n,i]=(e||"").split("/",2);if(n&&i){let s,o;try{s=_e.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=_e.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=Ce.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=Ce.fromISO(n,r);if(c.isValid)return t.before(a,c)}}return t.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds"){if(!this.isValid)return NaN;let r=this.start.startOf(e),n=this.end.startOf(e);return Math.floor(n.diff(r,e).get(e))+1}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:r}={}){return this.isValid?t.fromDateTimes(e||this.s,r||this.e):this}splitAt(...e){if(!this.isValid)return[];let r=e.map(ho).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=Ce.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=Uu,r={}){return this.isValid?nt.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):Ce.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Wn=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 ur.isValidZone(e)}static normalizeZone(e){return Ur(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:FE()}}};function iE(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(Ce.fromMillis(n).as("days"))}function GD(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=iE(u,c);return(l-l%7)/7}],["days",iE]],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 VD(t,e,r,n){let[i,s,o,a]=GD(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=Ce.fromObject(s,n);return c.length>0?Ce.fromMillis(u,n).shiftTo(...c).plus(l):l}var pp={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"},sE={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},$D=pp.hanidec.replace(/[\[|\]]/g,"").split("");function WD(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(pp.hanidec)!==-1)e+=$D.indexOf(t[r]);else for(let i in sE){let[s,o]=sE[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function Dt({numberingSystem:t},e=""){return new RegExp(`${pp[t||"latn"]}${e}`)}var qD="missing Intl.DateTimeFormat.formatToParts support";function le(t,e=r=>r){return{regex:t,deser:([r])=>e(WD(r))}}var QD=String.fromCharCode(160),tT=`[ ${QD}]`,rT=new RegExp(tT,"g");function jD(t){return t.replace(/\./g,"\\.?").replace(rT,tT)}function oE(t){return t.replace(/\./g,"").replace(rT," ").toLowerCase()}function Ct(t,e){return t===null?null:{regex:RegExp(t.map(jD).join("|")),deser:([r])=>t.findIndex(n=>oE(r)===oE(n))+e}}function aE(t,e){return{regex:t,deser:([,r,n])=>Vu(r,n),groups:e}}function $d(t){return{regex:t,deser:([e])=>e}}function HD(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function KD(t,e){let r=Dt(e),n=Dt(e,"{2}"),i=Dt(e,"{3}"),s=Dt(e,"{4}"),o=Dt(e,"{6}"),a=Dt(e,"{1,2}"),u=Dt(e,"{1,3}"),c=Dt(e,"{1,6}"),l=Dt(e,"{1,9}"),d=Dt(e,"{2,4}"),p=Dt(e,"{4,6}"),m=y=>({regex:RegExp(HD(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,ip);case"yyyy":return le(s);case"yyyyy":return le(p);case"yyyyyy":return le(o);case"M":return le(a);case"MM":return le(n);case"MMM":return 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 $d(l);case"uu":return $d(a);case"uuu":return le(r);case"a":return Ct(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,ip);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 aE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return aE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return $d(/[a-z_+-/]{1,256}?/i);default:return m(y)}})(t)||{invalidReason:qD};return g.token=t,g}var YD={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 JD(t,e){let{type:r,value:n}=t;if(r==="literal")return{literal:!0,val:n};let i=e[r],s=YD[r];if(typeof s=="object"&&(s=s[i]),s)return{literal:!1,val:s}}function zD(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function ZD(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 XD(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=ur.create(t.z)),ae(t.Z)||(r||(r=new ot(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=op(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var Wd=null;function eC(){return Wd||(Wd=_e.fromMillis(1555555555555)),Wd}function tC(t,e){if(t.literal)return t;let r=nt.macroTokenToFormatOpts(t.val),n=sT(r,e);return n==null||n.includes(void 0)?t:n}function nT(t,e){return Array.prototype.concat(...t.map(r=>tC(r,e)))}function iT(t,e,r){let n=nT(nt.parseFormat(r),t),i=n.map(o=>KD(o,t)),s=i.find(o=>o.invalidReason);if(s)return{input:e,tokens:n,invalidReason:s.invalidReason};{let[o,a]=zD(i),u=RegExp(o,"i"),[c,l]=ZD(e,u,a),[d,p,m]=l?XD(l):[null,null,void 0];if(Vi(l,"a")&&Vi(l,"H"))throw new $n("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:n,regex:u,rawMatches:c,matches:l,result:d,zone:p,specificOffset:m}}}function rC(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=iT(t,e,r);return[n,i,s,o]}function sT(t,e){return t?nt.create(e,t).formatDateTimeParts(eC()).map(i=>JD(i,t)):null}var oT=[0,31,59,90,120,151,181,212,243,273,304,334],aT=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new it("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function uT(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 cT(t,e,r){return r+(Ao(t)?aT:oT)[e-1]}function lT(t,e){let r=Ao(t)?aT:oT,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function sp(t){let{year:e,month:r,day:n}=t,i=cT(e,r,n),s=uT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=ku(a)):o>ku(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...$u(t)}}function uE(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=uT(e,1,4),s=yo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=yo(a)):o>s?(a=e+1,o-=yo(e)):a=e;let{month:u,day:c}=lT(a,o);return{year:a,month:u,day:c,...$u(t)}}function qd(t){let{year:e,month:r,day:n}=t,i=cT(e,r,n);return{year:e,ordinal:i,...$u(t)}}function cE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=lT(e,r);return{year:e,month:n,day:i,...$u(t)}}function nC(t){let e=Gu(t.weekYear),r=or(t.weekNumber,1,ku(t.weekYear)),n=or(t.weekday,1,7);return e?r?n?!1:gt("weekday",t.weekday):gt("week",t.week):gt("weekYear",t.weekYear)}function iC(t){let e=Gu(t.year),r=or(t.ordinal,1,yo(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function dT(t){let e=Gu(t.year),r=or(t.month,1,12),n=or(t.day,1,Fu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function pT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=or(e,0,23)||e===24&&r===0&&n===0&&i===0,o=or(r,0,59),a=or(n,0,59),u=or(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}var Qd="Invalid DateTime",lE=864e13;function Cu(t){return new it("unsupported zone",`the zone "${t.name}" is not supported`)}function jd(t){return t.weekData===null&&(t.weekData=sp(t.c)),t.weekData}function fo(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function fT(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 dE(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 Pu(t,e,r){return fT(up(t),e,r)}function pE(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,Fu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Ce.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=up(s),[u,c]=fT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function mo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new it("unparsable",`the input "${i}" can't be parsed as ${n}`))}function vu(t,e,r=!0){return t.isValid?nt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Hd(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 fE(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 mT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},sC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},oC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},hT=["year","month","day","hour","minute","second","millisecond"],aC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],uC=["year","ordinal","hour","minute","second","millisecond"];function mE(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 Lu(t);return e}function hE(t,e){let r=Ur(e.zone,Ee.defaultZone),n=Se.fromObject(e),i=Ee.now(),s,o;if(ae(t.year))s=i;else{for(let c of hT)ae(t[c])&&(t[c]=mT[c]);let a=dT(t)||pT(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=Pu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function gE(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=ap(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 yE(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 it("invalid input"):null)||(r.isValid?null:Cu(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=dE(this.ts,a),n=Number.isNaN(i.year)?new it("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]=yE(arguments),[n,i,s,o,a,u,c]=r;return hE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=yE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=ot.utcInstance,hE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=Pb(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Ur(r.zone,Ee.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(Cu(i))}static fromMillis(e,r={}){if(qn(e))return e<-lE||e>lE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(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:Ur(r.zone,Ee.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ur(r.zone,Ee.defaultZone);if(!n.isValid)return t.invalid(Cu(n));let i=Ee.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Bu(e,mE),a=!ae(o.ordinal),u=!ae(o.year),c=!ae(o.month)||!ae(o.day),l=u||c,d=o.weekYear||o.weekNumber,p=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,f,g,y=dE(i,s);m?(f=aC,g=sC,y=sp(y)):a?(f=uC,g=oC,y=qd(y)):(f=hT,g=mT);let T=!1;for(let D of f){let B=o[D];ae(B)?T?o[D]=g[D]:o[D]=y[D]:T=!0}let _=m?nC(o):a?iC(o):dT(o),S=_||pT(o);if(S)return t.invalid(S);let x=m?uE(o):a?cE(o):o,[E,I]=Pu(x,s,n),k=new t({ts:E,zone:n,o:I,loc:p});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]=_D(e);return mo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=ID(e);return mo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=OD(e);return mo(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]=rC(o,e,r);return l?t.invalid(l):mo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=vD(e);return mo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof it?e:new it(e,r);if(Ee.throwOnInvalid)throw new Kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=sT(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return nT(nt.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?jd(this).weekYear:NaN}get weekNumber(){return this.isValid?jd(this).weekNumber:NaN}get weekday(){return this.isValid?jd(this).weekday:NaN}get ordinal(){return this.isValid?qd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Wn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Wn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Wn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Wn.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}get isInLeapYear(){return Ao(this.year)}get daysInMonth(){return Fu(this.year,this.month)}get daysInYear(){return this.isValid?yo(this.year):NaN}get weeksInWeekYear(){return this.isValid?ku(this.weekYear):NaN}resolvedLocaleOptions(e={}){let{locale:r,numberingSystem:n,calendar:i}=nt.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:r,numberingSystem:n,outputCalendar:i}}toUTC(e=0,r={}){return this.setZone(ot.instance(e),r)}toLocal(){return this.setZone(Ee.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Ur(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]=Pu(o,s,e)}return fo(this,{ts:i,zone:e})}else return t.invalid(Cu(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return fo(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Bu(e,mE),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=uE({...sp(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Fu(c.year,c.month),c.day))):c=cE({...qd(this.c),...r});let[l,d]=Pu(c,this.o,this.zone);return fo(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e);return fo(this,pE(this,r))}minus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e).negate();return fo(this,pE(this,r))}startOf(e){if(!this.isValid)return this;let r={},n=Ce.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?nt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Qd}toLocaleString(e=Uu,r={}){return this.isValid?nt.create(this.loc.clone(r),e).formatDateTime(this):Qd}toLocaleParts(e={}){return this.isValid?nt.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=Hd(this,o);return a+="T",a+=fE(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?Hd(this,e==="extended"):null}toISOWeekDate(){return vu(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":"")+fE(this,o==="extended",r,e,n,s):null}toRFC2822(){return vu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return vu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Hd(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")),vu(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 Ce.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=Lb(r).map(Ce.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=VD(a,u,s,i);return o?c.negate():c}diffNow(e="milliseconds",r={}){return this.diff(t.now(),e,r)}until(e){return this.isValid?Qn.fromDateTimes(this,e):this}hasSame(e,r){if(!this.isValid)return!1;let n=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(r)<=n&&n<=i.endOf(r)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;let r=e.base||t.fromObject({},{zone:this.zone}),n=e.padding?this<r?-e.padding:e.padding:0,i=["years","months","days","hours","minutes","seconds"],s=e.unit;return Array.isArray(e.unit)&&(i=e.unit,s=void 0),gE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?gE(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 tE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return tE(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 iT(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Uu}static get DATE_MED(){return EE}static get DATE_MED_WITH_WEEKDAY(){return yb}static get DATE_FULL(){return TE}static get DATE_HUGE(){return AE}static get TIME_SIMPLE(){return SE}static get TIME_WITH_SECONDS(){return _E}static get TIME_WITH_SHORT_OFFSET(){return IE}static get TIME_WITH_LONG_OFFSET(){return OE}static get TIME_24_SIMPLE(){return xE}static get TIME_24_WITH_SECONDS(){return RE}static get TIME_24_WITH_SHORT_OFFSET(){return wE}static get TIME_24_WITH_LONG_OFFSET(){return bE}static get DATETIME_SHORT(){return DE}static get DATETIME_SHORT_WITH_SECONDS(){return CE}static get DATETIME_MED(){return vE}static get DATETIME_MED_WITH_SECONDS(){return NE}static get DATETIME_MED_WITH_WEEKDAY(){return Eb}static get DATETIME_FULL(){return PE}static get DATETIME_FULL_WITH_SECONDS(){return LE}static get DATETIME_HUGE(){return UE}static get DATETIME_HUGE_WITH_SECONDS(){return ME}};function ho(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&qn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var cC="3.2.1";at.DateTime=_e;at.Duration=Ce;at.FixedOffsetZone=ot;at.IANAZone=ur;at.Info=Wn;at.Interval=Qn;at.InvalidZone=Mu;at.Settings=Ee;at.SystemZone=To;at.VERSION=cC;at.Zone=Mr});var ET=j((oj,yT)=>{"use strict";var jn=gT();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=jn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=jn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=jn.DateTime.fromISO(t,r),this._date.isValid||(this._date=jn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=jn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=jn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=jn.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))}yT.exports=z});var ST=j((aj,AT)=>{"use strict";function Hn(t){return{start:t,count:1}}function TT(t,e){t.end=e,t.step=e-t.start,t.count=2}function fp(t,e,r){e&&(e.count===2?(t.push(Hn(e.start)),t.push(Hn(e.end))):t.push(e)),r&&t.push(r)}function lC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(fp(e,r,Hn(i)),r=void 0):r?r.count===1?TT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hn(r.start)),r=Hn(r.end),TT(r,i)):(fp(e,r),r=Hn(i)):r=Hn(i)}return fp(e,r),e}AT.exports=lC});var IT=j((uj,_T)=>{"use strict";var dC=ST();function pC(t,e,r){var n=dC(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(p,m){var f=c.start+m;return(f-c.start)%c.step===0?f:null}).filter(function(p){return p!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}_T.exports=pC});var RT=j((cj,xT)=>{"use strict";var Kn=ET(),fC=IT(),OT=1e4;function U(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new Kn(e.currentDate,this._tz),this._startDate=e.startDate?new Kn(e.startDate,this._tz):null,this._endDate=e.endDate?new Kn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=U._freezeFields(t)}U.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];U.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};U.constraints=[{min:0,max:59,chars:[]},{min:0,max:59,chars:[]},{min:0,max:23,chars:[]},{min:1,max:31,chars:["L"]},{min:1,max:12,chars:[]},{min:0,max:7,chars:["L"]}];U.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];U.aliases={month:{jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},dayOfWeek:{sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6}};U.parseDefaults=["0","*","*","*","*","*"];U.standardValidCharacters=/^[,*\d/-]+$/;U.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;U.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;U.validCharacters={second:U.standardValidCharacters,minute:U.standardValidCharacters,hour:U.standardValidCharacters,dayOfMonth:U.dayOfMonthValidCharacters,month:U.standardValidCharacters,dayOfWeek:U.dayOfWeekValidCharacters};U._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};U._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=U.aliases[e];r=r.replace(/[a-z]{3}/gi,function(u){if(u=u.toLowerCase(),typeof i[u]<"u")return i[u];throw new Error('Validation error, cannot resolve alias "'+u+'"')});break}if(!U.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,y=f.length;g<y;g++){var T=f[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,f)){c.push(f);return}var _=+f;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var p=0,m=d.length;p<m;p++)l(o(d[p]));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 p=+d[0],m=+d[1];if(Number.isNaN(p)||Number.isNaN(m)||p<n.min||m>n.max)throw new Error("Constraint error, got range "+p+"-"+m+" expected range "+n.min+"-"+n.max);if(p>m)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var g=p,y=m;g<=y;g++){var T=l.indexOf(g)!==-1;!T&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};U._sortCompareFn=function(t,e){var r=typeof t=="number",n=typeof e=="number";return r&&n?t-e:!r&&n?1:r&&!n?-1:t.localeCompare(e)};U._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=U.daysInMonth[t.month[0]-1];if(t.dayOfMonth[0]>e)throw new Error("Invalid explicit day of month definition");return t.dayOfMonth.filter(function(r){return r==="L"?!0:r<=e}).sort(U._sortCompareFn)}};U._freezeFields=function(t){for(var e=0,r=U.map.length;e<r;++e){var n=U.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};U.prototype._applyTimezoneShift=function(t,e,r){if(r==="Month"||r==="Day"){var n=t.getTime();t[e+r]();var i=t.getTime();n===i&&(t.getMinutes()===0&&t.getSeconds()===0?t.addHour():t.getMinutes()===59&&t.getSeconds()===59&&t.subtractHour())}else{var s=t.getHours();t[e+r]();var o=t.getHours(),a=o-s;a===2?this.fields.hour.length!==24&&(this._dstStart=o):a===0&&t.getMinutes()===0&&t.getSeconds()===0&&this.fields.hour.length!==24&&(this._dstEnd=o)}};U.prototype._findSchedule=function(e){function r(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 Kn(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<OT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var p=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=U.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===U.constraints[5].max-U.constraints[5].min+1,y=o.getHours();if(!p&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!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>=OT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new Kn(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 Kn(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(fC(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 Kn(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 p=U.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(U._parseField(p,U.parseDefaults[l],U.constraints[l]));else{var f=p==="dayOfWeek"?_(m):m;a.push(U._parseField(p,f,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(p,m,f){if(!m)throw new Error("Validation error, Field "+p+" is missing");if(m.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,y=m.length;g<y;g++){var T=m[g];if(!U._isValidConstraintChar(f,T)&&(typeof T!="number"||Number.isNaN(T)||T<f.min||T>f.max))throw new Error("Constraint error, got value "+T+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=U.map.length;s<o;++s){var a=U.map[s],u=e[a];n(a,u,U.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(U._sortCompareFn).filter(function(p,m,f){return!m||p!==f[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||{})};xT.exports=U});var bT=j((lj,wT)=>{"use strict";var Wu=RT();function Fr(){}Fr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:Wu.parse(e)};if(r.length>6)return{interval:Wu.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Fr.parseExpression=function(e,r){return Wu.parse(e,r)};Fr.fieldsToExpression=function(e,r){return Wu.fieldsToExpression(e,r)};Fr.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=Fr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Fr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Fr.parseString(i.toString()))})};wT.exports=Fr});var rB={};P(rB,{APP_DEV:()=>Zu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>zu,BUDIBASE_DATASOURCE_TYPE:()=>Up,BadRequestError:()=>Mc,BudibaseError:()=>ps,Config:()=>Vp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Bp,DEFAULT_EXPENSES_TABLE_ID:()=>kp,DEFAULT_INVENTORY_TABLE_ID:()=>Fp,DEFAULT_JOBS_TABLE_ID:()=>Mp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>wo,DocumentType:()=>ye,Duration:()=>De,DurationType:()=>cm,EmailUnavailableError:()=>gr,Endpoint:()=>Ul,EndpointGroup:()=>Ai,EndpointGroupList:()=>$a,FeatureDisabledError:()=>Gc,ForbiddenError:()=>Fc,GlobalRole:()=>Gp,HTTPError:()=>Ge,Header:()=>tt,InternalTable:()=>Zt,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>ec,MIN_VALID_DATE:()=>qT,NotFoundError:()=>Uc,NotImplementedError:()=>kc,RedisClient:()=>Qe,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Lp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>Ro,UnexpectedError:()=>Lc,UsageLimitError:()=>Bc,UserStatus:()=>Xu,ViewName:()=>Gr,accounts:()=>di,auth:()=>Oh,blacklist:()=>bh,cache:()=>Ca,configs:()=>yr,constants:()=>$p,context:()=>Ae,csv:()=>Gh,db:()=>Kr,docIds:()=>Pf,docUpdates:()=>Ch,encryption:()=>Sh,env:()=>h,errors:()=>$c,events:()=>ys,features:()=>ph,getPublicError:()=>Vc,init:()=>tB,installation:()=>Xc,locks:()=>Is,logging:()=>la,middleware:()=>Ih,objectStore:()=>Yf,permissions:()=>ch,platform:()=>zo,plugins:()=>Rh,queue:()=>Am,redis:()=>wh,roles:()=>uh,security:()=>Fm,sessions:()=>il,setEnv:()=>vo,sql:()=>Bh,tenancy:()=>eB,timers:()=>Jc,userUtils:()=>fm,users:()=>Es,utils:()=>ls,withEnv:()=>JT});module.exports=ZI(rB);var yr={};P(yr,{analyticsEnabled:()=>Kc,generateConfigID:()=>cl,getAIConfig:()=>yF,getConfig:()=>_t,getDefaultGoogleConfig:()=>Km,getGoogleConfig:()=>ll,getGoogleDatasourceConfig:()=>zm,getOIDCConfig:()=>mF,getOIDCConfigById:()=>Zm,getOIDCLogosDoc:()=>pF,getPlatformUrl:()=>Ma,getRecaptchaConfig:()=>EF,getSCIMConfig:()=>gF,getSMTPConfig:()=>hF,getSMTPConfigDoc:()=>q_,getSettingsConfig:()=>Jm,getSettingsConfigDoc:()=>Ts,save:()=>lF});var XI=["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"],eO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Wh=[...XI,...eO],qh={"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,"workspace:created":void 0,"workspace:deleted":void 0,"workspace:updated":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0};var Ml=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ml||{}),Fl=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(Fl||{}),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 kl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(kl||{});var tO=W(require("lodash")),xr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(xr||{}),zt=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(zt||{}),fn=(e=>(e.RANGE="range",e))(fn||{}),Si=(r=>(r.AND="$and",r.OR="$or",r))(Si||{});function ja(t){return Object.values(Si).includes(t)}function Qh(t){return Object.values(xr).includes(t)}function jh(t){return Object.values(zt).includes(t)}function Ha(t){return Object.values(fn).includes(t)}var _i=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(_i||{});var Hh=t=>typeof t=="object"&&t._id&&t._rev;var ws=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(ws||{});var Kh={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,WORKSPACES:!0,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var sG={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 Ka=(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))(Ka||{});var Ya=t=>t.hosting==="cloud";var Ja=t=>t.authType==="sso";var w="_",Ve="\uFFF0",Rr=t=>`${t}${w}`,ye=(J=>(J.USER="us",J.GROUP="gr",J.WORKSPACE="workspace",J.CONFIG="config",J.TEMPLATE="template",J.APP="app",J.DEV="dev",J.APP_DEV="app_dev",J.APP_METADATA="app_metadata",J.ROLE="role",J.DEV_INFO="devinfo",J.AUTOMATION_LOG="log_au",J.ACCOUNT_METADATA="acc_metadata",J.PLUGIN="plg",J.DATASOURCE="datasource",J.DATASOURCE_PLUS="datasource_plus",J.APP_BACKUP="backup",J.TABLE="ta",J.ROW="ro",J.AUTOMATION="au",J.LINK="li",J.WEBHOOK="wh",J.INSTANCE="inst",J.LAYOUT="layout",J.SCREEN="screen",J.QUERY="query",J.DEPLOYMENTS="deployments",J.METADATA="metadata",J.MEM_VIEW="view",J.USER_FLAG="flag",J.AUTOMATION_METADATA="meta_au",J.AUDIT_LOG="al",J.SCIM_LOG="scimlog",J.ROW_ACTIONS="ra",J.OAUTH2_CONFIG="oauth2",J.OAUTH2_CONFIG_LOG="oauth2log",J.AGENT_CHAT="agentchat",J.AGENT_TOOL_SOURCE="agenttoolsource",J.WORKSPACE_APP="workspace_app",J.WORKSPACE_FAVOURITE="workspace_favourite",J))(ye||{});var Zt=(e=>(e.USER_METADATA="ta_users",e))(Zt||{}),Bl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Bl||{});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||{}),Ot=(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))(Ot||{});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||{}),Yh=[...Object.values(ne),...Object.values(Ot)];var Gl=(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))(Gl||{}),Jh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Vl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Vl||{}),$l=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))($l||{});function zh(t){return t.stepId==="BRANCH"}var Wl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Wl||{});var ql=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(ql||{});var Ql="bb_internal";var Zh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function za(t){return!!t.providerType}var jl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(jl||{});var d$=Object.values(jl);var g$=["rows","queries","automations"],y$=["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 Kl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Kl||(Kl={}));var M=se.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),wr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},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"]),sO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Xe=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()}};Xe.create=t=>new Xe(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}},tg=xi;function oO(t){tg=t}function Za(){return tg}var Xa=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}},aO=[];function L(t,e){let r=Za(),n=Xa({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 Y;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 Y;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}}},Y=Object.freeze({status:"aborted"}),Oi=t=>({status:"dirty",value:t}),$e=t=>({status:"valid",value:t}),Yl=t=>t.status==="aborted",Jl=t=>t.status==="dirty",vs=t=>t.status==="valid",Ns=t=>typeof Promise<"u"&&t instanceof Promise;function eu(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 rg(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var Ds,Cs,ft=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Xh=(t,e)=>{if(vs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Xe(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 wr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:wr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Be,ctx:{common:e.parent.common,data:e.data,parsedType:wr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ns(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:wr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Xh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:wr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ns(i)?i:Promise.resolve(i));return Xh(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 et({schema:this,typeName:H.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return pt.create(this,this._def)}nullable(){return Wt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return tr.create(this,this._def)}promise(){return Cr.create(this,this._def)}or(e){return Sn.create([this,e],this._def)}and(e){return _n.create(this,e,this._def)}transform(e){return new et({...X(this._def),schema:this,typeName:H.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new wn({...X(this._def),innerType:this,defaultValue:r,typeName:H.ZodDefault})}brand(){return new Ps({typeName:H.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:H.ZodCatch})}describe(e){let r=this.constructor;return new r({...this._def,description:e})}pipe(e){return Ls.create(this,e)}readonly(){return Dn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},uO=/^c[^\s-]{8,}$/i,cO=/^[0-9a-z]+$/,lO=/^[0-9A-HJKMNP-TV-Z]{26}$/,dO=/^[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,pO=/^[a-z0-9_-]{21}$/i,fO=/^[-+]?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)?)??$/,mO=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,hO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Hl,gO=/^(?:(?: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])$/,yO=/^(([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})))$/,EO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,ng="((\\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])))",TO=new RegExp(`^${ng}$`);function ig(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 AO(t){return new RegExp(`^${ig(t)}$`)}function sg(t){let e=`${ng}T${ig(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 SO(t,e){return!!((e==="v4"||!e)&&gO.test(t)||(e==="v6"||!e)&&yO.test(t))}var br=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}),Y}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")mO.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")Hl||(Hl=new RegExp(hO,"u")),Hl.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")dO.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")pO.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")uO.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")cO.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")lO.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"?sg(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"?TO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{code:R.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?AO(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"?fO.test(e.data)||(i=this._getOrReturnCtx(e,i),L(i,{validation:"duration",code:R.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?SO(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"?EO.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}};br.create=t=>{var e;return new br({checks:[],typeName:H.ZodString,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...X(t)})};function _O(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=parseInt(t.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}var hn=class t extends 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}),Y}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"?_O(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)}};hn.create=t=>new hn({checks:[],typeName:H.ZodNumber,coerce:t?.coerce||!1,...X(t)});var gn=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}),Y}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}};gn.create=t=>{var e;return new gn({checks:[],typeName:H.ZodBigInt,coerce:(e=t?.coerce)!==null&&e!==void 0?e:!1,...X(t)})};var yn=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}),Y}return $e(e.data)}};yn.create=t=>new yn({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...X(t)});var En=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}),Y}if(isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_date}),Y}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}};En.create=t=>new En({checks:[],coerce:t?.coerce||!1,typeName:H.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}),Y}return $e(e.data)}};Ri.create=t=>new Ri({typeName:H.ZodSymbol,...X(t)});var Tn=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}),Y}return $e(e.data)}};Tn.create=t=>new Tn({typeName:H.ZodUndefined,...X(t)});var An=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}),Y}return $e(e.data)}};An.create=t=>new An({typeName:H.ZodNull,...X(t)});var Dr=class extends ee{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};Dr.create=t=>new Dr({typeName:H.ZodAny,...X(t)});var er=class extends ee{constructor(){super(...arguments),this._unknown=!0}_parse(e){return $e(e.data)}};er.create=t=>new er({typeName:H.ZodUnknown,...X(t)});var xt=class extends ee{_parse(e){let r=this._getOrReturnCtx(e);return L(r,{code:R.invalid_type,expected:M.never,received:r.parsedType}),Y}};xt.create=t=>new xt({typeName:H.ZodNever,...X(t)});var wi=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}),Y}return $e(e.data)}};wi.create=t=>new wi({typeName:H.ZodVoid,...X(t)});var tr=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}),Y;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 ft(r,o,r.path,a)))).then(o=>Be.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new ft(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)}};tr.create=(t,e)=>new tr({type:t,minLength:null,maxLength:null,exactLength:null,typeName:H.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]=pt.create(Ii(n))}return new He({...t._def,shape:()=>e})}else return t instanceof tr?new tr({...t._def,type:Ii(t.element)}):t instanceof pt?pt.create(Ii(t.unwrap())):t instanceof Wt?Wt.create(Ii(t.unwrap())):t instanceof $t?$t.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}),Y}let{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof xt&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new ft(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof xt){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 ft(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,p=await l.value;c.push({key:d,value:p,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:H.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 pt;)s=s._def.innerType;r[n]=s}}),new t({...this._def,shape:()=>r})}keyof(){return og(se.objectKeys(this.shape))}};He.create=(t,e)=>new He({shape:()=>t,unknownKeys:"strip",catchall:xt.create(),typeName:H.ZodObject,...X(e)});He.strictCreate=(t,e)=>new He({shape:()=>t,unknownKeys:"strict",catchall:xt.create(),typeName:H.ZodObject,...X(e)});He.lazycreate=(t,e)=>new He({shape:t,unknownKeys:"strip",catchall:xt.create(),typeName:H.ZodObject,...X(e)});var Sn=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 Xe(a.ctx.common.issues));return L(r,{code:R.invalid_union,unionErrors:o}),Y}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 Xe(u));return L(r,{code:R.invalid_union,unionErrors:a}),Y}}get options(){return this._def.options}};Sn.create=(t,e)=>new Sn({options:t,typeName:H.ZodUnion,...X(e)});var Xt=t=>t instanceof In?Xt(t.schema):t instanceof et?Xt(t.innerType()):t instanceof On?[t.value]:t instanceof xn?t.options:t instanceof Rn?se.objectValues(t.enum):t instanceof wn?Xt(t._def.innerType):t instanceof Tn?[void 0]:t instanceof An?[null]:t instanceof pt?[void 0,...Xt(t.unwrap())]:t instanceof Wt?[null,...Xt(t.unwrap())]:t instanceof Ps||t instanceof Dn?Xt(t.unwrap()):t instanceof bn?Xt(t._def.innerType):[],tu=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}),Y;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]}),Y)}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=Xt(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:H.ZodDiscriminatedUnion,discriminator:e,options:r,optionsMap:i,...X(n)})}};function zl(t,e){let r=wr(t),n=wr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=se.objectKeys(e),s=se.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=zl(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=zl(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 _n=class extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Yl(s)||Yl(o))return Y;let a=zl(s.value,o.value);return a.valid?((Jl(s)||Jl(o))&&r.dirty(),{status:r.value,value:a.data}):(L(n,{code:R.invalid_intersection_types}),Y)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};_n.create=(t,e,r)=>new _n({left:t,right:e,typeName:H.ZodIntersection,...X(r)});var $t=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}),Y;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"}),Y;!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 ft(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})}};$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:H.ZodTuple,rest:null,...X(e)})};var ru=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}),Y;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new ft(n,a,n.path,a)),value:o._parse(new ft(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?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:H.ZodRecord,...X(n)}):new t({keyType:br.create(),valueType:e,typeName:H.ZodRecord,...X(r)})}},bi=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}),Y;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new ft(n,a,n.path,[c,"key"])),value:s._parse(new ft(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return Y;(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 Y;(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:H.ZodMap,...X(r)});var Di=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}),Y;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 Y;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new ft(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};Di.create=(t,e)=>new Di({valueType:t,minSize:null,maxSize:null,typeName:H.ZodSet,...X(e)});var nu=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}),Y;function n(a,u){return Xa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Za(),xi].filter(c=>!!c),issueData:{code:R.invalid_arguments,argumentsError:u}})}function i(a,u){return Xa({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Za(),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 Cr){let a=this;return $e(async function(...u){let c=new Xe([]),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 Xe([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Xe([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(er.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(er.create()),returns:r||er.create(),typeName:H.ZodFunction,...X(n)})}},In=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})}};In.create=(t,e)=>new In({getter:t,typeName:H.ZodLazy,...X(e)});var On=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}),Y}return{status:"valid",value:e.data}}get value(){return this._def.value}};On.create=(t,e)=>new On({value:t,typeName:H.ZodLiteral,...X(e)});function og(t,e){return new xn({values:t,typeName:H.ZodEnum,...X(e)})}var xn=class t extends ee{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{expected:se.joinValues(n),received:r.parsedType,code:R.invalid_type}),Y}if(eu(this,Ds,"f")||rg(this,Ds,new Set(this._def.values),"f"),!eu(this,Ds,"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}),Y}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})}};Ds=new WeakMap;xn.create=og;var Rn=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}),Y}if(eu(this,Cs,"f")||rg(this,Cs,new Set(se.getValidEnumValues(this._def.values)),"f"),!eu(this,Cs,"f").has(e.data)){let i=se.objectValues(r);return L(n,{received:n.data,code:R.invalid_enum_value,options:i}),Y}return $e(e.data)}get enum(){return this._def.values}};Cs=new WeakMap;Rn.create=(t,e)=>new Rn({values:t,typeName:H.ZodNativeEnum,...X(e)});var Cr=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}),Y;let n=r.parsedType===M.promise?r.data:Promise.resolve(r.data);return $e(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Cr.create=(t,e)=>new Cr({type:t,typeName:H.ZodPromise,...X(e)});var et=class extends ee{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===H.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 Y;let u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?Y:u.status==="dirty"||r.value==="dirty"?Oi(u.value):u});{if(r.value==="aborted")return Y;let a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?Y: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"?Y:(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"?Y:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!vs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>vs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);se.assertNever(i)}};et.create=(t,e,r)=>new et({schema:t,typeName:H.ZodEffects,effect:e,...X(r)});et.createWithPreprocess=(t,e,r)=>new et({schema:e,effect:{type:"preprocess",transform:t},typeName:H.ZodEffects,...X(r)});var pt=class extends ee{_parse(e){return this._getType(e)===M.undefined?$e(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};pt.create=(t,e)=>new pt({innerType:t,typeName:H.ZodOptional,...X(e)});var Wt=class extends ee{_parse(e){return this._getType(e)===M.null?$e(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Wt.create=(t,e)=>new Wt({innerType:t,typeName:H.ZodNullable,...X(e)});var wn=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}};wn.create=(t,e)=>new wn({innerType:t,typeName:H.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 Ns(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Xe(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Xe(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};bn.create=(t,e)=>new bn({innerType:t,typeName:H.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...X(e)});var Ci=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}),Y}return{status:"valid",value:e.data}}};Ci.create=t=>new Ci({typeName:H.ZodNaN,...X(t)});var IO=Symbol("zod_brand"),Ps=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}},Ls=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"?Y: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"?Y: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:H.ZodPipeline})}},Dn=class extends ee{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vs(i)&&(i.value=Object.freeze(i.value)),i);return Ns(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Dn.create=(t,e)=>new Dn({innerType:t,typeName:H.ZodReadonly,...X(e)});function ag(t,e={},r){return t?Dr.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):Dr.create()}var OO={object:He.lazycreate},H;(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"})(H||(H={}));var xO=(t,e={message:`Input not instance of ${t.name}`})=>ag(r=>r instanceof t,e),ug=br.create,cg=hn.create,RO=Ci.create,wO=gn.create,lg=yn.create,bO=En.create,DO=Ri.create,CO=Tn.create,vO=An.create,NO=Dr.create,PO=er.create,LO=xt.create,UO=wi.create,MO=tr.create,FO=He.create,kO=He.strictCreate,BO=Sn.create,GO=tu.create,VO=_n.create,$O=$t.create,WO=ru.create,qO=bi.create,QO=Di.create,jO=nu.create,HO=In.create,KO=On.create,YO=xn.create,JO=Rn.create,zO=Cr.create,eg=et.create,ZO=pt.create,XO=Wt.create,ex=et.createWithPreprocess,tx=Ls.create,rx=()=>ug().optional(),nx=()=>cg().optional(),ix=()=>lg().optional(),sx={string:t=>br.create({...t,coerce:!0}),number:t=>hn.create({...t,coerce:!0}),boolean:t=>yn.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>En.create({...t,coerce:!0})},ox=Y,re=Object.freeze({__proto__:null,defaultErrorMap:xi,setErrorMap:oO,getErrorMap:Za,makeIssue:Xa,EMPTY_PATH:aO,addIssueToContext:L,ParseStatus:Be,INVALID:Y,DIRTY:Oi,OK:$e,isAborted:Yl,isDirty:Jl,isValid:vs,isAsync:Ns,get util(){return se},get objectUtil(){return Kl},ZodParsedType:M,getParsedType:wr,ZodType:ee,datetimeRegex:sg,ZodString:br,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:yn,ZodDate:En,ZodSymbol:Ri,ZodUndefined:Tn,ZodNull:An,ZodAny:Dr,ZodUnknown:er,ZodNever:xt,ZodVoid:wi,ZodArray:tr,ZodObject:He,ZodUnion:Sn,ZodDiscriminatedUnion:tu,ZodIntersection:_n,ZodTuple:$t,ZodRecord:ru,ZodMap:bi,ZodSet:Di,ZodFunction:nu,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:Cr,ZodEffects:et,ZodTransformer:et,ZodOptional:pt,ZodNullable:Wt,ZodDefault:wn,ZodCatch:bn,ZodNaN:Ci,BRAND:IO,ZodBranded:Ps,ZodPipeline:Ls,ZodReadonly:Dn,custom:ag,Schema:ee,ZodSchema:ee,late:OO,get ZodFirstPartyTypeKind(){return H},coerce:sx,any:NO,array:MO,bigint:wO,boolean:lg,date:bO,discriminatedUnion:GO,effect:eg,enum:YO,function:jO,instanceof:xO,intersection:VO,lazy:HO,literal:KO,map:qO,nan:RO,nativeEnum:JO,never:LO,null:vO,nullable:XO,number:cg,object:FO,oboolean:ix,onumber:nx,optional:ZO,ostring:rx,pipeline:tx,preprocess:ex,promise:zO,record:WO,set:QO,strictObject:kO,string:ug,symbol:DO,transformer:eg,tuple:$O,undefined:CO,union:BO,unknown:PO,void:UO,NEVER:ox,ZodIssueCode:R,quotelessJson:sO,ZodError:Xe});var Cn=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(Cn||{}),iu=(r=>(r.STRING="string",r.NUMBER="number",r))(iu||{});var uu=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),dg=re.record(uu,re.string()),su=re.record(uu,re.any()),ou=re.record(uu,re.union([re.any().array(),re.string()])),pg=re.lazy(()=>re.object({conditions:re.array(re.object(fg))})),au=re.union([re.string(),re.number()]),fg={string:dg.optional(),fuzzy:dg.optional(),range:re.record(uu,re.union([re.object({high:au,low:au}),re.object({high:au}),re.object({low:au})])).optional(),equal:su.optional(),notEqual:su.optional(),empty:su.optional(),notEmpty:su.optional(),oneOf:ou.optional(),contains:ou.optional(),notContains:ou.optional(),containsAny:ou.optional(),$and:pg.optional(),$or:pg.optional()},fW=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(_i).optional(),...fg}).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(iu).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var $p={};P($p,{APP_DEV:()=>Zu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>zu,BUDIBASE_DATASOURCE_TYPE:()=>Up,Config:()=>Vp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Bp,DEFAULT_EXPENSES_TABLE_ID:()=>kp,DEFAULT_INVENTORY_TABLE_ID:()=>Fp,DEFAULT_JOBS_TABLE_ID:()=>Mp,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>wo,DocumentType:()=>ye,GlobalRole:()=>Gp,Header:()=>tt,InternalTable:()=>Zt,MAX_VALID_DATE:()=>ec,MIN_VALID_DATE:()=>qT,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Lp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>Ro,UserStatus:()=>Xu,ViewName:()=>Gr});var G1={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 tt=(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))(tt||{});var q1={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 J1="darkest",z1="light",cx=[{id:"light",name:"Light"},{id:"darkest",name:"Dark"},{id:"nord",name:"Nord",base:"darkest"},{id:"midnight",name:"Midnight",base:"darkest"}];var rt={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"}},mg={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 kr={};P(kr,{ColumnSplitter:()=>Ap,NoEmptyFilterStrings:()=>UT,buildQuery:()=>MT,cleanupQuery:()=>Ip,fixupFilterArrays:()=>xp,getKeyNumbering:()=>Op,getValidOperatorsForType:()=>UC,hasFilters:()=>Sp,limit:()=>kT,recurseLogicalOperators:()=>_p,removeKeyNumbering:()=>cu,runQuery:()=>qu,search:()=>kC,sort:()=>FT,splitFiltersArray:()=>lu});var ji=W(hg());var vr={};P(vr,{filterValueToLabel:()=>hx,hasSchema:()=>gx,isSupportedUserSearch:()=>yg,parallelForeach:()=>mx,processSearchFilters:()=>ed,toMap:()=>Ex,trimOtherProps:()=>yx,unreachable:()=>fx});var gg=W(require("lodash")),px=["field","operator","value","type","externalType","valueType","noValue","formulaType"];function fx(t,e){let r=e?.message||`No such case in exhaustive switch: ${t}`;if(!!!e?.doNotThrow)throw new Error(r)}async function mx(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 hx(){return Object.keys(rt).reduce((t,e)=>{let n=rt[e];return t[n.value]=n.label,t},{})}function gx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function yx(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function yg(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(ja(s)){for(let c of t[s].conditions)if(!yg(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 ed(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=lu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=gg.default.pick(i,px);return s.field=cu(s.field),s})}]}}function Ex(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Je={};P(Je,{cancelableTimeout:()=>Eg,cron:()=>mp,deepGet:()=>td,duplicateName:()=>vC,getSequentialName:()=>NC,getUserColor:()=>Ax,getUserInitials:()=>Tx,getUserLabel:()=>Sx,isGoogleSheets:()=>Ix,isSQL:()=>Ox,lists:()=>Tp,retry:()=>xx,roles:()=>Ep,schema:()=>Io,views:()=>yp,wait:()=>rd,withTimeout:()=>_x});var td=(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},Tx=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"},Ax=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%)`},Sx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function Eg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function _x(t,e){let[r,n]=Eg(t),i=await Promise.race([e(),r]);return n(),i}function Ix(t){return t==="GOOGLE_SHEETS"}function Ox(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function rd(t){return new Promise(e=>setTimeout(e,t))}async function xx(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 rd(s);try{return await t()}catch(o){n=o}}throw n}var mp={};P(mp,{getNextExecutionDates:()=>gC,validate:()=>yC});var CT=W(qt()),vT=W(bT()),DT="(Input cron: ",mC={"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 hC(t){let e=[];for(let r of t){r.includes(DT)&&(r=r.split(DT)[0].trim());for(let[n,i]of Object.entries(mC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function gC(t,e=4){let r=vT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function yC(t){let e=(0,CT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:hC(e.getError())}}var Io={};P(Io,{decodeNonAscii:()=>hp,encodeNonAscii:()=>AC,isDeprecatedSingleUserColumn:()=>EC,isNumeric:()=>SC,isRequired:()=>TC});function EC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function TC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function AC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function hp(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function SC(t){return t.type==="number"||t.type==="bigint"}var yp={};P(yp,{basicFields:()=>RC,calculationFields:()=>xC,hasCalculationFields:()=>OC,isBasicViewField:()=>_C,isCalculationField:()=>Oo,isCalculationView:()=>IC,isV2:()=>wC,isVisible:()=>NT});var gp=require("lodash");function Oo(t){return"calculationType"in t}function _C(t){return!Oo(t)}function IC(t){return t.type==="calculation"}function OC(t){return Object.values(t.schema||{}).some(Oo)}function xC(t){return(0,gp.pickBy)(t.schema||{},Oo)}function NT(t){return t.visible!==!1}function RC(t,e){let{visible:r=!0}=e||{};return(0,gp.pickBy)(t.schema||{},n=>!Oo(n)&&(!r||NT(n)))}function wC(t){return t.version===2}var Ep={};P(Ep,{checkForRoleInheritanceLoops:()=>DC});function bC(t){return`role${w}${t}`}function DC(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=bC(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 Tp={};P(Tp,{punctuateList:()=>CC});function CC(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 vC=(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}`},NC=(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 PC=/{{([^{].*?)}}/g,LT=Object.values(Si),LC=[...Object.values(xr),...Object.values(zt),...Object.values(fn)],UC=(t,e,r)=>{let n=rt,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"||Io.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},UT=[rt.StartsWith.value,rt.Like.value,rt.Equals.value,rt.NotEquals.value,rt.Contains.value,rt.NotContains.value,rt.ContainsAny.value,rt.In.value];function _p(t,e){for(let r of LT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Ip=t=>{for(let e of UT)if(t[e])for(let r of Object.keys(t)){if(r!==e)continue;if(typeof t[r]=="object")for(let[i,s]of Object.entries(t[r]))(s==null||s===""||MC(s))&&delete t[e][i]}return t=_p(t,Ip),t};function MC(t){return Array.isArray(t)&&t.length===0}var cu=t=>Op(t).key,Op=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}},Ap=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}=Op(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=hp(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function FC(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(PC)||[]).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(Ha(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(Ha(r)){let c=mg[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)||jh(r)||Ha(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 lu(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 MT(t){if(!t)return{};if(Array.isArray(t)&&(t=ed(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=PT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=MT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=lu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=PT(n.logicalOperator)),{[a]:{conditions:o.map(FC).filter(u=>u)}}})},e}function PT(t){return t==="all"?"$and":"$or"}function xp(t){if(!t)return t;for(let e of Object.values(zt)){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 _p(t,xp),t}function kC(t,e){let r=qu(t,e.query);e.sort&&(r=FT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=kT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function qu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Ip(e),e=xp(e),!Sp(e)&&e.onEmptyFilter==="none")return[];let r=(E,I)=>k=>{for(let[D,B]of Object.entries(e[E]||{})){let de=ja(E)?k:td(k,cu(D)),ln=I(de,B);if(e.allOr&&ln)return!0;if(!e.allOr&&!ln)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 D=(0,ji.default)(E);if(D.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 D.isAfter(B)&&D.isBefore(de)||D.isSame(B)||D.isSame(de);if(B.isValid())return D.isAfter(B)||D.isSame(B);if(de.isValid())return D.isBefore(de)||D.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 D of E)if(o(D,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 D=(0,ji.default)(I);if(D.isValid())return k.isSame(D)}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),p=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)),f=E=>(I,k)=>!Array.isArray(I)||(typeof k=="string"&&(k=k.split(","),typeof I[0]=="number"&&(k=k.map(D=>parseFloat(D)))),!Array.isArray(k))?!1:k.length===0?!0:k[E](D=>o(I,D)),g=r("contains",(E,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(E,I)),y=r("notContains",(E,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(E,I)),T=r("containsAny",f("some")),_=r("$and",(E,I)=>{if(!I.length)return!1;for(let k of I)if(!qu([E],k).length)return!1;return!0}),S=r("$or",(E,I)=>{if(!I.length)return!1;for(let k of I)if(qu([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:p,oneOf:m,contains:g,containsAny:T,notContains:y,$and:_,$or:S},k=Object.entries(e||{}).filter(([D,B])=>!["allOr","onEmptyFilter"].includes(D)&&B&&Object.keys(B).length>0).map(([D])=>I[D]?.(E)??!1);return Sp(e)?e.allOr?k.some(D=>D===!0):k.every(D=>D===!0):!0};return t.filter(x)}function FT(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 kT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Sp=t=>{if(!t)return!1;let e=r=>{for(let n of LT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of LC){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 ut={};P(ut,{applications:()=>wp,automations:()=>bp,screens:()=>Pp,users:()=>Np});var wp={};P(wp,{getDevAppID:()=>BC,getProdAppID:()=>Qu});var Rp=Rr("app"),xo=Rr("app_dev");function BC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(xo))return t;let e=t.split(Rp);e.shift();let r=e.join(Rp);return`${xo}${r}`}function Qu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(xo))return t;let e=t.split(xo);e.shift();let r=e.join(xo);return`${Rp}${r}`}var bp={};P(bp,{checkForCollectStep:()=>WC,isAppAction:()=>$C,isRowAction:()=>GC,isWebhookAction:()=>VC});function GC(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function VC(t){return t.definition.trigger?.stepId==="WEBHOOK"}function $C(t){return t.definition.trigger?.stepId==="APP"}function BT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(zh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(BT(r))return!0}}return!1}function WC(t){return BT(t.definition.steps)}var Np={};P(Np,{canCreateApps:()=>qC,containsUserID:()=>JC,getGlobalUserID:()=>YC,getUserAppGroups:()=>zC,getUserGroups:()=>vp,hasAdminPermissions:()=>Cp,hasAppBuilderPermissions:()=>Ku,hasAppCreatorPermissions:()=>GT,hasBuilderPermissions:()=>HC,hasCreatorPermissions:()=>Yu,isAdmin:()=>Hu,isAdminOrBuilder:()=>QC,isAdminOrGlobalBuilder:()=>jC,isBuilder:()=>Dp,isCreator:()=>KC,isGlobalBuilder:()=>ju,userAppAccessList:()=>ZC});var Br=W(require("lodash/fp"));function Dp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Qu(e))):!1}function ju(t){return Dp(t)&&!Ku(t)||Hu(t)}function qC(t){return ju(t)||Yu(t)}function Hu(t){return t?Cp(t):!1}function QC(t,e){return Dp(t,e)||Hu(t)}function jC(t){return ju(t)||Hu(t)}function Ku(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function GT(t){return t?Br.flow(Br.get("roles"),Br.values,Br.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function HC(t){return t?t.builder?.global||Ku(t)||Yu(t):!1}function Cp(t){return t?!!t.admin?.global:!1}function Yu(t){return t?!!t.builder?.creator:!1}function KC(t){return t?ju(t)||Cp(t)||Yu(t)||Ku(t)||GT(t):!1}function YC(t){if(typeof t!="string")return t;let e=`ro${w}ta_users${w}`;return t.startsWith(e)?t.split(e)[1]:t}function JC(t){return typeof t!="string"?!1:t.includes(`us${w}`)}function vp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function zC(t,e,r){let n=Qu(t);return vp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function ZC(t,e){let n=vp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Pp={};P(Pp,{findInSettings:()=>XC});function XC(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 fH={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},mH={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},hH={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 IH={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 RH={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 DH={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 NH={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 UH={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 kH={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 VH={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 qH={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 HH={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 JH={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 XH={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 dv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},rK={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(Wl),pretty:Object.values(dv)},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 sK={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 uK={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 dK={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(ql)},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 VT=(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))(VT||{}),mK={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(VT)}},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 $T=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))($T||{}),yK={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($T),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 Ev={ascending:"Ascending",descending:"Descending"},AK={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(Ev)},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 IK={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 RK={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 DK={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 NK={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 UK={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 kK={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 VK={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 qK={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 HK={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 WT=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(WT||{}),JK={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(WT)}},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 XK={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(Gl),pretty:Object.values(Jh)},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 r2={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(Vl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values($l),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 s2={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 u2={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 Uv={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 Fv={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 Bv={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 Vv={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 Wv={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 Qv={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 Hv={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 O2=Object.values(ye).sort((t,e)=>e.length-t.length);var x2=Object.values(Bl).sort((t,e)=>e.length-t.length);var R2=new RegExp("^datasource_plus_(.+)__(.+)$"),Ju=t=>e=>!!e&&e.startsWith(`${t}${w}`);var w2=Ju("ta"),b2=Ju("view"),D2=Ju("datasource"),C2=Ju("query");var zu=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(zu||{}),Gr=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes_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))(Gr||{}),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"}},yt=Rr("app"),Zu=Rr("app_dev"),Et=Zu,Lp="internal",Up="budibase",Kt="_design/sqlite",Mp="ta_bb_jobs",Fp="ta_bb_inventory",kp="ta_bb_expenses",Bp="ta_bb_employee",Ro=`ro${w}ta_users${w}`,wo=(r=>(r[r.SQLITE=Kt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(wo||{});var Xu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Xu||{}),Jn=(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))(Jn||{}),Gp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Gp||{}),Vp=(u=>(u.SETTINGS="settings",u.ACCOUNT="account",u.SMTP="smtp",u.GOOGLE="google",u.OIDC="oidc",u.OIDC_LOGOS="logos_oidc",u.SCIM="scim",u.AI="AI",u))(Vp||{}),qT=new Date(-2147483647e3),ec=new Date(2147483647e3),Te="default";var Ca={};P(Ca,{CacheKey:()=>ve,TTL:()=>si,app:()=>ea,bustCache:()=>ns,destroy:()=>Ho,docWritethrough:()=>Hm,generic:()=>Ko,get:()=>oi,invite:()=>dm,keys:()=>yc,passwordReset:()=>Qm,store:()=>lr,user:()=>sn,withCache:()=>jr,withCacheWithDynamicTTL:()=>yA,writethrough:()=>qm});var Ko={};P(Ko,{CacheKey:()=>ve,TTL:()=>si,bustCache:()=>ns,destroy:()=>Ho,get:()=>oi,keys:()=>yc,store:()=>lr,withCache:()=>jr,withCacheWithDynamicTTL:()=>yA});var Ae={};P(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Mo,doInAppContext:()=>UN,doInAppMigrationContext:()=>FN,doInAutomationContext:()=>CN,doInContext:()=>cf,doInEnvironmentContext:()=>GN,doInFeatureFlagOverrideContext:()=>gf,doInIPContext:()=>pf,doInIdentityContext:()=>Do,doInLicenseContext:()=>NN,doInScimContext:()=>VN,doInSelfHostTenantUsingCloud:()=>vN,doInTenant:()=>qe,ensureSnippetContext:()=>fA,getAppDB:()=>ts,getAppId:()=>Ue,getAuditLogDBName:()=>dA,getAuditLogsDB:()=>WN,getAutomationId:()=>lf,getCurrentContext:()=>Xn,getDevAppDB:()=>QN,getDevAppId:()=>kN,getEnvironmentVariables:()=>$N,getFeatureFlagOverrides:()=>hf,getFeatureFlags:()=>ff,getGlobalDB:()=>ie,getGlobalDBName:()=>Zn,getIP:()=>df,getIdentity:()=>cr,getLicense:()=>PN,getPlatformURL:()=>uf,getProdAppDB:()=>qN,getProdAppId:()=>BN,getScimDBName:()=>RN,getSelfHostCloudDB:()=>LN,getTableForView:()=>jN,getTenantIDFromAppID:()=>es,getTenantId:()=>Q,identity:()=>bo,isMultiTenant:()=>Wr,isScim:()=>Ut,isSelfHostUsingCloud:()=>lc,isTenancyEnabled:()=>bN,isTenantIdSet:()=>wN,setFeatureFlags:()=>mf,setTableForView:()=>HN});var bo={};P(bo,{doInAccountContext:()=>zv,doInIdentityContext:()=>qp,doInUserContext:()=>Qp,getAccountUserId:()=>QT,getIdentity:()=>Wp});function Wp(){return cr()}function qp(t,e){return Do(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 qp(n,r)}function zv(t,e){let r=QT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return qp(i,e)}function QT(t){let e;return Ya(t)?e=t.budibaseUserId:e=t.accountId,e}var nc=require("fs");var KT=require("lodash"),jp=require("crypto"),Co=require("path"),Zv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Co.resolve)((0,Co.join)(__dirname,"..","..","..")),jT=!1;!jT&&rc()&&!Hp()&&(require("dotenv").config({path:(0,Co.join)(Zv,".env")}),jT=!0);function Hp(){return YT()}function YT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function rc(){return process.env.NODE_ENV!=="production"}function Xv(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"},HT=!!parseInt(process.env.SELF_HOSTED||"");function eN(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function tN(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function rN(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,nc.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,nc.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(rc()&&!Hp())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 nN(){return Nt.SERVICE_TYPE==="worker"}function iN(){return Nt.SERVICE_TYPE==="apps"}function sN(){return Nt.BUDIBASE_ENVIRONMENT==="QA"}function oN(){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 Nt={isTest:Hp,isJest:YT,isDev:rc,isWorker:nN,isApps:iN,isQA:sN,isProd:()=>!rc(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,jp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,jp.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:eN(),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:HT,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:oN(),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:tN(),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:HT?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...rN(),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,Nt[t]=e},ROLLING_LOG_MAX_SIZE:process.env.ROLLING_LOG_MAX_SIZE||"10M",DISABLE_SCIM_CALLS:process.env.DISABLE_SCIM_CALLS,BB_ADMIN_USER_EMAIL:process.env.BB_ADMIN_USER_EMAIL,BB_ADMIN_USER_PASSWORD:process.env.BB_ADMIN_USER_PASSWORD,OPENAI_API_KEY:process.env.OPENAI_API_KEY,MIN_VERSION_WITHOUT_POWER_ROLE:process.env.MIN_VERSION_WITHOUT_POWER_ROLE||"3.0.0",DISABLE_CONTENT_SECURITY_POLICY:process.env.DISABLE_CONTENT_SECURITY_POLICY,BSON_BUFFER_SIZE:Xv(process.env.BSON_BUFFER_SIZE)};function vo(t){let e=(0,KT.cloneDeep)(Nt),r;for(r in t)Nt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Nt._set(n,i)}}function JT(t,e){let r=vo(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var zT=["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(Nt))e==="0"&&(Nt[t]=0),e==="false"&&(Nt[t]=0);var h=Nt;var ZT=require("async_hooks"),be=class t{static{this.storage=new ZT.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var Kp="No app provided";function Vr(t){if(!t)throw Kp;return t.startsWith(Et)}function aN(t){if(!t)throw Kp;return t.startsWith(yt)&&!Vr(t)}function No(t){if(!t)throw Kp;return Vr(t.appId)}function ic(t){if(!t||t.startsWith(Et))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}var Ji=ic;function ct(t){if(!t||!t.startsWith(Et))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}function uN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Pt=t=>{let e=Yp(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:Yp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Yp=(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 cA=W(require("@budibase/nano"));var XT=W(require("node-fetch"));function sc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function eA(t,e="GET",r){let{url:n,cookie:i}=Pt(),s=`${n}/${t}`;return await Po({url:s,cookie:i,method:e,body:r})}async function Po({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,XT.default)(sc(encodeURI(t)),i)}async function Jp(t,e="GET",r){let n=await eA(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var zn=W(require("pouchdb"));var tA,rA=!1,zp=(t={})=>{let{url:e,cookie:r}=Pt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),zn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");zn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");zn.default.plugin(i.plugin),zn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");zn.default.plugin(i)}return zn.default.defaults(n)};function oc(t){tA=zp(t),rA=!0}var lN=()=>{if(!rA)throw new Error("init has not been called")};function Tt(t,e){lN();let r=new tA(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 Lo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var nA=require("uuid");function fe(){return(0,nA.v4)().replace(/-/g,"")}var Ie=W(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 of={};P(of,{breakExternalTableId:()=>ef,breakRowIdField:()=>IN,buildExternalTableId:()=>yN,convertRowId:()=>_N,encodeTableId:()=>EN,encodeViewId:()=>TN,extractDate:()=>rf,generateRowIdField:()=>AN,getNativeSql:()=>Zi,isExternalTable:()=>Xp,isExternalTableID:()=>ac,isInternalTableID:()=>gN,isRowId:()=>SN,isValidFilter:()=>cc,isValidISODateString:()=>uc,isValidISODateStringWithoutTimezone:()=>tf,isValidTime:()=>nf,sqlLog:()=>Uo,validateManyToMany:()=>sf});var Zp=`${w}${w}`,sA=/^\[.*]$/g,dN=encodeURIComponent(" "),pN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?Z)?$/,fN=/^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}:\d{2}(?:.\d{3})?)?$/,mN=/(\d{4}-\d{2}-\d{2})/,hN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function ac(t){return t.startsWith("datasource"+w)}function gN(t){return!ac(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 Xp(t){return t?.sourceId&&t.sourceId.includes("datasource"+w)&&t?.sourceId!==vi||t?.sourceType==="external"?!0:!!(t?._id&&ac(t._id))}function yN(t,e){return`${t}${Zp}${encodeURIComponent(e)}`}function EN(t){return ac(t)?encodeURIComponent(t):t}function TN(t){return encodeURIComponent(t)}function ef(t){let e=t.split(Zp),r=e.shift(),n=e.join(Zp);if(n.includes(dN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function AN(t=[]){Array.isArray(t)||(t=[t]);for(let e in t)t[e]instanceof Buffer&&(t[e]=t[e].toString());return encodeURIComponent(JSON.stringify(t).replace(/"/g,"'"))}function SN(t){return Array.isArray(t)||typeof t=="string"&&t.match(sA)!=null}function _N(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(sA)!=null?t.substring(1,t.length-1):t}function IN(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 uc(t){let e=t.trim();if(!pN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function tf(t){let e=t.trim();if(!fN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function rf(t){let e=t.match(mN);if(e)return e[0]}function cc(t){return t!=null&&t!==""}function nf(t){return hN.test(t)}function Uo(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 ON(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function sf(t){if(ON(t))return t}var oA="Database does not exist.";function aA(t){return(0,cA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var $r=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function xN(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=Pt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Pt(n),this.instanceNano=aA(this.couchInfo)),t.nano||t.init()}static init(){let e=Pt();t.nano=aA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Po({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new $r(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===oA)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new $r(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new $r(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(Hh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new $r(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=fe()),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===oA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=sc(`${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 Po(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new $r("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${Kt}`;return Uo("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(Kt)){let e=await this.get(Kt);e.sql.tables={},await this.put(e),await this.sqlDiskCleanup()}try{return await this.nano().db.destroy(this.name)}catch(e){if(e.statusCode===404)return{ok:!0};throw new $r(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function We(t,e){return new zi(new Xi(t,e))}async function lt(t,e,r){let n=We(t,r);return await e(n)}async function af(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Jp(e)}var lA=null;function Zn(t){return t||(t=Q()),Mo(t)}function dA(t){return t||(t=Q()),t===Te?xe.AUDIT_LOGS.name:`${t}${w}${xe.AUDIT_LOGS.name}`}function RN(t){return t||(t=Q()),t===Te?xe.SCIM_LOGS.name:`${t}${w}${xe.SCIM_LOGS.name}`}function Mo(t){return!t||t===Te?xe.GLOBAL.name:`${t}${w}${xe.GLOBAL.name}`}function uf(){return h.PLATFORM_URL}function Wr(){return!!h.MULTI_TENANCY}function wN(){return!!be.get()?.tenantId}function bN(){return h.MULTI_TENANCY}function es(t){if(!t)return;if(!Wr())return Te;let e=t.split(w),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function DN(t){let e;try{e=be.get()}catch{e={}}return e={...e,...t},e}async function Lt(t,e){MN();let r=DN(t);return be.run(r,e)}async function CN(t){return await fA(),await Lt({tenantId:es(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function cf(t,e){let r=es(t);return Lt({tenantId:r,appId:t},e)}async function qe(t,e){return h.MULTI_TENANCY||(t=t||Te),Lt(t?{tenantId:t}:{},e)}async function vN(t,e){return Lt({tenantId:t,isSelfHostUsingCloud:!0},e)}async function NN(t,e){return Lt({license:t},e)}function PN(){return be.get()?.license}function lc(){return!!be.get()?.isSelfHostUsingCloud}function LN(){let t=be.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return We(xe.SELF_HOST_CLOUD.name)}async function UN(t,e){return pA(t,e)}async function pA(t,e,r){if(!t)throw new Error("appId is required");let n=es(t),i={appId:t,...r};return n&&(i.tenantId=n),Lt(i,e)}async function Do(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Lt(r,e)}function MN(){if(be.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function FN(t,e){return pA(t,e,{isMigrating:!0})}function cr(){try{return be.get()?.identity}catch{}}function Q(){if(!Wr())return Te;let e=be.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function lf(){return be.get()?.automationId}function Ue(){let e=be.get()?.appId;return!e&&h.isTest()&&lA?lA:e}function df(){return be.get()?.ip}var kN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return Ji(t)},BN=()=>{let t=Ue();if(!t)throw new Error("Could not get appId");return ct(t)};function GN(t,e){if(!t)throw new Error("Must supply environment variables.");return Lt({environmentVariables:t},e)}function VN(t){return Lt({isScim:!0},t)}function pf(t,e){return Lt({ip:t},e)}async function fA(){let t=Xn();if(!t||t.snippets)return;let e,r=ts();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function $N(){let t=be.get();return t.environmentVariables?t.environmentVariables:null}function ie(){let t=be.get();if(!t||h.MULTI_TENANCY&&!t.tenantId)throw new Error("Global DB not found");if(t.isSelfHostUsingCloud)throw new Error("Global DB not found - self-host users using cloud don't have a global DB");return We(Mo(t?.tenantId))}function WN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return We(dA())}function ts(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(lc())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return We(e,t)}function qN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return We(ct(e),t)}function QN(t){let e=Ue();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return We(ic(e),t)}function Ut(){return!!be.get()?.isScim}function Xn(){try{return be.get()}catch{return}}function ff(t){let e=Xn();if(e)return e.featureFlagCache?.[t]}function mf(t,e){let r=Xn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function hf(){return Xn()?.featureFlagOverrides||{}}async function gf(t,e){return await Lt({featureFlagOverrides:t},e)}function jN(t){let e=Xn();if(e)return e.viewToTableCache?.[t]}function HN(t,e){let r=Xn();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Qr={};P(Qr,{getAppClient:()=>gc,getCacheClient:()=>_f,getDocWritethroughClient:()=>ZN,getInviteClient:()=>ri,getLockClient:()=>Of,getPasswordResetClient:()=>jo,getSessionClient:()=>qr,getSocketClient:()=>zN,getUserClient:()=>Qo,getWritethroughClient:()=>If,init:()=>Mt,shutdown:()=>gA});var hc=W(require("ioredis"));var fc={};P(fc,{Databases:()=>yf,SEPARATOR:()=>rs,SelectableDatabase:()=>dc,getRedisClusterOptions:()=>Ef,getRedisConnectionDetails:()=>pc,getRedisOptions:()=>ei,removeDbPrefix:()=>Tf});var rs="-",yf=(_=>(_.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",_))(yf||{}),dc=(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))(dc||{});function pc(){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 Ef(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...ei(),tls:{}}}}function ei(){let{host:t,password:e,port:r}=pc();return{connectTimeout:3e4,port:r,host:t,password:e}}function Tf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var mc=require("dd-trace"),hA=require("lodash"),mA;if(h.MOCK_REDIS)try{mA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function KN(t=0){return await mc.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new mA(ei());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=pc();r=new hc.Cluster([{host:n,port:i}],Ef())}else r=new hc.default(ei());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 YN(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:Tf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function JN(t){return t.isCluster}var Af=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await mc.tracer.trace("RedisWrapper.init",async n=>{let i=await KN(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return mc.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;JN(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await YN(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,hA.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,mt({assert:!1},r)));let d={value:l,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:i,from:o},p=[];this._typeError&&p.push(this._typeError),this._whitelistError&&p.push(this._whitelistError),this._blacklistError&&p.push(this._blacklistError),(0,cy.default)({args:d,value:l,path:s,sync:i,tests:p,endEarly:c},m=>{if(m)return void n(m,l);(0,cy.default)({tests:this.tests,args:d,path:s,sync:i,value:l,endEarly:c},n)})}validate(e,r,n){let i=this.resolve(mt({},r,{value:e}));return typeof n=="function"?i._validate(e,r,n):new Promise((s,o)=>i._validate(e,r,(a,u)=>{a?o(a):s(u)}))}validateSync(e,r){let n=this.resolve(mt({},r,{value:e})),i;return n._validate(e,mt({},r,{sync:!0}),(s,o)=>{if(s)throw s;i=o}),i}isValid(e,r){return this.validate(e,r).then(()=>!0,n=>{if(dy.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(dy.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,uy.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Ui.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Ui.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Ui.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Su.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,yw.default)(e).map(s=>new hw.default(s));return i.forEach(s=>{s.isSibling&&n.deps.push(s.key)}),n.conditions.push(new mw.default(i,r)),n}typeError(e){var r=this.clone();return r._typeError=(0,Su.default)({message:e,name:"typeError",test(n){return n!==void 0&&!this.schema.isType(n)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Ui.mixed.oneOf){var n=this.clone();return e.forEach(i=>{n._whitelist.add(i),n._blacklist.delete(i)}),n._whitelistError=(0,Su.default)({message:r,name:"oneOf",test(i){if(i===void 0)return!0;let s=this.schema._whitelist;return s.has(i,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),n}notOneOf(e,r=Ui.mixed.notOneOf){var n=this.clone();return e.forEach(i=>{n._blacklist.add(i),n._whitelist.delete(i)}),n._blacklistError=(0,Su.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)}}};_u.default=Dt;Dt.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Dt.prototype[`${t}At`]=function(e,r,n={}){let{parent:i,parentPath:s,schema:o}=(0,gw.getIn)(this,e,r,n.context);return o[t](i&&i[s],mt({},n,{parent:i,path:e}))};for(let t of["equals","is"])Dt.prototype[t]=Dt.prototype.oneOf;for(let t of["not","nope"])Dt.prototype[t]=Dt.prototype.notOneOf;Dt.prototype.optional=Dt.prototype.notRequired});var my=H(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=fy;zs.default=void 0;var Ew=Tw(ur());function Tw(t){return t&&t.__esModule?t:{default:t}}var Od=Ew.default,Aw=Od;zs.default=Aw;function fy(){return new Od}fy.prototype=Od.prototype});var Mi=H(Iu=>{"use strict";Object.defineProperty(Iu,"__esModule",{value:!0});Iu.default=void 0;var Sw=t=>t==null;Iu.default=Sw});var Ty=H(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=Ey;Xs.default=void 0;var _w=yy(ur()),hy=or(),gy=yy(Mi());function yy(t){return t&&t.__esModule?t:{default:t}}function Ey(){return new Zs}var Zs=class extends _w.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=hy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,gy.default)(r)||r===!0}})}isFalse(e=hy.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,gy.default)(r)||r===!1}})}};Xs.default=Zs;Ey.prototype=Zs.prototype});var _y=H(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=Sy;to.default=void 0;var Ht=or(),cr=Ay(Mi()),Iw=Ay(ur());function Ay(t){return t&&t.__esModule?t:{default:t}}var Ow=/^((([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,xw=/^((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,Rw=/^(?:[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,ww=t=>(0,cr.default)(t)||t===t.trim(),bw={}.toString();function Sy(){return new eo}var eo=class extends Iw.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===bw?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=Ht.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,cr.default)(n)||n.length===this.resolve(e)}})}min(e,r=Ht.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,cr.default)(n)||n.length>=this.resolve(e)}})}max(e,r=Ht.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(n){return(0,cr.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||Ht.string.matches,params:{regex:e},test:o=>(0,cr.default)(o)||o===""&&n||o.search(e)!==-1})}email(e=Ht.string.email){return this.matches(Ow,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ht.string.url){return this.matches(xw,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ht.string.uuid){return this.matches(Rw,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Ht.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:ww})}lowercase(e=Ht.string.lowercase){return this.transform(r=>(0,cr.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,cr.default)(r)||r===r.toLowerCase()})}uppercase(e=Ht.string.uppercase){return this.transform(r=>(0,cr.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,cr.default)(r)||r===r.toUpperCase()})}};to.default=eo;Sy.prototype=eo.prototype});var xy=H(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=Oy;no.default=void 0;var Fn=or(),Bn=Iy(Mi()),Dw=Iy(ur());function Iy(t){return t&&t.__esModule?t:{default:t}}var Cw=t=>t!=+t;function Oy(){return new ro}var ro=class extends Dw.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"&&!Cw(e)}min(e,r=Fn.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Bn.default)(n)||n>=this.resolve(e)}})}max(e,r=Fn.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Bn.default)(n)||n<=this.resolve(e)}})}lessThan(e,r=Fn.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(n){return(0,Bn.default)(n)||n<this.resolve(e)}})}moreThan(e,r=Fn.number.moreThan){return this.test({message:r,name:"min",exclusive:!0,params:{more:e},test(n){return(0,Bn.default)(n)||n>this.resolve(e)}})}positive(e=Fn.number.positive){return this.moreThan(0,e)}negative(e=Fn.number.negative){return this.lessThan(0,e)}integer(e=Fn.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Bn.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Bn.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,Bn.default)(i)?i:Math[e](i))}};no.default=ro;Oy.prototype=ro.prototype});var Ry=H(xd=>{"use strict";Object.defineProperty(xd,"__esModule",{value:!0});xd.default=Nw;var vw=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function Nw(t){var e=[1,4,5,6,7,10,11],r=0,n,i;if(i=vw.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 Dy=H(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=wd;io.default=void 0;var Pw=Ou(Ry()),wy=or(),by=Ou(Mi()),Lw=Ou(kn()),Uw=Ou(ur());function Ou(t){return t&&t.__esModule?t:{default:t}}var Rd=new Date(""),Mw=t=>Object.prototype.toString.call(t)==="[object Date]";function wd(){return new ki}var ki=class extends Uw.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,Pw.default)(e),isNaN(e)?Rd:new Date(e))})})}_typeCheck(e){return Mw(e)&&!isNaN(e.getTime())}prepareParam(e,r){let n;if(Lw.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=wy.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,by.default)(i)||i>=this.resolve(n)}})}max(e,r=wy.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,by.default)(i)||i<=this.resolve(n)}})}};io.default=ki;ki.INVALID_DATE=Rd;wd.prototype=ki.prototype;wd.INVALID_DATE=Rd});var vy=H((Vj,bd)=>{"use strict";bd.exports=function(t){return Cy(kw(t),t)};bd.exports.array=Cy;function Cy(t,e){var r=t.length,n=new Array(r),i={},s=r,o=Fw(e),a=Bw(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var p;try{p=", node was:"+JSON.stringify(c)}catch{p=""}throw new Error("Cyclic dependency"+p)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!i[l]){i[l]=!0;var m=o.get(c)||new Set;if(m=Array.from(m),l=m.length){d.add(c);do{var f=m[--l];u(f,a.get(f),d)}while(l);d.delete(c)}n[--r]=c}}}function kw(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 Fw(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 Bw(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var Ny=H(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});Dd.default=Qw;var Gw=xu(require("lodash/has")),Vw=xu(vy()),$w=Hs(),Ww=xu(kn()),qw=xu(Li());function xu(t){return t&&t.__esModule?t:{default:t}}function Qw(t,e=[]){let r=[],n=[];function i(s,o){var a=(0,$w.split)(s)[0];~n.indexOf(a)||n.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Gw.default)(t,s)){let o=t[s];~n.indexOf(s)||n.push(s),Ww.default.isRef(o)&&o.isSibling?i(o.path,s):(0,qw.default)(o)&&"deps"in o&&o.deps.forEach(a=>i(a,s))}return Vw.default.array(n,r).reverse()}});var Ly=H(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});Cd.default=jw;function Py(t,e){let r=1/0;return t.some((n,i)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(n))!==-1)return r=i,!0}),r}function jw(t){return(e,r)=>Py(t,e)-Py(t,r)}});var Vy=H(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=Gy;oo.default=void 0;var Uy=Kt(require("lodash/has")),My=Kt(require("lodash/snakeCase")),Hw=Kt(require("lodash/camelCase")),Kw=Kt(require("lodash/mapKeys")),Yw=Kt(require("lodash/mapValues")),Jw=Hs(),ky=or(),zw=Kt(Ny()),By=Kt(Ly()),Zw=Kt(gu()),Xw=Kt(Un()),vd=Kt(ur());function Kt(t){return t&&t.__esModule?t:{default:t}}function Fi(){return Fi=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},Fi.apply(this,arguments)}var Fy=t=>Object.prototype.toString.call(t)==="[object Object]";function eb(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(n=>r.indexOf(n)===-1)}var tb=(0,By.default)([]),so=class extends vd.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=tb,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 Fy(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=Fi({},r,{parent:u,__validating:r.__validating||!1}),l=!1;for(let d of a){let p=s[d],m=(0,Uy.default)(i,d);if(p){let f,g=i[d];c.path=(r.path?`${r.path}.`:"")+d,p=p.resolve({value:g,context:r.context,parent:u});let y="spec"in p?p.spec:void 0,T=y?.strict;if(y?.strip){l=l||d in i;continue}f=!r.__validating||!T?p.cast(i[d],c):i[d],f!==void 0&&(u[d]=f)}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(!Xw.default.isError(l)||u)return void n(l,d);i.push(l)}if(!c||!Fy(d)){n(i[0]||null,d);return}a=a||d;let p=this._nodes.map(m=>(f,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],Fi({},r,{path:y,from:o,strict:!0,parent:d,originalValue:a[m]}),g);return}g(null)});(0,Zw.default)({sync:s,tests:p,value:d,errors:i,endEarly:u,sort:this._sortErrors,path:r.path},n)})}clone(e){let r=super.clone(e);return r.fields=Fi({},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 vd.default&&s instanceof vd.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,zw.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,Jw.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Uy.default)(s,e)&&(o=Fi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=ky.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=eb(this.schema,i);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return n.spec.noUnknown=e,n}unknown(e=!0,r=ky.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,Kw.default)(r,(n,i)=>e(i)))}camelCase(){return this.transformKeys(Hw.default)}snakeCase(){return this.transformKeys(My.default)}constantCase(){return this.transformKeys(e=>(0,My.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Yw.default)(this.fields,r=>r.describe()),e}};oo.default=so;function Gy(t){return new so(t)}Gy.prototype=so.prototype});var Wy=H(uo=>{"use strict";Object.defineProperty(uo,"__esModule",{value:!0});uo.create=$y;uo.default=void 0;var Nd=Bi(Mi()),rb=Bi(Li()),nb=Bi(js()),Pd=or(),ib=Bi(gu()),sb=Bi(Un()),ob=Bi(ur());function Bi(t){return t&&t.__esModule?t:{default:t}}function Ru(){return Ru=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},Ru.apply(this,arguments)}function $y(t){return new ao(t)}var ao=class extends ob.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,Ru({},r,{path:`${r.path||""}[${a}]`}));return u!==o&&(i=!0),u});return i?s:n}_validate(e,r={},n){var i,s;let o=[],a=r.sync,u=r.path,c=this.innerType,l=(i=r.abortEarly)!=null?i:this.spec.abortEarly,d=(s=r.recursive)!=null?s:this.spec.recursive,p=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(m,f)=>{if(m){if(!sb.default.isError(m)||l)return void n(m,f);o.push(m)}if(!d||!c||!this._typeCheck(f)){n(o[0]||null,f);return}p=p||f;let g=new Array(f.length);for(let y=0;y<f.length;y++){let T=f[y],_=`${r.path||""}[${y}]`,S=Ru({},r,{path:_,strict:!0,parent:f,index:y,originalValue:p[y]});g[y]=(R,E)=>c.validate(T,S,E)}(0,ib.default)({sync:a,path:u,value:f,errors:o,endEarly:l,tests:g},n)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,rb.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,nb.default)(e));return r.innerType=e,r}length(e,r=Pd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Nd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Pd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Nd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Pd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Nd.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)}};uo.default=ao;$y.prototype=ao.prototype});var qy=H(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.create=cb;co.default=void 0;var ab=ub(Li());function ub(t){return t&&t.__esModule?t:{default:t}}function cb(t){return new wu(t)}var wu=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,n={})=>{let i=this.builder(r,n);if(!(0,ab.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)}},lb=wu;co.default=lb});var Qy=H(Ld=>{"use strict";Object.defineProperty(Ld,"__esModule",{value:!0});Ld.default=fb;var db=pb(or());function pb(t){return t&&t.__esModule?t:{default:t}}function fb(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{db.default[e][r]=t[e][r]})})}});var Md=H(he=>{"use strict";Object.defineProperty(he,"__esModule",{value:!0});he.addMethod=Ab;Object.defineProperty(he,"MixedSchema",{enumerable:!0,get:function(){return jy.default}});Object.defineProperty(he,"mixed",{enumerable:!0,get:function(){return jy.create}});Object.defineProperty(he,"BooleanSchema",{enumerable:!0,get:function(){return Ud.default}});Object.defineProperty(he,"bool",{enumerable:!0,get:function(){return Ud.create}});Object.defineProperty(he,"boolean",{enumerable:!0,get:function(){return Ud.create}});Object.defineProperty(he,"StringSchema",{enumerable:!0,get:function(){return Hy.default}});Object.defineProperty(he,"string",{enumerable:!0,get:function(){return Hy.create}});Object.defineProperty(he,"NumberSchema",{enumerable:!0,get:function(){return Ky.default}});Object.defineProperty(he,"number",{enumerable:!0,get:function(){return Ky.create}});Object.defineProperty(he,"DateSchema",{enumerable:!0,get:function(){return Yy.default}});Object.defineProperty(he,"date",{enumerable:!0,get:function(){return Yy.create}});Object.defineProperty(he,"ObjectSchema",{enumerable:!0,get:function(){return Jy.default}});Object.defineProperty(he,"object",{enumerable:!0,get:function(){return Jy.create}});Object.defineProperty(he,"ArraySchema",{enumerable:!0,get:function(){return zy.default}});Object.defineProperty(he,"array",{enumerable:!0,get:function(){return zy.create}});Object.defineProperty(he,"ref",{enumerable:!0,get:function(){return mb.create}});Object.defineProperty(he,"lazy",{enumerable:!0,get:function(){return hb.create}});Object.defineProperty(he,"ValidationError",{enumerable:!0,get:function(){return gb.default}});Object.defineProperty(he,"reach",{enumerable:!0,get:function(){return yb.default}});Object.defineProperty(he,"isSchema",{enumerable:!0,get:function(){return Zy.default}});Object.defineProperty(he,"setLocale",{enumerable:!0,get:function(){return Eb.default}});Object.defineProperty(he,"BaseSchema",{enumerable:!0,get:function(){return Tb.default}});var jy=Gn(my()),Ud=Gn(Ty()),Hy=Gn(_y()),Ky=Gn(xy()),Yy=Gn(Dy()),Jy=Gn(Vy()),zy=Gn(Wy()),mb=kn(),hb=qy(),gb=lo(Un()),yb=lo(_d()),Zy=lo(Li()),Eb=lo(Qy()),Tb=lo(ur());function lo(t){return t&&t.__esModule?t:{default:t}}function Xy(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Xy=function(){return t},t}function Gn(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Xy();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 Ab(t,e,r){if(!t||!(0,Zy.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 eE=H(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});var kd=Bd();Fd.default=()=>{(0,kd.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,kd.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,kd.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 Bd=H(Le=>{"use strict";var Sb=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]}),_b=Le&&Le.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),Ib=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)&&Sb(e,t,r);return _b(e,t),e},Ob=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=Ib(Md());Md();var po=wt(),xb=Ob(eE());bt();var Vn={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}}},tE=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(),Rb=t=>Vn[t]?(0,po.valid)(Vn[t]):(0,po.err)(`Option preset '${t}' not found.`);Le.getOptionPreset=Rb;var wb=()=>Vn;Le.getOptionPresets=wb;var bb=(t,e)=>{Vn[t]=tE.validateSync(e,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0})};Le.registerOptionPreset=bb;var Db=t=>{var e,r,n,i,s,o,a,u,c,l,d,p,m,f,g,y,T,_,S,R;try{(0,xb.default)();let E;if(t.preset)if(typeof t.preset=="string"){if(!Vn[t.preset])return(0,po.err)([`Option preset ${t.preset} does not exist.`]);E=Vn[t.preset]}else E=t.preset;else E=Vn.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:(p=E.hours.upperLimit)!==null&&p!==void 0?p:E.hours.maxValue},daysOfMonth:{lowerLimit:(m=E.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:E.daysOfMonth.minValue,upperLimit:(f=E.daysOfMonth.upperLimit)!==null&&f!==void 0?f: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:(R=E.years.upperLimit)!==null&&R!==void 0?R:E.years.maxValue}}),t.override),L=b.object({presetId:b.string().required(),preset:tE.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,po.valid)(L)}catch(E){return(0,po.err)(E.errors)}};Le.validateOptions=Db});var jt=H((fo,Vd)=>{"use strict";var Wn=fo&&fo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fo,"__esModule",{value:!0});var $n=wt(),Cb=Wn(Cg()),vb=Wn(vg()),Nb=Wn(Ng()),Pb=Wn(Pg()),Lb=Wn(Lg()),Ub=Wn(Ug()),Mb=Wn(Mg()),kb=Bd();bt();var Fb=(t,e)=>{let r=t.trim().split(" ");if(e.useSeconds&&e.useYears&&r.length!==7)return(0,$n.err)(`Expected 7 values, but got ${r.length}.`);if((e.useSeconds&&!e.useYears||e.useYears&&!e.useSeconds)&&r.length!==6)return(0,$n.err)(`Expected 6 values, but got ${r.length}.`);if(!e.useSeconds&&!e.useYears&&r.length!==5)return(0,$n.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,$n.valid)(n)},Gd=(t,e={})=>{let r=(0,kb.validateOptions)(e);if(r.isError())return r;let n=r.getValue(),i=Fb(t,n);if(i.isError())return(0,$n.err)([`${i.getError()} (Input cron: '${t}')`]);let s=i.getValue(),o=[];if(n.useSeconds&&o.push((0,Cb.default)(s,n)),o.push((0,vb.default)(s,n)),o.push((0,Nb.default)(s,n)),o.push((0,Pb.default)(s,n)),o.push((0,Lb.default)(s,n)),o.push((0,Ub.default)(s,n)),n.useYears&&o.push((0,Mb.default)(s,n)),o.every(u=>u.isValid()))return(0,$n.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,$n.err)(a)};fo.default=Gd;Vd.exports=Gd;Vd.exports.default=Gd});var vT=H(ot=>{"use strict";Object.defineProperty(ot,"__esModule",{value:!0});var dr=class extends Error{},zd=class extends dr{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Zd=class extends dr{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Xd=class extends dr{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Br=class extends dr{},Uu=class extends dr{constructor(e){super(`Invalid unit ${e}`)}},Ue=class extends dr{},Yt=class extends dr{constructor(){super("Zone is an abstract class")}},v="numeric",Nt="short",it="long",Mu={year:v,month:v,day:v},NE={year:v,month:Nt,day:v},Bb={year:v,month:Nt,day:v,weekday:Nt},PE={year:v,month:it,day:v},LE={year:v,month:it,day:v,weekday:it},UE={hour:v,minute:v},ME={hour:v,minute:v,second:v},kE={hour:v,minute:v,second:v,timeZoneName:Nt},FE={hour:v,minute:v,second:v,timeZoneName:it},BE={hour:v,minute:v,hourCycle:"h23"},GE={hour:v,minute:v,second:v,hourCycle:"h23"},VE={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:Nt},$E={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:it},WE={year:v,month:v,day:v,hour:v,minute:v},qE={year:v,month:v,day:v,hour:v,minute:v,second:v},QE={year:v,month:Nt,day:v,hour:v,minute:v},jE={year:v,month:Nt,day:v,hour:v,minute:v,second:v},Gb={year:v,month:Nt,day:v,weekday:Nt,hour:v,minute:v},HE={year:v,month:it,day:v,hour:v,minute:v,timeZoneName:Nt},KE={year:v,month:it,day:v,hour:v,minute:v,second:v,timeZoneName:Nt},YE={year:v,month:it,day:v,weekday:it,hour:v,minute:v,timeZoneName:it},JE={year:v,month:it,day:v,weekday:it,hour:v,minute:v,second:v,timeZoneName:it},Vr=class{get type(){throw new Yt}get name(){throw new Yt}get ianaName(){return this.name}get isUniversal(){throw new Yt}offsetName(e,r){throw new Yt}formatOffset(e,r){throw new Yt}offset(e){throw new Yt}equals(e){throw new Yt}get isValid(){throw new Yt}},$d=null,To=class t extends Vr{static get instance(){return $d===null&&($d=new t),$d}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return aT(e,r,n)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},ep=new Map;function Vb(t){let e=ep.get(t);return e===void 0&&(e=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"}),ep.set(t,e)),e}var $b={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Wb(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 qb(t,e){let r=t.formatToParts(e),n=[];for(let i=0;i<r.length;i++){let{type:s,value:o}=r[i],a=$b[s];s==="era"?n[a]=o:z(a)||(n[a]=parseInt(o,10))}return n}var Wd=new Map,pr=class t extends Vr{static create(e){let r=Wd.get(e);return r===void 0&&Wd.set(e,r=new t(e)),r}static resetCache(){Wd.clear(),ep.clear()}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 aT(e,r,n,this.name)}formatOffset(e,r){return Eo(this.offset(e),r)}offset(e){if(!this.valid)return NaN;let r=new Date(e);if(isNaN(r))return NaN;let n=Vb(this.name),[i,s,o,a,u,c,l]=n.formatToParts?qb(n,r):Wb(n,r);a==="BC"&&(i=-Math.abs(i)+1);let p=Wu({year:i,month:s,day:o,hour:u===24?0:u,minute:c,second:l,millisecond:0}),m=+r,f=m%1e3;return m-=f>=0?f:1e3+f,(p-m)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}},rE={};function Qb(t,e={}){let r=JSON.stringify([t,e]),n=rE[r];return n||(n=new Intl.ListFormat(t,e),rE[r]=n),n}var tp=new Map;function rp(t,e={}){let r=JSON.stringify([t,e]),n=tp.get(r);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),tp.set(r,n)),n}var np=new Map;function jb(t,e={}){let r=JSON.stringify([t,e]),n=np.get(r);return n===void 0&&(n=new Intl.NumberFormat(t,e),np.set(r,n)),n}var ip=new Map;function Hb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=ip.get(i);return s===void 0&&(s=new Intl.RelativeTimeFormat(t,e),ip.set(i,s)),s}var ho=null;function Kb(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}var sp=new Map;function zE(t){let e=sp.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),sp.set(t,e)),e}var op=new Map;function Yb(t){let e=op.get(t);if(!e){let r=new Intl.Locale(t);e="getWeekInfo"in r?r.getWeekInfo():r.weekInfo,"minimalDays"in e||(e={...ZE,...e}),op.set(t,e)}return e}function Jb(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=rp(t).resolvedOptions(),i=t}catch{let u=t.substring(0,r);n=rp(u).resolvedOptions(),i=u}let{numberingSystem:s,calendar:o}=n;return[i,s,o]}}function zb(t,e,r){return(r||e)&&(t.includes("-u-")||(t+="-u"),r&&(t+=`-ca-${r}`),e&&(t+=`-nu-${e}`)),t}function Zb(t){let e=[];for(let r=1;r<=12;r++){let n=Ae.utc(2009,r,1);e.push(t(n))}return e}function Xb(t){let e=[];for(let r=1;r<=7;r++){let n=Ae.utc(2016,11,13+r);e.push(t(n))}return e}function bu(t,e,r,n){let i=t.listingMode();return i==="error"?null:i==="en"?r(e):n(e)}function eD(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||zE(t.locale).numberingSystem==="latn"}var ap=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=jb(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):Ep(e,3);return Re(r,this.padTo)}}},up=class{constructor(e,r,n){this.opts=n,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){let o=-1*(e.offset/60),a=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&pr.create(a).valid?(i=a,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);let s={...this.opts};s.timeZone=s.timeZone||i,this.dtf=rp(r,s)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(r=>{if(r.type==="timeZoneName"){let n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...r,value:n}}else return r}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},cp=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&sT()&&(this.rtf=Hb(e,n))}format(e,r){return this.rtf?this.rtf.format(e,r):SD(r,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,r){return this.rtf?this.rtf.formatToParts(e,r):[]}},ZE={firstDay:1,minimalDays:4,weekend:[6,7]},pe=class t{static fromOpts(e){return t.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,r,n,i,s=!1){let o=e||ge.defaultLocale,a=o||(s?"en-US":Kb()),u=r||ge.defaultNumberingSystem,c=n||ge.defaultOutputCalendar,l=dp(i)||ge.defaultWeekSettings;return new t(a,u,c,l,o)}static resetCache(){ho=null,tp.clear(),np.clear(),ip.clear(),sp.clear(),op.clear()}static fromObject({locale:e,numberingSystem:r,outputCalendar:n,weekSettings:i}={}){return t.create(e,r,n,i)}constructor(e,r,n,i,s){let[o,a,u]=Jb(e);this.locale=o,this.numberingSystem=r||a||null,this.outputCalendar=n||u||null,this.weekSettings=i,this.intl=zb(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=s,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=eD(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,dp(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,r=!1){return bu(this,e,lT,()=>{let n=this.intl==="ja"||this.intl.startsWith("ja-");r&=!n;let i=r?{month:e,day:"numeric"}:{month:e},s=r?"format":"standalone";if(!this.monthsCache[s][e]){let o=n?a=>this.dtFormatter(a,i).format():a=>this.extract(a,i,"month");this.monthsCache[s][e]=Zb(o)}return this.monthsCache[s][e]})}weekdays(e,r=!1){return bu(this,e,fT,()=>{let n=r?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=r?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=Xb(s=>this.extract(s,n,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return bu(this,void 0,()=>mT,()=>{if(!this.meridiemCache){let e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Ae.utc(2016,11,13,9),Ae.utc(2016,11,13,19)].map(r=>this.extract(r,e,"dayperiod"))}return this.meridiemCache})}eras(e){return bu(this,e,hT,()=>{let r={era:e};return this.eraCache[e]||(this.eraCache[e]=[Ae.utc(-40,1,1),Ae.utc(2017,1,1)].map(n=>this.extract(n,r,"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 ap(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new up(e,this.intl,r)}relFormatter(e={}){return new cp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Qb(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||zE(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:oT()?Yb(this.locale):ZE}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},qd=null,st=class t extends Vr{static get utcInstance(){return qd===null&&(qd=new t(0)),qd}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(qu(r[1],r[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Eo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Eo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return Eo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},ku=class extends Vr{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 Fr(t,e){if(z(t)||t===null)return e;if(t instanceof Vr)return t;if(oD(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?To.instance:r==="utc"||r==="gmt"?st.utcInstance:st.parseSpecifier(r)||pr.create(t)}else return Gr(t)?st.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new ku(t)}var mp={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]},tD=mp.hanidec.replace(/[\[|\]]/g,"").split("");function rD(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let r=0;r<t.length;r++){let n=t.charCodeAt(r);if(t[r].search(mp.hanidec)!==-1)e+=tD.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}var lp=new Map;function nD(){lp.clear()}function Ct({numberingSystem:t},e=""){let r=t||"latn",n=lp.get(r);n===void 0&&(n=new Map,lp.set(r,n));let i=n.get(e);return i===void 0&&(i=new RegExp(`${mp[r]}${e}`),n.set(e,i)),i}var iE=()=>Date.now(),sE="system",oE=null,aE=null,uE=null,cE=60,lE,dE=null,ge=class{static get now(){return iE}static set now(e){iE=e}static set defaultZone(e){sE=e}static get defaultZone(){return Fr(sE,To.instance)}static get defaultLocale(){return oE}static set defaultLocale(e){oE=e}static get defaultNumberingSystem(){return aE}static set defaultNumberingSystem(e){aE=e}static get defaultOutputCalendar(){return uE}static set defaultOutputCalendar(e){uE=e}static get defaultWeekSettings(){return dE}static set defaultWeekSettings(e){dE=dp(e)}static get twoDigitCutoffYear(){return cE}static set twoDigitCutoffYear(e){cE=e%100}static get throwOnInvalid(){return lE}static set throwOnInvalid(e){lE=e}static resetCaches(){pe.resetCache(),pr.resetCache(),Ae.resetCache(),nD()}},nt=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},XE=[0,31,59,90,120,151,181,212,243,273,304,334],eT=[0,31,60,91,121,152,182,213,244,274,305,335];function gt(t,e){return new nt("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function hp(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 tT(t,e,r){return r+(So(t)?eT:XE)[e-1]}function rT(t,e){let r=So(t)?eT:XE,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function gp(t,e){return(t-e+7)%7+1}function Fu(t,e=4,r=1){let{year:n,month:i,day:s}=t,o=tT(n,i,s),a=gp(hp(n,i,s),r),u=Math.floor((o-a+14-e)/7),c;return u<1?(c=n-1,u=Ao(c,e,r)):u>Ao(n,e,r)?(c=n+1,u=1):c=n,{weekYear:c,weekNumber:u,weekday:a,...Qu(t)}}function pE(t,e=4,r=1){let{weekYear:n,weekNumber:i,weekday:s}=t,o=gp(hp(n,1,e),r),a=Wi(n),u=i*7+s-o-7+e,c;u<1?(c=n-1,u+=Wi(c)):u>a?(c=n+1,u-=Wi(n)):c=n;let{month:l,day:d}=rT(c,u);return{year:c,month:l,day:d,...Qu(t)}}function Qd(t){let{year:e,month:r,day:n}=t,i=tT(e,r,n);return{year:e,ordinal:i,...Qu(t)}}function fE(t){let{year:e,ordinal:r}=t,{month:n,day:i}=rT(e,r);return{year:e,month:n,day:i,...Qu(t)}}function mE(t,e){if(!z(t.localWeekday)||!z(t.localWeekNumber)||!z(t.localWeekYear)){if(!z(t.weekday)||!z(t.weekNumber)||!z(t.weekYear))throw new Br("Cannot mix locale-based week fields with ISO-based week fields");return z(t.localWeekday)||(t.weekday=t.localWeekday),z(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),z(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function iD(t,e=4,r=1){let n=$u(t.weekYear),i=yt(t.weekNumber,1,Ao(t.weekYear,e,r)),s=yt(t.weekday,1,7);return n?i?s?!1:gt("weekday",t.weekday):gt("week",t.weekNumber):gt("weekYear",t.weekYear)}function sD(t){let e=$u(t.year),r=yt(t.ordinal,1,Wi(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function nT(t){let e=$u(t.year),r=yt(t.month,1,12),n=yt(t.day,1,Bu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function iT(t){let{hour:e,minute:r,second:n,millisecond:i}=t,s=yt(e,0,23)||e===24&&r===0&&n===0&&i===0,o=yt(r,0,59),a=yt(n,0,59),u=yt(i,0,999);return s?o?a?u?!1:gt("millisecond",i):gt("second",n):gt("minute",r):gt("hour",e)}function z(t){return typeof t>"u"}function Gr(t){return typeof t=="number"}function $u(t){return typeof t=="number"&&t%1===0}function oD(t){return typeof t=="string"}function aD(t){return Object.prototype.toString.call(t)==="[object Date]"}function sT(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function oT(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function uD(t){return Array.isArray(t)?t:[t]}function hE(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 cD(t,e){return e.reduce((r,n)=>(r[n]=t[n],r),{})}function Qi(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function dp(t){if(t==null)return null;if(typeof t!="object")throw new Ue("Week settings must be an object");if(!yt(t.firstDay,1,7)||!yt(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!yt(e,1,7)))throw new Ue("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function yt(t,e,r){return $u(t)&&t>=e&&t<=r}function lD(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 kr(t){if(!(z(t)||t===null||t===""))return parseInt(t,10)}function qn(t){if(!(z(t)||t===null||t===""))return parseFloat(t)}function yp(t){if(!(z(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function Ep(t,e,r="round"){let n=10**e;switch(r){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${r} is out of range`)}}function So(t){return t%4===0&&(t%100!==0||t%400===0)}function Wi(t){return So(t)?366:365}function Bu(t,e){let r=lD(e-1,12)+1,n=t+(e-r)/12;return r===2?So(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function Wu(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(t.year,t.month-1,t.day)),+e}function gE(t,e,r){return-gp(hp(t,1,e),r)+e-1}function Ao(t,e=4,r=1){let n=gE(t,e,r),i=gE(t+1,e,r);return(Wi(t)-n+i)/7}function pp(t){return t>99?t:t>ge.twoDigitCutoffYear?1900+t:2e3+t}function aT(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 qu(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 uT(t){let e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new Ue(`Invalid unit value ${t}`);return e}function Gu(t,e){let r={};for(let n in t)if(Qi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=uT(i)}return r}function Eo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function Qu(t){return cD(t,["hour","minute","second","millisecond"])}var dD=["January","February","March","April","May","June","July","August","September","October","November","December"],cT=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],pD=["J","F","M","A","M","J","J","A","S","O","N","D"];function lT(t){switch(t){case"narrow":return[...pD];case"short":return[...cT];case"long":return[...dD];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 dT=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],pT=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],fD=["M","T","W","T","F","S","S"];function fT(t){switch(t){case"narrow":return[...fD];case"short":return[...pT];case"long":return[...dT];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var mT=["AM","PM"],mD=["Before Christ","Anno Domini"],hD=["BC","AD"],gD=["B","A"];function hT(t){switch(t){case"narrow":return[...gD];case"short":return[...hD];case"long":return[...mD];default:return null}}function yD(t){return mT[t.hour<12?0:1]}function ED(t,e){return fT(e)[t.weekday-1]}function TD(t,e){return lT(e)[t.month-1]}function AD(t,e){return hT(e)[t.year<0?0:1]}function SD(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 yE(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var _D={D:Mu,DD:NE,DDD:PE,DDDD:LE,t:UE,tt:ME,ttt:kE,tttt:FE,T:BE,TT:GE,TTT:VE,TTTT:$E,f:WE,ff:QE,fff:HE,ffff:YE,F:qE,FF:jE,FFF:KE,FFFF:JE},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||i)&&s.push({literal:i||/^\s+$/.test(n),val:n===""?"'":n}),r=null,n="",i=!i):i||a===r?n+=a:(n.length>0&&s.push({literal:/^\s+$/.test(n),val:n}),n=a,r=a)}return n.length>0&&s.push({literal:i||/^\s+$/.test(n),val:n}),s}static macroTokenToFormatOpts(e){return _D[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()}dtFormatter(e,r={}){return this.loc.dtFormatter(e,{...this.opts,...r})}formatDateTime(e,r){return this.dtFormatter(e,r).format()}formatDateTimeParts(e,r){return this.dtFormatter(e,r).formatToParts()}formatInterval(e,r){return this.dtFormatter(e.start,r).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,r){return this.dtFormatter(e,r).resolvedOptions()}num(e,r=0,n=void 0){if(this.opts.forceSimple)return Re(e,r);let i={...this.opts};return r>0&&(i.padTo=r),n&&(i.signDisplay=n),this.loc.numberFormatter(i).format(e)}formatDateTimeFromString(e,r){let n=this.loc.listingMode()==="en",i=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",s=(m,f)=>this.loc.extract(e,m,f),o=m=>e.isOffsetFixed&&e.offset===0&&m.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,m.format):"",a=()=>n?yD(e):s({hour:"numeric",hourCycle:"h12"},"dayperiod"),u=(m,f)=>n?TD(e,m):s(f?{month:m}:{month:m,day:"numeric"},"month"),c=(m,f)=>n?ED(e,m):s(f?{weekday:m}:{weekday:m,month:"long",day:"numeric"},"weekday"),l=m=>{let f=t.macroTokenToFormatOpts(m);return f?this.formatWithSystemDefault(e,f):m},d=m=>n?AD(e,m):s({era:m},"era"),p=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"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);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 yE(t.parseFormat(r),p)}formatDurationFromString(e,r){let n=this.opts.signMode==="negativeLargestOnly"?-1:1,i=l=>{switch(l[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},s=(l,d)=>p=>{let m=i(p);if(m){let f=d.isNegativeDuration&&m!==d.largestUnit?n:1,g;return this.opts.signMode==="negativeLargestOnly"&&m!==d.largestUnit?g="never":this.opts.signMode==="all"?g="always":g="auto",this.num(l.get(m)*f,p.length,g)}else return p},o=t.parseFormat(r),a=o.reduce((l,{literal:d,val:p})=>d?l:l.concat(p),[]),u=e.shiftTo(...a.map(i).filter(l=>l)),c={isNegativeDuration:u<0,largestUnit:Object.keys(u.values)[0]};return yE(o,s(u,c))}},gT=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function ji(...t){let e=t.reduce((r,n)=>r+n.source,"");return RegExp(`^${e}$`)}function Hi(...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 Ki(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 yT(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=kr(e[r+i]);return[n,null,r+i]}}var ET=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,ID=`(?:${ET.source}?(?:\\[(${gT.source})\\])?)?`,Tp=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,TT=RegExp(`${Tp.source}${ID}`),Ap=RegExp(`(?:[Tt]${TT.source})?`),OD=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,xD=/(\d{4})-?W(\d\d)(?:-?(\d))?/,RD=/(\d{4})-?(\d{3})/,wD=yT("weekYear","weekNumber","weekDay"),bD=yT("year","ordinal"),DD=/(\d{4})-(\d\d)-(\d\d)/,AT=RegExp(`${Tp.source} ?(?:${ET.source}|(${gT.source}))?`),CD=RegExp(`(?: ${AT.source})?`);function qi(t,e,r){let n=t[e];return z(n)?r:kr(n)}function vD(t,e){return[{year:qi(t,e),month:qi(t,e+1,1),day:qi(t,e+2,1)},null,e+3]}function Yi(t,e){return[{hours:qi(t,e,0),minutes:qi(t,e+1,0),seconds:qi(t,e+2,0),milliseconds:yp(t[e+3])},null,e+4]}function _o(t,e){let r=!t[e]&&!t[e+1],n=qu(t[e+1],t[e+2]),i=r?null:st.instance(n);return[{},i,e+3]}function Io(t,e){let r=t[e]?pr.create(t[e]):null;return[{},r,e+1]}var ND=RegExp(`^T?${Tp.source}$`),PD=/^-?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 LD(t){let[e,r,n,i,s,o,a,u,c]=t,l=e[0]==="-",d=u&&u[0]==="-",p=(m,f=!1)=>m!==void 0&&(f||m&&l)?-m:m;return[{years:p(qn(r)),months:p(qn(n)),weeks:p(qn(i)),days:p(qn(s)),hours:p(qn(o)),minutes:p(qn(a)),seconds:p(qn(u),u==="-0"),milliseconds:p(yp(c),d)}]}var UD={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 Sp(t,e,r,n,i,s,o){let a={year:e.length===2?pp(kr(e)):kr(e),month:cT.indexOf(r)+1,day:kr(n),hour:kr(i),minute:kr(s)};return o&&(a.second=kr(o)),t&&(a.weekday=t.length>3?dT.indexOf(t)+1:pT.indexOf(t)+1),a}var MD=/^(?:(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 kD(t){let[,e,r,n,i,s,o,a,u,c,l,d]=t,p=Sp(e,i,n,r,s,o,a),m;return u?m=UD[u]:c?m=0:m=qu(l,d),[p,new st(m)]}function FD(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var BD=/^(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$/,GD=/^(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$/,VD=/^(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 EE(t){let[,e,r,n,i,s,o,a]=t;return[Sp(e,i,n,r,s,o,a),st.utcInstance]}function $D(t){let[,e,r,n,i,s,o,a]=t;return[Sp(e,a,r,n,i,s,o),st.utcInstance]}var WD=ji(OD,Ap),qD=ji(xD,Ap),QD=ji(RD,Ap),jD=ji(TT),ST=Hi(vD,Yi,_o,Io),HD=Hi(wD,Yi,_o,Io),KD=Hi(bD,Yi,_o,Io),YD=Hi(Yi,_o,Io);function JD(t){return Ki(t,[WD,ST],[qD,HD],[QD,KD],[jD,YD])}function zD(t){return Ki(FD(t),[MD,kD])}function ZD(t){return Ki(t,[BD,EE],[GD,EE],[VD,$D])}function XD(t){return Ki(t,[PD,LD])}var eC=Hi(Yi);function tC(t){return Ki(t,[ND,eC])}var rC=ji(DD,CD),nC=ji(AT),iC=Hi(Yi,_o,Io);function sC(t){return Ki(t,[rC,ST],[nC,iC])}var TE="Invalid Duration",_T={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}},oC={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},..._T},ht=146097/400,Gi=146097/4800,aC={years:{quarters:4,months:12,weeks:ht/7,days:ht,hours:ht*24,minutes:ht*24*60,seconds:ht*24*60*60,milliseconds:ht*24*60*60*1e3},quarters:{months:3,weeks:ht/28,days:ht/4,hours:ht*24/4,minutes:ht*24*60/4,seconds:ht*24*60*60/4,milliseconds:ht*24*60*60*1e3/4},months:{weeks:Gi/7,days:Gi,hours:Gi*24,minutes:Gi*24*60,seconds:Gi*24*60*60,milliseconds:Gi*24*60*60*1e3},..._T},jn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],uC=jn.slice(0).reverse();function lr(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 Ce(n)}function IT(t,e){var r;let n=(r=e.milliseconds)!=null?r:0;for(let i of uC.slice(1))e[i]&&(n+=e[i]*t[i].milliseconds);return n}function AE(t,e){let r=IT(t,e)<0?-1:1;jn.reduceRight((n,i)=>{if(z(e[i]))return n;if(n){let s=e[n]*r,o=t[i][n],a=Math.floor(s/o);e[i]+=a*r,e[n]-=a*o*r}return i},null),jn.reduce((n,i)=>{if(z(e[i]))return n;if(n){let s=e[n]%1;e[n]-=s,e[i]+=s*t[n][i]}return i},null)}function SE(t){let e={};for(let[r,n]of Object.entries(t))n!==0&&(e[r]=n);return e}var Ce=class t{constructor(e){let r=e.conversionAccuracy==="longterm"||!1,n=r?aC:oC;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||pe.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 Ue(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new t({values:Gu(e,t.normalizeUnit),loc:pe.fromObject(r),conversionAccuracy:r.conversionAccuracy,matrix:r.matrix})}static fromDurationLike(e){if(Gr(e))return t.fromMillis(e);if(t.isDuration(e))return e;if(typeof e=="object")return t.fromObject(e);throw new Ue(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,r){let[n]=XD(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]=tC(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 Ue("need to specify a reason the Duration is invalid");let n=e instanceof nt?e:new nt(e,r);if(ge.throwOnInvalid)throw new Xd(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 Uu(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):TE}toHuman(e={}){if(!this.isValid)return TE;let r=e.showZeros!==!1,n=jn.map(i=>{let s=this.values[i];return z(s)||s===0&&!r?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:i.slice(0,-1)}).format(s)}).filter(i=>i);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}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+=Ep(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;let r=this.toMillis();return r<0||r>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},Ae.fromMillis(r,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?IT(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e),n={};for(let i of jn)(Qi(r.values,i)||Qi(this.values,i))&&(n[i]=r.get(i)+this.get(i));return lr(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]=uT(e(this.values[n],n));return lr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...Gu(e,t.normalizeUnit)};return lr(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 lr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return AE(this.matrix,e),lr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=SE(this.normalize().shiftToAll().toObject());return lr(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 jn)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;Gr(i[o])&&(a+=i[o]);let u=Math.trunc(a);r[o]=u,n[o]=(a*1e3-u*1e3)/1e3}else Gr(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 AE(this.matrix,r),lr(this,{values:r},!0)}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 lr(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=SE(this.values);return lr(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 jn)if(!r(this.values[n],e.values[n]))return!1;return!0}},Vi="Invalid Interval";function cC(t,e){return!t||!t.isValid?Kn.invalid("missing or invalid start"):!e||!e.isValid?Kn.invalid("missing or invalid end"):e<t?Kn.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 Kn=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 Ue("need to specify a reason the Interval is invalid");let n=e instanceof nt?e:new nt(e,r);if(ge.throwOnInvalid)throw new Zd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=cC(n,i);return s??new t({start:n,end:i})}static after(e,r){let n=Ce.fromDurationLike(r),i=mo(e);return t.fromDateTimes(i,i.plus(n))}static before(e,r){let n=Ce.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=Ae.fromISO(n,r),o=s.isValid}catch{o=!1}let a,u;try{a=Ae.fromISO(i,r),u=a.isValid}catch{u=!1}if(o&&u)return t.fromDateTimes(s,a);if(o){let c=Ce.fromISO(i,r);if(c.isValid)return t.after(s,c)}else if(u){let c=Ce.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 lastDateTime(){return this.isValid&&this.e?this.e.minus(1):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",r){if(!this.isValid)return NaN;let n=this.start.startOf(e,r),i;return r!=null&&r.useLocaleWeeks?i=this.end.reconfigure({locale:n.locale}):i=this.end,i=i.startOf(e,r),Math.floor(i.diff(n,e).get(e))+(i.valueOf()!==this.end.valueOf())}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((o,a)=>o.toMillis()-a.toMillis()),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=Ce.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()})`:Vi}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=Mu,r={}){return this.isValid?rt.create(this.s.loc.clone(r),e).formatInterval(this):Vi}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Vi}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Vi}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Vi}toFormat(e,{separator:r=" \u2013 "}={}){return this.isValid?`${this.s.toFormat(e)}${r}${this.e.toFormat(e)}`:Vi}toDuration(e,r){return this.isValid?this.e.diff(this.s,e,r):Ce.invalid(this.invalidReason)}mapEndpoints(e){return t.fromDateTimes(e(this.s),e(this.e))}},Hn=class{static hasDST(e=ge.defaultZone){let r=Ae.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return pr.isValidZone(e)}static normalizeZone(e){return Fr(e,ge.defaultZone)}static getStartOfWeek({locale:e=null,locObj:r=null}={}){return(r||pe.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:r=null}={}){return(r||pe.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:r=null}={}){return(r||pe.create(e)).getWeekendDays().slice()}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||pe.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||pe.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||pe.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||pe.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return pe.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return pe.create(r,null,"gregory").eras(e)}static features(){return{relative:sT(),localeWeek:oT()}}};function _E(t,e){let r=i=>i.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=r(e)-r(t);return Math.floor(Ce.fromMillis(n).as("days"))}function lC(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=_E(u,c);return(l-l%7)/7}],["days",_E]],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>e&&(a=t,i[u]--,t=s.plus(i))):t=a);return[t,i,a,o]}function dC(t,e,r,n){let[i,s,o,a]=lC(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=Ce.fromObject(s,n);return c.length>0?Ce.fromMillis(u,n).shiftTo(...c).plus(l):l}var pC="missing Intl.DateTimeFormat.formatToParts support";function de(t,e=r=>r){return{regex:t,deser:([r])=>e(rD(r))}}var fC=String.fromCharCode(160),OT=`[ ${fC}]`,xT=new RegExp(OT,"g");function mC(t){return t.replace(/\./g,"\\.?").replace(xT,OT)}function IE(t){return t.replace(/\./g,"").replace(xT," ").toLowerCase()}function vt(t,e){return t===null?null:{regex:RegExp(t.map(mC).join("|")),deser:([r])=>t.findIndex(n=>IE(r)===IE(n))+e}}function OE(t,e){return{regex:t,deser:([,r,n])=>qu(r,n),groups:e}}function Du(t){return{regex:t,deser:([e])=>e}}function hC(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gC(t,e){let r=Ct(e),n=Ct(e,"{2}"),i=Ct(e,"{3}"),s=Ct(e,"{4}"),o=Ct(e,"{6}"),a=Ct(e,"{1,2}"),u=Ct(e,"{1,3}"),c=Ct(e,"{1,6}"),l=Ct(e,"{1,9}"),d=Ct(e,"{2,4}"),p=Ct(e,"{4,6}"),m=y=>({regex:RegExp(hC(y.val)),deser:([T])=>T,literal:!0}),g=(y=>{if(t.literal)return m(y);switch(y.val){case"G":return vt(e.eras("short"),0);case"GG":return vt(e.eras("long"),0);case"y":return de(c);case"yy":return de(d,pp);case"yyyy":return de(s);case"yyyyy":return de(p);case"yyyyyy":return de(o);case"M":return de(a);case"MM":return de(n);case"MMM":return vt(e.months("short",!0),1);case"MMMM":return vt(e.months("long",!0),1);case"L":return de(a);case"LL":return de(n);case"LLL":return vt(e.months("short",!1),1);case"LLLL":return vt(e.months("long",!1),1);case"d":return de(a);case"dd":return de(n);case"o":return de(u);case"ooo":return de(i);case"HH":return de(n);case"H":return de(a);case"hh":return de(n);case"h":return de(a);case"mm":return de(n);case"m":return de(a);case"q":return de(a);case"qq":return de(n);case"s":return de(a);case"ss":return de(n);case"S":return de(u);case"SSS":return de(i);case"u":return Du(l);case"uu":return Du(a);case"uuu":return de(r);case"a":return vt(e.meridiems(),0);case"kkkk":return de(s);case"kk":return de(d,pp);case"W":return de(a);case"WW":return de(n);case"E":case"c":return de(r);case"EEE":return vt(e.weekdays("short",!1),1);case"EEEE":return vt(e.weekdays("long",!1),1);case"ccc":return vt(e.weekdays("short",!0),1);case"cccc":return vt(e.weekdays("long",!0),1);case"Z":case"ZZ":return OE(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return OE(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Du(/[a-z_+-/]{1,256}?/i);case" ":return Du(/[^\S\n\r]/);default:return m(y)}})(t)||{invalidReason:pC};return g.token=t,g}var yC={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",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function EC(t,e,r){let{type:n,value:i}=t;if(n==="literal"){let u=/^\s+$/.test(i);return{literal:!u,val:u?" ":i}}let s=e[n],o=n;n==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=r.hour12?"hour12":"hour24");let a=yC[o];if(typeof a=="object"&&(a=a[s]),a)return{literal:!1,val:a}}function TC(t){return[`^${t.map(r=>r.regex).reduce((r,n)=>`${r}(${n.source})`,"")}$`,t]}function AC(t,e,r){let n=t.match(e);if(n){let i={},s=1;for(let o in r)if(Qi(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 SC(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 z(t.z)||(r=pr.create(t.z)),z(t.Z)||(r||(r=new st(t.Z)),n=t.Z),z(t.q)||(t.M=(t.q-1)*3+1),z(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),z(t.u)||(t.S=yp(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var jd=null;function _C(){return jd||(jd=Ae.fromMillis(1555555555555)),jd}function IC(t,e){if(t.literal)return t;let r=rt.macroTokenToFormatOpts(t.val),n=bT(r,e);return n==null||n.includes(void 0)?t:n}function RT(t,e){return Array.prototype.concat(...t.map(r=>IC(r,e)))}var Vu=class{constructor(e,r){if(this.locale=e,this.format=r,this.tokens=RT(rt.parseFormat(r),e),this.units=this.tokens.map(n=>gC(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){let[n,i]=TC(this.units);this.regex=RegExp(n,"i"),this.handlers=i}}explainFromTokens(e){if(this.isValid){let[r,n]=AC(e,this.regex,this.handlers),[i,s,o]=n?SC(n):[null,null,void 0];if(Qi(n,"a")&&Qi(n,"H"))throw new Br("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:r,matches:n,result:i,zone:s,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function wT(t,e,r){return new Vu(t,r).explainFromTokens(e)}function OC(t,e,r){let{result:n,zone:i,specificOffset:s,invalidReason:o}=wT(t,e,r);return[n,i,s,o]}function bT(t,e){if(!t)return null;let n=rt.create(e,t).dtFormatter(_C()),i=n.formatToParts(),s=n.resolvedOptions();return i.map(o=>EC(o,t,s))}var Hd="Invalid DateTime",xE=864e13;function go(t){return new nt("unsupported zone",`the zone "${t.name}" is not supported`)}function Kd(t){return t.weekData===null&&(t.weekData=Fu(t.c)),t.weekData}function Yd(t){return t.localWeekData===null&&(t.localWeekData=Fu(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function Qn(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new Ae({...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 Cu(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 Nu(t,e,r){return DT(Wu(t),e,r)}function RE(t,e){let r=t.o,n=t.c.year+Math.trunc(e.years),i=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,s={...t.c,year:n,month:i,day:Math.min(t.c.day,Bu(n,i))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Ce.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=Wu(s),[u,c]=DT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function $i(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0||e){let u=e||a,c=Ae.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return Ae.invalid(new nt("unparsable",`the input "${i}" can't be parsed as ${n}`))}function vu(t,e,r=!0){return t.isValid?rt.create(pe.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Jd(t,e,r){let n=t.c.year>9999||t.c.year<0,i="";if(n&&t.c.year>=0&&(i+="+"),i+=Re(t.c.year,n?6:4),r==="year")return i;if(e){if(i+="-",i+=Re(t.c.month),r==="month")return i;i+="-"}else if(i+=Re(t.c.month),r==="month")return i;return i+=Re(t.c.day),i}function wE(t,e,r,n,i,s,o){let a=!r||t.c.millisecond!==0||t.c.second!==0,u="";switch(o){case"day":case"month":case"year":break;default:if(u+=Re(t.c.hour),o==="hour")break;if(e){if(u+=":",u+=Re(t.c.minute),o==="minute")break;a&&(u+=":",u+=Re(t.c.second))}else{if(u+=Re(t.c.minute),o==="minute")break;a&&(u+=Re(t.c.second))}if(o==="second")break;a&&(!n||t.c.millisecond!==0)&&(u+=".",u+=Re(t.c.millisecond,3))}return i&&(t.isOffsetFixed&&t.offset===0&&!s?u+="Z":t.o<0?(u+="-",u+=Re(Math.trunc(-t.o/60)),u+=":",u+=Re(Math.trunc(-t.o%60))):(u+="+",u+=Re(Math.trunc(t.o/60)),u+=":",u+=Re(Math.trunc(t.o%60)))),s&&(u+="["+t.zone.ianaName+"]"),u}var CT={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},xC={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},RC={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Pu=["year","month","day","hour","minute","second","millisecond"],wC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],bC=["year","ordinal","hour","minute","second","millisecond"];function Lu(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 Uu(t);return e}function bE(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Lu(t)}}function DC(t){if(yo===void 0&&(yo=ge.now()),t.type!=="iana")return t.offset(yo);let e=t.name,r=fp.get(e);return r===void 0&&(r=t.offset(yo),fp.set(e,r)),r}function DE(t,e){let r=Fr(e.zone,ge.defaultZone);if(!r.isValid)return Ae.invalid(go(r));let n=pe.fromObject(e),i,s;if(z(t.year))i=ge.now();else{for(let u of Pu)z(t[u])&&(t[u]=CT[u]);let o=nT(t)||iT(t);if(o)return Ae.invalid(o);let a=DC(r);[i,s]=Nu(t,a,r)}return new Ae({ts:i,zone:r,loc:n,o:s})}function CE(t,e,r){let n=z(r.round)?!0:r.round,i=z(r.rounding)?"trunc":r.rounding,s=(a,u)=>(a=Ep(a,n||r.calendary?0:2,r.calendary?"round":i),e.loc.clone(r).relFormatter(r).format(a,u)),o=a=>r.calendary?e.hasSame(t,a)?0:e.startOf(a).diff(t.startOf(a),a).get(a):e.diff(t,a).get(a);if(r.unit)return s(o(r.unit),r.unit);for(let a of r.units){let u=o(a);if(Math.abs(u)>=1)return s(u,a)}return s(t>e?-0:0,r.units[r.units.length-1])}function vE(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var yo,fp=new Map,Ae=class t{constructor(e){let r=e.zone||ge.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new nt("invalid input"):null)||(r.isValid?null:go(r));this.ts=z(e.ts)?ge.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=Gr(e.o)&&!e.old?e.o:r.offset(this.ts);i=Cu(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||pe.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=i,this.o=s,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[e,r]=vE(arguments),[n,i,s,o,a,u,c]=r;return DE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=vE(arguments),[n,i,s,o,a,u,c]=r;return e.zone=st.utcInstance,DE({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static fromJSDate(e,r={}){let n=aD(e)?e.valueOf():NaN;if(Number.isNaN(n))return t.invalid("invalid input");let i=Fr(r.zone,ge.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:pe.fromObject(r)}):t.invalid(go(i))}static fromMillis(e,r={}){if(Gr(e))return e<-xE||e>xE?t.invalid("Timestamp out of range"):new t({ts:e,zone:Fr(r.zone,ge.defaultZone),loc:pe.fromObject(r)});throw new Ue(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(Gr(e))return new t({ts:e*1e3,zone:Fr(r.zone,ge.defaultZone),loc:pe.fromObject(r)});throw new Ue("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Fr(r.zone,ge.defaultZone);if(!n.isValid)return t.invalid(go(n));let i=pe.fromObject(r),s=Gu(e,bE),{minDaysInFirstWeek:o,startOfWeek:a}=mE(s,i),u=ge.now(),c=z(r.specificOffset)?n.offset(u):r.specificOffset,l=!z(s.ordinal),d=!z(s.year),p=!z(s.month)||!z(s.day),m=d||p,f=s.weekYear||s.weekNumber;if((m||l)&&f)throw new Br("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&l)throw new Br("Can't mix ordinal dates with month/day");let g=f||s.weekday&&!m,y,T,_=Cu(u,c);g?(y=wC,T=xC,_=Fu(_,o,a)):l?(y=bC,T=RC,_=Qd(_)):(y=Pu,T=CT);let S=!1;for(let se of y){let Xt=s[se];z(Xt)?S?s[se]=T[se]:s[se]=_[se]:S=!0}let R=g?iD(s,o,a):l?sD(s):nT(s),E=R||iT(s);if(E)return t.invalid(E);let I=g?pE(s,o,a):l?fE(s):s,[B,L]=Nu(I,c,n),F=new t({ts:B,zone:n,o:L,loc:i});return s.weekday&&m&&e.weekday!==F.weekday?t.invalid("mismatched weekday",`you can't specify both a weekday of ${s.weekday} and a date of ${F.toISO()}`):F.isValid?F:t.invalid(F.invalid)}static fromISO(e,r={}){let[n,i]=JD(e);return $i(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=zD(e);return $i(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=ZD(e);return $i(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(z(e)||z(r))throw new Ue("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=pe.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=OC(o,e,r);return l?t.invalid(l):$i(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]=sC(e);return $i(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ue("need to specify a reason the DateTime is invalid");let n=e instanceof nt?e:new nt(e,r);if(ge.throwOnInvalid)throw new zd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=bT(e,pe.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return RT(rt.parseFormat(e),pe.fromObject(r)).map(i=>i.val).join("")}static resetCache(){yo=void 0,fp.clear()}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?Kd(this).weekYear:NaN}get weekNumber(){return this.isValid?Kd(this).weekNumber:NaN}get weekday(){return this.isValid?Kd(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Yd(this).weekday:NaN}get localWeekNumber(){return this.isValid?Yd(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Yd(this).weekYear:NaN}get ordinal(){return this.isValid?Qd(this.c).ordinal:NaN}get monthShort(){return this.isValid?Hn.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Hn.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Hn.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Hn.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}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,r=6e4,n=Wu(this.c),i=this.zone.offset(n-e),s=this.zone.offset(n+e),o=this.zone.offset(n-i*r),a=this.zone.offset(n-s*r);if(o===a)return[this];let u=n-o*r,c=n-a*r,l=Cu(u,o),d=Cu(c,a);return l.hour===d.hour&&l.minute===d.minute&&l.second===d.second&&l.millisecond===d.millisecond?[Qn(this,{ts:u}),Qn(this,{ts:c})]:[this]}get isInLeapYear(){return So(this.year)}get daysInMonth(){return Bu(this.year,this.month)}get daysInYear(){return this.isValid?Wi(this.year):NaN}get weeksInWeekYear(){return this.isValid?Ao(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Ao(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):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(ge.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Fr(e,ge.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=Nu(o,s,e)}return Qn(this,{ts:i,zone:e})}else return t.invalid(go(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return Qn(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=Gu(e,bE),{minDaysInFirstWeek:n,startOfWeek:i}=mE(r,this.loc),s=!z(r.weekYear)||!z(r.weekNumber)||!z(r.weekday),o=!z(r.ordinal),a=!z(r.year),u=!z(r.month)||!z(r.day),c=a||u,l=r.weekYear||r.weekNumber;if((c||o)&&l)throw new Br("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(u&&o)throw new Br("Can't mix ordinal dates with month/day");let d;s?d=pE({...Fu(this.c,n,i),...r},n,i):z(r.ordinal)?(d={...this.toObject(),...r},z(r.day)&&(d.day=Math.min(Bu(d.year,d.month),d.day))):d=fE({...Qd(this.c),...r});let[p,m]=Nu(d,this.o,this.zone);return Qn(this,{ts:p,o:m})}plus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e);return Qn(this,RE(this,r))}minus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e).negate();return Qn(this,RE(this,r))}startOf(e,{useLocaleWeeks:r=!1}={}){if(!this.isValid)return this;let n={},i=Ce.normalizeUnit(e);switch(i){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(i==="weeks")if(r){let s=this.loc.getStartOfWeek(),{weekday:o}=this;o<s&&(n.weekNumber=this.weekNumber-1),n.weekday=s}else n.weekday=1;if(i==="quarters"){let s=Math.ceil(this.month/3);n.month=(s-1)*3+1}return this.set(n)}endOf(e,r){return this.isValid?this.plus({[e]:1}).startOf(e,r).minus(1):this}toFormat(e,r={}){return this.isValid?rt.create(this.loc.redefaultToEN(r)).formatDateTimeFromString(this,e):Hd}toLocaleString(e=Mu,r={}){return this.isValid?rt.create(this.loc.clone(r),e).formatDateTime(this):Hd}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,precision:o="milliseconds"}={}){if(!this.isValid)return null;o=Lu(o);let a=e==="extended",u=Jd(this,a,o);return Pu.indexOf(o)>=3&&(u+="T"),u+=wE(this,a,r,n,i,s,o),u}toISODate({format:e="extended",precision:r="day"}={}){return this.isValid?Jd(this,e==="extended",Lu(r)):null}toISOWeekDate(){return vu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended",precision:a="milliseconds"}={}){return this.isValid?(a=Lu(a),(i&&Pu.indexOf(a)>=3?"T":"")+wE(this,o==="extended",r,e,n,s,a)):null}toRFC2822(){return vu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return vu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Jd(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")),vu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Hd}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}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 Ce.invalid("created by diffing an invalid DateTime");let i={locale:this.locale,numberingSystem:this.numberingSystem,...n},s=uD(r).map(Ce.normalizeUnit),o=e.valueOf()>this.valueOf(),a=o?this:e,u=o?e:this,c=dC(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?Kn.fromDateTimes(this,e):this}hasSame(e,r,n){if(!this.isValid)return!1;let i=e.valueOf(),s=this.setZone(e.zone,{keepLocalTime:!0});return s.startOf(r,n)<=i&&i<=s.endOf(r,n)}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),CE(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?CE(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 Ue("min requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ue("max requires all arguments be DateTimes");return hE(e,r=>r.valueOf(),Math.max)}static fromFormatExplain(e,r,n={}){let{locale:i=null,numberingSystem:s=null}=n,o=pe.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});return wT(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static buildFormatParser(e,r={}){let{locale:n=null,numberingSystem:i=null}=r,s=pe.fromOpts({locale:n,numberingSystem:i,defaultToEN:!0});return new Vu(s,e)}static fromFormatParser(e,r,n={}){if(z(e)||z(r))throw new Ue("fromFormatParser requires an input string and a format parser");let{locale:i=null,numberingSystem:s=null}=n,o=pe.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0});if(!o.equals(r.locale))throw new Ue(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${r.locale}`);let{result:a,zone:u,specificOffset:c,invalidReason:l}=r.explainFromTokens(e);return l?t.invalid(l):$i(a,u,n,`format ${r.format}`,e,c)}static get DATE_SHORT(){return Mu}static get DATE_MED(){return NE}static get DATE_MED_WITH_WEEKDAY(){return Bb}static get DATE_FULL(){return PE}static get DATE_HUGE(){return LE}static get TIME_SIMPLE(){return UE}static get TIME_WITH_SECONDS(){return ME}static get TIME_WITH_SHORT_OFFSET(){return kE}static get TIME_WITH_LONG_OFFSET(){return FE}static get TIME_24_SIMPLE(){return BE}static get TIME_24_WITH_SECONDS(){return GE}static get TIME_24_WITH_SHORT_OFFSET(){return VE}static get TIME_24_WITH_LONG_OFFSET(){return $E}static get DATETIME_SHORT(){return WE}static get DATETIME_SHORT_WITH_SECONDS(){return qE}static get DATETIME_MED(){return QE}static get DATETIME_MED_WITH_SECONDS(){return jE}static get DATETIME_MED_WITH_WEEKDAY(){return Gb}static get DATETIME_FULL(){return HE}static get DATETIME_FULL_WITH_SECONDS(){return KE}static get DATETIME_HUGE(){return YE}static get DATETIME_HUGE_WITH_SECONDS(){return JE}};function mo(t){if(Ae.isDateTime(t))return t;if(t&&t.valueOf&&Gr(t.valueOf()))return Ae.fromJSDate(t);if(t&&typeof t=="object")return Ae.fromObject(t);throw new Ue(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var CC="3.7.1";ot.DateTime=Ae;ot.Duration=Ce;ot.FixedOffsetZone=st;ot.IANAZone=pr;ot.Info=Hn;ot.Interval=Kn;ot.InvalidZone=ku;ot.Settings=ge;ot.SystemZone=To;ot.VERSION=CC;ot.Zone=Vr});var PT=H((Zj,NT)=>{"use strict";var Yn=vT();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=Yn.DateTime.fromJSDate(t,r):typeof t=="number"?this._date=Yn.DateTime.fromMillis(t,r):typeof t=="string"&&(this._date=Yn.DateTime.fromISO(t,r),this._date.isValid||(this._date=Yn.DateTime.fromRFC2822(t,r)),this._date.isValid||(this._date=Yn.DateTime.fromSQL(t,r)),this._date.isValid||(this._date=Yn.DateTime.fromFormat(t,"EEE, d MMM yyyy HH:mm:ss",r))):this._date=Yn.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))}NT.exports=Z});var MT=H((Xj,UT)=>{"use strict";function Jn(t){return{start:t,count:1}}function LT(t,e){t.end=e,t.step=e-t.start,t.count=2}function _p(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 vC(t){for(var e=[],r=void 0,n=0;n<t.length;n++){var i=t[n];typeof i!="number"?(_p(e,r,Jn(i)),r=void 0):r?r.count===1?LT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Jn(r.start)),r=Jn(r.end),LT(r,i)):(_p(e,r),r=Jn(i)):r=Jn(i)}return _p(e,r),e}UT.exports=vC});var FT=H((e2,kT)=>{"use strict";var NC=MT();function PC(t,e,r){var n=NC(t);if(n.length===1){var i=n[0],s=i.step;if(s===1&&i.start===e&&i.end===r)return"*";if(s!==1&&i.start===e&&i.end===r-s+1)return"*/"+s}for(var o=[],a=0,u=n.length;a<u;++a){var c=n[a];if(c.count===1){o.push(c.start);continue}var s=c.step;if(c.step===1){o.push(c.start+"-"+c.end);continue}var l=c.start==0?c.count-1:c.count;c.step*l>c.end?o=o.concat(Array.from({length:c.end-c.start+1}).map(function(p,m){var f=c.start+m;return(f-c.start)%c.step===0?f:null}).filter(function(p){return p!=null})):c.end===r-c.step+1?o.push(c.start+"/"+c.step):o.push(c.start+"-"+c.end+"/"+c.step)}return o.join(",")}kT.exports=PC});var VT=H((t2,GT)=>{"use strict";var zn=PT(),LC=FT(),BT=1e4;function M(t,e){this._options=e,this._utc=e.utc||!1,this._tz=this._utc?"UTC":e.tz,this._currentDate=new zn(e.currentDate,this._tz),this._startDate=e.startDate?new zn(e.startDate,this._tz):null,this._endDate=e.endDate?new zn(e.endDate,this._tz):null,this._isIterator=e.iterator||!1,this._hasIterated=!1,this._nthDayOfWeek=e.nthDayOfWeek||0,this.fields=M._freezeFields(t)}M.map=["second","minute","hour","dayOfMonth","month","dayOfWeek"];M.predefined={"@yearly":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@hourly":"0 * * * *"};M.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"]}];M.daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31];M.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}};M.parseDefaults=["0","*","*","*","*","*"];M.standardValidCharacters=/^[,*\d/-]+$/;M.dayOfWeekValidCharacters=/^[?,*\dL#/-]+$/;M.dayOfMonthValidCharacters=/^[?,*\dL/-]+$/;M.validCharacters={second:M.standardValidCharacters,minute:M.standardValidCharacters,hour:M.standardValidCharacters,dayOfMonth:M.dayOfMonthValidCharacters,month:M.standardValidCharacters,dayOfWeek:M.dayOfWeekValidCharacters};M._isValidConstraintChar=function(e,r){return typeof r!="string"?!1:e.chars.some(function(n){return r.indexOf(n)>-1})};M._parseField=function(e,r,n){switch(e){case"month":case"dayOfWeek":var i=M.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(!M.validCharacters[e].test(r))throw new Error("Invalid characters, got value: "+r);r.indexOf("*")!==-1?r=r.replace(/\*/g,n.min+"-"+n.max):r.indexOf("?")!==-1&&(r=r.replace(/\?/g,n.min+"-"+n.max));function s(u){var c=[];function l(f){if(f instanceof Array)for(var g=0,y=f.length;g<y;g++){var T=f[g];if(M._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(M._isValidConstraintChar(n,f)){c.push(f);return}var _=+f;if(Number.isNaN(_)||_<n.min||_>n.max)throw new Error("Constraint error, got value "+f+" expected range "+n.min+"-"+n.max);e==="dayOfWeek"&&(_=_%7),c.push(_)}}var d=u.split(",");if(!d.every(function(f){return f.length>0}))throw new Error("Invalid list value format");if(d.length>1)for(var p=0,m=d.length;p<m;p++)l(o(d[p]));else l(o(u));return c.sort(M._sortCompareFn),c}function o(u){var c=1,l=u.split("/");if(l.length>2)throw new Error("Invalid repeat: "+u);return l.length>1?(l[0]==+l[0]&&(l=[l[0]+"-"+n.max,l[1]]),a(l[0],l[l.length-1])):a(u,c)}function a(u,c){var l=[],d=u.split("-");if(d.length>1){if(d.length<2)return+u;if(!d[0].length){if(!d[1].length)throw new Error("Invalid range: "+u);return+u}var p=+d[0],m=+d[1];if(Number.isNaN(p)||Number.isNaN(m)||p<n.min||m>n.max)throw new Error("Constraint error, got range "+p+"-"+m+" expected range "+n.min+"-"+n.max);if(p>m)throw new Error("Invalid range: "+u);var f=+c;if(Number.isNaN(f)||f<=0)throw new Error("Constraint error, cannot repeat at every "+f+" time.");e==="dayOfWeek"&&m%7===0&&l.push(0);for(var g=p,y=m;g<=y;g++){var T=l.indexOf(g)!==-1;!T&&f>0&&f%c===0?(f=1,l.push(g)):f++}return l}return Number.isNaN(+u)?u:+u}return s(r)};M._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)};M._handleMaxDaysInMonth=function(t){if(t.month.length===1){var e=M.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(M._sortCompareFn)}};M._freezeFields=function(t){for(var e=0,r=M.map.length;e<r;++e){var n=M.map[e],i=t[n];t[n]=Object.freeze(i)}return Object.freeze(t)};M.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)}};M.prototype._findSchedule=function(e){function r(T,_){for(var S=0,R=_.length;S<R;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,R=T.getDate()-T.getDate()%7,E=Math.floor(R/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 zn(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<BT;){if(l++,e){if(a&&o.getTime()-a.getTime()<0)throw new Error("Out of the timespan range")}else if(u&&u.getTime()-o.getTime()<0)throw new Error("Out of the timespan range");var p=r(o.getDate(),this.fields.dayOfMonth);i(this.fields.dayOfMonth)&&(p=p||o.isLastDayOfMonth());var m=r(o.getDay(),this.fields.dayOfWeek);i(this.fields.dayOfWeek)&&(m=m||d(this.fields.dayOfWeek));var f=this.fields.dayOfMonth.length>=M.daysInMonth[o.getMonth()],g=this.fields.dayOfWeek.length===M.constraints[5].max-M.constraints[5].min+1,y=o.getHours();if(!p&&(!m||g)){this._applyTimezoneShift(o,s,"Day");continue}if(!f&&g&&!p){this._applyTimezoneShift(o,s,"Day");continue}if(f&&!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>=BT)throw new Error("Invalid expression, loop limit exceeded");return this._currentDate=new zn(o,this._tz),this._hasIterated=!0,o};M.prototype.next=function(){var e=this._findSchedule();return this._isIterator?{value:e,done:!this.hasNext()}:e};M.prototype.prev=function(){var e=this._findSchedule(!0);return this._isIterator?{value:e,done:!this.hasPrev()}:e};M.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}};M.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}};M.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};M.prototype.reset=function(e){this._currentDate=new zn(e||this._options.currentDate)};M.prototype.stringify=function(e){for(var r=[],n=e?0:1,i=M.map.length;n<i;++n){var s=M.map[n],o=this.fields[s],a=M.constraints[n];s==="dayOfMonth"&&this.fields.month.length===1?a={min:1,max:M.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(LC(o,a.min,a.max))}return r.join(" ")};M.parse=function(e,r){var n=this;typeof r=="function"&&(r={});function i(s,o){o||(o={}),typeof o.currentDate>"u"&&(o.currentDate=new zn(void 0,n._tz)),M.predefined[s]&&(s=M.predefined[s]);var a=[],u=(s+"").trim().split(/\s+/);if(u.length>6)throw new Error("Invalid cron expression");for(var c=M.map.length-u.length,l=0,d=M.map.length;l<d;++l){var p=M.map[l],m=u[u.length>d?l:l-c];if(l<c||!m)a.push(M._parseField(p,M.parseDefaults[l],M.constraints[l]));else{var f=p==="dayOfWeek"?_(m):m;a.push(M._parseField(p,f,M.constraints[l]))}}for(var g={},l=0,d=M.map.length;l<d;l++){var y=M.map[l];g[y]=a[l]}var T=M._handleMaxDaysInMonth(g);return g.dayOfMonth=T||g.dayOfMonth,new M(g,o);function _(S){var R=S.split("#");if(R.length>1){var E=+R[R.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(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 S}}return i(e,r)};M.fieldsToExpression=function(e,r){function n(p,m,f){if(!m)throw new Error("Validation error, Field "+p+" is missing");if(m.length===0)throw new Error("Validation error, Field "+p+" contains no values");for(var g=0,y=m.length;g<y;g++){var T=m[g];if(!M._isValidConstraintChar(f,T)&&(typeof T!="number"||Number.isNaN(T)||T<f.min||T>f.max))throw new Error("Constraint error, got value "+T+" expected range "+f.min+"-"+f.max)}}for(var i={},s=0,o=M.map.length;s<o;++s){var a=M.map[s],u=e[a];n(a,u,M.constraints[s]);for(var c=[],l=-1;++l<u.length;)c[l]=u[l];if(u=c.sort(M._sortCompareFn).filter(function(p,m,f){return!m||p!==f[m-1]}),u.length!==c.length)throw new Error("Validation error, Field "+a+" contains duplicate values");i[a]=u}var d=M._handleMaxDaysInMonth(i);return i.dayOfMonth=d||i.dayOfMonth,new M(i,r||{})};GT.exports=M});var WT=H((r2,$T)=>{"use strict";var ju=VT();function $r(){}$r._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:ju.parse(e)};if(r.length>6)return{interval:ju.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};$r.parseExpression=function(e,r){return ju.parse(e,r)};$r.fieldsToExpression=function(e,r){return ju.fieldsToExpression(e,r)};$r.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=$r._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};$r.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,$r.parseString(i.toString()))})};$T.exports=$r});var OB={};N(OB,{APP_DEV:()=>rc,APP_DEV_PREFIX:()=>Tt,APP_PREFIX:()=>Et,AutomationViewMode:()=>tc,BUDIBASE_DATASOURCE_TYPE:()=>Qp,BadRequestError:()=>Gc,BudibaseError:()=>gs,Config:()=>zp,Cookie:()=>Zn,DEFAULT_BB_DATASOURCE_ID:()=>Pi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Yp,DEFAULT_EXPENSES_TABLE_ID:()=>Kp,DEFAULT_INVENTORY_TABLE_ID:()=>Hp,DEFAULT_JOBS_TABLE_ID:()=>jp,DEFAULT_TENANT_ID:()=>Se,DeprecatedViews:()=>Zi,DesignDocuments:()=>bo,DocumentType:()=>Te,Duration:()=>De,DurationType:()=>Tm,EmailUnavailableError:()=>Ar,Endpoint:()=>Bl,EndpointGroup:()=>_i,EndpointGroupList:()=>Wa,FeatureDisabledError:()=>qc,ForbiddenError:()=>Vc,GlobalRole:()=>Jp,HTTPError:()=>$e,Header:()=>et,InternalTable:()=>tr,InvalidAPIKeyError:()=>ys,MAX_VALID_DATE:()=>ic,MIN_VALID_DATE:()=>iA,NotFoundError:()=>Bc,NotImplementedError:()=>$c,RedisClient:()=>je,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Jt,SQS_DATASOURCE_INTERNAL:()=>qp,StaticDatabases:()=>xe,UNICODE_MAX:()=>We,USER_METADATA_PREFIX:()=>wo,UnexpectedError:()=>Fc,UsageLimitError:()=>Wc,UserStatus:()=>nc,ViewName:()=>qr,accounts:()=>fi,auth:()=>Lh,blacklist:()=>Fh,cache:()=>va,configs:()=>Sr,constants:()=>Zp,context:()=>_e,csv:()=>Jh,db:()=>Zr,docIds:()=>Wf,docUpdates:()=>Gh,encryption:()=>vh,env:()=>h,errors:()=>jc,events:()=>Ss,features:()=>_h,getPublicError:()=>Qc,init:()=>IB,installation:()=>nl,locks:()=>ws,logging:()=>da,middleware:()=>Ph,objectStore:()=>sm,permissions:()=>Th,platform:()=>Zo,plugins:()=>Mh,queue:()=>Cm,redis:()=>kh,roles:()=>Eh,security:()=>Hm,sessions:()=>ul,setEnv:()=>No,sql:()=>Yh,tenancy:()=>_B,timers:()=>el,userUtils:()=>Im,users:()=>_s,utils:()=>ms,withEnv:()=>lA});module.exports=pO(OB);var Sr={};N(Sr,{analyticsEnabled:()=>Zc,generateConfigID:()=>fl,getAIConfig:()=>B0,getConfig:()=>It,getDefaultGoogleConfig:()=>ih,getGoogleConfig:()=>ml,getGoogleDatasourceConfig:()=>ah,getOIDCConfig:()=>M0,getOIDCConfigById:()=>uh,getOIDCLogosDoc:()=>L0,getPlatformUrl:()=>ka,getRecaptchaConfig:()=>G0,getSCIMConfig:()=>F0,getSMTPConfig:()=>k0,getSMTPConfigDoc:()=>iI,getSettingsConfig:()=>oh,getSettingsConfigDoc:()=>Is,save:()=>N0});var fO=["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"],mO=["automation:deleted","workspace_app:deleted","datasource:deleted","table:deleted","query:deleted","view:deleted"],Xh=[...fO,...mO],eg={"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,"workspace:created":void 0,"workspace:deleted":void 0,"workspace:updated":void 0,"workspace_app:created":void 0,"workspace_app:deleted":void 0,"workspace_app:updated":void 0};var Gl=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Gl||{}),Vl=(p=>(p.STRING="string",p.CODE="code",p.LONGFORM="longForm",p.BOOLEAN="boolean",p.NUMBER="number",p.PASSWORD="password",p.LIST="list",p.OBJECT="object",p.JSON="json",p.FILE="file",p.FIELD_GROUP="fieldGroup",p.SELECT="select",p))(Vl||{}),ja=(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))(ja||{});var $l=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))($l||{});var hO=V(require("lodash/isPlainObject")),Dr=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Dr||{}),er=(i=>(i.CONTAINS="contains",i.NOT_CONTAINS="notContains",i.CONTAINS_ANY="containsAny",i.ONE_OF="oneOf",i))(er||{}),gn=(e=>(e.RANGE="range",e))(gn||{}),Ii=(r=>(r.AND="$and",r.OR="$or",r))(Ii||{});function Ha(t){return Object.values(Ii).includes(t)}function tg(t){return Object.values(Dr).includes(t)}function rg(t){return Object.values(er).includes(t)}function Ka(t){return Object.values(gn).includes(t)}var Oi=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(Oi||{});var ng=t=>typeof t=="object"&&t._id&&t._rev;var vs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(vs||{});var ig={USE_ZOD_VALIDATOR:!1,AI_AGENTS:!1,WORKSPACES:!0,DIRECT_LOGIN_TO_ACCOUNT_PORTAL:!1,DEBUG_UI:!1};var wG={OptOut:"analytics:opt:out",OptIn:"analytics:opt:in",SelfHostInit:"hosting:init",PluginInit:"plugin:init"};var Ns=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(Ns||{});var Ya=(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))(Ya||{});var Ja=t=>t.hosting==="cloud";var za=t=>t.authType==="sso";var w="_",We="\uFFF0",Cr=t=>`${t}${w}`,Te=(J=>(J.USER="us",J.GROUP="gr",J.WORKSPACE="workspace",J.CONFIG="config",J.TEMPLATE="template",J.APP="app",J.DEV="dev",J.APP_DEV="app_dev",J.APP_METADATA="app_metadata",J.ROLE="role",J.DEV_INFO="devinfo",J.AUTOMATION_LOG="log_au",J.ACCOUNT_METADATA="acc_metadata",J.PLUGIN="plg",J.DATASOURCE="datasource",J.DATASOURCE_PLUS="datasource_plus",J.APP_BACKUP="backup",J.TABLE="ta",J.ROW="ro",J.AUTOMATION="au",J.LINK="li",J.WEBHOOK="wh",J.INSTANCE="inst",J.LAYOUT="layout",J.SCREEN="screen",J.QUERY="query",J.DEPLOYMENTS="deployments",J.METADATA="metadata",J.MEM_VIEW="view",J.USER_FLAG="flag",J.AUTOMATION_METADATA="meta_au",J.AUDIT_LOG="al",J.SCIM_LOG="scimlog",J.ROW_ACTIONS="ra",J.OAUTH2_CONFIG="oauth2",J.OAUTH2_CONFIG_LOG="oauth2log",J.AGENT_CHAT="agentchat",J.AGENT_TOOL_SOURCE="agenttoolsource",J.WORKSPACE_APP="workspace_app",J.WORKSPACE_FAVOURITE="workspace_favourite",J))(Te||{});var tr=(e=>(e.USER_METADATA="ta_users",e))(tr||{}),Wl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(Wl||{});var X=(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))(X||{}),fe=(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))(fe||{}),xt=(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))(xt||{});var oe=(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))(oe||{}),sg=[...Object.values(oe),...Object.values(xt)];var ql=(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))(ql||{}),og={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Ql=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Ql||{}),jl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(jl||{});function ag(t){return t.stepId==="BRANCH"}var Hl=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))(Hl||{});var Kl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Kl||{});var Yl="bb_internal";var ug=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Za(t){return!!t.providerType}var Jl=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Jl||{});var P$=Object.values(Jl);var F$=["rows","queries","automations"],B$=["queries","automations"];var En=(r=>(r.ASCENDING="ascending",r.DESCENDING="descending",r))(En||{}),Xa=(r=>(r.STRING="string",r.NUMBER="number",r))(Xa||{});var ne={};N(ne,{BRAND:()=>qO,DIRTY:()=>Tn,EMPTY_PATH:()=>_O,INVALID:()=>j,NEVER:()=>bx,OK:()=>Ve,ParseStatus:()=>ke,Schema:()=>re,ZodAny:()=>Pr,ZodArray:()=>sr,ZodBigInt:()=>Sn,ZodBoolean:()=>_n,ZodBranded:()=>Ls,ZodCatch:()=>Pn,ZodDate:()=>In,ZodDefault:()=>Nn,ZodDiscriminatedUnion:()=>ru,ZodEffects:()=>ft,ZodEnum:()=>Cn,ZodError:()=>Ke,ZodFirstPartyTypeKind:()=>K,ZodFunction:()=>iu,ZodIntersection:()=>wn,ZodIssueCode:()=>x,ZodLazy:()=>bn,ZodLiteral:()=>Dn,ZodMap:()=>Ci,ZodNaN:()=>Ni,ZodNativeEnum:()=>vn,ZodNever:()=>Rt,ZodNull:()=>xn,ZodNullable:()=>Qt,ZodNumber:()=>An,ZodObject:()=>Ye,ZodOptional:()=>dt,ZodParsedType:()=>U,ZodPipeline:()=>Us,ZodPromise:()=>Lr,ZodReadonly:()=>Ln,ZodRecord:()=>nu,ZodSchema:()=>re,ZodSet:()=>vi,ZodString:()=>Nr,ZodSymbol:()=>bi,ZodTransformer:()=>ft,ZodTuple:()=>qt,ZodType:()=>re,ZodUndefined:()=>On,ZodUnion:()=>Rn,ZodUnknown:()=>ir,ZodVoid:()=>Di,addIssueToContext:()=>D,any:()=>XO,array:()=>nx,bigint:()=>KO,boolean:()=>Tg,coerce:()=>wx,custom:()=>gg,date:()=>YO,datetimeRegex:()=>mg,defaultErrorMap:()=>rr,discriminatedUnion:()=>ax,effect:()=>Tx,enum:()=>gx,function:()=>fx,getErrorMap:()=>xi,getParsedType:()=>Wt,instanceof:()=>jO,intersection:()=>ux,isAborted:()=>eu,isAsync:()=>Ri,isDirty:()=>tu,isValid:()=>vr,late:()=>QO,lazy:()=>mx,literal:()=>hx,makeIssue:()=>Ps,map:()=>dx,nan:()=>HO,nativeEnum:()=>yx,never:()=>tx,null:()=>ZO,nullable:()=>Sx,number:()=>Eg,object:()=>ix,objectUtil:()=>zl,oboolean:()=>Rx,onumber:()=>xx,optional:()=>Ax,ostring:()=>Ox,pipeline:()=>Ix,preprocess:()=>_x,promise:()=>Ex,quotelessJson:()=>TO,record:()=>lx,set:()=>px,setErrorMap:()=>SO,strictObject:()=>sx,string:()=>yg,symbol:()=>JO,transformer:()=>Tx,tuple:()=>cx,undefined:()=>zO,union:()=>ox,unknown:()=>ex,util:()=>ie,void:()=>rx});var ie;(function(t){t.assertEqual=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"&&Number.isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}t.joinValues=n,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ie||(ie={}));var zl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(zl||(zl={}));var U=ie.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Wt=t=>{switch(typeof t){case"undefined":return U.undefined;case"string":return U.string;case"number":return Number.isNaN(t)?U.nan:U.number;case"boolean":return U.boolean;case"function":return U.function;case"bigint":return U.bigint;case"symbol":return U.symbol;case"object":return Array.isArray(t)?U.array:t===null?U.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?U.promise:typeof Map<"u"&&t instanceof Map?U.map:typeof Set<"u"&&t instanceof Set?U.set:typeof Date<"u"&&t instanceof Date?U.date:U.object;default:return U.unknown}};var x=ie.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),TO=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:"),Ke=class t extends Error{get errors(){return this.issues}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}format(e){let r=e||function(s){return s.message},n={_errors:[]},i=s=>{for(let o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let a=n,u=0;for(;u<o.path.length;){let c=o.path[u];u===o.path.length-1?(a[c]=a[c]||{_errors:[]},a[c]._errors.push(r(o))):a[c]=a[c]||{_errors:[]},a=a[c],u++}}};return i(this),n}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,ie.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=r=>r.message){let r={},n=[];for(let i of this.issues)if(i.path.length>0){let s=i.path[0];r[s]=r[s]||[],r[s].push(e(i))}else n.push(e(i));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};Ke.create=t=>new Ke(t);var AO=(t,e)=>{let r;switch(t.code){case x.invalid_type:t.received===U.undefined?r="Required":r=`Expected ${t.expected}, received ${t.received}`;break;case x.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(t.expected,ie.jsonStringifyReplacer)}`;break;case x.unrecognized_keys:r=`Unrecognized key(s) in object: ${ie.joinValues(t.keys,", ")}`;break;case x.invalid_union:r="Invalid input";break;case x.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${ie.joinValues(t.options)}`;break;case x.invalid_enum_value:r=`Invalid enum value. Expected ${ie.joinValues(t.options)}, received '${t.received}'`;break;case x.invalid_arguments:r="Invalid function arguments";break;case x.invalid_return_type:r="Invalid function return type";break;case x.invalid_date:r="Invalid date";break;case x.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(r=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?r=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?r=`Invalid input: must end with "${t.validation.endsWith}"`:ie.assertNever(t.validation):t.validation!=="regex"?r=`Invalid ${t.validation}`:r="Invalid";break;case x.too_small:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?r=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:r="Invalid input";break;case x.too_big:t.type==="array"?r=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?r=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?r=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?r=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?r=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:r="Invalid input";break;case x.custom:r="Invalid input";break;case x.invalid_intersection_types:r="Intersection results could not be merged";break;case x.not_multiple_of:r=`Number must be a multiple of ${t.multipleOf}`;break;case x.not_finite:r="Number must be finite";break;default:r=e.defaultError,ie.assertNever(t)}return{message:r}},rr=AO;var cg=rr;function SO(t){cg=t}function xi(){return cg}var Ps=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},_O=[];function D(t,e){let r=xi(),n=Ps({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===rr?void 0:rr].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"}),Tn=t=>({status:"dirty",value:t}),Ve=t=>({status:"valid",value:t}),eu=t=>t.status==="aborted",tu=t=>t.status==="dirty",vr=t=>t.status==="valid",Ri=t=>typeof Promise<"u"&&t instanceof Promise;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 pt=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},lg=(t,e)=>{if(vr(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 Ke(t.common.issues);return this._error=r,this._error}}};function ee(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)=>{let{message:u}=t;return o.code==="invalid_enum_value"?{message:u??a.defaultError}:typeof a.data>"u"?{message:u??n??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:u??r??a.defaultError}},description:i}}var re=class{get description(){return this._def.description}_getType(e){return Wt(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Wt(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:Wt(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(Ri(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){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wt(e)},i=this._parseSync({data:e,path:n.path,parent:n});return lg(n,i)}"~validate"(e){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Wt(e)};if(!this["~standard"].async)try{let n=this._parseSync({data:e,path:[],parent:r});return vr(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:r}).then(n=>vr(n)?{value:n.value}:{issues:r.common.issues})}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:Wt(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Ri(i)?i:Promise.resolve(i));return lg(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 ft({schema:this,typeName:K.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}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),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return dt.create(this,this._def)}nullable(){return Qt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return sr.create(this)}promise(){return Lr.create(this,this._def)}or(e){return Rn.create([this,e],this._def)}and(e){return wn.create(this,e,this._def)}transform(e){return new ft({...ee(this._def),schema:this,typeName:K.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let r=typeof e=="function"?e:()=>e;return new Nn({...ee(this._def),innerType:this,defaultValue:r,typeName:K.ZodDefault})}brand(){return new Ls({typeName:K.ZodBranded,type:this,...ee(this._def)})}catch(e){let r=typeof e=="function"?e:()=>e;return new Pn({...ee(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 Us.create(this,e)}readonly(){return Ln.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},IO=/^c[^\s-]{8,}$/i,OO=/^[0-9a-z]+$/,xO=/^[0-9A-HJKMNP-TV-Z]{26}$/i,RO=/^[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,wO=/^[a-z0-9_-]{21}$/i,bO=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,DO=/^[-+]?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,vO="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Zl,NO=/^(?:(?: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=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,LO=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,UO=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,MO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,kO=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,pg="((\\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])))",FO=new RegExp(`^${pg}$`);function fg(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let r=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${r}`}function BO(t){return new RegExp(`^${fg(t)}$`)}function mg(t){let e=`${pg}T${fg(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)&&NO.test(t)||(e==="v6"||!e)&&LO.test(t))}function VO(t,e){if(!bO.test(t))return!1;try{let[r]=t.split(".");if(!r)return!1;let n=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function $O(t,e){return!!((e==="v4"||!e)&&PO.test(t)||(e==="v6"||!e)&&UO.test(t))}var Nr=class t extends re{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==U.string){let s=this._getOrReturnCtx(e);return D(s,{code:x.invalid_type,expected:U.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),D(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),D(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?D(i,{code:x.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&D(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),D(i,{validation:"email",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")Zl||(Zl=new RegExp(vO,"u")),Zl.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"emoji",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")RO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"uuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")wO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"nanoid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")IO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"cuid",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")OO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"cuid2",code:x.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")xO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(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),D(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),D(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),D(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),D(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),D(i,{code:x.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?mg(s).test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?FO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?BO(s).test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{code:x.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?DO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(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),D(i,{validation:"ip",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="jwt"?VO(e.data,s.alg)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"jwt",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="cidr"?$O(e.data,s.version)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"cidr",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?MO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"base64",code:x.invalid_string,message:s.message}),n.dirty()):s.kind==="base64url"?kO.test(e.data)||(i=this._getOrReturnCtx(e,i),D(i,{validation:"base64url",code:x.invalid_string,message:s.message}),n.dirty()):ie.assertNever(s);return{status:n.value,value:e.data}}_regex(e,r,n){return this.refinement(i=>e.test(i),{validation:r,code:x.invalid_string,...G.errToObj(n)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...G.errToObj(e)})}url(e){return this._addCheck({kind:"url",...G.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...G.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...G.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...G.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...G.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...G.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...G.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...G.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...G.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...G.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...G.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...G.errToObj(e)})}datetime(e){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:e?.offset??!1,local:e?.local??!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 isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}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}};Nr.create=t=>new Nr({checks:[],typeName:K.ZodString,coerce:t?.coerce??!1,...ee(t)});function WO(t,e){let r=(t.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=r>n?r:n,s=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return s%o/10**i}var An=class t extends re{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)!==U.number){let s=this._getOrReturnCtx(e);return D(s,{code:x.invalid_type,expected:U.number,received:s.parsedType}),j}let n,i=new ke;for(let s of this._def.checks)s.kind==="int"?ie.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),D(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),D(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),D(n,{code:x.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?WO(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),D(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),D(n,{code:x.not_finite,message:s.message}),i.dirty()):ie.assertNever(s);return{status:i.value,value:e.data}}gte(e,r){return this.setLimit("min",e,!0,G.toString(r))}gt(e,r){return this.setLimit("min",e,!1,G.toString(r))}lte(e,r){return this.setLimit("max",e,!0,G.toString(r))}lt(e,r){return this.setLimit("max",e,!1,G.toString(r))}setLimit(e,r,n,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:r,inclusive:n,message:G.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:G.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:G.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:G.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:G.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:G.toString(e)})}multipleOf(e,r){return this._addCheck({kind:"multipleOf",value:e,message:G.toString(r)})}finite(e){return this._addCheck({kind:"finite",message:G.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:G.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:G.toString(e)})}get minValue(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e}get maxValue(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&ie.isInteger(e.value))}get isFinite(){let e=null,r=null;for(let n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(r===null||n.value>r)&&(r=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(r)&&Number.isFinite(e)}};An.create=t=>new An({checks:[],typeName:K.ZodNumber,coerce:t?.coerce||!1,...ee(t)});var Sn=class t extends re{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==U.bigint)return this._getInvalidInput(e);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),D(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),D(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),D(n,{code:x.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ie.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){let r=this._getOrReturnCtx(e);return D(r,{code:x.invalid_type,expected:U.bigint,received:r.parsedType}),j}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}};Sn.create=t=>new Sn({checks:[],typeName:K.ZodBigInt,coerce:t?.coerce??!1,...ee(t)});var _n=class extends re{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==U.boolean){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.boolean,received:n.parsedType}),j}return Ve(e.data)}};_n.create=t=>new _n({typeName:K.ZodBoolean,coerce:t?.coerce||!1,...ee(t)});var In=class t extends re{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==U.date){let s=this._getOrReturnCtx(e);return D(s,{code:x.invalid_type,expected:U.date,received:s.parsedType}),j}if(Number.isNaN(e.data.getTime())){let s=this._getOrReturnCtx(e);return D(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),D(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),D(i,{code:x.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):ie.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,r){return this._addCheck({kind:"min",value:e.getTime(),message:G.toString(r)})}max(e,r){return this._addCheck({kind:"max",value:e.getTime(),message:G.toString(r)})}get minDate(){let e=null;for(let r of this._def.checks)r.kind==="min"&&(e===null||r.value>e)&&(e=r.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let r of this._def.checks)r.kind==="max"&&(e===null||r.value<e)&&(e=r.value);return e!=null?new Date(e):null}};In.create=t=>new In({checks:[],coerce:t?.coerce||!1,typeName:K.ZodDate,...ee(t)});var bi=class extends re{_parse(e){if(this._getType(e)!==U.symbol){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.symbol,received:n.parsedType}),j}return Ve(e.data)}};bi.create=t=>new bi({typeName:K.ZodSymbol,...ee(t)});var On=class extends re{_parse(e){if(this._getType(e)!==U.undefined){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.undefined,received:n.parsedType}),j}return Ve(e.data)}};On.create=t=>new On({typeName:K.ZodUndefined,...ee(t)});var xn=class extends re{_parse(e){if(this._getType(e)!==U.null){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.null,received:n.parsedType}),j}return Ve(e.data)}};xn.create=t=>new xn({typeName:K.ZodNull,...ee(t)});var Pr=class extends re{constructor(){super(...arguments),this._any=!0}_parse(e){return Ve(e.data)}};Pr.create=t=>new Pr({typeName:K.ZodAny,...ee(t)});var ir=class extends re{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Ve(e.data)}};ir.create=t=>new ir({typeName:K.ZodUnknown,...ee(t)});var Rt=class extends re{_parse(e){let r=this._getOrReturnCtx(e);return D(r,{code:x.invalid_type,expected:U.never,received:r.parsedType}),j}};Rt.create=t=>new Rt({typeName:K.ZodNever,...ee(t)});var Di=class extends re{_parse(e){if(this._getType(e)!==U.undefined){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.void,received:n.parsedType}),j}return Ve(e.data)}};Di.create=t=>new Di({typeName:K.ZodVoid,...ee(t)});var sr=class t extends re{_parse(e){let{ctx:r,status:n}=this._processInputParams(e),i=this._def;if(r.parsedType!==U.array)return D(r,{code:x.invalid_type,expected:U.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)&&(D(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&&(D(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&&(D(r,{code:x.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new pt(r,o,r.path,a)))).then(o=>ke.mergeArray(n,o));let s=[...r.data].map((o,a)=>i.type._parseSync(new pt(r,o,r.path,a)));return ke.mergeArray(n,s)}get element(){return this._def.type}min(e,r){return new t({...this._def,minLength:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxLength:{value:e,message:G.toString(r)}})}length(e,r){return new t({...this._def,exactLength:{value:e,message:G.toString(r)}})}nonempty(e){return this.min(1,e)}};sr.create=(t,e)=>new sr({type:t,minLength:null,maxLength:null,exactLength:null,typeName:K.ZodArray,...ee(e)});function wi(t){if(t instanceof Ye){let e={};for(let r in t.shape){let n=t.shape[r];e[r]=dt.create(wi(n))}return new Ye({...t._def,shape:()=>e})}else return t instanceof sr?new sr({...t._def,type:wi(t.element)}):t instanceof dt?dt.create(wi(t.unwrap())):t instanceof Qt?Qt.create(wi(t.unwrap())):t instanceof qt?qt.create(t.items.map(e=>wi(e))):t}var Ye=class t extends re{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),r=ie.objectKeys(e);return this._cached={shape:e,keys:r},this._cached}_parse(e){if(this._getType(e)!==U.object){let c=this._getOrReturnCtx(e);return D(c,{code:x.invalid_type,expected:U.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 Rt&&this._def.unknownKeys==="strip"))for(let c in i.data)o.includes(c)||a.push(c);let u=[];for(let c of o){let l=s[c],d=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new pt(i,d,i.path,c)),alwaysSet:c in i.data})}if(this._def.catchall instanceof Rt){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&&(D(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 pt(i,d,i.path,l)),alwaysSet:l in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let c=[];for(let l of u){let d=await l.key,p=await l.value;c.push({key:d,value:p,alwaysSet:l.alwaysSet})}return c}).then(c=>ke.mergeObjectSync(n,c)):ke.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return G.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(r,n)=>{let i=this._def.errorMap?.(r,n).message??n.defaultError;return r.code==="unrecognized_keys"?{message:G.errToObj(e).message??i}:{message:i}}}:{}})}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={};for(let n of ie.objectKeys(e))e[n]&&this.shape[n]&&(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}omit(e){let r={};for(let n of ie.objectKeys(this.shape))e[n]||(r[n]=this.shape[n]);return new t({...this._def,shape:()=>r})}deepPartial(){return wi(this)}partial(e){let r={};for(let n of ie.objectKeys(this.shape)){let i=this.shape[n];e&&!e[n]?r[n]=i:r[n]=i.optional()}return new t({...this._def,shape:()=>r})}required(e){let r={};for(let n of ie.objectKeys(this.shape))if(e&&!e[n])r[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof dt;)s=s._def.innerType;r[n]=s}return new t({...this._def,shape:()=>r})}keyof(){return hg(ie.objectKeys(this.shape))}};Ye.create=(t,e)=>new Ye({shape:()=>t,unknownKeys:"strip",catchall:Rt.create(),typeName:K.ZodObject,...ee(e)});Ye.strictCreate=(t,e)=>new Ye({shape:()=>t,unknownKeys:"strict",catchall:Rt.create(),typeName:K.ZodObject,...ee(e)});Ye.lazycreate=(t,e)=>new Ye({shape:t,unknownKeys:"strip",catchall:Rt.create(),typeName:K.ZodObject,...ee(e)});var Rn=class extends re{_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 Ke(a.ctx.common.issues));return D(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 Ke(u));return D(r,{code:x.invalid_union,unionErrors:a}),j}}get options(){return this._def.options}};Rn.create=(t,e)=>new Rn({options:t,typeName:K.ZodUnion,...ee(e)});var nr=t=>t instanceof bn?nr(t.schema):t instanceof ft?nr(t.innerType()):t instanceof Dn?[t.value]:t instanceof Cn?t.options:t instanceof vn?ie.objectValues(t.enum):t instanceof Nn?nr(t._def.innerType):t instanceof On?[void 0]:t instanceof xn?[null]:t instanceof dt?[void 0,...nr(t.unwrap())]:t instanceof Qt?[null,...nr(t.unwrap())]:t instanceof Ls||t instanceof Ln?nr(t.unwrap()):t instanceof Pn?nr(t._def.innerType):[],ru=class t extends re{_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.object)return D(r,{code:x.invalid_type,expected:U.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}):(D(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=nr(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,...ee(n)})}};function Xl(t,e){let r=Wt(t),n=Wt(e);if(t===e)return{valid:!0,data:t};if(r===U.object&&n===U.object){let i=ie.objectKeys(e),s=ie.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Xl(t[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===U.array&&n===U.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=Xl(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===U.date&&n===U.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var wn=class extends re{_parse(e){let{status:r,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(eu(s)||eu(o))return j;let a=Xl(s.value,o.value);return a.valid?((tu(s)||tu(o))&&r.dirty(),{status:r.value,value:a.data}):(D(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}))}};wn.create=(t,e,r)=>new wn({left:t,right:e,typeName:K.ZodIntersection,...ee(r)});var qt=class t extends re{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.array)return D(n,{code:x.invalid_type,expected:U.array,received:n.parsedType}),j;if(n.data.length<this._def.items.length)return D(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&&(D(n,{code:x.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let s=[...n.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new pt(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>ke.mergeArray(r,o)):ke.mergeArray(r,s)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};qt.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new qt({items:t,typeName:K.ZodTuple,rest:null,...ee(e)})};var nu=class t extends re{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!==U.object)return D(n,{code:x.invalid_type,expected:U.object,received:n.parsedType}),j;let i=[],s=this._def.keyType,o=this._def.valueType;for(let a in n.data)i.push({key:s._parse(new pt(n,a,n.path,a)),value:o._parse(new pt(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?ke.mergeObjectAsync(r,i):ke.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(e,r,n){return r instanceof re?new t({keyType:e,valueType:r,typeName:K.ZodRecord,...ee(n)}):new t({keyType:Nr.create(),valueType:e,typeName:K.ZodRecord,...ee(r)})}},Ci=class extends re{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!==U.map)return D(n,{code:x.invalid_type,expected:U.map,received:n.parsedType}),j;let i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],c)=>({key:i._parse(new pt(n,a,n.path,[c,"key"])),value:s._parse(new pt(n,u,n.path,[c,"value"]))}));if(n.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let c=await u.key,l=await u.value;if(c.status==="aborted"||l.status==="aborted")return j;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let c=u.key,l=u.value;if(c.status==="aborted"||l.status==="aborted")return j;(c.status==="dirty"||l.status==="dirty")&&r.dirty(),a.set(c.value,l.value)}return{status:r.value,value:a}}}};Ci.create=(t,e,r)=>new Ci({valueType:e,keyType:t,typeName:K.ZodMap,...ee(r)});var vi=class t extends re{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.parsedType!==U.set)return D(n,{code:x.invalid_type,expected:U.set,received:n.parsedType}),j;let i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(D(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&&(D(n,{code:x.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let s=this._def.valueType;function o(u){let c=new Set;for(let l of u){if(l.status==="aborted")return j;l.status==="dirty"&&r.dirty(),c.add(l.value)}return{status:r.value,value:c}}let a=[...n.data.values()].map((u,c)=>s._parse(new pt(n,u,n.path,c)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,r){return new t({...this._def,minSize:{value:e,message:G.toString(r)}})}max(e,r){return new t({...this._def,maxSize:{value:e,message:G.toString(r)}})}size(e,r){return this.min(e,r).max(e,r)}nonempty(e){return this.min(1,e)}};vi.create=(t,e)=>new vi({valueType:t,minSize:null,maxSize:null,typeName:K.ZodSet,...ee(e)});var iu=class t extends re{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.function)return D(r,{code:x.invalid_type,expected:U.function,received:r.parsedType}),j;function n(a,u){return Ps({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,xi(),rr].filter(c=>!!c),issueData:{code:x.invalid_arguments,argumentsError:u}})}function i(a,u){return Ps({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,xi(),rr].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 Lr){let a=this;return Ve(async function(...u){let c=new Ke([]),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 Ke([n(u,c.error)]);let l=Reflect.apply(o,this,c.data),d=a._def.returns.safeParse(l,s);if(!d.success)throw new Ke([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:qt.create(e).rest(ir.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||qt.create([]).rest(ir.create()),returns:r||ir.create(),typeName:K.ZodFunction,...ee(n)})}},bn=class extends re{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})}};bn.create=(t,e)=>new bn({getter:t,typeName:K.ZodLazy,...ee(e)});var Dn=class extends re{_parse(e){if(e.data!==this._def.value){let r=this._getOrReturnCtx(e);return D(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}};Dn.create=(t,e)=>new Dn({value:t,typeName:K.ZodLiteral,...ee(e)});function hg(t,e){return new Cn({values:t,typeName:K.ZodEnum,...ee(e)})}var Cn=class t extends re{_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return D(r,{expected:ie.joinValues(n),received:r.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let r=this._getOrReturnCtx(e),n=this._def.values;return D(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})}};Cn.create=hg;var vn=class extends re{_parse(e){let r=ie.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==U.string&&n.parsedType!==U.number){let i=ie.objectValues(r);return D(n,{expected:ie.joinValues(i),received:n.parsedType,code:x.invalid_type}),j}if(this._cache||(this._cache=new Set(ie.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=ie.objectValues(r);return D(n,{received:n.data,code:x.invalid_enum_value,options:i}),j}return Ve(e.data)}get enum(){return this._def.values}};vn.create=(t,e)=>new vn({values:t,typeName:K.ZodNativeEnum,...ee(e)});var Lr=class extends re{unwrap(){return this._def.type}_parse(e){let{ctx:r}=this._processInputParams(e);if(r.parsedType!==U.promise&&r.common.async===!1)return D(r,{code:x.invalid_type,expected:U.promise,received:r.parsedType}),j;let n=r.parsedType===U.promise?r.data:Promise.resolve(r.data);return Ve(n.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};Lr.create=(t,e)=>new Lr({type:t,typeName:K.ZodPromise,...ee(e)});var ft=class extends re{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=>{D(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"?Tn(u.value):r.value==="dirty"?Tn(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"?Tn(a.value):r.value==="dirty"?Tn(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(!vr(o))return j;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=>vr(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):j);ie.assertNever(i)}};ft.create=(t,e,r)=>new ft({schema:t,typeName:K.ZodEffects,effect:e,...ee(r)});ft.createWithPreprocess=(t,e,r)=>new ft({schema:e,effect:{type:"preprocess",transform:t},typeName:K.ZodEffects,...ee(r)});var dt=class extends re{_parse(e){return this._getType(e)===U.undefined?Ve(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};dt.create=(t,e)=>new dt({innerType:t,typeName:K.ZodOptional,...ee(e)});var Qt=class extends re{_parse(e){return this._getType(e)===U.null?Ve(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Qt.create=(t,e)=>new Qt({innerType:t,typeName:K.ZodNullable,...ee(e)});var Nn=class extends re{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return r.parsedType===U.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};Nn.create=(t,e)=>new Nn({innerType:t,typeName:K.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...ee(e)});var Pn=class extends re{_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 Ri(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ke(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Pn.create=(t,e)=>new Pn({innerType:t,typeName:K.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...ee(e)});var Ni=class extends re{_parse(e){if(this._getType(e)!==U.nan){let n=this._getOrReturnCtx(e);return D(n,{code:x.invalid_type,expected:U.nan,received:n.parsedType}),j}return{status:"valid",value:e.data}}};Ni.create=t=>new Ni({typeName:K.ZodNaN,...ee(t)});var qO=Symbol("zod_brand"),Ls=class extends re{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Us=class t extends re{_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(),Tn(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})}},Ln=class extends re{_parse(e){let r=this._def.innerType._parse(e),n=i=>(vr(i)&&(i.value=Object.freeze(i.value)),i);return Ri(r)?r.then(i=>n(i)):n(r)}unwrap(){return this._def.innerType}};Ln.create=(t,e)=>new Ln({innerType:t,typeName:K.ZodReadonly,...ee(e)});function dg(t,e){let r=typeof t=="function"?t(e):typeof t=="string"?{message:t}:t;return typeof r=="string"?{message:r}:r}function gg(t,e={},r){return t?Pr.create().superRefine((n,i)=>{let s=t(n);if(s instanceof Promise)return s.then(o=>{if(!o){let a=dg(e,n),u=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:u})}});if(!s){let o=dg(e,n),a=o.fatal??r??!0;i.addIssue({code:"custom",...o,fatal:a})}}):Pr.create()}var QO={object:Ye.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 jO=(t,e={message:`Input not instance of ${t.name}`})=>gg(r=>r instanceof t,e),yg=Nr.create,Eg=An.create,HO=Ni.create,KO=Sn.create,Tg=_n.create,YO=In.create,JO=bi.create,zO=On.create,ZO=xn.create,XO=Pr.create,ex=ir.create,tx=Rt.create,rx=Di.create,nx=sr.create,ix=Ye.create,sx=Ye.strictCreate,ox=Rn.create,ax=ru.create,ux=wn.create,cx=qt.create,lx=nu.create,dx=Ci.create,px=vi.create,fx=iu.create,mx=bn.create,hx=Dn.create,gx=Cn.create,yx=vn.create,Ex=Lr.create,Tx=ft.create,Ax=dt.create,Sx=Qt.create,_x=ft.createWithPreprocess,Ix=Us.create,Ox=()=>yg().optional(),xx=()=>Eg().optional(),Rx=()=>Tg().optional(),wx={string:t=>Nr.create({...t,coerce:!0}),number:t=>An.create({...t,coerce:!0}),boolean:t=>_n.create({...t,coerce:!0}),bigint:t=>Sn.create({...t,coerce:!0}),date:t=>In.create({...t,coerce:!0})};var bx=j;var uu=ne.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),Ag=ne.record(uu,ne.string()),su=ne.record(uu,ne.any()),ou=ne.record(uu,ne.union([ne.any().array(),ne.string()])),Sg=ne.lazy(()=>ne.object({conditions:ne.array(ne.object(_g))})),au=ne.union([ne.string(),ne.number()]),_g={string:Ag.optional(),fuzzy:Ag.optional(),range:ne.record(uu,ne.union([ne.object({high:au,low:au}),ne.object({high:au}),ne.object({low:au})])).optional(),equal:su.optional(),notEqual:su.optional(),empty:su.optional(),notEmpty:su.optional(),oneOf:ou.optional(),contains:ou.optional(),notContains:ou.optional(),containsAny:ou.optional(),$and:Sg.optional(),$or:Sg.optional()},s1=ne.object({query:ne.object({allOr:ne.boolean().optional(),onEmptyFilter:ne.nativeEnum(Oi).optional(),..._g}).optional(),paginate:ne.boolean().optional(),bookmark:ne.union([ne.string(),ne.number()]).nullish(),limit:ne.number().optional(),sort:ne.string().nullish(),sortOrder:ne.nativeEnum(En).optional(),sortType:ne.nativeEnum(Xa).nullish(),version:ne.string().optional(),disableEscaping:ne.boolean().optional(),countRows:ne.boolean().optional()});var Zp={};N(Zp,{APP_DEV:()=>rc,APP_DEV_PREFIX:()=>Tt,APP_PREFIX:()=>Et,AutomationViewMode:()=>tc,BUDIBASE_DATASOURCE_TYPE:()=>Qp,Config:()=>zp,Cookie:()=>Zn,DEFAULT_BB_DATASOURCE_ID:()=>Pi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Yp,DEFAULT_EXPENSES_TABLE_ID:()=>Kp,DEFAULT_INVENTORY_TABLE_ID:()=>Hp,DEFAULT_JOBS_TABLE_ID:()=>jp,DEFAULT_TENANT_ID:()=>Se,DeprecatedViews:()=>Zi,DesignDocuments:()=>bo,DocumentType:()=>Te,GlobalRole:()=>Jp,Header:()=>et,InternalTable:()=>tr,MAX_VALID_DATE:()=>ic,MIN_VALID_DATE:()=>iA,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Jt,SQS_DATASOURCE_INTERNAL:()=>qp,StaticDatabases:()=>xe,UNICODE_MAX:()=>We,USER_METADATA_PREFIX:()=>wo,UserStatus:()=>nc,ViewName:()=>qr});var NQ={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 MQ={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 $Q="darkest",WQ="light",vx=[{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"}},Ig={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var Pi="datasource_internal_bb_default";var Wr={};N(Wr,{ColumnSplitter:()=>Cp,NoEmptyFilterStrings:()=>JT,buildQuery:()=>zT,cleanupQuery:()=>Pp,fixupFilterArrays:()=>Up,getKeyNumbering:()=>Lp,getValidOperatorsForType:()=>rv,hasFilters:()=>vp,limit:()=>XT,recurseLogicalOperators:()=>Np,removeKeyNumbering:()=>cu,runQuery:()=>Ku,search:()=>sv,sort:()=>ZT,splitFiltersArray:()=>lu});var Ji=V(Og());var Ur={};N(Ur,{filterValueToLabel:()=>kx,hasSchema:()=>Fx,isSupportedUserSearch:()=>Rg,parallelForeach:()=>Mx,processSearchFilters:()=>rd,toMap:()=>Gx,trimOtherProps:()=>Bx,unreachable:()=>Ux});var xg=V(require("lodash/pick")),Lx=["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 Mx(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 kx(){return Object.keys(tt).reduce((t,e)=>{let n=tt[e];return t[n.value]=n.label,t},{})}function Fx(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null&&!(t instanceof Date)&&Object.keys(t).length>0}function Bx(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Rg(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(Ha(s)){for(let c of t[s].conditions)if(!Rg(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 rd(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=lu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=(0,xg.default)(i,Lx);return s.field=cu(s.field),s})}]}}function Gx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var ze={};N(ze,{cancelableTimeout:()=>wg,cron:()=>Ip,deepGet:()=>nd,duplicateName:()=>ZC,getSequentialName:()=>XC,getUserColor:()=>$x,getUserInitials:()=>Vx,getUserLabel:()=>Wx,isGoogleSheets:()=>Qx,isSQL:()=>jx,lists:()=>bp,retry:()=>Hx,roles:()=>wp,schema:()=>Oo,views:()=>Rp,wait:()=>id,withTimeout:()=>qx});var nd=(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},Vx=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"},$x=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%)`},Wx=t=>{if(!t)return"";let{firstName:e,lastName:r,email:n}=t;return e&&r?`${e} ${r}`:e||r||n};function wg(t){let e;return[new Promise((r,n)=>{e=setTimeout(()=>{n({status:301,errno:"ETIME"})},t)}),()=>{clearTimeout(e)}]}async function qx(t,e){let[r,n]=wg(t),i=await Promise.race([e(),r]);return n(),i}function Qx(t){return t==="GOOGLE_SHEETS"}function jx(t){return!t||!t.source?!1:["POSTGRES","SQL_SERVER","MYSQL","ORACLE"].indexOf(t.source)!==-1||t.isSQL===!0}async function id(t){return new Promise(e=>setTimeout(e,t))}async function Hx(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 id(s);try{return await t()}catch(o){n=o}}throw n}var Ip={};N(Ip,{getNextExecutionDates:()=>kC,validate:()=>FC});var QT=V(jt()),jT=V(WT()),qT="(Input cron: ",UC={"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 MC(t){let e=[];for(let r of t){r.includes(qT)&&(r=r.split(qT)[0].trim());for(let[n,i]of Object.entries(UC))r.includes(n)&&(r=r.replace(new RegExp(n,"g"),i));e.push(r)}return e}function kC(t,e=4){let r=jT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function FC(t){let e=(0,QT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:MC(e.getError())}}var Oo={};N(Oo,{decodeNonAscii:()=>Op,encodeNonAscii:()=>VC,isDeprecatedSingleUserColumn:()=>BC,isNumeric:()=>$C,isRequired:()=>GC});function BC(t){return t.type==="bb_reference"&&t.subtype==="user"&&t.constraints?.type!=="array"}function GC(t){return!!t&&(typeof t.presence!="boolean"&&t.presence?.allowEmpty===!1||t.presence===!0)}function VC(t){return t.split("").map(e=>e.charCodeAt(0)>127?"\\u"+e.charCodeAt(0).toString(16).padStart(4,"0"):e).join("")}function Op(t){return t.replace(/\\u([0-9a-fA-F]{4})/g,(e,r)=>String.fromCharCode(parseInt(r,16)))}function $C(t){return t.type==="number"||t.type==="bigint"}var Rp={};N(Rp,{basicFields:()=>HC,calculationFields:()=>jC,hasCalculationFields:()=>QC,isBasicViewField:()=>WC,isCalculationField:()=>xo,isCalculationView:()=>qC,isV2:()=>KC,isVisible:()=>HT});var xp=V(require("lodash/pickBy"));function xo(t){return"calculationType"in t}function WC(t){return!xo(t)}function qC(t){return t.type==="calculation"}function QC(t){return Object.values(t.schema||{}).some(xo)}function jC(t){return(0,xp.default)(t.schema||{},xo)}function HT(t){return t.visible!==!1}function HC(t,e){let{visible:r=!0}=e||{};return(0,xp.default)(t.schema||{},n=>!xo(n)&&(!r||HT(n)))}function KC(t){return t.version===2}var wp={};N(wp,{checkForRoleInheritanceLoops:()=>JC});function YC(t){return`role${w}${t}`}function JC(t){let e=new Map;t.forEach(s=>{e.set(s._id,s)});let r=new Set,n=new Set;function i(s){let o=YC(s);if(n.has(s)||n.has(o))return!0;if(r.has(s)||r.has(o))return!1;n.add(s);let a=e.get(o)||e.get(s);if(!a)return n.delete(s),!1;let u=Array.isArray(a.inherits)?a.inherits:[a.inherits];for(let c of u)if(c&&i(c))return!0;return n.delete(s),r.add(s),!1}return!!t.find(s=>i(s._id))}var bp={};N(bp,{punctuateList:()=>zC});function zC(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 ZC=(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}`},XC=(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 Hu=V(require("lodash/isPlainObject")),Dp=V(require("lodash/isEmpty"));var ev=/{{([^{].*?)}}/g,YT=Object.values(Ii),tv=[...Object.values(Dr),...Object.values(er),...Object.values(gn)],rv=(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"||Oo.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},JT=[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 Np(t,e){for(let r of YT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var Pp=t=>{for(let e of JT)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===""||nv(s))&&delete t[e][i]}return t=Np(t,Pp),t};function nv(t){return Array.isArray(t)&&t.length===0}var cu=t=>Lp(t).key,Lp=t=>{if(typeof t=="string"&&t.match(/\d[0-9]*:/g)!=null){let e=t.split(":");return{prefix:`${e.shift()}:`,key:e.join(":")}}else return{key:t}},Cp=class{constructor(e,r){if(this.tableNames=e.map(n=>n.name),this.tableIds=e.map(n=>n._id),this.relationshipColumnNames=e.flatMap(n=>Object.keys(n.schema).filter(i=>n.schema[i].type==="link")),this.relationships=this.tableNames.concat(this.tableIds).concat(this.relationshipColumnNames).sort((n,i)=>i.length-n.length),r?.aliases){this.aliases={};for(let[n,i]of Object.entries(r.aliases))this.aliases[i]=n}this.columnPrefix=r?.columnPrefix}run(e){let{prefix:r,key:n}=Lp(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=Op(n.slice(this.columnPrefix.length))),{tableName:i,numberPrefix:r,relationshipPrefix:s,column:n}}};function iv(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(ev)||[]).length>0;switch(i){case"datetime":if(!a&&r!=="empty"&&r!=="notEmpty"){if(!o)return;if(typeof o=="string")o=new Date(o).toISOString();else if(Ka(r))return e[r]??={},e[r][n]=o,e}break;case"number":typeof o=="string"&&!a&&(r==="oneOf"?o=o.split(",").map(parseFloat):o=parseFloat(o));break;case"boolean":o=`${o}`.toLowerCase()==="true";break;case"array":["contains","notContains","containsAny"].includes(r.toLocaleString())&&typeof o=="string"&&(o=o.split(","));break}if(Ka(r)){let c=Ig[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(tg(r)||rg(r)||Ka(r))i==="boolean"?r==="equal"&&o===!1?(e.notEqual=e.notEqual||{},e.notEqual[n]=!0):r==="notEqual"&&o===!1?(e.equal=e.equal||{},e.equal[n]=!0):(e[r]??={},e[r][n]=o):(e[r]??={},e[r][n]=o);else throw new Error(`Unsupported operator: ${r}`);return e}function lu(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 zT(t){if(!t)return{};if(Array.isArray(t)&&(t=rd(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=KT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=zT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=lu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=KT(n.logicalOperator)),{[a]:{conditions:o.map(iv).filter(u=>u)}}})},e}function KT(t){return t==="all"?"$and":"$or"}function Up(t){if(!t)return t;for(let e of Object.values(er)){let r=t[e];if(!(r==null||!(0,Hu.default)(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 Np(t,Up),t}function sv(t,e){let r=Ku(t,e.query);e.sort&&(r=ZT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=XT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Ku(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=Pp(e),e=Up(e),!vp(e)&&e.onEmptyFilter==="none")return[];let r=(E,I)=>B=>{for(let[L,F]of Object.entries(e[E]||{})){let se=Ha(E)?B:nd(B,cu(L)),Xt=I(se,F);if(e.allOr&&Xt)return!0;if(!e.allOr&&!Xt)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,Hu.default)(I.low)&&(0,Dp.default)(I.low)&&(I.low=void 0),(0,Hu.default)(I.high)&&(0,Dp.default)(I.high)&&(I.high=void 0),I.low==null&&I.high==null))return!1;let B=+E;if(!isNaN(B)){let F=+I.low,se=+I.high;if(!isNaN(F)&&!isNaN(se))return B>=F&&B<=se;if(isNaN(F)){if(!isNaN(se))return B<=se}else return B>=F}let L=(0,Ji.default)(E);if(L.isValid()){let F=(0,Ji.default)(I.low||"0000-00-00T00:00:00.000Z"),se=(0,Ji.default)(I.high||"9999-00-00T00:00:00.000Z");if(F.isValid()&&se.isValid())return L.isAfter(F)&&L.isBefore(se)||L.isSame(F)||L.isSame(se);if(F.isValid())return L.isAfter(F)||L.isSame(F);if(se.isValid())return L.isBefore(se)||L.isSame(se)}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 L of E)if(o(L,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 B=(0,Ji.default)(E);if(B.isValid()){let L=(0,Ji.default)(I);if(L.isValid())return B.isSame(L)}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),p=r("notEmpty",a(l)),m=r("oneOf",(E,I)=>(typeof I=="string"&&(I=I.split(",")),typeof E=="number"&&(I=I.map(B=>parseFloat(B))),Array.isArray(I)?I.some(B=>o(E,B)):!1)),f=E=>(I,B)=>!Array.isArray(I)||(typeof B=="string"&&(B=B.split(","),typeof I[0]=="number"&&(B=B.map(L=>parseFloat(L)))),!Array.isArray(B))?!1:B.length===0?!0:B[E](L=>o(I,L)),g=r("contains",(E,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(E,I)),y=r("notContains",(E,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(E,I)),T=r("containsAny",f("some")),_=r("$and",(E,I)=>{if(!I.length)return!1;for(let B of I)if(!Ku([E],B).length)return!1;return!0}),S=r("$or",(E,I)=>{if(!I.length)return!1;for(let B of I)if(Ku([E],{...B,allOr:!0}).length)return!0;return!1}),R=E=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:p,oneOf:m,contains:g,containsAny:T,notContains:y,$and:_,$or:S},B=Object.entries(e||{}).filter(([L,F])=>!["allOr","onEmptyFilter"].includes(L)&&F&&Object.keys(F).length>0).map(([L])=>I[L]?.(E)??!1);return vp(e)?e.allOr?B.some(L=>L===!0):B.every(L=>L===!0):!0};return t.filter(R)}function ZT(t,e,r,n="string"){if(!e||!r||!n)return t;let i=s=>s==null?s:n==="string"?`${s}`:parseFloat(s);return t.slice().sort((s,o)=>{let a=i(s[e]),u=i(o[e]),c=u==null||a>u?1:-1;return r.toLowerCase()==="descending"?c*-1:c})}function XT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var vp=t=>{if(!t)return!1;let e=r=>{for(let n of YT)if(r[n])for(let i of r[n]?.conditions||[]){let s=e(i);if(s)return s}for(let n of tv){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:()=>kp,automations:()=>Fp,screens:()=>Wp,users:()=>$p});var kp={};N(kp,{getDevAppID:()=>ov,getProdAppID:()=>Yu});var Mp=Cr("app"),Ro=Cr("app_dev");function ov(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Ro))return t;let e=t.split(Mp);e.shift();let r=e.join(Mp);return`${Ro}${r}`}function Yu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Ro))return t;let e=t.split(Ro);e.shift();let r=e.join(Ro);return`${Mp}${r}`}var Fp={};N(Fp,{checkForCollectStep:()=>lv,isAppAction:()=>cv,isRowAction:()=>av,isWebhookAction:()=>uv});function av(t){return t.definition.trigger?.stepId==="ROW_ACTION"}function uv(t){return t.definition.trigger?.stepId==="WEBHOOK"}function cv(t){return t.definition.trigger?.stepId==="APP"}function eA(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(ag(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(eA(r))return!0}}return!1}function lv(t){return eA(t.definition.steps)}var $p={};N($p,{canCreateApps:()=>dv,containsUserID:()=>Ev,getGlobalUserID:()=>yv,getUserAppGroups:()=>Tv,getUserGroups:()=>Vp,hasAdminPermissions:()=>Gp,hasAppBuilderPermissions:()=>Zu,hasBuilderPermissions:()=>hv,hasCreatorPermissions:()=>Xu,isAdmin:()=>zu,isAdminOrBuilder:()=>pv,isAdminOrGlobalBuilder:()=>fv,isBuilder:()=>Bp,isCreator:()=>gv,isGlobalBuilder:()=>Ju,userAppAccessList:()=>Av});function Bp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(Yu(e))):!1}function Ju(t){return Bp(t)&&!Zu(t)||zu(t)}function dv(t){return Ju(t)||Xu(t)}function zu(t){return t?Gp(t):!1}function pv(t,e){return Bp(t,e)||zu(t)}function fv(t){return Ju(t)||zu(t)}function Zu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function mv(t){return t?!!Object.values(t.roles??{}).find(e=>e==="CREATOR"):!1}function hv(t){return t?t.builder?.global||Zu(t)||Xu(t):!1}function Gp(t){return t?!!t.admin?.global:!1}function Xu(t){return t?!!t.builder?.creator:!1}function gv(t){return t?Ju(t)||Gp(t)||Xu(t)||Zu(t)||mv(t):!1}function yv(t){if(typeof t!="string")return t;let e=`ro${w}ta_users${w}`;return t.startsWith(e)?t.split(e)[1]:t}function Ev(t){return typeof t!="string"?!1:t.includes(`us${w}`)}function Vp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function Tv(t,e,r){let n=Yu(t);return Vp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function Av(t,e){let n=Vp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Wp={};N(Wp,{findInSettings:()=>Sv});function Sv(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 sH={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},oH={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},aH={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 hH={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 EH={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 SH={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 OH={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 wH={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 CH={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 PH={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 MH={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 BH={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 $H={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 QH={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 Pv={EQUAL:"Equals",NOT_EQUAL:"Not equals",GREATER_THAN:"Greater than",LESS_THAN:"Less than"},KH={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(Hl),pretty:Object.values(Pv)},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 zH={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 eK={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 nK={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(Kl)},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 tA=(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))(tA||{}),oK={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(tA)}},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 rA=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(rA||{}),cK={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(rA),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 Gv={ascending:"Ascending",descending:"Descending"},pK={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(En),pretty:Object.values(Gv)},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 hK={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 EK={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 SK={name:"Slack Message",tagline:"Send a message to Slack",description:"Send a message to Slack",icon:"ri-slack-line",stepId:"slack",type:"ACTION",internal:!1,features:{LOOPING:!0},inputs:{},schema:{inputs:{properties:{url:{type:"string",title:"Incoming Webhook URL"},text:{type:"string",title:"Message"}},required:["url","text"]},outputs:{properties:{httpStatus:{type:"number",description:"The HTTP status code of the request"},success:{type:"boolean",description:"Whether the message sent successfully"},response:{type:"string",description:"The response from the Slack Webhook"}}}}};var OK={name:"Trigger an automation",tagline:"Triggers an automation synchronously",icon:"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 wK={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 CK={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 PK={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 MK={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 BK={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 nA=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))(nA||{}),$K={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(nA)}},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 QK={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(ql),pretty:Object.values(og)},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 KK={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(Ql),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(jl),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 zK={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 eY={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 nN={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 sN={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 aN={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 cN={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 dN={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 fN={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 hN={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 gY=Object.values(Te).sort((t,e)=>e.length-t.length);var yY=Object.values(Wl).sort((t,e)=>e.length-t.length);var EY=new RegExp("^datasource_plus_(.+)__(.+)$"),ec=t=>e=>!!e&&e.startsWith(`${t}${w}`);var TY=ec("ta"),AY=ec("view"),SY=ec("datasource"),_Y=ec("query");var tc=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(tc||{}),qr=(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))(qr||{}),Zi={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"}},Et=Cr("app"),rc=Cr("app_dev"),Tt=rc,qp="internal",Qp="budibase",Jt="_design/sqlite",jp="ta_bb_jobs",Hp="ta_bb_inventory",Kp="ta_bb_expenses",Yp="ta_bb_employee",wo=`ro${w}ta_users${w}`,bo=(r=>(r[r.SQLITE=Jt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(bo||{});var nc=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(nc||{}),Zn=(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))(Zn||{}),Jp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Jp||{}),zp=(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))(zp||{}),iA=new Date(-2147483647e3),ic=new Date(2147483647e3),Se="default";var va={};N(va,{CacheKey:()=>ve,TTL:()=>ai,app:()=>ta,bustCache:()=>as,destroy:()=>Ko,docWritethrough:()=>nh,generic:()=>Yo,get:()=>ui,invite:()=>Sm,keys:()=>Sc,passwordReset:()=>th,store:()=>mr,user:()=>cn,withCache:()=>Jr,withCacheWithDynamicTTL:()=>vA,writethrough:()=>eh});var Yo={};N(Yo,{CacheKey:()=>ve,TTL:()=>ai,bustCache:()=>as,destroy:()=>Ko,get:()=>ui,keys:()=>Sc,store:()=>mr,withCache:()=>Jr,withCacheWithDynamicTTL:()=>vA});var _e={};N(_e,{DEFAULT_TENANT_ID:()=>Se,baseGlobalDBName:()=>ko,doInAppContext:()=>nP,doInAppMigrationContext:()=>sP,doInAutomationContext:()=>ZN,doInContext:()=>Tf,doInEnvironmentContext:()=>uP,doInFeatureFlagOverrideContext:()=>Rf,doInIPContext:()=>_f,doInIdentityContext:()=>Co,doInLicenseContext:()=>eP,doInScimContext:()=>cP,doInSelfHostTenantUsingCloud:()=>XN,doInTenant:()=>Qe,ensureSnippetContext:()=>wA,getAppDB:()=>ss,getAppId:()=>Me,getAuditLogDBName:()=>xA,getAuditLogsDB:()=>dP,getAutomationId:()=>Af,getCurrentContext:()=>ti,getDevAppDB:()=>fP,getDevAppId:()=>oP,getEnvironmentVariables:()=>lP,getFeatureFlagOverrides:()=>xf,getFeatureFlags:()=>If,getGlobalDB:()=>ae,getGlobalDBName:()=>ei,getIP:()=>Sf,getIdentity:()=>fr,getLicense:()=>tP,getPlatformURL:()=>Ef,getProdAppDB:()=>pP,getProdAppId:()=>aP,getScimDBName:()=>KN,getSelfHostCloudDB:()=>rP,getTableForView:()=>mP,getTenantIDFromAppID:()=>is,getTenantId:()=>Q,identity:()=>Do,isMultiTenant:()=>Hr,isScim:()=>Mt,isSelfHostUsingCloud:()=>mc,isTenancyEnabled:()=>JN,isTenantIdSet:()=>YN,setFeatureFlags:()=>Of,setTableForView:()=>hP});var Do={};N(Do,{doInAccountContext:()=>TN,doInIdentityContext:()=>ef,doInUserContext:()=>tf,getAccountUserId:()=>sA,getIdentity:()=>Xp});function Xp(){return fr()}function ef(t,e){return Co(t,e)}function tf(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return ef(n,r)}function TN(t,e){let r=sA(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return ef(i,e)}function sA(t){let e;return Ja(t)?e=t.budibaseUserId:e=t.accountId,e}var ac=require("fs");var uA=require("lodash"),rf=require("crypto"),vo=require("path"),AN=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,vo.resolve)((0,vo.join)(__dirname,"..","..","..")),oA=!1;!oA&&oc()&&!nf()&&(require("dotenv").config({path:(0,vo.join)(AN,".env")}),oA=!0);function nf(){return cA()}function cA(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function oc(){return process.env.NODE_ENV!=="production"}function SN(t){if(t)return parseInt(t)}var Xi={BACKUPS:"backups",APPS:"prod-budi-app-assets",TEMPLATES:"templates",GLOBAL:"global",PLUGINS:"plugins",TEMP:"tmp-file-attachments"},aA=!!parseInt(process.env.SELF_HOSTED||"");function _N(){return process.env.API_ENCRYPTION_KEY?process.env.API_ENCRYPTION_KEY:process.env.JWT_SECRET}function IN(){return process.env.HTTP_LOGGING===void 0?!0:process.env.HTTP_LOGGING}function ON(){function t(r){function n(a,u){let c=`${u}/${a}`;if((0,ac.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,ac.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(oc()&&!nf())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 xN(){return Pt.SERVICE_TYPE==="worker"}function RN(){return Pt.SERVICE_TYPE==="apps"}function wN(){return Pt.BUDIBASE_ENVIRONMENT==="QA"}function bN(){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 Pt={isTest:nf,isJest:cA,isDev:oc,isWorker:xN,isApps:RN,isQA:wN,isProd:()=>!oc(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,rf.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,rf.createSecretKey)(process.env.JWT_SECRET_FALLBACK,"utf8"):void 0,ENCRYPTION_KEY:process.env.ENCRYPTION_KEY,API_ENCRYPTION_KEY:_N(),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:aA,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||Xi.BACKUPS,APPS_BUCKET_NAME:process.env.APPS_BUCKET_NAME||Xi.APPS,TEMPLATES_BUCKET_NAME:process.env.TEMPLATES_BUCKET_NAME||Xi.TEMPLATES,GLOBAL_BUCKET_NAME:process.env.GLOBAL_BUCKET_NAME||Xi.GLOBAL,PLUGIN_BUCKET_NAME:process.env.PLUGIN_BUCKET_NAME||Xi.PLUGINS,TEMP_BUCKET_NAME:process.env.TEMP_BUCKET_NAME||Xi.TEMP,USE_COUCH:process.env.USE_COUCH||!0,MOCK_REDIS:process.env.MOCK_REDIS,DEFAULT_LICENSE:process.env.DEFAULT_LICENSE,SERVICE:bN(),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:IN(),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:aA?process.env.ENABLE_SSO_MAINTENANCE_MODE:!1,...ON(),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,Pt[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:SN(process.env.BSON_BUFFER_SIZE)};function No(t){let e=(0,uA.cloneDeep)(Pt),r;for(r in t)Pt._set(r,t[r]);return()=>{for(let[n,i]of Object.entries(e))Pt._set(n,i)}}function lA(t,e){let r=No(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var dA=["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(Pt))e==="0"&&(Pt[t]=0),e==="false"&&(Pt[t]=0);var h=Pt;var pA=require("async_hooks"),be=class t{static{this.storage=new pA.AsyncLocalStorage}static run(e,r){return t.storage.run(e,()=>r())}static get(){return t.storage.getStore()}};var sf="No app provided";function Qr(t){if(!t)throw sf;return t.startsWith(Tt)}function DN(t){if(!t)throw sf;return t.startsWith(Et)&&!Qr(t)}function Po(t){if(!t)throw sf;return Qr(t.appId)}function uc(t){if(!t||t.startsWith(Tt))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${Tt}${r}`}var es=uc;function ut(t){if(!t||!t.startsWith(Tt))return t;let e=t.split(Tt);e.shift();let r=e.join(Tt);return`${Et}${r}`}function CN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Lt=t=>{let e=of(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:of(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},of=(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 IA=V(require("@budibase/nano"));var fA=V(require("node-fetch"));function cc(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function mA(t,e="GET",r){let{url:n,cookie:i}=Lt(),s=`${n}/${t}`;return await Lo({url:s,cookie:i,method:e,body:r})}async function Lo({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,fA.default)(cc(encodeURI(t)),i)}async function af(t,e="GET",r){let n=await mA(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var Xn=V(require("pouchdb"));var hA,gA=!1,uf=(t={})=>{let{url:e,cookie:r}=Lt(),n={prefix:e,fetch:(i,s)=>(s.headers.set("Authorization",r),Xn.default.fetch(i,s))};if(t.inMemory){let i=require("pouchdb-adapter-memory");Xn.default.plugin(i),n={adapter:"memory"}}if(t.onDisk&&(n={adapter:"leveldb"}),t.replication){let i=require("@budibase/pouchdb-replication-stream");Xn.default.plugin(i.plugin),Xn.default.adapter("writableStream",i.adapters.writableStream)}if(t.find){let i=require("pouchdb-find");Xn.default.plugin(i)}return Xn.default.defaults(n)};function lc(t){hA=uf(t),gA=!0}var NN=()=>{if(!gA)throw new Error("init has not been called")};function At(t,e){NN();let r=new hA(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 Uo(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var yA=require("uuid");function me(){return(0,yA.v4)().replace(/-/g,"")}var Ie=V(require("dd-trace")),ts=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 gf={};N(gf,{breakExternalTableId:()=>df,breakRowIdField:()=>QN,buildExternalTableId:()=>BN,convertRowId:()=>qN,encodeTableId:()=>GN,encodeViewId:()=>VN,extractDate:()=>ff,generateRowIdField:()=>$N,getNativeSql:()=>rs,isExternalTable:()=>lf,isExternalTableID:()=>dc,isInternalTableID:()=>FN,isRowId:()=>WN,isValidFilter:()=>fc,isValidISODateString:()=>pc,isValidISODateStringWithoutTimezone:()=>pf,isValidTime:()=>mf,sqlLog:()=>Mo,validateManyToMany:()=>hf});var cf=`${w}${w}`,TA=/^\[.*]$/g,PN=encodeURIComponent(" "),LN=/^\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})?)?$/,MN=/(\d{4}-\d{2}-\d{2})/,kN=/^(?:\d{2}:)?(?:\d{2}:)(?:\d{2})$/;function dc(t){return t.startsWith("datasource"+w)}function FN(t){return!dc(t)}function rs(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 lf(t){return t?.sourceId&&t.sourceId.includes("datasource"+w)&&t?.sourceId!==Pi||t?.sourceType==="external"?!0:!!(t?._id&&dc(t._id))}function BN(t,e){return`${t}${cf}${encodeURIComponent(e)}`}function GN(t){return dc(t)?encodeURIComponent(t):t}function VN(t){return encodeURIComponent(t)}function df(t){let e=t.split(cf),r=e.shift(),n=e.join(cf);if(n.includes(PN)&&(n=decodeURIComponent(n)),!r||!n)throw new Error("Unable to get datasource/table name from table ID");return{datasourceId:r,tableName:n}}function $N(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 WN(t){return Array.isArray(t)||typeof t=="string"&&t.match(TA)!=null}function qN(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(TA)!=null?t.substring(1,t.length-1):t}function QN(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 pc(t){let e=t.trim();if(!LN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function pf(t){let e=t.trim();if(!UN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function ff(t){let e=t.match(MN);if(e)return e[0]}function fc(t){return t!=null&&t!==""}function mf(t){return kN.test(t)}function Mo(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 jN(t){return!!t.through&&!!t.fromPrimary&&!!t.from&&!!t.toPrimary&&!!t.to}function hf(t){if(jN(t))return t}var AA="Database does not exist.";function SA(t){return(0,IA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var jr=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 HN(t,e,r){if(!t||!e)throw new Error("Unable to create database without database name or connection");let n=new ns(t,r,e);return new ts(n)}var ns=class t{constructor(e,r,n){this.couchInfo=Lt();this.name=e,this.pouchOpts=r||{},n&&(this.couchInfo=Lt(n),this.instanceNano=SA(this.couchInfo)),t.nano||t.init()}static init(){let e=Lt();t.nano=SA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await Lo({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 jr(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===AA)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new jr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new jr(`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(ng(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 jr(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===AA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=cc(`${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 Lo(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new jr("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}/${Jt}`;return Mo("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(Jt)){let e=await this.get(Jt);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 jr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return At(this.name).dump(e,r)}async load(e){return At(this.name).load(e)}async createIndex(e){return At(this.name).createIndex(e)}async deleteIndex(e){return At(this.name).deleteIndex(e)}async getIndexes(){return At(this.name).getIndexes()}};function qe(t,e){return new ts(new ns(t,e))}async function ct(t,e,r){let n=qe(t,r);return await e(n)}async function yf(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await af(e)}var OA=null;function ei(t){return t||(t=Q()),ko(t)}function xA(t){return t||(t=Q()),t===Se?xe.AUDIT_LOGS.name:`${t}${w}${xe.AUDIT_LOGS.name}`}function KN(t){return t||(t=Q()),t===Se?xe.SCIM_LOGS.name:`${t}${w}${xe.SCIM_LOGS.name}`}function ko(t){return!t||t===Se?xe.GLOBAL.name:`${t}${w}${xe.GLOBAL.name}`}function Ef(){return h.PLATFORM_URL}function Hr(){return!!h.MULTI_TENANCY}function YN(){return!!be.get()?.tenantId}function JN(){return h.MULTI_TENANCY}function is(t){if(!t)return;if(!Hr())return Se;let e=t.split(w),r=e[1]==="dev";if(!(r&&e.length===3||!r&&e.length===2))return r?e[2]:e[1]}function zN(t){let e;try{e=be.get()}catch{e={}}return e={...e,...t},e}async function Ut(t,e){iP();let r=zN(t);return be.run(r,e)}async function ZN(t){return await wA(),await Ut({tenantId:is(t.appId),appId:t.appId,automationId:t.automationId},t.task)}async function Tf(t,e){let r=is(t);return Ut({tenantId:r,appId:t},e)}async function Qe(t,e){return h.MULTI_TENANCY||(t=t||Se),Ut(t?{tenantId:t}:{},e)}async function XN(t,e){return Ut({tenantId:t,isSelfHostUsingCloud:!0},e)}async function eP(t,e){return Ut({license:t},e)}function tP(){return be.get()?.license}function mc(){return!!be.get()?.isSelfHostUsingCloud}function rP(){let t=be.get();if(!t||!t.isSelfHostUsingCloud)throw new Error("Self-host cloud DB not found");return qe(xe.SELF_HOST_CLOUD.name)}async function nP(t,e){return RA(t,e)}async function RA(t,e,r){if(!t)throw new Error("appId is required");let n=is(t),i={appId:t,...r};return n&&(i.tenantId=n),Ut(i,e)}async function Co(t,e){if(!t)throw new Error("identity is required");let r={identity:t};return t.tenantId&&(r.tenantId=t.tenantId),Ut(r,e)}function iP(){if(be.get()?.isMigrating)throw new Error("The context cannot be changed, a migration is currently running")}async function sP(t,e){return RA(t,e,{isMigrating:!0})}function fr(){try{return be.get()?.identity}catch{}}function Q(){if(!Hr())return Se;let e=be.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function Af(){return be.get()?.automationId}function Me(){let e=be.get()?.appId;return!e&&h.isTest()&&OA?OA:e}function Sf(){return be.get()?.ip}var oP=()=>{let t=Me();if(!t)throw new Error("Could not get appId");return es(t)},aP=()=>{let t=Me();if(!t)throw new Error("Could not get appId");return ut(t)};function uP(t,e){if(!t)throw new Error("Must supply environment variables.");return Ut({environmentVariables:t},e)}function cP(t){return Ut({isScim:!0},t)}function _f(t,e){return Ut({ip:t},e)}async function wA(){let t=ti();if(!t||t.snippets)return;let e,r=ss();r&&(e=(await r.tryGet("app_metadata"))?.snippets),t.snippets=e||[]}function lP(){let t=be.get();return t.environmentVariables?t.environmentVariables:null}function ae(){let t=be.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(ko(t?.tenantId))}function dP(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return qe(xA())}function ss(t){let e=Me();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(mc())throw new Error("App DB not found - self-host users using cloud don't have app DBs");return qe(e,t)}function pP(t){let e=Me();if(!e)throw new Error("Unable to retrieve prod DB - no app ID.");return qe(ut(e),t)}function fP(t){let e=Me();if(!e)throw new Error("Unable to retrieve dev DB - no app ID.");return qe(uc(e),t)}function Mt(){return!!be.get()?.isScim}function ti(){try{return be.get()}catch{return}}function If(t){let e=ti();if(e)return e.featureFlagCache?.[t]}function Of(t,e){let r=ti();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function xf(){return ti()?.featureFlagOverrides||{}}async function Rf(t,e){return await Ut({featureFlagOverrides:t},e)}function mP(t){let e=ti();if(e)return e.viewToTableCache?.[t]}function hP(t,e){let r=ti();r&&(r.viewToTableCache??={},r.viewToTableCache[t]=e)}var Yr={};N(Yr,{getAppClient:()=>Ac,getCacheClient:()=>Nf,getDocWritethroughClient:()=>AP,getInviteClient:()=>ii,getLockClient:()=>Lf,getPasswordResetClient:()=>Ho,getSessionClient:()=>Kr,getSocketClient:()=>TP,getUserClient:()=>jo,getWritethroughClient:()=>Pf,init:()=>kt,shutdown:()=>CA});var Tc=V(require("ioredis"));var yc={};N(yc,{Databases:()=>wf,SEPARATOR:()=>os,SelectableDatabase:()=>hc,getRedisClusterOptions:()=>bf,getRedisConnectionDetails:()=>gc,getRedisOptions:()=>ri,removeDbPrefix:()=>Df});var os="-",wf=(_=>(_.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",_))(wf||{}),hc=(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))(hc||{});function gc(){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 bf(){return{slotsRefreshTimeout:2e3,dnsLookup:(t,e)=>e(null,t),redisOptions:{...ri(),tls:{}}}}function ri(){let{host:t,password:e,port:r}=gc();return{connectTimeout:3e4,port:r,host:t,password:e}}function Df(t){let e=t.split(os);return e.length>=2?(e.shift(),e.join(os)):e[0]}var Ec=require("dd-trace"),DA=require("lodash"),bA;if(h.MOCK_REDIS)try{bA=require("ioredis-mock")}catch{console.log("Mock redis unavailable")}async function gP(t=0){return await Ec.tracer.trace("Redis.init",async e=>{if(h.MOCK_REDIS)return e.addTags({mock:!0}),new bA(ri());let r;if(h.REDIS_CLUSTERED){e.addTags({clustered:!0});let{host:n,port:i}=gc();r=new Tc.Cluster([{host:n,port:i}],bf())}else r=new Tc.default(ri());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 yP(t,e){return new Promise((r,n)=>{let i=new Set;t.on("data",s=>s.forEach(o=>i.add(o))),t.on("error",s=>n(s)),t.on("end",async()=>{try{let s=Array.from(i).map(async o=>{let a=await e.get(o);return a&&(a=JSON.parse(a)),{key:Df(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function EP(t){return t.isCluster}var Cf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await Ec.tracer.trace("RedisWrapper.init",async n=>{let i=await gP(r);return r&&!h.isTest()&&(n.addTags({db:e}),i.select(r)),new t(i,e)})}trace(e,r){return Ec.tracer.trace(e,async n=>(n.addTags({db:this.db}),await r(n)))}prefixed(e){return e.includes(this.db)?e:`${this.db}${os}${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}${os}${e}`;let n;EP(this.client)?n=this.client.nodes("master")[0].scanStream({match:e+"*",count:100}):n=this.client.scanStream({match:e+"*",count:100});let i=await yP(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,DA.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=Af;var Fo,ko,Bo,Go,ti,Vo,$o,Wo,qo,Sf;async function Mt(){Fo=await Qe.init("users"),ko=await Qe.init("session"),Bo=await Qe.init("appMetadata"),Go=await Qe.init("data_cache"),Vo=await Qe.init("locks"),ti=await Qe.init("writeThrough"),Wo=await Qe.init("invitation"),qo=await Qe.init("pwReset"),$o=await Qe.init("socket_io",1),Sf=await Qe.init("docWriteThrough")}async function gA(){Fo&&await Fo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),Go&&await Go.finish(),ti&&await ti.finish(),Vo&&await Vo.finish(),Wo&&await Wo.finish(),qo&&await qo.finish(),$o&&await $o.finish(),Sf&&await Sf.finish()}process.on("exit",async()=>{await gA()});async function Qo(){return Fo||await Mt(),Fo}async function qr(){return ko||await Mt(),ko}async function gc(){return Bo||await Mt(),Bo}async function _f(){return Go||await Mt(),Go}async function If(){return ti||await Mt(),ti}async function Of(){return Vo||await Mt(),Vo}async function zN(){return $o||await Mt(),$o}async function ri(){return Wo||await Mt(),Wo}async function jo(){return qo||await Mt(),qo}async function ZN(){return ti||await Mt(),ti}function Yt(t){let e=Q();return`${t}:${e}`}var ni=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await _f()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?Yt(e):e,await(await this.getClient()).store(e,r,n)}async bulkStore(e,r=null,n={useTenancy:!0}){n.useTenancy&&(e=Object.entries(e).reduce((s,[o,a])=>(s[Yt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?Yt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>Yt(i)):e,(await this.getClient()).bulkDelete(e)}async withCache(e,r=null,n,i={useTenancy:!0}){let s=await this.get(e,i);if(s)return s;try{let o=await n();return await this.store(e,o,r,i),o}catch(o){throw console.error("Error fetching before cache - ",o),o}}async withCacheWithDynamicTTL(e,r,n={useTenancy:!0}){let i=await this.get(e,n);if(i)return i;try{let s=await r(),{value:o,ttl:a}=s;return await this.store(e,o,a,{useTenancy:n.useTenancy}),o}catch(s){throw console.error("Error fetching before cache - ",s),s}}async bustCache(e){let r=await this.getClient();try{await r.delete(Yt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?Yt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var ii=new ni,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}`},si=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(si||{}),yc=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),lr=(...t)=>ii.store(...t),Ho=(...t)=>ii.delete(...t),jr=(...t)=>ii.withCache(...t),yA=(...t)=>ii.withCacheWithDynamicTTL(...t),ns=(...t)=>ii.bustCache(...t);var sn={};P(sn,{getUser:()=>Na,getUsers:()=>J0,invalidateUser:()=>Pa});var Jo={};P(Jo,{addTenantToUrl:()=>XN,getTenantDB:()=>xf,getTenantIDFromCtx:()=>Yo,isUserInAppTenant:()=>eP});function xf(t){return We(Zn(t))}function XN(t){let e=Q();if(Wr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var eP=(t,e)=>{let r;return e?r=e.tenantId||Te:r=Q(),(es(t)||Te)===r},tP=Object.values(ws),Yo=(t,e)=>{if(!Wr())return Te;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=tP),e.excludeStrategies||(e.excludeStrategies=[]);let r=n=>{if(e.excludeStrategies?.includes(n))return!1;if(e.includeStrategies?.includes(n))return!0};if(r("user")){let n=t.user?.tenantId;if(n)return n}if(r("header")){let n=t.request.headers["x-budibase-tenant-id"];if(n)return n}if(r("query")){let n=t.request.query.tenantId;if(n)return n}if(r("subdomain")){let n;try{n=new URL(uf()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var zo={};P(zo,{getPlatformDB:()=>Hr,users:()=>Ft});var Ft={};P(Ft,{addSsoUser:()=>TA,addUser:()=>aP,getUserDoc:()=>EA,lookupTenantId:()=>rP,removeUser:()=>uP,updateUserDoc:()=>nP});function Hr(){return We(xe.PLATFORM_INFO.name)}async function rP(t){return h.MULTI_TENANCY?(await EA(t)).tenantId:Te}async function EA(t){return Hr().get(t)}async function nP(t){await Hr().put(t)}function iP(t,e){return{_id:t,tenantId:e}}function sP(t,e,r){return{_id:e,userId:t,tenantId:r}}function oP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Rf(t,e){let r=Hr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function TA(t,e,r,n){return Rf(t,()=>oP(t,e,r,n))}async function aP(t,e,r,n){let i=[Rf(e,()=>iP(e,t)),Rf(r,()=>sP(e,r,t))];n&&i.push(TA(n,r,e,t)),await Promise.all(i)}async function uP(t){let e=Hr(),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 di={};P(di,{getAccount:()=>en,getAccountByTenantId:()=>cs,getStatus:()=>nL});var vS=W(require("node-fetch"));var la={};P(la,{correlation:()=>Zo,logAlert:()=>li,logAlertWithInfo:()=>rL,logWarn:()=>us,logger:()=>Dc,system:()=>Zf});var Zo={};P(Zo,{getId:()=>wf,setHeader:()=>cP});var AA=require("correlation-id"),cP=t=>{let e=AA.getId();e&&(t["x-budibase-correlation-id"]=e)};function wf(){return AA.getId()}var bc=W(require("pino")),DS=W(require("pino-pretty"));var Xf=W(require("dd-trace")),CS=require("dd-trace/ext");var Zf={};P(Zf,{getLogReadStream:()=>JP,getSingleFileMaxSizeInfo:()=>bS,localFileDestination:()=>zf});var ca=W(require("fs")),Jf=W(require("path")),OS=W(require("rotating-file-stream"));var Yf={};P(Yf,{ObjectStore:()=>kt,ObjectStoreBuckets:()=>dP,SIGNED_FILE_PREFIX:()=>Qf,bucketTTLConfig:()=>Ec,budibaseTempDir:()=>ai,clientLibraryCDNUrl:()=>WP,clientLibraryPath:()=>hS,clientLibraryUrl:()=>qP,createBucketIfNotExists:()=>ua,deleteFile:()=>MP,deleteFiles:()=>FP,deleteFolder:()=>pS,downloadTarball:()=>BP,downloadTarballDirect:()=>kP,enrichPWAImages:()=>QP,enrichPluginURLs:()=>HP,extractBucketAndPath:()=>bf,getAppFileUrl:()=>gS,getGlobalFileS3Key:()=>yS,getGlobalFileUrl:()=>jP,getObjectMetadata:()=>GP,getPluginIconKey:()=>AS,getPluginJSKey:()=>TS,getPluginS3Dir:()=>_S,getPresignedUrl:()=>Zr,getReadStream:()=>Tc,listAllObjects:()=>dS,processAutomationAttachment:()=>fP,processObjectStoreAttachment:()=>xA,retrieve:()=>lS,retrieveDirectory:()=>UP,retrieveToTmp:()=>LP,sanitizeBucket:()=>ze,sanitizeKey:()=>Me,streamUpload:()=>cS,upload:()=>PP,uploadDirectory:()=>jf});var xc=require("@aws-sdk/client-s3"),Gf=require("@aws-sdk/lib-storage"),uS=require("@aws-sdk/s3-request-presigner"),Rc=W(require("stream")),Vf=W(require("node-fetch")),$f=W(require("tar-fs")),Wf=W(require("zlib")),Jr=require("path"),os=W(require("fs"));var Xo=W(require("path")),SA=require("os"),_A=W(require("fs"));var IA=W(require("stream")),dP={BACKUPS:h.BACKUPS_BUCKET_NAME,APPS:h.APPS_BUCKET_NAME,TEMPLATES:h.TEMPLATES_BUCKET_NAME,GLOBAL:h.GLOBAL_BUCKET_NAME,PLUGINS:h.PLUGIN_BUCKET_NAME,TEMP:h.TEMP_BUCKET_NAME},OA=(0,Xo.join)((0,SA.tmpdir)(),".budibase");try{_A.default.mkdirSync(OA)}catch(t){if(t.code!=="EEXIST")throw t}function ai(){return OA}var Ec=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function pP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Xo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:IA.default.Readable.fromWeb(e.body)}}async function xA(t){let e=bf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Tc(r,n),s=Xo.default.basename(n);return{bucket:r,path:n,filename:t.filename||s,content:i}}async function fP(t){return t.url?.startsWith("http://")||t.url?.startsWith("https://")?await pP(t):await xA(t)}var qf=require("uuid");var Kr={};P(Kr,{APP_DEV:()=>Zu,APP_DEV_PREFIX:()=>Et,APP_PREFIX:()=>yt,AutomationViewMode:()=>zu,BUDIBASE_DATASOURCE_TYPE:()=>Up,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Bp,DEFAULT_EXPENSES_TABLE_ID:()=>kp,DEFAULT_INVENTORY_TABLE_ID:()=>Fp,DEFAULT_JOBS_TABLE_ID:()=>Mp,DatabaseImpl:()=>Xi,DatabaseWithConnection:()=>xN,DeprecatedViews:()=>Ki,DesignDocuments:()=>wo,DocumentType:()=>ye,InternalTable:()=>Zt,QueryBuilder:()=>mr,Replication:()=>nS,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Lp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>Ro,ViewName:()=>Gr,baseGlobalDBName:()=>Mo,checkErrorCode:()=>aS,closePouchDB:()=>Lo,createApiKeyView:()=>ZA,createNewUserEmailView:()=>JA,createPlatformAccountEmailView:()=>eS,createPlatformUserView:()=>tS,createUserAppView:()=>zA,createView:()=>ss,dbExists:()=>IP,directCouchAllDbs:()=>af,directCouchCall:()=>eA,directCouchQuery:()=>Jp,directCouchUrlCall:()=>Po,doWithDB:()=>lt,extractAppUUID:()=>uN,fullSearch:()=>wP,generateAgentChatID:()=>FA,generateAgentToolSourceID:()=>kA,generateAppID:()=>wA,generateAppUserID:()=>_c,generateDevInfoID:()=>LA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>MA,generatePluginID:()=>UA,generateRoleID:()=>vf,generateRowID:()=>Cf,generateTableID:()=>bA,generateTemplateID:()=>PA,generateUserMetadataID:()=>vA,generateWorkspaceAppID:()=>BA,generateWorkspaceFavouriteID:()=>GA,generateWorkspaceID:()=>DA,getAllApps:()=>ra,getAllDbs:()=>YA,getAppsByIDs:()=>TP,getCouchInfo:()=>Pt,getDB:()=>We,getDevAppID:()=>Ji,getDevAppIDs:()=>SP,getDevelopmentAppID:()=>ic,getDocParams:()=>pr,getGlobalDBName:()=>Zn,getGlobalIDFromUserMetadataID:()=>NA,getGlobalUserParams:()=>ui,getOAuth2ConfigParams:()=>jA,getPluginParams:()=>QA,getPouch:()=>zp,getPouchDB:()=>Tt,getProdAppID:()=>ct,getProdAppIDs:()=>AP,getQueryIndex:()=>VA,getRoleParams:()=>Oc,getRowParams:()=>Nf,getStartEndKeyURL:()=>ta,getTemplateParams:()=>qA,getUrlInfo:()=>Yp,getUserMetadataParams:()=>WA,getUsersByAppParams:()=>Ic,getWorkspaceAppParams:()=>HA,getWorkspaceFavouriteParams:()=>KA,getWorkspaceParams:()=>$A,init:()=>oc,isDevApp:()=>No,isDevAppID:()=>Vr,isDocumentConflictError:()=>DP,isGlobalUserID:()=>CA,isProdAppID:()=>aN,isSameAppID:()=>_P,paginatedSearch:()=>RP,pagination:()=>Lf,prefixRoleID:()=>dr,queryGlobalView:()=>fr,queryGlobalViewRaw:()=>Ff,queryPlatformView:()=>ia,queryView:()=>Mf,queryViewRaw:()=>na,removeKeyNumbering:()=>sa,searchIndexes:()=>Bf});var ea={};P(ea,{AppState:()=>Df,getAppMetadata:()=>Sc,invalidateAppMetadata:()=>yP});var Df=(e=>(e.INVALID="invalid",e))(Df||{}),RA=3600,mP=60;async function hP(t){return lt(t,e=>e.get("app_metadata"),{skip_setup:!0})}function gP(t){return!t||t.state==="invalid"}async function Sc(t){let e=await gc(),r=await e.get(t);if(!r){let n=RA;try{r=await hP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=mP;else throw i}if(gP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function yP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await gc();await r.delete(t),e&&await r.store(t,e,RA)}var Pf={};P(Pf,{generateAgentChatID:()=>FA,generateAgentToolSourceID:()=>kA,generateAppID:()=>wA,generateAppUserID:()=>_c,generateDevInfoID:()=>LA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>MA,generatePluginID:()=>UA,generateRoleID:()=>vf,generateRowID:()=>Cf,generateTableID:()=>bA,generateTemplateID:()=>PA,generateUserMetadataID:()=>vA,generateWorkspaceAppID:()=>BA,generateWorkspaceFavouriteID:()=>GA,generateWorkspaceID:()=>DA,getDocParams:()=>pr,getGlobalIDFromUserMetadataID:()=>NA,getGlobalUserParams:()=>ui,getOAuth2ConfigParams:()=>jA,getPluginParams:()=>QA,getQueryIndex:()=>VA,getRoleParams:()=>Oc,getRowParams:()=>Nf,getStartEndKeyURL:()=>ta,getTemplateParams:()=>qA,getUserMetadataParams:()=>WA,getUsersByAppParams:()=>Ic,getWorkspaceAppParams:()=>HA,getWorkspaceFavouriteParams:()=>KA,getWorkspaceParams:()=>$A,isGlobalUserID:()=>CA,prefixRoleID:()=>dr});var wA=t=>{let e=yt;return t&&(e+=`${t}${w}`),`${e}${fe()}`};function bA(){return`ta${w}${fe()}`}function Cf(t,e){return e=e||fe(),`ro${w}${t}${w}${e}`}function DA(){return`workspace${w}${fe()}`}function is(t){return`us${w}${t||fe()}`}var EP=new RegExp(`^us${w}.+`);function CA(t){return EP.test(t)}function vA(t){return Cf("ta_users",t)}function NA(t){let e=`ro${w}ta_users${w}`;return!t||!t.includes(e)?t:t.split(e)[1]}function PA(t){return`template${w}${t}${w}${fe()}`}function _c(t,e){return`${t}${w}${e}`}function vf(t){let e=`role${w}`;return t.startsWith(e)?t:`${e}${t}`}function dr(t){return vf(t)}var LA=t=>`devinfo${w}${t}`,UA=t=>`plg${w}${t}`,MA=t=>`oauth2log${w}${t}`,FA=()=>`agentchat${w}${fe()}`,kA=()=>`agenttoolsource${w}${fe()}`,BA=()=>`workspace_app${w}${fe()}`,GA=()=>`workspace_favourite${w}${fe()}`;function pr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${w}${e}`,endkey:`${t}${w}${e}${Ve}`}}function Nf(t,e,r={}){if(t==null)return pr("ro",null,r);let n=e??`${t}${w}`;return pr("ro",n,r)}function VA(t){return`database/${t}`}function $A(t="",e={}){return{...e,startkey:`workspace${w}${t}`,endkey:`workspace${w}${t}${Ve}`}}function ui(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${w}${t}`,endkey:`us${w}${t}${Ve}`}}function WA(t,e={}){return Nf("ta_users",t,e)}function Ic(t,e={}){let r=ct(t);return{...e,startkey:r,endkey:`${r}${Ve}`}}function qA(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${w}${t}${w}`,{...r,startkey:n,endkey:`${n}${Ve}`}}function Oc(t,e={}){return pr("role",t,e)}function ta(t,e){let r=e?`${w}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${Ve}"`}var QA=(t,e={})=>pr("plg",t,e),jA=(t,e={})=>pr("oauth2",t,e),HA=(t,e={})=>pr("workspace_app",t,e),KA=(t,e={})=>pr("workspace_favourite",t,e);async function YA(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await af(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(ta("app",i)),await n(ta("app_dev",i)),r.push(Zn(i))),r}async function ra({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Te);let o=(await YA({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(w);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=>Vr(l)),c=o.filter(l=>!Vr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>Sc(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:No(l)?"development":"published"})):c.filter(l=>t?No(l):!No(l))}}async function TP(t){return(await Promise.allSettled(t.map(r=>Sc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function AP(){return(await ra({idsOnly:!0})).filter(e=>!Vr(e))}async function SP(){return(await ra({idsOnly:!0})).filter(e=>Vr(e))}function _P(t,e){return t==null||e==null?!1:ct(t)===ct(e)}async function IP(t){return lt(t,async e=>await e.exists(),{skip_setup:!0})}function Lf(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 Uf="_design/database";function OP(){return{_id:Uf,views:{}}}async function xP(t,e){if(Ki[e])try{let r=await t.get(Uf);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(Uf)}catch{n=OP()}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 JA=async()=>{let t=ie(),e=`function(doc) {
9
+ `;await this.client.eval(i,1,this.prefixed(e),r)})}},je=Cf;var Fo,Bo,Go,Vo,ni,$o,Wo,qo,Qo,vf;async function kt(){Fo=await je.init("users"),Bo=await je.init("session"),Go=await je.init("appMetadata"),Vo=await je.init("data_cache"),$o=await je.init("locks"),ni=await je.init("writeThrough"),qo=await je.init("invitation"),Qo=await je.init("pwReset"),Wo=await je.init("socket_io",1),vf=await je.init("docWriteThrough")}async function CA(){Fo&&await Fo.finish(),Bo&&await Bo.finish(),Go&&await Go.finish(),Vo&&await Vo.finish(),ni&&await ni.finish(),$o&&await $o.finish(),qo&&await qo.finish(),Qo&&await Qo.finish(),Wo&&await Wo.finish(),vf&&await vf.finish()}process.on("exit",async()=>{await CA()});async function jo(){return Fo||await kt(),Fo}async function Kr(){return Bo||await kt(),Bo}async function Ac(){return Go||await kt(),Go}async function Nf(){return Vo||await kt(),Vo}async function Pf(){return ni||await kt(),ni}async function Lf(){return $o||await kt(),$o}async function TP(){return Wo||await kt(),Wo}async function ii(){return qo||await kt(),qo}async function Ho(){return Qo||await kt(),Qo}async function AP(){return ni||await kt(),ni}function zt(t){let e=Q();return`${t}:${e}`}var si=class{constructor(e=void 0){this.client=e}async getClient(){return this.client?this.client:await Nf()}async keys(e){return(await this.getClient()).keys(e)}async exists(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).exists(e)}async scan(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).scan(e)}async get(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).get(e)}async bulkGet(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>zt(i)):e,(await this.getClient()).bulkGet(e)}async store(e,r,n=null,i={useTenancy:!0}){e=i.useTenancy?zt(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[zt(o)]=a,s),{})),await(await this.getClient()).bulkStore(e,r)}async delete(e,r={useTenancy:!0}){return e=r.useTenancy?zt(e):e,(await this.getClient()).delete(e)}async bulkDelete(e,r={useTenancy:!0}){return e=r.useTenancy?e.map(i=>zt(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(zt(e))}catch(n){throw console.error("Error busting cache - ",n),n}}async deleteIfValue(e,r,n={useTenancy:!0}){e=n.useTenancy?zt(e):e,await(await this.getClient()).deleteIfValue(e,r)}};var oi=new si,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}`},ai=(n=>(n[n.ONE_MINUTE=600]="ONE_MINUTE",n[n.ONE_HOUR=3600]="ONE_HOUR",n[n.ONE_DAY=86400]="ONE_DAY",n))(ai||{}),Sc=(...t)=>oi.keys(...t),ui=(...t)=>oi.get(...t),mr=(...t)=>oi.store(...t),Ko=(...t)=>oi.delete(...t),Jr=(...t)=>oi.withCache(...t),vA=(...t)=>oi.withCacheWithDynamicTTL(...t),as=(...t)=>oi.bustCache(...t);var cn={};N(cn,{getUser:()=>Pa,getUsers:()=>E0,invalidateUser:()=>La});var zo={};N(zo,{addTenantToUrl:()=>SP,getTenantDB:()=>Uf,getTenantIDFromCtx:()=>Jo,isUserInAppTenant:()=>_P});function Uf(t){return qe(ei(t))}function SP(t){let e=Q();if(Hr()){let r=t.indexOf("?")===-1?"?":"&";t+=`${r}tenantId=${e}`}return t}var _P=(t,e)=>{let r;return e?r=e.tenantId||Se:r=Q(),(is(t)||Se)===r},IP=Object.values(vs),Jo=(t,e)=>{if(!Hr())return Se;e.allowNoTenant===void 0&&(e.allowNoTenant=!1),e.includeStrategies||(e.includeStrategies=IP),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(Ef()).host.split(":")[0]}catch(s){if(s.code!=="ERR_INVALID_URL")throw s}let i=t.host;if(n&&i.includes(n)){let s=i.substring(0,i.indexOf(`.${n}`));if(s)return s}}if(r("path")){let n=t.matched.find(o=>!!o.paramNames.find(a=>a.name==="tenantId")),i=t.originalUrl,s;if(i.includes("?")?s=i.split("?")[0]:s=i,n){let o=n.params(s,n.captures(s),{});if(o.tenantId)return o.tenantId}}e.allowNoTenant||t.throw(403,"Tenant id not set")};var Zo={};N(Zo,{getPlatformDB:()=>zr,users:()=>Ft});var Ft={};N(Ft,{addSsoUser:()=>PA,addUser:()=>DP,getUserDoc:()=>NA,lookupTenantId:()=>OP,removeUser:()=>CP,updateUserDoc:()=>xP});function zr(){return qe(xe.PLATFORM_INFO.name)}async function OP(t){return h.MULTI_TENANCY?(await NA(t)).tenantId:Se}async function NA(t){return zr().get(t)}async function xP(t){await zr().put(t)}function RP(t,e){return{_id:t,tenantId:e}}function wP(t,e,r){return{_id:e,userId:t,tenantId:r}}function bP(t,e,r,n){return{_id:t,userId:r,email:e,tenantId:n}}async function Mf(t,e){let r=zr(),n;try{await r.get(t)}catch(i){if(i.status===404)n=e(),await r.put(n);else throw i}}async function PA(t,e,r,n){return Mf(t,()=>bP(t,e,r,n))}async function DP(t,e,r,n){let i=[Mf(e,()=>RP(e,t)),Mf(r,()=>wP(e,r,t))];n&&i.push(PA(n,r,e,t)),await Promise.all(i)}async function CP(t){let e=zr(),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 fi={};N(fi,{getAccount:()=>sn,getAccountByTenantId:()=>fs,getStatus:()=>xL});var QS=V(require("node-fetch"));var da={};N(da,{correlation:()=>Xo,logAlert:()=>pi,logAlertWithInfo:()=>OL,logWarn:()=>ps,logger:()=>Pc,system:()=>um});var Xo={};N(Xo,{getId:()=>kf,setHeader:()=>vP});var LA=require("correlation-id"),vP=t=>{let e=LA.getId();e&&(t["x-budibase-correlation-id"]=e)};function kf(){return LA.getId()}var Nc=V(require("pino")),WS=V(require("pino-pretty"));var cm=V(require("dd-trace")),qS=require("dd-trace/ext");var um={};N(um,{getLogReadStream:()=>EL,getSingleFileMaxSizeInfo:()=>$S,localFileDestination:()=>am});var la=V(require("fs")),om=V(require("path")),FS=V(require("rotating-file-stream"));var sm={};N(sm,{ObjectStore:()=>Bt,ObjectStoreBuckets:()=>PP,SIGNED_FILE_PREFIX:()=>tm,bucketTTLConfig:()=>_c,budibaseTempDir:()=>ci,clientLibraryCDNUrl:()=>dL,clientLibraryPath:()=>DS,clientLibraryUrl:()=>pL,createBucketIfNotExists:()=>ca,deleteFile:()=>iL,deleteFiles:()=>sL,deleteFolder:()=>RS,downloadTarball:()=>aL,downloadTarballDirect:()=>oL,enrichPWAImages:()=>fL,enrichPluginURLs:()=>hL,extractBucketAndPath:()=>Ff,getAppFileUrl:()=>CS,getGlobalFileS3Key:()=>vS,getGlobalFileUrl:()=>mL,getObjectMetadata:()=>uL,getPluginIconKey:()=>LS,getPluginJSKey:()=>PS,getPluginS3Dir:()=>MS,getPresignedUrl:()=>rn,getReadStream:()=>Ic,listAllObjects:()=>xS,processAutomationAttachment:()=>UP,processObjectStoreAttachment:()=>BA,retrieve:()=>OS,retrieveDirectory:()=>nL,retrieveToTmp:()=>rL,sanitizeBucket:()=>Ze,sanitizeKey:()=>Fe,streamUpload:()=>IS,upload:()=>tL,uploadDirectory:()=>rm});var Dc=require("@aws-sdk/client-s3"),Jf=require("@aws-sdk/lib-storage"),_S=require("@aws-sdk/s3-request-presigner"),Cc=V(require("stream")),zf=V(require("node-fetch")),Zf=V(require("tar-fs")),Xf=V(require("zlib")),en=require("path"),ls=V(require("fs"));var ea=V(require("path")),UA=require("os"),MA=V(require("fs"));var kA=V(require("stream")),PP={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},FA=(0,ea.join)((0,UA.tmpdir)(),".budibase");try{MA.default.mkdirSync(FA)}catch(t){if(t.code!=="EEXIST")throw t}function ci(){return FA}var _c=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function LP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=ea.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:kA.default.Readable.fromWeb(e.body)}}async function BA(t){let e=Ff(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ic(r,n),s=ea.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 LP(t):await BA(t)}var em=require("uuid");var Zr={};N(Zr,{APP_DEV:()=>rc,APP_DEV_PREFIX:()=>Tt,APP_PREFIX:()=>Et,AutomationViewMode:()=>tc,BUDIBASE_DATASOURCE_TYPE:()=>Qp,DEFAULT_BB_DATASOURCE_ID:()=>Pi,DEFAULT_EMPLOYEE_TABLE_ID:()=>Yp,DEFAULT_EXPENSES_TABLE_ID:()=>Kp,DEFAULT_INVENTORY_TABLE_ID:()=>Hp,DEFAULT_JOBS_TABLE_ID:()=>jp,DatabaseImpl:()=>ns,DatabaseWithConnection:()=>HN,DeprecatedViews:()=>Zi,DesignDocuments:()=>bo,DocumentType:()=>Te,InternalTable:()=>tr,QueryBuilder:()=>Er,Replication:()=>yS,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Jt,SQS_DATASOURCE_INTERNAL:()=>qp,StaticDatabases:()=>xe,UNICODE_MAX:()=>We,USER_METADATA_PREFIX:()=>wo,ViewName:()=>qr,baseGlobalDBName:()=>ko,checkErrorCode:()=>SS,closePouchDB:()=>Uo,createApiKeyView:()=>pS,createNewUserEmailView:()=>lS,createPlatformAccountEmailView:()=>mS,createPlatformUserView:()=>hS,createUserAppView:()=>dS,createView:()=>cs,dbExists:()=>QP,directCouchAllDbs:()=>yf,directCouchCall:()=>mA,directCouchQuery:()=>af,directCouchUrlCall:()=>Lo,doWithDB:()=>ct,extractAppUUID:()=>CN,fullSearch:()=>YP,generateAgentChatID:()=>zA,generateAgentToolSourceID:()=>ZA,generateAppID:()=>VA,generateAppUserID:()=>Rc,generateDevInfoID:()=>KA,generateGlobalUserID:()=>us,generateOAuth2LogID:()=>JA,generatePluginID:()=>YA,generateRoleID:()=>Vf,generateRowID:()=>Gf,generateTableID:()=>$A,generateTemplateID:()=>HA,generateUserMetadataID:()=>QA,generateWorkspaceAppID:()=>XA,generateWorkspaceFavouriteID:()=>eS,generateWorkspaceID:()=>WA,getAllApps:()=>na,getAllDbs:()=>cS,getAppsByIDs:()=>VP,getCouchInfo:()=>Lt,getDB:()=>qe,getDevAppID:()=>es,getDevAppIDs:()=>WP,getDevelopmentAppID:()=>uc,getDocParams:()=>gr,getGlobalDBName:()=>ei,getGlobalIDFromUserMetadataID:()=>jA,getGlobalUserParams:()=>li,getOAuth2ConfigParams:()=>oS,getPluginParams:()=>sS,getPouch:()=>uf,getPouchDB:()=>At,getProdAppID:()=>ut,getProdAppIDs:()=>$P,getQueryIndex:()=>tS,getRoleParams:()=>bc,getRowParams:()=>$f,getStartEndKeyURL:()=>ra,getTemplateParams:()=>iS,getUrlInfo:()=>of,getUserMetadataParams:()=>nS,getUsersByAppParams:()=>wc,getWorkspaceAppParams:()=>aS,getWorkspaceFavouriteParams:()=>uS,getWorkspaceParams:()=>rS,init:()=>lc,isDevApp:()=>Po,isDevAppID:()=>Qr,isDocumentConflictError:()=>zP,isGlobalUserID:()=>qA,isProdAppID:()=>DN,isSameAppID:()=>qP,paginatedSearch:()=>KP,pagination:()=>qf,prefixRoleID:()=>hr,queryGlobalView:()=>yr,queryGlobalViewRaw:()=>Hf,queryPlatformView:()=>sa,queryView:()=>jf,queryViewRaw:()=>ia,removeKeyNumbering:()=>oa,searchIndexes:()=>Yf});var ta={};N(ta,{AppState:()=>Bf,getAppMetadata:()=>xc,invalidateAppMetadata:()=>BP});var Bf=(e=>(e.INVALID="invalid",e))(Bf||{}),GA=3600,MP=60;async function kP(t){return ct(t,e=>e.get("app_metadata"),{skip_setup:!0})}function FP(t){return!t||t.state==="invalid"}async function xc(t){let e=await Ac(),r=await e.get(t);if(!r){let n=GA;try{r=await kP(t)}catch(i){if(i&&i.status===404)r={state:"invalid"},n=MP;else throw i}if(FP(r)){let i=await e.get(t);i&&(r=i)}await e.store(t,r,n)}return r}async function BP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await Ac();await r.delete(t),e&&await r.store(t,e,GA)}var Wf={};N(Wf,{generateAgentChatID:()=>zA,generateAgentToolSourceID:()=>ZA,generateAppID:()=>VA,generateAppUserID:()=>Rc,generateDevInfoID:()=>KA,generateGlobalUserID:()=>us,generateOAuth2LogID:()=>JA,generatePluginID:()=>YA,generateRoleID:()=>Vf,generateRowID:()=>Gf,generateTableID:()=>$A,generateTemplateID:()=>HA,generateUserMetadataID:()=>QA,generateWorkspaceAppID:()=>XA,generateWorkspaceFavouriteID:()=>eS,generateWorkspaceID:()=>WA,getDocParams:()=>gr,getGlobalIDFromUserMetadataID:()=>jA,getGlobalUserParams:()=>li,getOAuth2ConfigParams:()=>oS,getPluginParams:()=>sS,getQueryIndex:()=>tS,getRoleParams:()=>bc,getRowParams:()=>$f,getStartEndKeyURL:()=>ra,getTemplateParams:()=>iS,getUserMetadataParams:()=>nS,getUsersByAppParams:()=>wc,getWorkspaceAppParams:()=>aS,getWorkspaceFavouriteParams:()=>uS,getWorkspaceParams:()=>rS,isGlobalUserID:()=>qA,prefixRoleID:()=>hr});var VA=t=>{let e=Et;return t&&(e+=`${t}${w}`),`${e}${me()}`};function $A(){return`ta${w}${me()}`}function Gf(t,e){return e=e||me(),`ro${w}${t}${w}${e}`}function WA(){return`workspace${w}${me()}`}function us(t){return`us${w}${t||me()}`}var GP=new RegExp(`^us${w}.+`);function qA(t){return GP.test(t)}function QA(t){return Gf("ta_users",t)}function jA(t){let e=`ro${w}ta_users${w}`;return!t||!t.includes(e)?t:t.split(e)[1]}function HA(t){return`template${w}${t}${w}${me()}`}function Rc(t,e){return`${t}${w}${e}`}function Vf(t){let e=`role${w}`;return t.startsWith(e)?t:`${e}${t}`}function hr(t){return Vf(t)}var KA=t=>`devinfo${w}${t}`,YA=t=>`plg${w}${t}`,JA=t=>`oauth2log${w}${t}`,zA=()=>`agentchat${w}${me()}`,ZA=()=>`agenttoolsource${w}${me()}`,XA=()=>`workspace_app${w}${me()}`,eS=()=>`workspace_favourite${w}${me()}`;function gr(t,e,r={}){return e==null&&(e=""),{...r,startkey:`${t}${w}${e}`,endkey:`${t}${w}${e}${We}`}}function $f(t,e,r={}){if(t==null)return gr("ro",null,r);let n=e??`${t}${w}`;return gr("ro",n,r)}function tS(t){return`database/${t}`}function rS(t="",e={}){return{...e,startkey:`workspace${w}${t}`,endkey:`workspace${w}${t}${We}`}}function li(t,e={}){t||(t="");let r=e?.startkey;return{...e,startkey:r||`us${w}${t}`,endkey:`us${w}${t}${We}`}}function nS(t,e={}){return $f("ta_users",t,e)}function wc(t,e={}){let r=ut(t);return{...e,startkey:r,endkey:`${r}${We}`}}function iS(t,e,r={}){e||(e="");let n;return e?n=e:n=`template${w}${t}${w}`,{...r,startkey:n,endkey:`${n}${We}`}}function bc(t,e={}){return gr("role",t,e)}function ra(t,e){let r=e?`${w}${e}`:"";return`startkey="${t}${r}"&endkey="${t}${r}${We}"`}var sS=(t,e={})=>gr("plg",t,e),oS=(t,e={})=>gr("oauth2",t,e),aS=(t,e={})=>gr("workspace_app",t,e),uS=(t,e={})=>gr("workspace_favourite",t,e);async function cS(t={efficient:!1}){let e=t&&t.efficient,r=[];async function n(s){let o=await yf(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Se?await n():(await n(ra("app",i)),await n(ra("app_dev",i)),r.push(ei(i))),r}async function na({dev:t,all:e,idsOnly:r,efficient:n}={}){let i=Q();!h.MULTI_TENANCY&&!i&&(i=Se);let o=(await cS({efficient:n||!1})).filter(u=>{if(h.isTest()&&!u)return!1;let c=u.split(w);if(c[0]==="app"){let l=c[c.length-2],d=c.length===2||l==="dev";return i===Se&&d||l===i}return!1});if(r){let u=o.filter(l=>Qr(l)),c=o.filter(l=>!Qr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>xc(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:Po(l)?"development":"published"})):c.filter(l=>t?Po(l):!Po(l))}}async function VP(t){return(await Promise.allSettled(t.map(r=>xc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function $P(){return(await na({idsOnly:!0})).filter(e=>!Qr(e))}async function WP(){return(await na({idsOnly:!0})).filter(e=>Qr(e))}function qP(t,e){return t==null||e==null?!1:ut(t)===ut(e)}async function QP(t){return ct(t,async e=>await e.exists(),{skip_setup:!0})}function qf(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 Qf="_design/database";function jP(){return{_id:Qf,views:{}}}async function HP(t,e){if(Zi[e])try{let r=await t.get(Qf);for(let n of Zi[e])delete r.views?.[n];await t.put(r)}catch{}}async function cs(t,e,r){let n;try{n=await t.get(Qf)}catch{n=jP()}let i={map:e};n.views={...n.views,[r]:i};try{await t.put(n)}catch(s){if(s.status===409)return await cs(t,e,r);throw s}}var lS=async()=>{let t=ae(),e=`function(doc) {
10
10
  if (doc._id.startsWith("us${w}")) {
11
11
  emit(doc.email.toLowerCase(), doc._id)
12
12
  }
13
- }`;await ss(t,e,"by_email2")},zA=async()=>{let t=ie(),e=`function(doc) {
13
+ }`;await cs(t,e,"by_email2")},dS=async()=>{let t=ae(),e=`function(doc) {
14
14
  if (doc._id.startsWith("us${w}") && doc.roles) {
15
15
  for (let prodAppId of Object.keys(doc.roles)) {
16
16
  let emitted = prodAppId + "${w}" + doc._id
17
17
  emit(emitted, null)
18
18
  }
19
19
  }
20
- }`;await ss(t,e,"by_app")},ZA=async()=>{let t=ie(),e=`function(doc) {
20
+ }`;await cs(t,e,"by_app")},pS=async()=>{let t=ae(),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 na(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 xP(r,t),await n(),na(t,e,r,n,i);if(s.status===409)return na(t,e,r,n,i);throw s}}var Mf=async(t,e,r,n,i)=>{let a=(await na(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 XA(t,e){try{await lt(xe.PLATFORM_INFO.name,async r=>{await ss(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var eS=async()=>{let t=`function(doc) {
24
+ }`;await cs(t,e,"by_api_key")};async function ia(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 HP(r,t),await n(),ia(t,e,r,n,i);if(s.status===409)return ia(t,e,r,n,i);throw s}}var jf=async(t,e,r,n,i)=>{let a=(await ia(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 fS(t,e){try{await ct(xe.PLATFORM_INFO.name,async r=>{await cs(r,t,e)})}catch(r){if(r.status===409&&h.isTest())return;throw r}}var mS=async()=>{let t=`function(doc) {
25
25
  if (doc._id.startsWith("acc_metadata${w}")) {
26
26
  emit(doc.email.toLowerCase(), doc._id)
27
27
  }
28
- }`;await XA(t,"account_by_email")},tS=async()=>{await XA(`function(doc) {
28
+ }`;await fS(t,"account_by_email")},hS=async()=>{await fS(`function(doc) {
29
29
  if (doc.tenantId) {
30
30
  emit(doc._id.toLowerCase(), doc._id)
31
31
  }
@@ -33,7 +33,7 @@ attempted value: ${s}
33
33
  if (doc.ssoId) {
34
34
  emit(doc.ssoId, doc._id)
35
35
  }
36
- }`,"platform_users_lowercase_2")},ia=async(t,e)=>{let r={account_by_email:eS,platform_users_lowercase_2:tS};return lt(xe.PLATFORM_INFO.name,async n=>{let i=r[t];return Mf(t,e,n,i,{arrayResponse:!0})})},rS={by_email2:JA,by_api_key:ZA,by_app:zA},fr=async(t,e,r,n)=>{r||(r=ie());let i=rS[t];return Mf(t,e,r,i,n)};async function Ff(t,e,r){let n=ie(),i=rS[t];return na(t,e,n,i,r)}var kf=class{constructor({source:e,target:r}){this.source=Tt(e),this.target=Tt(r),e.startsWith("app_dev")&&r.startsWith("app")?this.direction="toProduction":e.startsWith("app")&&r.startsWith("app_dev")&&(this.direction="toDev")}async close(){await Promise.all([Lo(this.source),Lo(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=(d,p)=>d?.startsWith(p+w),l=d=>c(d,"ro")||c(d,"li");return{...e,filter:(d,p)=>!s&&d._id==="_design/migrations"||i&&d._id.startsWith("_design")?!1:d._deleted||c(d._id,Ro)?!0:l(d._id)?!!u?.find(m=>d._id.includes(m))||a:c(d._id,"log_au")||d._id==="app_metadata"?!1:r?r(d,p):!0}}async rollback(){await this.target.destroy(),this.target=Tt(this.target.name),await this.replicate()}},nS=kf;var sS=W(require("node-fetch"));var sa=kr.removeKeyNumbering;function ci(t){return t==null||t===""}var mr=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=sa(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>ci(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,y="AND")=>{if(ci(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let T=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)T+=` ${y} ${e.preprocess(g[_],{escape:!0})}`;return`${f}:(${T})`},c=(f,g)=>ci(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let y=r?"*:* AND ":"",T=r?"AND":void 0;return y+"NOT "+u(f,g,T)},d=(f,g)=>u(f,g,"OR"),p=(f,g)=>{if(ci(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`${f}:(${y})`};function m(f,g,y){let T="";for(let[_,S]of Object.entries(f)){_=sa(_),_=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,(f,g)=>ci(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&m(this.#e.range,(f,g)=>{if(ci(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`${f}:[${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,(f,g)=>ci(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,p),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}=Pt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await iS(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await iS(n,i,r);throw s}}};async function iS(t,e,r){let n=await(0,sS.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 oS(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=mr.maxLimit;n.limit&&s.length>n.limit-mr.maxLimit&&(o=n.limit-s.length);let a=new mr(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<mr.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await oS(t,e,r,c)}async function RP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,mr.maxLimit);let s=new mr(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 wP(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 oS(t,e,r,n)}}var Bf={};P(Bf,{createUserIndex:()=>bP});async function bP(){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 aS(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 DP(t){return aS(t,409)}var oa=W(require("fs/promises")),zr=W(require("dd-trace")),aa=require("stream/promises");var CP=require("sanitize-s3-objectkey"),vP={bucketCreationPromises:{}},Qf="/files/signed",Yr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},NP=[Yr.html,Yr.css,Yr.js,Yr.json];function Me(t){return CP(ze(t)).replace(/\\/g,"/")}function ze(t){return t.replace(new RegExp(Et,"g"),yt)}function kt(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 xc.S3(e)}async function ua(t,e){e=ze(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=vP.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 PP({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await oa.default.open(r)).createReadStream():s,c=kt(),l=await ua(c,t);if(o&&l.created){let g=Ec(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,p=d||(a?Yr[a.toLowerCase()]:Yr.txt),m={Bucket:ze(t),Key:Me(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new Gf.Upload({client:c,params:m}).done()}async function cS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await zr.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=kt(),c=await ua(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=Ec(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?Yr[a.toLowerCase()]:Yr.txt),o.addTags({contentType:l});let d=ze(t),p=Me(r),m={Bucket:d,Key:p,Body:e,ContentType:l,...i},g=await new Gf.Upload({client:u,params:m}).done(),y=await u.headObject({Bucket:d,Key:p});return o.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}async function lS(t,e){return await zr.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=kt(),i={Bucket:ze(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}),NP.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return Rc.default.Readable.fromWeb(o)}})}async function*dS(t,e){let r=kt(),n=(o={})=>r.listObjectsV2({...o,Bucket:ze(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 Zr(t,e,r=3600){let n=kt({presigning:!0}),i={Bucket:ze(t),Key:Me(e)},s=await(0,uS.getSignedUrl)(n,new xc.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 LP(t,e){return await zr.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=ze(t),e=Me(e);let n=await lS(t,e),i=(0,Jr.join)(ai(),(0,qf.v4)());return r.addTags({outputPath:i}),n instanceof Rc.default.Readable?(r.addTags({stream:!0}),await(0,aa.pipeline)(n,os.default.createWriteStream(i))):(r.addTags({stream:!1}),os.default.writeFileSync(i,n)),i})}async function UP(t,e){return await zr.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,Jr.join)(ai(),(0,qf.v4)());await oa.default.mkdir(n,{recursive:!0});let i=0;return await vr.parallelForeach(dS(t,e),async s=>{i++,await zr.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await Tc(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,Jr.join)(n,...l);c.length>1&&!os.default.existsSync(d)&&await oa.default.mkdir(d,{recursive:!0}),await(0,aa.pipeline)(u,os.default.createWriteStream((0,Jr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function MP(t,e){let r=kt();await ua(r,t);let n={Bucket:t,Key:Me(e)};return r.deleteObject(n)}async function FP(t,e){let r=kt();await ua(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Me(i)}))}};return r.deleteObjects(n)}async function pS(t,e){t=ze(t),e=Me(e);let r=kt(),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 pS(t,e)}async function jf(t,e,r){return await zr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=ze(t);let i=await oa.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Me((0,Jr.join)(r,s.name)),a=(0,Jr.join)(e,s.name);s.isDirectory()?await jf(t,a,o):await cS({bucket:t,filename:o,stream:os.default.createReadStream(a)})}return i})}async function kP(t,e,r={}){e=Me(e);let n=await(0,Vf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,aa.pipeline)(n.body,Wf.default.createUnzip(),$f.default.extract(e))}async function BP(t,e,r){e=ze(e),r=Me(r);let n=await(0,Vf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Jr.join)(ai(),r);return await(0,aa.pipeline)(n.body,Wf.default.createUnzip(),$f.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await jf(e,i,r),i}async function Tc(t,e){return await zr.default.trace("getReadStream",async r=>{t=ze(t),e=Me(e),r.addTags({bucketName:t,path:e});let n=kt(),i={Bucket:t,Key:e},s=await n.getObject(i);if(!s.Body||!(s.Body instanceof Rc.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function GP(t,e){t=ze(t),e=Me(e);let r=kt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function bf(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 fS=W(require("aws-cloudfront-sign")),wc;function VP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return wc||(wc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),wc)}var $P=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:VP(),expireTime:new Date().getTime()+1e3*60*60*24}),as=t=>{let e=Hf(t);return fS.getSignedUrl(e,$P())},Hf=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var mS=W(require("querystring"));function hS(t){return`${Me(t)}/budibase-client.js`}async function WP(t,e){let r=hS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),Hf(r)):await Zr(h.APPS_BUCKET_NAME,r)}function qP(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Te&&(n.tenantId=r),`/api/assets/client?${mS.default.encode(n)}`}async function gS(t){return h.CLOUDFRONT_CDN?as(t):await Zr(h.APPS_BUCKET_NAME,t)}async function QP(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await gS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var jP=async(t,e,r)=>{let n=yS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),as(n)):await Zr(h.GLOBAL_BUCKET_NAME,n)},yS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function HP(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await KP(e),n=await YP(e);return{...e,jsUrl:r,iconUrl:n}}))}async function KP(t){let e=TS(t);return ES(e)}async function YP(t){let e=AS(t);if(e)return ES(e)}async function ES(t){return h.CLOUDFRONT_CDN?as(t):await Zr(h.PLUGIN_BUCKET_NAME,t)}function TS(t){return SS(t,"plugin.min.js")}function AS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return SS(t,e)}function SS(t,e){return`${_S(t.name)}/${e}`}function _S(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var xS="budibase.log",RS="budibase-logs-history.txt",wS=Jf.default.join(ai(),"systemlogs");function IS(t){return Jf.default.join(wS,t)}function bS(t){let e=/(\d+)([A-Za-z])/,r=t?.match(e);if(!r){console.warn("totalMaxSize does not have a valid value",{totalMaxSize:t});return}let n=+r[1],i=r[2];if(n===1)switch(i){case"B":return{size:`${n}B`,totalHistoryFiles:1};case"K":return{size:`${n*1e3/2}B`,totalHistoryFiles:1};case"M":return{size:`${n*1e3/2}K`,totalHistoryFiles:1};case"G":return{size:`${n*1e3/2}M`,totalHistoryFiles:1};default:return}return n%2===0?{size:`${n/2}${i}`,totalHistoryFiles:1}:{size:`1${i}`,totalHistoryFiles:n-1}}function zf(){let t=bS(h.ROLLING_LOG_MAX_SIZE);return OS.createStream(xS,{size:t?.size,path:wS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:RS,initialRotation:!1})}function JP(){let t=[],e=IS(RS);if(ca.default.existsSync(e)){let i=ca.default.readFileSync(e,"utf-8").split(`
37
- `);for(let s of i.filter(o=>o))t.push(ca.default.readFileSync(s))}return t.push(ca.default.readFileSync(IS(xS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}function zP(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function ZP(t){return t instanceof Error}function XP(t){return typeof t=="string"}var Xr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,DS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:zf(),level:t}),Xr=r.length?(0,bc.default)(e,bc.default.multistream(r)):(0,bc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(y=>{XP(y)&&(d=`${d} ${y}`.trimStart()),zP(y)&&l.push(y),ZP(y)&&(c=y)});let p=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:wf()};let f=Xf.default.scope().active();f&&Xf.default.inject(f.context(),CS.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);Xr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Xr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Xr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Xr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Xr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Xr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=lf()}catch{}return u},a=()=>{let u;try{u=cr()}catch{}return u}}var Dc=Xr;var eL=["AccountError"];function tL(t){return t&&t.suppressAlert}function li(t,e){e&&eL.includes(e.name)&&tL(e)||console.error(`bb-alert: ${t}`,e)}function rL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,li(t,n)}function us(t,e){console.warn(`bb-warn: ${t}`,e)}var da=class{constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Zo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,vS.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 em=new da(h.INTERNAL_ACCOUNT_PORTAL_URL),tm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,en=async t=>{if(tm)return;let e={email:t},r=await em.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(tm)return;let e={tenantId:t},r=await em.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]},nL=async()=>{if(tm)return;let t=await em.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:()=>Jt,addAppBuilder:()=>j0,bulkGetGlobalUsersById:()=>sl,bulkUpdateGlobalUsers:()=>Da,cleanseUserObject:()=>Bm,creatorsInList:()=>pi,doesUserExist:()=>V0,getAccountHolderFromUsers:()=>Qc,getAllUserIds:()=>B0,getAllUsers:()=>G0,getById:()=>hi,getCreatorCount:()=>q0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>VS,getExistingTenantUsers:()=>GS,getFirstPlatformUser:()=>fa,getGlobalUserByAppPage:()=>M_,getGlobalUserByEmail:()=>Vt,getPlatformUsers:()=>Pc,getUserCount:()=>W0,hasAdminPermissions:()=>nn,hasAppBuilderPermissions:()=>qS,hasBuilderPermissions:()=>At,isAdmin:()=>rn,isAdminOrBuilder:()=>WS,isBuilder:()=>ms,isCreatorAsync:()=>ma,isCreatorSync:()=>Wc,isGlobalBuilder:()=>$S,paginatedUsers:()=>k_,removeAppBuilder:()=>H0,removePortalUserPermissions:()=>Q0,searchExistingEmails:()=>pm,searchGlobalUsersByApp:()=>ol,searchGlobalUsersByAppAccess:()=>km,searchGlobalUsersByEmail:()=>F_,validateUniqueUser:()=>qc});var fm={};P(fm,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Qc,hasAdminPermissions:()=>nn,hasAppBuilderPermissions:()=>qS,hasBuilderPermissions:()=>At,isAdmin:()=>rn,isAdminOrBuilder:()=>WS,isBuilder:()=>ms,isCreatorAsync:()=>ma,isCreatorSync:()=>Wc,isGlobalBuilder:()=>$S,validateUniqueUser:()=>qc});var dm={};P(dm,{createCode:()=>yL,deleteCode:()=>TL,getCode:()=>EL,getExistingInvites:()=>lm,getInviteCodes:()=>BS,updateCode:()=>gL});var ls={};P(ls,{Duration:()=>De,DurationType:()=>cm,clearCookie:()=>tn,compare:()=>im,getAppIdFromCtx:()=>dL,getCookie:()=>hr,hasCircularStructure:()=>fL,hash:()=>nm,isAudited:()=>am,isClient:()=>pL,isPublicApiRequest:()=>lL,isServingApp:()=>aL,isServingBuilder:()=>uL,isServingBuilderPreview:()=>cL,isValidInternalAPIKey:()=>pa,newid:()=>fe,openJwt:()=>vc,resolveAppUrl:()=>MS,setCookie:()=>FS,time:()=>hL,timeout:()=>om,urlHasProtocol:()=>mL,validEmail:()=>um});var rm=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),iL=h.SALT_ROUNDS||10;async function nm(t){let e=await rm.genSalt(iL);return rm.hash(t,e)}async function im(t,e){return rm.compare(t,e)}var Cc=W(require("jsonwebtoken")),sm="app"+w,PS="/app/",LS="/app/preview",sL="/builder",US=`${sL}/app/`,oL="/api/public/v";async function MS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Yo(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>ra({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function aL(t){return t.path.startsWith(`/${sm}`)?!0:t.path.startsWith(PS)}function uL(t){return t.path.startsWith(US)}function cL(t){return t.path.startsWith(LS)}function lL(t){return t.path.startsWith(oL)}async function dL(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith(sm)?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=NS(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(LS);if(t.path.startsWith(PS)&&!s&&(r=n(await MS(t))),t.request.headers.referer?.includes(US)){let u=NS(t.request.headers.referer);r=n(u)}return r}function NS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(sm))}function vc(t){if(t)try{return Cc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Cc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function pa(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function hr(t,e){let r=t.cookies.get(e);if(r)return vc(r)}function FS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Cc.default.sign(e,h.JWT_SECRET));let i={expires:ec,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function tn(t,e){FS(t,null,e)}function pL(t){return t.headers["x-budibase-type"]==="client"}function om(t){return new Promise(e=>setTimeout(e,t))}function am(t){return!!qh[t]}function fL(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 mL(t){return!!t.match(/^.+:\/\/.+$/)}function um(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 cm=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(cm||{}),Nc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{constructor(e){this.ms=e}to(e){return this.ms/Nc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Nc[e]/Nc[r]}static from(e,r){return new t(r*Nc[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 hL(t){let e=performance.now();return[await t(),De.fromMilliseconds(performance.now()-e)]}var kS=De.fromDays(7).toSeconds();async function gL(t,e){await(await ri()).store(t,e,kS)}async function yL(t,e){let r=fe();return await(await ri()).store(r,{email:t,info:e},kS),r}async function EL(t){let r=await(await ri()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function TL(t){await(await ri()).delete(t)}async function BS(){let r=(await(await ri()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function lm(t){return(await BS()).filter(e=>t.includes(e.email))}async function pm(t){let e=[],r=await GS(t);e.push(...r.map(o=>o.email));let n=await VS(t);e.push(...n.map(o=>o._id));let i=await ds(t);e.push(...i.map(o=>o.email));let s=await lm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function Pc(t){return await ia("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function fa(t){return(await Pc(t))[0]??null}async function GS(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await fr("by_email2",r,void 0,n)}async function VS(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ia("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await ia("account_by_email",r)}var $c={};P($c,{BadRequestError:()=>Mc,BudibaseError:()=>ps,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>Gc,ForbiddenError:()=>Fc,HTTPError:()=>Ge,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Uc,NotImplementedError:()=>kc,UnexpectedError:()=>Lc,UsageLimitError:()=>Bc,getPublicError:()=>Vc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Vc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},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)}},Lc=class extends Ge{constructor(e){super(e,500)}},Uc=class extends Ge{constructor(e){super(e,404)}},Mc=class extends Ge{constructor(e){super(e,400)}},Fc=class extends Ge{constructor(e){super(e,403)}},kc=class extends Ge{constructor(e){super(e,501)}},Bc=class extends Ge{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},Gc=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")}},gr=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var ms=ut.users.isBuilder,rn=ut.users.isAdmin,$S=ut.users.isGlobalBuilder,WS=ut.users.isAdminOrBuilder,nn=ut.users.hasAdminPermissions,At=ut.users.hasBuilderPermissions,qS=ut.users.hasAppBuilderPermissions;async function pi(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=>Wc(i,e))}async function ma(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Wc(t,e)}function Wc(t,e){let r=ut.users.isCreator(t);return!r&&t?SL(t,e):r}function SL(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 qc(t,e){if(h.MULTI_TENANCY){let r=await fa(t);if(r!=null&&r.tenantId!==e)throw new gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await en(t);if(r&&r.verified&&r.tenantId!==e)throw new gr(t)}}async function Qc(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:()=>a_,action:()=>u_,ai:()=>f_,analytics:()=>Hc,app:()=>c_,auditLog:()=>b_,auth:()=>nl,automation:()=>l_,backfill:()=>I_,backfillCache:()=>tl,backup:()=>R_,datasource:()=>d_,email:()=>p_,environmentVariable:()=>w_,group:()=>O_,identification:()=>Gt,initAsyncEvents:()=>x0,installation:()=>_a,layout:()=>h_,license:()=>m_,org:()=>g_,plugin:()=>x_,processors:()=>Sm,publishEvent:()=>A,query:()=>y_,role:()=>wa,rowAction:()=>D_,rows:()=>T_,screen:()=>E_,serve:()=>S_,shutdown:()=>R0,table:()=>A_,user:()=>Ze,view:()=>__,workspace:()=>C_});var Sm={};P(Sm,{analyticsProcessor:()=>r_,init:()=>VL,processors:()=>Tr});var Hc={};P(Hc,{enabled:()=>jc});var jc=async()=>Kc();var YS=require("posthog-node");var _L=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",IL=t=>t==="served:app:preview"||t==="served:app";var jS={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},HS=async t=>{if(!_L(t))return!1;let e=await OL(t);if(e){let r=new Date(e.timestamp);switch(jS[t]){case"calendarDay":return r.setDate(r.getDate()+1),r.setHours(0,0,0,0),Date.now()>r.getTime()?(await QS(t,{timestamp:Date.now()}),!1):!0}}else return await QS(t,{timestamp:Date.now()}),!1},KS=t=>{let e=`${ve.EVENTS_RATE_LIMIT}:${t}`;return IL(t)&&(e=e+":"+Ue()),e},OL=async t=>{let e=KS(t);return await oi(e)},QS=async(t,e)=>{let r=KS(t),n=jS[t],i;switch(n){case"calendarDay":i=86400}await lr(r,e,i)};var RL=["user:updated","email:smtp:updated","auth:sso:updated","app:updated","role:updated","datasource:updated","query:updated","view:updated","view:calculation:updated","automation:trigger:updated","user_group:updated"],ha=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new YS.PostHog(e)}async processEvent(e,r,n,i){if(RL.includes(e)||await HS(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 JS=ha;var wL=["installation:version:upgraded","installation:version:downgraded"],bL=["installation","tenant"],ga=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new JS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!wL.includes(e)&&!await jc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!bL.includes(e.type)&&!await jc()||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 mm=h.SELF_HOSTED&&!h.isDev(),ya=class{async processEvent(e,r,n){mm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){mm||console.log("[audit] identified",e)}async identifyGroup(e){mm||console.log("[audit] group identified",e)}async shutdown(){}};var Am={};P(Am,{BudibaseQueue:()=>Bt,InMemoryQueue:()=>Yc,JobQueue:()=>hs,QueuedProcessor:()=>Tm,UnretriableError:()=>Zc,shutdown:()=>kL});var zS=W(require("events"));function DL(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 Yc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new zS.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,p)=>{d?c(d):u(p)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await Je.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=fe(),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=(p,m)=>{p.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),c(m))},d=(p,m)=>{p.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=>DL(e))}async whenCurrentJobsFinished(){do await om(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},ZS=Yc;var ym=W(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 XS(t,e,r){NL(t,e),r&&CL(t,r)}function CL(t,e){t.on("stalled",async r=>{if(e)await e(r);else if(r.opts.repeat){let n=r.id,i=await t.getRepeatableJobs();for(let s of i)s.id===n&&await t.removeRepeatableByKey(s.key);console.log(`jobId=${n} disabled`)}})}function St(t,e,r={},n={}){let i=`[BULL] ${t}=${e}`,s=r.error,o={_logKey:"bull",eventType:t,event:e,job:r.job,jobId:r.jobId||r.job?.id,...n},a;return r.job?.data?.automation&&(a={_logKey:"automation",trigger:r.job?r.job.data.automation.definition.trigger.event:void 0}),[i,s,o,a]}var vL={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 NL(t,e){let r=vL[e];function n(i,s){let o=i.data.event?.appId;if(o)return cf(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(...St(r,"stalled",{job:i}))})}).on("error",i=>{console.error(...St(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(...St(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(...St(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(...St(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(...St(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(...St(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(...St(r,"paused"))}).on("resumed",()=>{console.info(...St(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(...St(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(...St(r,"drained"))}).on("removed",i=>{console.info(...St(r,"removed",{job:i}))})}var Jc={};P(Jc,{cleanup:()=>PL,clear:()=>gm,set:()=>hm});var Ea=[];function hm(t,e){let r=setInterval(t,e);return Ea.push(r),r}function gm(t){let e=Ea.indexOf(t);e!==-1&&Ea.splice(e,1),clearInterval(t)}function PL(){for(let t of Ea)clearInterval(t);Ea=[]}var Er=W(require("dd-trace")),Ta=W(require("object-sizeof")),LL=De.fromMinutes(5).toMs(),UL=De.fromSeconds(30).toMs(),Em=De.fromSeconds(60).toMs(),Aa=[],zc;async function e_(){for(let t of Aa)await t.clean(Em,"completed"),await t.clean(Em,"failed")}async function ML(t,e,r){let n=performance.now();try{let i=await e();return Er.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw Er.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;Er.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),Er.default.dogstatsd.increment(t,1,r)}}function t_(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 FL(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Ta.default)(t.data),...t_(t.opts||{})}}var Bt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:ei(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:LL,lockRenewTime:UL}};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 ym.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new ZS(this.jobQueue,r):n=new ym.default(this.jobQueue,r),XS(n,this.jobQueue,this.opts.removeStalledCb),Aa.push(n),!zc&&!h.isTest()&&(zc=hm(e_,Em),e_().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 Er.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,...FL(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),Er.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Ta.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 Er.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Ta.default)(e),...t_(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},Er.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Ta.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return ML(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function kL(){zc&&gm(zc),console.log("Waiting for current queue jobs to finish...");for(let t of Aa)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Aa)await t.close();Aa=[],console.log("Queues shutdown")}var Zc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},Tm=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 Bt(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 Zc&&await a.discard(),li(`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 Je.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 Bt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await qe(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:s})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&am(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:Q()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var Sa=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 r_=new ga,BL=new ya,GL=new gs;function VL(t){return gs.init(t)}var Tr=new Sa([r_,BL,GL]);var Xc={};P(Xc,{checkInstallVersion:()=>qL,getInstall:()=>Ia,getInstallFromDB:()=>Im});var _m=W(require("semver"));var Ia=async()=>jr(ve.INSTALLATION,86400,Im,{useTenancy:!1});async function $L(t){let e={_id:xe.PLATFORM_INFO.docs.install,installId:fe(),version:h.VERSION};try{let r=await t.put(e);return e._rev=r.rev,e}catch(r){if(r.status===409)return Im();throw r}}var Im=async()=>lt(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 $L(t);else throw r}return e}),WL=async t=>{try{await lt(xe.PLATFORM_INFO.name,async e=>{let r=await Ia();r.version=t,await e.put(r),await ns(ve.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},qL=async()=>{let t=await Ia(),e=t.version,r=h.VERSION;try{if(e!==r){let n=_m.default.gt(r,e),i=_m.default.lt(r,e);await WL(r)&&(await Do({_id:t.installId,type:"installation"},async()=>{n?await _a.upgraded(e,r):i&&await _a.downgraded(e,r)}),await Gt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?li(`Invalid version "${r}" - is it semver?`):li("Failed to retrieve version",n)}};var QL=async()=>{let t=Wp(),e=Ra(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=Oa();return{id:n_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await el(Q()),s=Oa();return{id:n_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await el(Q()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=Oa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},jL=async(t,e)=>{let r=t,n="installation",i=Oa(),s=h.VERSION,o=Ra(),a={id:r,type:n,hosting:i,version:s,environment:o};await Om(a,e),await xa({...a,id:`$${n}_${r}`},e)},HL=async(t,e,r,n=h.VERSION)=>{let i=await el(t),s="tenant",o=await fi(),a=Ra(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await Om(u,r),await xa({...u,id:`$${s}_${i}`},r)},KL=async(t,e,r)=>{let n=t._id,i=await el(t.tenantId),s="user",o=At(t),a=nn(t),u;za(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,p=await fi(),m=e?e.hosting:Oa(),f=Ra();await xa({id:n,type:s,hosting:m,installationId:p,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},YL=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=Ja(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=Ra();if(Ya(t)){let d=await Vt(t.email);d?._id&&(e=d._id)}await xa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},xa=async(t,e)=>{await Tr.identify(t,e)},Om=async(t,e)=>{await Tr.identifyGroup(t,e)},Ra=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Oa=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>JL()?"account-portal":(await Ia()).installId,el=async t=>h.SELF_HOSTED?i_(t):t,i_=async t=>qe(t,()=>jr(ve.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Ts(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${fe()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=h.VERSION,await e.put(r),n)})),JL=()=>h.SERVICE==="account-portal",n_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Gt={getCurrentIdentity:QL,identifyInstallationGroup:jL,identifyTenantGroup:HL,identifyUser:KL,identifyAccount:YL,identify:xa,identifyGroup:Om,getInstallationId:fi,getUniqueTenantId:i_};var tl={};P(tl,{end:()=>ZL,isAlreadySent:()=>wm,isBackfillingEvent:()=>Rm,recordEvent:()=>xm,start:()=>zL});var zL=async t=>eU({eventWhitelist:t}),xm=async(t,e)=>{let r=bm(t,e);await lr(r,e,void 0,{useTenancy:!1})},ZL=async()=>{await tU(),await rU()},XL=async()=>oi(ve.BACKFILL_METADATA),eU=async t=>lr(ve.BACKFILL_METADATA,t),tU=async()=>{await Ho(ve.BACKFILL_METADATA)},rU=async()=>{let t=bm(),e=await yc(t);for(let r of e)await Ho(r,{useTenancy:!1})},Rm=async t=>{let r=(await XL())?.eventWhitelist;return!!(r&&r.includes(t))},wm=async(t,e)=>{let r=bm(t,e);return!!await oi(r,{useTenancy:!1})},nU={"automation:created":t=>t.automationId,"automation:step:created":t=>t.stepId,"datasource:created":t=>t.datasourceId,"layout:created":t=>t.layoutId,"query:created":t=>t.queryId,"role:created":t=>t.roleId,"screen:created":t=>t.screenId,"table:created":t=>t.tableId,"view:created":t=>t.tableId,"view:calculation:created":t=>t.tableId,"view:filter:created":t=>t.tableId,"app:created":t=>t.appId,"app:published":t=>t.appId,"auth:sso:created":t=>t.type,"auth:sso:activated":t=>t.type,"user:created":t=>t.userId,"user:admin:assigned":t=>t.userId,"user:builder:assigned":t=>t.userId,"role:assigned":t=>`${t.roleId}-${t.userId}`},bm=(t,e)=>{let r,n=Q();if(t){r=`${ve.EVENTS}:${n}:${t}`;let i=nU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${ve.EVENTS}:${n}:*`;return r};var Ar;function rl(){Ar=new Bt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function s_(){Ar&&await Ar.close()}async function o_(t){Ar||rl();let{event:e,identity:r}=t;Wh.indexOf(e)!==-1&&r.tenantId&&await Ar.add(t)}var A=async(t,e,r,n)=>{let i=n||await Gt.getCurrentIdentity();if(!(n?!1:await Rm(t))){await o_({event:t,identity:i,properties:e,timestamp:r}),await Tr.processEvent(t,i,e,r);return}await wm(t,e)||(await Tr.processEvent(t,i,e,r),await xm(t,e))};async function iU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function sU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function oU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var a_={created:iU,deleted:sU,verified:oU};async function aU(t,e){await A("action:automation_step:executed",t,e)}async function uU(t,e){await A("action:crud:executed",t,e)}async function cU(t,e){await A("action:ai_agent:executed",t,e)}var u_={aiAgentExecuted:cU,automationStepExecuted:aU,crudExecuted:uU};var lU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function dU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function pU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:deleted",e)}async function fU(t,e){let r={appId:t.appId,audited:{name:t.name}};await A("app:published",r,e)}async function mU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function hU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function gU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function yU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function EU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function TU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function AU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function SU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var c_={created:lU,updated:dU,deleted:pU,published:fU,unpublished:mU,fileImported:hU,duplicated:gU,templateImported:yU,versionUpdated:EU,versionReverted:TU,reverted:AU,exported:SU};async function _U(t,e){let n={userId:(await Gt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function IU(t){let r={userId:(await Gt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function OU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function xU(t){let e={type:t};await A("auth:sso:updated",e)}async function RU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function wU(t){let e={type:t};await A("auth:sso:deactivated",e)}var nl={login:_U,logout:IU,SSOCreated:OU,SSOUpdated:xU,SSOActivated:RU,SSODeactivated:wU};async function bU(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 DU(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 CU(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 vU(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 NU=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function PU(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 LU(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 l_={created:bU,triggerUpdated:DU,deleted:CU,tested:vU,run:NU,stepCreated:PU,stepDeleted:LU};function Dm(t){return!Object.values(Qa).includes(t.source)}async function UU(t,e){let r={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:created",r,e)}async function MU(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:updated",e)}async function FU(t){let e={datasourceId:t._id,source:t.source,custom:Dm(t)};await A("datasource:deleted",e)}var d_={created:UU,updated:MU,deleted:FU};async function kU(t){let e={};await A("email:smtp:created",e,t)}async function BU(){let t={};await A("email:smtp:updated",t)}var p_={SMTPCreated:kU,SMTPUpdated:BU};async function GU(t){let e={};await A("ai:config:created",e,t)}async function VU(){let t={};await A("ai:config:updated",t)}var f_={AIConfigCreated:GU,AIConfigUpdated:VU};async function $U(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function WU(t){let e={accountId:t.accountId};await A("license:activated",e)}async function qU(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function QU(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function jU(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function HU(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function KU(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var m_={planChanged:$U,activated:WU,checkoutOpened:qU,checkoutSuccess:QU,portalOpened:jU,paymentFailed:HU,paymentRecovered:KU};async function YU(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function JU(t){let e={layoutId:t};await A("layout:deleted",e)}var h_={created:YU,deleted:JU};async function zU(t){let e={};await A("org:info:name:updated",e,t)}async function ZU(t){let e={};await A("org:info:logo:updated",e,t)}async function XU(t){let e={};await A("org:platformurl:updated",e,t)}async function eM(){let t={};await A("analytics:opt:out",t)}async function tM(){let t={};await A("analytics:opt:out",t)}var g_={nameUpdated:zU,logoUpdated:ZU,platformURLUpdated:XU,analyticsOptOut:eM,analyticsOptIn:tM};var rM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},nM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},iM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},sM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},oM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},aM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},y_={created:rM,updated:nM,deleted:iM,imported:sM,run:oM,previewed:aM};async function uM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function cM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:updated",e)}async function lM(t){let e={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:deleted",e)}async function dM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function pM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var wa={created:uM,updated:cM,deleted:lM,assigned:dM,unassigned:pM};async function fM(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 mM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var E_={created:fM,deleted:mM};var hM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},gM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},T_={created:hM,imported:gM};async function yM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function EM(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 TM(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}async function AM(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function SM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var A_={created:yM,updated:EM,deleted:TM,exported:AM,imported:SM};async function _M(t){let e={timezone:t};await A("served:builder",e)}async function IM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function OM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var S_={servedBuilder:_M,servedApp:IM,servedAppPreview:OM};async function xM(t,e){let r={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:created",r,e)}async function RM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:updated",e)}async function wM(t){let e={userId:t._id,viaScim:Ut(),audited:{email:t.email}};await A("user:deleted",e)}async function bM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function DM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function CM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function vM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function NM(t){let e={audited:{email:t}};await A("user:invited",e)}async function PM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function LM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function UM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function MM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function FM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function kM(t){let e={users:t};await A("user:data:collaboration",e)}var Ze={created:xM,updated:RM,deleted:wM,permissionAdminAssigned:bM,permissionAdminRemoved:DM,permissionBuilderAssigned:CM,permissionBuilderRemoved:vM,invited:NM,inviteAccepted:PM,passwordForceReset:LM,passwordUpdated:UM,passwordResetRequested:MM,passwordReset:FM,dataCollaboration:kM};async function BM(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function GM(t){let e={tableId:t.tableId};await A("view:updated",e)}async function VM(t,e){let r={...Je.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}async function $M(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function WM({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function qM({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function QM(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function jM({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function HM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function KM(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function YM(t,e){let r={tableId:t};await A("view:join:created",r,e)}var __={created:BM,updated:GM,deleted:VM,exported:$M,filterCreated:WM,filterUpdated:qM,filterDeleted:QM,calculationCreated:jM,calculationUpdated:HM,calculationDeleted:KM,viewJoinCreated:YM};async function JM(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function zM(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function ZM(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function XM(){let t={};await A("installation:firstStartup",t)}var _a={versionChecked:JM,upgraded:zM,downgraded:ZM,firstStartup:XM};var As=!h.SELF_HOSTED&&!h.isDev();async function e0(t){As||await A("app:backfill:succeeded",t)}async function t0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function r0(t){As||await A("tenant:backfill:succeeded",t)}async function n0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function i0(){if(As)return;let t={};await A("installation:backfill:succeeded",t)}async function s0(t){if(As)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var I_={appSucceeded:e0,appFailed:t0,tenantSucceeded:r0,tenantFailed:n0,installationSucceeded:i0,installationFailed:s0};async function o0(t,e){let r={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:created",r,e)}async function a0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:updated",e)}async function u0(t){let e={groupId:t._id,viaScim:Ut(),audited:{name:t.name}};await A("user_group:deleted",e)}async function c0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:user_added",r)}async function l0(t,e){let r={count:t,groupId:e._id,viaScim:Ut(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function d0(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function p0(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var O_={created:o0,updated:a0,deleted:u0,usersAdded:c0,usersDeleted:l0,createdOnboarding:d0,permissionsEdited:p0};async function f0(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function m0(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 h0(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 x_={init:f0,imported:m0,deleted:h0};async function g0(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function y0(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var R_={appBackupRestored:g0,appBackupTriggered:y0};async function E0(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function T0(t){let e={name:t};await A("environment_variable:deleted",e)}async function A0(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var w_={created:E0,deleted:T0,upgradePanelOpened:A0};async function S0(t){let e={filters:t};await A("audit_log:filtered",e)}async function _0(t){let e={filters:t};await A("audit_log:downloaded",e)}var b_={filtered:S0,downloaded:_0};async function I0(t,e){await A("row_action:created",t,e)}var D_={created:I0};async function O0(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}var C_={deleted:O0};function x0(){}var R0=async()=>{await Tr.shutdown(),console.log("Events shutdown")};var Cm=async t=>{await Ze.deleted(t),At(t)&&await Ze.permissionBuilderRemoved(t),nn(t)&&await Ze.permissionAdminRemoved(t)},w0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await wa.assigned(t,i)},b0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await wa.unassigned(t,i)},D0=async(t,e)=>{let r=t.roles,n=e?.roles;await w0(t,r,n),await b0(t,r,n)},vm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await cs(r)),await Gt.identifyUser(t,n),e?(await Ze.updated(t),v0(t,e)&&await Ze.permissionBuilderRemoved(t),P0(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),C0(t,e)&&await Ze.permissionBuilderAssigned(t),N0(t,e)&&await Ze.permissionAdminAssigned(t),await D0(t,e)},C0=(t,e)=>v_(t,e,At),v0=(t,e)=>N_(t,e,At),N0=(t,e)=>v_(t,e,nn),P0=(t,e)=>N_(t,e,nn),v_=(t,e,r)=>!(!r(t)||e&&r(e)),N_=(t,e,r)=>!(r(t)||!e||!r(e));var il={};P(il,{createASession:()=>U0,endSession:()=>M0,getSession:()=>Pm,getSessionsForUser:()=>ba,invalidateSessions:()=>mi,updateSessionTTL:()=>Nm});var L_=require("uuid");var U_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function Ss(t,e){return`${t}/${e}`}async function ba(t){return t?(await(await qr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function mi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await ba(t)).map(o=>({key:Ss(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:Ss(t,s)}))),i&&i.length>0){let s=await qr(),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 U0(t,e){let r=await ba(t),n=0;if(r.length>=3){let c=r.sort((p,m)=>new Date(p.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,d=c.slice(0,l).map(p=>p.sessionId);n=d.length,await mi(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await qr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,L_.v4)(),a=Ss(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,U_),{session:u,invalidatedSessionCount:n}}async function Nm(t){let e=await qr(),r=Ss(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,U_)}async function M0(t,e){await(await qr()).delete(Ss(t,e))}async function Pm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await qr()).get(Ss(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Fm={};P(Fm,{PASSWORD_MAX_LENGTH:()=>Um,PASSWORD_MIN_LENGTH:()=>Lm,validatePassword:()=>Mm});var Lm=+(h.PASSWORD_MIN_LENGTH||12),Um=+(h.PASSWORD_MAX_LENGTH||512);function Mm(t){return!t||t.length<Lm?{valid:!1,error:`Password invalid. Minimum ${Lm} characters.`}:t.length>Um?{valid:!1,error:`Password invalid. Maximum ${Um} characters.`}:{valid:!0}}var F0=async t=>{let e=t._id;await Ft.removeUser(t),await Cm(t),await sn.invalidateUser(e),await mi(e,{reason:"bulk-deletion"})},Jt=class t{static init(e,r,n){t.quotas=e,t.groups=r,t.features=n}static async isPreventPasswordActions(e,r){return h.ENABLE_SSO_MAINTENANCE_MODE&&rn(e)?!1:await t.features.isSSOEnforced()||za(e)?!0:(r||(r=await cs(Q())),!!(r&&r.email===e.email&&Ja(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new Ge("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Mm(o);if(!d.valid)throw new Ge(d.error,400)}u=r.hashPassword?await nm(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(ui(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await ol(e,{})).length}}static async getUsersByAppAccess(e){return await km(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return Vt(e)}static async getUser(e){let r=await hi(e);return r&&delete r.password,r}static async bulkGet(e){return await sl(e)}static async bulkUpdate(e){return await Da(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ie(),{email:s,_id:o,userGroups:a=[],roles:u}=e;if(!s&&!o)throw new Error("_id or email is required");let c;if(o)try{if(c=await hi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!c&&s&&(c=await Vt(s),c&&c._id!==o))throw new gr(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[p,m]=await pi([c,e]);d=p!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await qc(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=Bm(p,c)),!c&&u?.length&&(p.roles={...u});let m=[];if(!o&&a.length>0)for(let f of a)m.push(t.groups.addUsers(f,[p._id]));try{let f=await i.put(p);return p._rev=f.rev,await vm(p,c),c&&p.email!==c.email&&await Ft.removeUser({email:c.email}),await Ft.addUser(n,p._id,p.email,p.ssoId),await sn.invalidateUser(f.id),await Promise.all(m),i.get(p._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(p=>p.email),u=await pm(a),c=[];for(let p of e){let m=s.find(g=>g.email.toLowerCase()===p.email.toLowerCase()),f=u.includes(p.email.toLowerCase());if(m||f){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await ma(p)&&o.push(p)}let l=await cs(n),d=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let f of s)d&&delete f.password,i.push(t.buildUser(f,{hashPassword:!0,requirePassword:!d},n,void 0,l));let p=await Promise.all(i);await Da(p);for(let f of p)await Ft.addUser(n,f._id,f.email),await vm(f,void 0);let m=p.map(f=>({_id:f._id,email:f.email}));if(Array.isArray(m)&&r){let f=[],g=m.map(y=>y._id);for(let y of r)f.push(t.groups.addUsers(y,g));await Promise.all(f)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Qc(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 Da(a),l=(await pi(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await fa(m._id)).ssoId;g&&(await Pc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await F0(m)}await Hr().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let p={};return o.reduce((m,f)=>(m[f._id]=f,m),p),u.forEach(m=>{let f=p[m.id].email;m.ok?n.successful.push({_id:m.id,email:f}):n.unsuccessful.push({_id:m.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ie(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await en(o))throw n.userId===cr()._id?new Ge('Please visit "Account" to delete this user',400):new Ge("Account holder cannot be deleted",400)}await Ft.removeUser(n),await r.remove(i,n._rev);let s=await ma(n)?1:0;await t.quotas.removeUsers(1,s),await Cm(n),await sn.invalidateUser(i),await mi(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 va(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function sl(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=va(n)),n}async function B0(){let t=ie(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`})).rows.map(n=>n.id)}async function G0(){let t=ie(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${Ve}`,include_docs:!0})).rows.map(n=>n.doc)}async function Da(t){return await ie().bulkDocs(t)}async function hi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=va(n)),n}async function Vt(t,e){if(t==null)throw"Must supply an email address to view";let r=await fr("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=va(n)),n}async function V0(t){try{let e=await Vt(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function ol(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=Ic(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await fr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=va(s)),s}async function km(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 M_(t,e){if(e)return _c(ct(t),e._id)}async function F_(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 fr("by_email2",{...e,startkey:i,endkey:`${n}${Ve}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=va(o)),o}var $0=8;async function k_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ie(),s=n??$0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await hi(e.equal._id)]:r?(u=await ol(r,a),l=d=>M_(r,d)):e?.string?.email?(u=await F_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await sl(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(ui(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=kr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(ui(null,a))).rows.map(p=>p.doc),Lf(u,s,{paginate:!0,property:c,getKey:l})}async function W0(){return(await Ff("by_email2",{limit:0,include_docs:!1})).total_rows}async function q0(){let t=0;async function e(r){let n=await k_({bookmark:r}),i=await pi(n.data);t+=i.filter(s=>s).length,n.hasNextPage&&await e(n.nextPage)}return await e(),t}function Q0(t){return delete t.admin,delete t.builder,t}function Bm(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 j0(t,e){let r=ct(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Jt.save(t,{hashPassword:!1})}async function H0(t,e){let r=ct(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Jt.save(t,{hashPassword:!1})}var B_=3600;async function K0(t,e){let n=await xf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await en(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function Y0(t){let e=await Jt.bulkGet(t),r=t.filter((i,s)=>!e[s]),n=e.filter(i=>i);return await Promise.all(n.map(async i=>{if(i.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let s=await en(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Na({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=K0),!e)try{e=Q()}catch{e=await Ft.lookupTenantId(t)}let i=await Qo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,B_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!ut.users.isGlobalBuilder(s)&&await qe(e,async()=>{let o=await Jt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function J0(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 Y0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,B_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function Pa(t){await(await Qo()).delete(t)}var qm={};P(qm,{Writethrough:()=>$m});var Is={};P(Is,{AUTO_EXTEND_POLLING_MS:()=>V_,doWithLock:()=>Gm,newRedlock:()=>gi});var G_=W(require("redlock"));async function Z0(t,e){if(t==="custom")return gi(e);switch(t){case"try_once":return gi(_s.TRY_ONCE);case"try_twice":return gi(_s.TRY_TWICE);case"default":return gi(_s.DEFAULT);case"delay_500":return gi(_s.DELAY_500);case"auto_extend":return gi(_s.AUTO_EXTEND);default:throw vr.unreachable(t)}}var _s={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 gi(t={}){let e={..._s.DEFAULT,...t},n=(await Of()).client;return new G_.default([n],e)}function X0(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var V_=De.fromSeconds(10).toMs();async function Gm(t,e){let r=await Z0(t.type,t.customOptions),n,i;try{let s=X0(t),o=t.type==="auto_extend"?V_: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 $_=1e4,Vm=null;async function al(){if(!Vm){let t=await If();Vm=new ni(t)}return Vm}function La(t,e){return t.name+e}function Wm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function eF(t,e,r=$_){let n=await al(),i=e._id,s;i&&(s=await n.get(La(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await Gm({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=Wm(a,o?null:s?.lastWrite),a._id&&await n.store(La(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function tF(t,e){let r=await al(),n=La(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Wm(s),await r.store(n,i)}return i.doc}async function rF(t,e){let r=await al(),n=La(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Wm(s),await r.store(n,i)}return i.doc}async function nF(t,e,r){let n=await al();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(La(t,i))}finally{await t.remove(i,r)}}var $m=class{constructor(e,r=$_){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return eF(this.db,e,r)}async get(e){return tF(this.db,e)}async tryGet(e){return rF(this.db,e)}async remove(e,r){return nF(this.db,e,r)}};var Qm={};P(Qm,{createCode:()=>sF,getCode:()=>oF,invalidateCode:()=>aF});var iF=De.fromHours(1).toSeconds();async function sF(t,e){let r=fe();return await(await jo()).store(r,{userId:t,info:e},iF),r}async function oF(t){let r=await(await jo()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function aF(t){await(await jo()).delete(t)}var Hm={};P(Hm,{DocWritethrough:()=>jm,DocWritethroughProcessor:()=>Ua,getProcessor:()=>cF,init:()=>W_});var uF=100,ul,Ua=class t{static get queue(){return t._queue||(t._queue=new Bt("docWritethroughQueue",{jobOptions:{attempts:uF}})),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=We(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},jm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ua.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function W_(){return ul=new Ua().init(),ul}function cF(){return ul||W_()}function cl(t){return`config${w}${t}`}async function _t(t){let e=ie();try{return await e.get(cl(t))}catch(r){if(r.status===404)return;throw r}}async function lF(t){return t._id||(t._id=cl(t.type)),ie().put(t)}async function Ts(){let t=await _t("settings");return t||(t={_id:cl("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ma({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Kc({config:t.config}),t}async function Jm(){return(await Ts()).config}async function Ma(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await _t("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Kc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await jr(ve.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await _t("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 dF(){return await _t("google")}async function ll(){return(await dF())?.config}async function zm(){if(!h.SELF_HOSTED)return Km();let t=await ll();return(!t||!t.activated)&&(t=Km()),t}function Km(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function pF(){return _t("logos_oidc")}async function fF(){return _t("oidc")}async function mF(){let t=(await fF())?.config;return t?.configs&&t.configs[0]}async function Zm(t){let e=(await _t("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function q_(){return _t("smtp")}async function hF(t){let e=await q_();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 gF(){return(await _t("scim"))?.config}async function yF(){return _t("ai")}async function EF(){return _t("recaptcha")}var uh={};P(uh,{AccessController:()=>th,BUILTIN_ROLE_IDS:()=>rh,Role:()=>on,RoleHierarchyTraversal:()=>dl,RoleIDVersion:()=>nh,builtinRoleToNumber:()=>Fa,checkForRoleResourceArray:()=>K_,externalRole:()=>OF,findRole:()=>ka,getAllRoleIds:()=>bF,getAllRoles:()=>ah,getBuiltinRole:()=>j_,getBuiltinRoles:()=>sh,getDBRoleID:()=>Y_,getExternalRoleID:()=>an,getExternalRoleIDs:()=>J_,getRole:()=>xF,getUserRoleHierarchy:()=>oh,getUserRoleIdHierarchy:()=>H_,isBuiltin:()=>yi,lowerBuiltinRoleID:()=>IF,prefixRoleIDNoBuiltin:()=>eh,roleIDsAreEqual:()=>It,roleToNumber:()=>_F,saveRoles:()=>RF,validInherits:()=>SF});var Xm=W(require("semver"));var pl=W(require("lodash/fp/cloneDeep"));var Q_=require("lodash");var rh={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...rh,BUILDER:"BUILDER"},nh={UUID:void 0,NAME:"name"};function AF(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var on=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=nh.NAME}addInheritance(e){return e&&typeof e=="string"?e=eh(e):e&&Array.isArray(e)&&(e=e.map(eh)),this.inherits=e,this}},dl=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=ka(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!AF(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=ka(o.inherits,n,r),o&&i.push(o),Je.roles.checkForRoleInheritanceLoops(i))break}}return(0,Q_.uniqBy)(i,s=>s._id)}},ih={ADMIN:new on(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 on(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 on(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 on(he.PUBLIC,he.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new on(he.BUILDER,he.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function sh(){return(0,pl.default)(ih)}function yi(t){return Object.values(rh).includes(t)}function eh(t){return yi(t)?t:dr(t)}function j_(t){let e=Object.values(ih).find(r=>t.includes(r._id));if(e)return(0,pl.default)(e)}function SF(t,e){if(!e)return!1;let r=n=>t.find(i=>It(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 Fa(t){let e=sh(),r=Object.values(e).length+1;if(It(t,he.ADMIN)||It(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 _F(t){if(yi(t))return Fa(t);let e=await oh(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=>It(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(yi(n.inherits))return Fa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function IF(t,e){return t?e&&Fa(t)>Fa(e)?e:t:e}function It(t,e){return dr(t)===dr(e)}function OF(t){let e;return t._id&&(e=an(t._id)),{...t,_id:e,inherits:J_(t.inherits,t.version)}}function ka(t,e,r){let n=j_(t);n||(t=dr(t));let i=e.find(s=>s._id&&It(s._id,t));return!i&&!yi(t)&&r?.defaultPublic?(0,pl.default)(ih.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=an(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function xF(t,e){let r=ts(),n=[];if(!yi(t)){let i=await r.tryGet(Y_(t));i&&n.push(i)}return ka(t,n,e)}async function RF(t){await ts().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:dr(r._id)})))}async function wF(t,e){let r=await ah();if(It(t,he.ADMIN))return r;let n=ka(t,r,e),i=[];return n&&(i=new dl(r,e).walk(n)),i}async function H_(t){return(await oh(t)).map(r=>r._id)}async function oh(t,e){return wF(t,e)}function K_(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 bF(t){return(await ah(t)).map(r=>r._id)}async function ah(t){if(t)return lt(t,e);{let r;try{r=ts()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(Oc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=an(a._id,a.version)));let i=sh(),s=[];!r||await DF(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=>It(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=an(a._id,u.version),n.push({...a,...u,name:a.name,_id:an(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=K_(o.permissions,a);return n}}async function DF(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!Xm.default.valid(r)?!0:!Xm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var th=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||It(e,he.BUILDER)||It(r,e)||It(r,he.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await H_(r),this.userHierarchies[r]=n),n?.find(i=>It(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 Y_(t){return t?.startsWith("role")?t:dr(t)}function an(t,e){if(t.startsWith(`role${w}`)&&(yi(t)||e===nh.NAME)){let r=t.split(w);return r.shift(),r.join(w)}return t}function J_(t,e){return t&&(typeof t=="string"?an(t,e):t.map(r=>an(r,e)))}var ch={};P(ch,{BUILDER:()=>LF,BUILTIN_PERMISSIONS:()=>fl,CREATOR:()=>UF,GLOBAL_BUILDER:()=>MF,PermissionImpl:()=>ge,PermissionLevel:()=>bs,PermissionType:()=>Ka,doesHaveBasePermission:()=>NF,getAllowedLevels:()=>eI,getBuiltinPermissionByID:()=>vF,getBuiltinPermissions:()=>CF,isPermissionLevelHigherThanRead:()=>PF,levelToNumber:()=>X_});var z_=W(require("lodash/flatten")),Z_=W(require("lodash/fp/cloneDeep")),ge=class{constructor(e,r){this.type=e,this.level=r}};function X_(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function eI(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var fl={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 CF(){return(0,Z_.default)(fl)}function vF(t){return Object.values(fl).find(r=>r._id===t)}function NF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(fl),s=(0,z_.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&eI(o.level).indexOf(e)!==-1)return!0;return!1}function PF(t){return X_(t)>1}var LF="builder",UF="creator",MF="globalBuilder";var ph={};P(ph,{FlagSet:()=>hl,all:()=>GF,flags:()=>lh,getEnvFlags:()=>iI,init:()=>FF,isEnabled:()=>BF,parseEnvFlags:()=>yl,shutdown:()=>kF,testutils:()=>dh});var gl=W(require("crypto"));var tI=require("posthog-node"),rI=W(require("dd-trace"));var nI=require("lodash");var ml;function FF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),ml=new tI.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:De.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function kF(){ml?.shutdown()}function yl(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 iI(){return yl(h.TENANT_FEATURE_FLAGS||"")}var hl=class{constructor(e){this.flagSchema=e;this.setId=gl.randomUUID()}defaults(){return(0,nI.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await rI.default.trace("features.fetch",async e=>{let r=ff(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;if(lc())return i;for(let{tenantId:d,key:p,value:m}of iI())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=m,n[`flags.${p}.source`]="environment"}let a=cr(),u=a?._id;if(!u){let d=df();d&&(u=gl.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,ml&&u){n.readFromPostHog=!0;let d=await Ts(),p={tenantId:c},m={tenant:{id:c}};d.config.createdVersion&&(m.tenant.createdVersion=d.config.createdVersion),d.createdAt&&(m.tenant.createdAt=`${d.createdAt}`);let f=await ml.getAllFlags(u,{personProperties:p,onlyEvaluateLocally:!0,groups:{tenant:c},groupProperties:m});for(let[g,y]of Object.entries(f))if(this.isFlagName(g)){if(typeof y!="boolean"){console.warn(`Invalid value for posthog flag "${g}": ${y}`);continue}if(!(i[g]===!0||o.has(g)))try{i[g]=y,n[`flags.${g}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${g}": ${y}`,T)}}}let l=hf();for(let[d,p]of Object.entries(l))this.isFlagName(d)&&typeof p=="boolean"&&(i[d]=p,n[`flags.${d}.source`]="override");mf(this.setId,i);for(let[d,p]of Object.entries(i))n[`flags.${d}.value`]=p;return e?.addTags(n),i})}},lh=new hl(Kh);async function BF(t){return await lh.isEnabled(t)}async function GF(){return await lh.fetch()}var dh={};P(dh,{setFeatureFlags:()=>sI,withFeatureFlags:()=>WF});function VF(){let t={};for(let{tenantId:e,key:r,value:n}of yl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function $F(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 sI(t,e){let r=VF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=$F(r);return vo({TENANT_FEATURE_FLAGS:n})}function WF(t,e,r){let n=sI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Oh={};P(Oh,{adminOnly:()=>bl,auditLog:()=>Ol,authError:()=>Fe,buildAuthMiddleware:()=>Rk,buildCsrfMiddleware:()=>bk,buildTenancyMiddleware:()=>wk,builderOnly:()=>Cl,builderOrAdmin:()=>Dl,google:()=>Sr,internalApi:()=>Rl,joiValidator:()=>Ga,oidc:()=>_r,passport:()=>Dk,platformLogout:()=>Lk,refreshOAuthToken:()=>Nk,ssoCallbackUrl:()=>un,updateUserOAuth:()=>Pk});var Ih={};P(Ih,{adminOnly:()=>bl,auditLog:()=>Ol,authError:()=>Fe,authenticated:()=>Il,builderOnly:()=>Cl,builderOrAdmin:()=>Dl,correlation:()=>TI,csp:()=>xI,csrf:()=>wl,datasource:()=>Ok,errorHandling:()=>SI,featureFlagCookie:()=>RI,google:()=>Sr,internalApi:()=>Rl,ip:()=>bI,joiValidator:()=>Ga,local:()=>Os,oidc:()=>_r,pino:()=>yI,querystringToBody:()=>_I,ssoCallbackUrl:()=>un,tenancy:()=>xl});var Os={};P(Os,{authenticate:()=>jF,options:()=>QF});function Fe(t,e,r){return t(r,null,{message:e})}async function un(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await Jm(),n="/api/global/auth";return Wr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var fh="Invalid credentials",qF="This account has expired. Please reset your password",QF={passReqToCallback:!0};async function jF(t,e,r,n){if(!e)return Fe(n,"Email Required");if(!r)return Fe(n,"Password Required");let i=await Vt(e);return i==null?(console.info(`user=${e} could not be found`),Fe(n,fh)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Fe(n,fh)):i.password?await im(r,i.password)?(delete i.password,n(null,i)):Fe(n,fh):(console.info(`user=${e} has no password set`,i),Fe(n,qF))}var Sr={};P(Sr,{buildVerifyFn:()=>uI,getCallbackUrl:()=>YF,strategyFactory:()=>mh});var Ba=t=>Promise.resolve(t);async function El(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 hi(i)}catch(a){if(!a.status||a.status!==404)return Fe(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await Vt(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:Q()});let o=await HF(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 HF(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 KF=require("passport-google-oauth").OAuth2Strategy;function uI(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 El(s,!0,i,t)}}async function mh(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=uI(r);return new KF({clientID:t.clientID,clientSecret:t.clientSecret,callbackURL:e},s)}catch(n){throw new Error(`Error constructing google authentication strategy: ${n}`)}}async function YF(t){return un("google",t)}var _r={};P(_r,{buildVerifyFn:()=>lI,fetchStrategyConfig:()=>XF,getCallbackUrl:()=>ek,strategyFactory:()=>ZF});var cI=W(require("node-fetch"));var JF=require("@techpass/passport-openidconnect").Strategy;function lI(t){return async(e,r,n,i,s,o,a,u,c)=>{let l={provider:e,providerType:"oidc",userId:n.id,profile:n,email:zF(n,i),oauth2:{accessToken:s,refreshToken:o}};return El(l,!1,c,t)}}function zF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&um(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function ZF(t,e){try{let r=lI(e),n=new JF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function XF(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,cI.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 ek(){return un("oidc")}var hh={};P(hh,{postAuth:()=>nk,preAuth:()=>rk});var tk=require("passport-google-oauth").OAuth2Strategy;async function dI(){let t=await zm();if(!t)throw new Error("No google configuration found");return t}async function rk(t,e,r){let n=await dI(),s=`${await Ma({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await mh(n,s,Ba);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 nk(t,e,r){let n=await dI(),s=`${await Ma({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=hr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new tk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{tn(e,"budibase:datasourceauth"),l(null,{accessToken:a,refreshToken:u})}),{successRedirect:"/",failureRedirect:"/error"},async(a,u)=>{let c=`/builder/app/${o.appId}/data`,l=fe();await lr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var ik=/\/:(.*?)(\/.*)?$/g,Ei=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(ik);if(i)for(let s of i){let a="/.*"+(s.endsWith("/")?"/":"");r=r.replace(s,a)}return{regex:new RegExp(r),method:n,route:r}}):[],Ti=(t,e)=>e.find(({regex:r,method:n})=>{let i=r.test(t.request.url),s=n==="ALL"?!0:t.request.method.toLowerCase()===n.toLowerCase();return i&&s});var Sh={};P(Sh,{SecretOption:()=>mI,decrypt:()=>Ah,decryptFile:()=>lk,encrypt:()=>ak,encryptFile:()=>uk,getSecret:()=>Th});var Ir=W(require("crypto")),cn=W(require("fs")),yh=W(require("zlib"));var gh=require("path"),Tl="aes-256-ctr",fI="-",sk=1e4,ok=32,Al=16,Eh=16,mI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(mI||{});function Th(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 Sl(t,e){return Ir.default.pbkdf2Sync(t,new Uint8Array(e),sk,ok,"sha512")}function ak(t,e="api"){let r=Ir.default.randomBytes(Al),n=Sl(Th(e),r),i=Ir.default.createCipheriv(Tl,new Uint8Array(n),new Uint8Array(r)),s=i.update(t,"utf8"),o=i.final(),a=Buffer.concat([new Uint8Array(s),new Uint8Array(o)]).toString("hex");return`${r.toString("hex")}${fI}${a}`}function Ah(t,e="api"){let[r,n]=t.split(fI),i=Buffer.from(r,"hex"),s=Sl(Th(e),i),o=Ir.default.createDecipheriv(Tl,new Uint8Array(s),new Uint8Array(i)),a=o.update(n,"hex"),u=o.final();return Buffer.concat([new Uint8Array(a),new Uint8Array(u)]).toString()}async function uk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,gh.join)(t,e);if(cn.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=cn.default.createReadStream(i),o=cn.default.createWriteStream((0,gh.join)(t,n)),a=Ir.default.randomBytes(Al),u=Ir.default.randomBytes(Eh),c=Sl(r,a),l=Ir.default.createCipheriv(Tl,new Uint8Array(c),new Uint8Array(u));return o.write(a),o.write(u),s.pipe(yh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function ck(t){let e=cn.default.createReadStream(t),r=await pI(e,Al),n=await pI(e,Eh);return e.close(),{salt:r,iv:n}}async function lk(t,e,r){if(cn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await ck(t),s=cn.default.createReadStream(t,{start:Al+Eh}),o=cn.default.createWriteStream(e),a=Sl(r,n),u=Ir.default.createDecipheriv(Tl,new Uint8Array(a),new Uint8Array(i)),c=yh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",p=>{o.close(),d(p)}),u.on("error",p=>{o.close(),d(p)}),c.on("error",p=>{o.close(),d(p)}),o.on("error",p=>{o.close(),d(p)})})}function pI(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.map(a=>new Uint8Array(a))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var gI=W(require("dd-trace")),dk=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function pk(){return new Date(Date.now()-dk).toISOString()}function hI(t,e={}){t.publicEndpoint=e.publicEndpoint||!1,t.isAuthenticated=e.authenticated||!1,t.loginMethod=e.loginMethod,t.user=e.user,t.internal=e.internal||!1,t.version=e.version}async function fk(t,e){if(pa(t))return{valid:!0,user:void 0};let n=Ah(t).split(w)[0];return qe(n,async()=>{let i;try{let s=ie();i=await fr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Na({userId:i,tenantId:n,populateUser:e})};throw new fs})}function _l(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function Il(t=[],e={publicAllowed:!1}){let r=t?Ei(t):[];return async(n,i)=>{let s=!1,o=_l(n,"x-budibase-api-version");Ti(n,r)&&(s=!0);try{let u=_l(n,"x-budibase-token"),c=hr(n,"budibase:auth")||vc(u),l=_l(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=_l(n,"x-budibase-tenant-id"),p=!1,m,f=!1,g;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await Pm(_,T),e&&e.populateUser?m=await Na({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await Na({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<pk()&&await Nm(S),p=!0}catch(x){p=!1,console.error(`Auth Error: ${x.message}`),tn(n,"budibase:auth")}}if(!p&&l){let T=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await fk(l,T);_&&(p=!0,g="api_key",m=S,f=!S)}!m&&d?m={tenantId:d}:m&&"password"in m&&delete m.password,p||(p=!1);let y=T=>T&&T.email;return y(m)&&gI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),hI(n,{authenticated:p,user:m,internal:f,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"?tn(n,"budibase:auth"):u?.code==="invalid_api_key"&&n.throw(403,u.message),e&&e.publicAllowed||s)return hI(n,{authenticated:!1,version:o,publicEndpoint:s}),i();n.throw(u.status||403,u)}}}var Ol=async(t,e)=>e();function xl(t,e,r={noTenancyRequired:!1}){let n=Ei(t),i=Ei(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ti(s,i)};!!Ti(s,n)||(u.excludeStrategies=["query"]);let l=Yo(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}async function Rl(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),pa(r)||t.throw(403,"Unauthorized"),e()}var mk=["GET","HEAD","OPTIONS"],hk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function wl(t={noCsrfPatterns:[]}){let e=Ei(t.noCsrfPatterns);return async(r,n)=>{if(Ti(r,e)||mk.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!hk.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 bl=async(t,e)=>(!t.internal&&!rn(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function Dl(t,e){let r=Ue(),n=h.isWorker()||!r?At:h.isApps()?ms:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!rn(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}async function Cl(t,e){let r=Ue(),n;if(h.isWorker()||!r?n=At: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 gk=require("koa-pino-logger"),yk=require("correlation-id");function Ek(){return{logger:Dc,genReqId:yk.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 Tk(){return h.HTTP_LOGGING?gk(Ek()):(t,e)=>e()}var yI=Tk();var EI=require("uuid"),Ak=require("correlation-id"),TI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,EI.v4)()),Ak.withId(r,()=>e())};function AI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of zT){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function SI(t,e){try{await e()}catch(r){let n=r.status||r.statusCode||500;t.status=n,n>=400&&n<500?console.warn(r):console.error("Got 400 response code",r);let i={message:r.message,status:n,validationErrors:r.validation,error:Vc(r)};if(AI(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 _I(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 OI=W(require("crypto"));var II={"default-src":["'self'"],"script-src":["'self'","'unsafe-eval'","https://*.budibase.net","https://cdn.budi.live","https://js.intercomcdn.com","https://widget.intercom.io","https://d2l5prqdbvm3op.cloudfront.net","https://us-assets.i.posthog.com","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'"]},Sk=/^[A-Za-z0-9-*:/.]+$/,xI=async(t,e)=>{let r=OI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...II};if(n["script-src"]=[...II["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await ea.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
- `).filter(c=>Sk.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 RI=async(t,e)=>{let n=hr(t,"budibase:featureflags")?.flags||{};await gf(n,async()=>{await e()})};var Ga={};P(Ga,{body:()=>_k,params:()=>Ik});var _h=W(require("joi"));function wI(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:_h.default.any().optional(),updatedAt:_h.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 _k(t,e){return wI(t,"body",e)}function Ik(t,e){return wI(t,"params",e)}async function bI(t,e){return t.ip?await pf(t.ip,()=>e()):e()}var Ok={google:hh};var DI=require("koa-passport"),xk=require("passport-local").Strategy,vl=require("passport-oauth2-refresh"),Rk=Il,wk=xl,bk=wl,Dk=DI;DI.use(new xk(Os.options,Os.authenticate));async function Ck(t,e){let r=await _r.getCallbackUrl(),n,i;try{if(n=await _r.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await _r.strategyFactory(n,Ba)}catch{throw new Error("Could not refresh OAuth Token")}return vl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{vl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function vk(t,e){let r=await Sr.getCallbackUrl(t),n;try{n=await Sr.strategyFactory(t,r,Ba)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return vl.use(n),new Promise(i=>{vl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function Nk(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await Zm(r);return n?Ck(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await ll();return n?vk(n,t):{err:{data:"Google configuration not found"}}}}}async function Pk(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 Pa(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function Lk(t){let e=t.ctx,r=t.userId,n=t.keepActiveSession;if(!e)throw new Error("Koa context must be supplied to logout.");let i=hr(e,"budibase:auth"),s=await ba(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):tn(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await nl.logout(e.user?.email),await Pa(r)}var Rh={};P(Rh,{validate:()=>Bk});var C=W(require("joi")),Uk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function xh(t,e){let{error:r}=t.validate(e);if(r)throw r}function Mk(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)});xh(e,t)}function Fk(t){let e=C.default.object({type:C.default.string().allow(...Object.values(Fl)).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(Ml)),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(kl).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(...Uk),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()}))})});xh(n,t)}function kk(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(...Yh).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});xh(n,t)}function Bk(t){switch(t?.type){case"component":Mk(t);break;case"datasource":Fk(t);break;case"automation":kk(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var wh={};P(wh,{Client:()=>Qe,clients:()=>Qr,locks:()=>Is,utils:()=>fc});var bh={};P(bh,{isBlacklisted:()=>Vk,refreshBlacklist:()=>PI});var CI=W(require("dns")),Pl=W(require("net"));var vI=require("util"),Nl,Gk=(0,vI.promisify)(CI.default.lookup);async function NI(t){return Pl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await Gk(t,{all:!0})).map(r=>r.address)}async function PI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(Pl.default.isIP(i))r.push(i);else{let s=await NI(i);r=r.concat(s)}}Nl=r}async function Vk(t){if(Nl||await PI(),Nl?.length===0)return!1;let e;return Pl.default.isIP(t)?e=[t]:e=await NI(t),!!Nl?.find(r=>e.includes(r))}var Ch={};P(Ch,{init:()=>Wk});var $k={"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,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function LI(t,e){let r=$k[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var Va=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=LI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await qe(i,async()=>{await a({id:s,tenantId:i,appId:n.appId})})}shutdown(){return s_()}};var UI,Dh;function Wk(t){Ar||rl(),Dh||(Dh=new Va(t)),UI||(UI=Ar.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Dh.processEvent(r,n,i)}))}var Bh={};P(Bh,{COUNT_FIELD_NAME:()=>Fh,Sql:()=>qI,SqlTable:()=>Ll,designDoc:()=>kh,utils:()=>of});var BI=require("knex");var qk=require("knex");function vh(t){return["link","formula","ai"].indexOf(t)!==-1}function MI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(p=>p.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(p=>p.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,m]of Object.entries(e.schema)){let f=n?.schema[p];if(f&&f.type||c.includes(p)||i?.updated===p)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(p)?t.string(p,255):t.text(p);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:y,toTable:T}=m.meta;t.integer(p).unsigned(),t.foreign(p).references(`${T}.${y}`)}else l.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":m.timeOnly?t.time(p):t.datetime(p,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":Je.schema.isDeprecatedSingleUserColumn(m)?t.text(p):t.json(p);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}=ef(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(p);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:vr.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!vh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,f])=>!vh(f.type)&&e.schema[m]==null).forEach(([m,f])=>{i?.old===m||vh(f.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function jk(t,e,r){return t.createTable(e.name,n=>{MI(n,e,r)})}function Hk(t,e,r,n,i){return t.alterTable(e.name,s=>{MI(s,e,r,n,i)})}function Kk(t,e){return t.dropTable(e.name)}var Nh=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,qk.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=jk(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=Hk(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=Kk(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return Zi(n)}},Ll=Nh;var GI=require("lodash"),Fh="__bb_total";function FI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Ph(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function Yk(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 VI(t){return Array.isArray(t)?t.map(e=>VI(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function kI(t){return t.sourceType==="internal"||t.sourceId===Ql}function Jk(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function $I(t,e='"'){return`${e}${Jk(t,e)}${e}`}function Lh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=$I(t[r],e));return`[${t.join(",")}]`}function WI(t){return Zh.includes(t.type)&&!Je.schema.isDeprecatedSingleUserColumn(t)}var zk={equal:!1,notEqual:!0,empty:!1,notEmpty:!0,fuzzy:!1,string:!1,range:!1,contains:!1,notContains:!0,containsAny:!1,oneOf:!1,$and:!1,$or:!1},Uh=class{constructor(e,r,n){this.SPECIAL_SELECT_CASES={POSTGRES_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 kr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}castIntToString(e){switch(this.client){case"oracledb":return this.knex.raw("to_char(??)",[e]);case"pg":return this.knex.raw("??::TEXT",[e]);case"mysql2":case"mariadb":return this.knex.raw("CAST(?? AS CHAR)",[e]);case"sqlite3":return this.knex.raw("printf('%d', ??)",[e]);case"mssql":return this.knex.raw("CONVERT(NVARCHAR, ??)",[e])}}rawQuotedIdentifier(e){return this.knex.raw(this.quotedIdentifier(e))}splitIdentifier(e){let[r,n]=this.quoteChars();return this.isQuoted(e)?e.slice(1,-1).split(`${n}.${r}`):e.split(".")}qualifyIdentifier(e){let r=this.getTableName(),n=this.splitIdentifier(e);return n[0]!==r&&n.unshift(r),this.isQuoted(e)?this.quotedIdentifier(n):n.join(".")}generateSelectStatement(){let{table:e,resource:r}=this.query;if(!r||!r.fields||r.fields.length===0)return"*";let n=this.getTableName(e),i=this.table.schema;return r.fields.map(o=>{let a=o.split(/\./g),u,c=a[0];return a.length>1&&(u=a[0],c=a.slice(1).join(".")),{table:u,column:c,field:o}}).filter(({table:o})=>!o||o===n).map(({table:o,column:a,field:u})=>{let c=i[a];return this.SPECIAL_SELECT_CASES.POSTGRES_MONEY(c)?this.knex.raw("??::money::numeric as ??",[this.rawQuotedIdentifier([o,a].join(".")),this.knex.raw(this.quote(u))]):this.SPECIAL_SELECT_CASES.MSSQL_DATES(c)?this.knex.raw("CONVERT(varchar, ??, 108) as ??",[this.rawQuotedIdentifier(u),this.knex.raw(this.quote(u))]):o?this.rawQuotedIdentifier(`${o}.${a}`):this.rawQuotedIdentifier(u)})}convertClobs(e,r){if(this.client!=="oracledb")throw new Error("you've called convertClobs on a DB that's not Oracle, this is a mistake");let i=this.splitIdentifier(e).pop(),s=this.table.schema[i],o=this.rawQuotedIdentifier(e);return(s.type==="string"||s.type==="longform"||s.type==="bb_reference_single"||s.type==="bb_reference"||s.type==="options"||s.type==="barcodeqr")&&(r?.forSelect?o=this.knex.raw("to_char(??) as ??",[o,this.rawQuotedIdentifier(i)]):o=this.knex.raw("to_char(??)",[o])),o}parse(e,r){if(Array.isArray(e))return JSON.stringify(e);if(e==null)return null;if(this.requiresJsonAsStringClient()&&WI(r)&&typeof e=="object")return JSON.stringify(e);if(this.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(!nf(e))return null}else if(r.dateOnly){let n=rf(e);return n?new Date(n):null}else return r.ignoreTimezones?uc(e)?new Date(e):tf(e)?new Date(e+"Z"):null:uc(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,GI.cloneDeep)(e);for(let r of Object.values(xr)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(zt)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=n[i].map(a=>this.parse(a,o)))}}for(let r of Object.values(fn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let p=d.tableName,m=a?.[p]||p,f=l(p)||l(m),g=l(d.column);if((f||g)&&d.to&&d.tableName){let y=this.knex.select(this.knex.raw(1)).from({[m]:p}),T=y.clone(),_=sf(d),S;if(f?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(f){return s?.[f]||f}function l(f,g,y,T){let _=(S,x,E)=>{let[I,...k]=x.split("."),D=k.join("."),B=c(I);return S.andWhere(de=>y(de,B?`${B}.${D}`:D,E))};for(let S in f){let x=f[S],E=sa(S),I=E.includes("."),k=n?.relationship&&I,D;if(S==="_complexIdOperator"&&(D=f[S])&&T){let B=c(u);e=T(e,D.id.map(de=>B?`${B}.${de}`:de),D.values)}else if(I)k&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,zk[g],E,(B,de)=>_(de,B,x)));else{let B=c(u);e=y(e,B?`${B}.${E}`:E,x)}}}let d=(f,g,y)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),p=(f,g=!1)=>{function y(T){return(o||f===r?.containsAny)&&(T=T.or),f===r?.notContains&&(T=T.not),T}this.client==="pg"?l(f,"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(Lh(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${E} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),E?this.knex.raw(Lh(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(T,_,S)=>y(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw($I(Lh(S)))])):l(f,"contains",(T,_,S)=>(S.length===0||(T=T.where(x=>(f===r?.notContains&&(x=x.not),x=x.where(E=>{for(let I of S){f===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}%`)}}),f===r?.notContains&&(x=x.or.whereNull(this.rawQuotedIdentifier(_))),x))),T))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let y of f.conditions)g.orWhere(T=>this.addFilters(T,{...y,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,y)=>{let T=this.getFieldSchema(g),_=Array.isArray(y)?y:[y];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly){for(let S of _)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,_)},(f,g,y)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),f.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&l(r.string,"string",(f,g,y)=>{if(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3")return f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?f.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(T.name))]):f.whereILike(g,`${y}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,y)=>{let T=D=>D&&Object.keys(D).length===0&&Object.getPrototypeOf(D)===Object.prototype;T(y.low)&&(y.low=""),T(y.high)&&(y.high="");let _=cc(y.low),S=cc(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&&(f=f.or),_&&S?f.whereBetween(E,[k,I]):_?f.where(E,">=",k):S?f.where(E,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,y)=>{let T=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,y))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?f.whereLike(g,`${y.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,y)=>{let T=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",y)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?f.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!Xp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Rr(r.documentType)}%`),e}isSqs(){return kI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;kI(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 ${Fh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,p;this.isAggregateField(a)?p=this.rawQuotedIdentifier(a):this.client==="oracledb"?p=this.convertClobs(d):p=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[p,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}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:p,through:m,to:f,from:g,fromPrimary:y,toPrimary:T}=d;if(!p||!r)continue;let _=c[p];if(!_)throw new Error(`related table "${p}" not found in datasource`);let S=a?.[p]||p,x=a?.[r]||r,E=m&&a?.[m]||m,I=this.tableNameWithSchema(p,{alias:S,schema:u}),k=[..._?.primary||[],_?.primaryDisplay].filter($=>$),D=Yk(l.filter($=>$.split(".")[0]===S),k);D=D.slice(0,Math.floor(this.maxFunctionParameters()/2));let B=D.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(","),ln=`${S}.${T||f}`,V=s.from(I).orderBy(ln),F=m&&T&&y,N=F?`${E}.${g}`:`${S}.${f}`,q=F?`${x}.${y}`:`${x}.${g}`;if(F){let $=this.tableNameWithSchema(m,{alias:E,schema:u});V=V.join($,function(){this.on(`${S}.${T}`,"=",`${E}.${f}`)})}V=V.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(q));let O=$=>(V=V.select(D.map(ue=>this.rawQuotedIdentifier(ue))).limit(Ph()),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 ${Ph()})`));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(Ph())});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,p=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 f of n){let g=f.fromPrimary,y=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${y}`)}}).leftJoin(p,function(){for(let f of n){let g=f.toPrimary,y=f.to;this.orOn(`${c}.${g}`,`${l}.${y}`)}}):e=e.leftJoin(p,function(){for(let f of n){let g=f.from,y=f.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 p=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"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())}},Mh=class extends Ll{constructor(r,n=FI()){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=VI(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,BI.knex)(s),a,u=new Uh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:FI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let p of a)d.push(await n(p,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===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(!WI(a))continue;let u=`${s}.${o}`;for(let c of n)typeof c[u]=="string"&&(c[u]=JSON.parse(c[u])),typeof c[o]=="string"&&(c[o]=JSON.parse(c[o]))}return n}log(r,n){Uo(this.getSqlClient(),r,n)}},qI=Mh;var kh={};P(kh,{base:()=>Zk});function Zk(t){return{_id:Kt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Gh={};P(Gh,{jsonFromCsvString:()=>Xk});var QI=W(require("csvtojson"));async function Xk(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,QI.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 Vh=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)}},Ul=Vh;var jI=W(require("@koa/router")),Ai=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 Ul(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 jI.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 $a=class{constructor(){this.groups=[]}group(...e){let r=new Ai;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 eB={...Jo,...Ae},tB=(t={})=>{oc(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,USER_METADATA_PREFIX,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")},sa=async(t,e)=>{let r={account_by_email:mS,platform_users_lowercase_2:hS};return ct(xe.PLATFORM_INFO.name,async n=>{let i=r[t];return jf(t,e,n,i,{arrayResponse:!0})})},gS={by_email2:lS,by_api_key:pS,by_app:dS},yr=async(t,e,r,n)=>{r||(r=ae());let i=gS[t];return jf(t,e,r,i,n)};async function Hf(t,e,r){let n=ae(),i=gS[t];return ia(t,e,n,i,r)}var Kf=class{constructor({source:e,target:r}){this.source=At(e),this.target=At(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([Uo(this.source),Uo(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=(d,p)=>d?.startsWith(p+w),l=d=>c(d,"ro")||c(d,"li");return{...e,filter:(d,p)=>!s&&d._id==="_design/migrations"||i&&d._id.startsWith("_design")?!1:d._deleted||c(d._id,wo)?!0:l(d._id)?!!u?.find(m=>d._id.includes(m))||a:c(d._id,"log_au")||d._id==="app_metadata"?!1:r?r(d,p):!0}}async rollback(){await this.target.destroy(),this.target=At(this.target.name),await this.replicate()}},yS=Kf;var TS=V(require("node-fetch"));var oa=Wr.removeKeyNumbering;function di(t){return t==null||t===""}var Er=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=oa(s);r[o]?r[o]=r[o].concat(e[s]):r[o]=e[s]}let n={},i=1;for(let[s,o]of Object.entries(r))n[`${i++}:${s}`]=o;return n}buildSearchQuery(){let e=this,r=this.#e&&this.#e.allOr,n=r?"":"*:*",i=!0,s={escape:!0,lowercase:!0,wrap:!0},o="";this.#e.equal.tableId&&(o=this.#e.equal.tableId,delete this.#e.equal.tableId);let a=(f,g)=>di(g)?null:`${f}:${e.preprocess(g,s)}`,u=(f,g,y="AND")=>{if(di(g))return null;if(!Array.isArray(g))return`${f}:${g}`;let T=`${e.preprocess(g[0],{escape:!0})}`;for(let _=1;_<g.length;_++)T+=` ${y} ${e.preprocess(g[_],{escape:!0})}`;return`${f}:(${T})`},c=(f,g)=>di(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"fuzzy"}),`${f}:/.*${g}.*/`),l=(f,g)=>{let y=r?"*:* AND ":"",T=r?"AND":void 0;return y+"NOT "+u(f,g,T)},d=(f,g)=>u(f,g,"OR"),p=(f,g)=>{if(di(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`${f}:(${y})`};function m(f,g,y){let T="";for(let[_,S]of Object.entries(f)){_=oa(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let R=g(_,S);if(R!=null){if(T.length>0||n.length>0){let E=y?.mode?y.mode:r?"OR":"AND";T+=` ${E} `}T+=R,(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,(f,g)=>di(g)?null:(g=e.preprocess(g,{escape:!0,lowercase:!0,type:"string"}),`${f}:${g}*`)),this.#e.range&&m(this.#e.range,(f,g)=>{if(di(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`${f}:[${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,(f,g)=>di(g)?null:typeof g=="boolean"?`(*:* AND !${f}:${g})`:`!${f}:${e.preprocess(g,s)}`),this.#e.empty&&m(this.#e.empty,f=>(i=!1,`(*:* -${f}:["" TO *])`)),this.#e.notEmpty&&m(this.#e.notEmpty,f=>(i=!1,`${f}:["" TO *]`)),this.#e.oneOf&&m(this.#e.oneOf,p),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}=Lt(),n=`${e}/${this.#l}/_design/database/_search/${this.#d}`,i=this.buildSearchBody();try{return await ES(n,i,r)}catch(s){if(s.status===404&&this.#a)return await this.#a(),await ES(n,i,r);throw s}}};async function ES(t,e,r){let n=await(0,TS.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 AS(t,e,r,n){let i=n.bookmark,s=n.rows||[];if(n.limit&&s.length>=n.limit)return s;let o=Er.maxLimit;n.limit&&s.length>n.limit-Er.maxLimit&&(o=n.limit-s.length);let a=new Er(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<Er.maxLimit)return[...s,...u.rows];let c={...n,bookmark:u.bookmark,rows:[...s,...u.rows]};return await AS(t,e,r,c)}async function KP(t,e,r,n){let i=n.limit;(i==null||isNaN(i)||i<0)&&(i=50),i=Math.min(i,Er.maxLimit);let s=new Er(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 YP(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 AS(t,e,r,n)}}var Yf={};N(Yf,{createUserIndex:()=>JP});async function JP(){let t=ae(),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 SS(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 zP(t){return SS(t,409)}var aa=V(require("fs/promises")),tn=V(require("dd-trace")),ua=require("stream/promises");var ZP=require("sanitize-s3-objectkey"),XP={bucketCreationPromises:{}},tm="/files/signed",Xr={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"},eL=[Xr.html,Xr.css,Xr.js,Xr.json];function Fe(t){return ZP(Ze(t)).replace(/\\/g,"/")}function Ze(t){return t.replace(new RegExp(Tt,"g"),Et)}function Bt(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 Dc.S3(e)}async function ca(t,e){e=Ze(e);try{return await t.headBucket({Bucket:e}),{created:!1,exists:!0}}catch(r){let n=r.statusCode||r.$response?.statusCode,i=XP.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 tL({bucket:t,filename:e,path:r,type:n,metadata:i,body:s,ttl:o}){let a=e.split(".").pop(),u=r?(await aa.default.open(r)).createReadStream():s,c=Bt(),l=await ca(c,t);if(o&&l.created){let g=_c(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,p=d||(a?Xr[a.toLowerCase()]:Xr.txt),m={Bucket:Ze(t),Key:Fe(e),Body:u,ContentType:p};if(i&&typeof i=="object"){for(let g of Object.keys(i))(!i[g]||typeof i[g]!="string")&&delete i[g];m.Metadata=i}return new Jf.Upload({client:c,params:m}).done()}async function IS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await tn.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=Bt(),c=await ca(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=_c(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?Xr[a.toLowerCase()]:Xr.txt),o.addTags({contentType:l});let d=Ze(t),p=Fe(r),m={Bucket:d,Key:p,Body:e,ContentType:l,...i},g=await new Jf.Upload({client:u,params:m}).done(),y=await u.headObject({Bucket:d,Key:p});return o.addTags({contentLength:y.ContentLength}),{...g,ContentLength:y.ContentLength}})}async function OS(t,e){return await tn.default.trace("retrieve",async r=>{r.addTags({bucketName:t,filepath:e});let n=Bt(),i={Bucket:Ze(t),Key:Fe(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}),eL.includes(s.ContentType))return r.addTags({string:!0}),s.Body.transformToString();{r.addTags({string:!1});let o=s.Body.transformToWebStream();return Cc.default.Readable.fromWeb(o)}})}async function*xS(t,e){let r=Bt(),n=(o={})=>r.listObjectsV2({...o,Bucket:Ze(t),Prefix:Fe(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 rn(t,e,r=3600){let n=Bt({presigning:!0}),i={Bucket:Ze(t),Key:Fe(e)},s=await(0,_S.getSignedUrl)(n,new Dc.GetObjectCommand(i),{expiresIn:r});if(h.MINIO_ENABLED){let o=new URL(s),a=o.pathname,u=o.search;return`${tm}${a}${u}`}else return s}async function rL(t,e){return await tn.default.trace("retrieveToTmp",async r=>{r.addTags({bucketName:t,filepath:e}),t=Ze(t),e=Fe(e);let n=await OS(t,e),i=(0,en.join)(ci(),(0,em.v4)());return r.addTags({outputPath:i}),n instanceof Cc.default.Readable?(r.addTags({stream:!0}),await(0,ua.pipeline)(n,ls.default.createWriteStream(i))):(r.addTags({stream:!1}),ls.default.writeFileSync(i,n)),i})}async function nL(t,e){return await tn.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,en.join)(ci(),(0,em.v4)());await aa.default.mkdir(n,{recursive:!0});let i=0;return await Ur.parallelForeach(xS(t,e),async s=>{i++,await tn.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await Ic(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,en.join)(n,...l);c.length>1&&!ls.default.existsSync(d)&&await aa.default.mkdir(d,{recursive:!0}),await(0,ua.pipeline)(u,ls.default.createWriteStream((0,en.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function iL(t,e){let r=Bt();await ca(r,t);let n={Bucket:t,Key:Fe(e)};return r.deleteObject(n)}async function sL(t,e){let r=Bt();await ca(r,t);let n={Bucket:t,Delete:{Objects:e.map(i=>({Key:Fe(i)}))}};return r.deleteObjects(n)}async function RS(t,e){t=Ze(t),e=Fe(e);let r=Bt(),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 RS(t,e)}async function rm(t,e,r){return await tn.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=Ze(t);let i=await aa.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Fe((0,en.join)(r,s.name)),a=(0,en.join)(e,s.name);s.isDirectory()?await rm(t,a,o):await IS({bucket:t,filename:o,stream:ls.default.createReadStream(a)})}return i})}async function oL(t,e,r={}){e=Fe(e);let n=await(0,zf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,ua.pipeline)(n.body,Xf.default.createUnzip(),Zf.default.extract(e))}async function aL(t,e,r){e=Ze(e),r=Fe(r);let n=await(0,zf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,en.join)(ci(),r);return await(0,ua.pipeline)(n.body,Xf.default.createUnzip(),Zf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await rm(e,i,r),i}async function Ic(t,e){return await tn.default.trace("getReadStream",async r=>{t=Ze(t),e=Fe(e),r.addTags({bucketName:t,path:e});let n=Bt(),i={Bucket:t,Key:e},s=await n.getObject(i);if(!s.Body||!(s.Body instanceof Cc.default.Readable))throw new Error("Unable to retrieve stream - invalid response");return r.addTags({contentLength:s.ContentLength,contentType:s.ContentType}),s.Body})}async function uL(t,e){t=Ze(t),e=Fe(e);let r=Bt(),n={Bucket:t,Key:e};try{return await r.headObject(n)}catch{throw new Error("Unable to retrieve metadata from object")}}function Ff(t){let e=t.split("?")[0],r=new RegExp(`^${tm}/(?<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 wS=V(require("aws-cloudfront-sign")),vc;function cL(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return vc||(vc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),vc)}var lL=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:cL(),expireTime:new Date().getTime()+1e3*60*60*24}),ds=t=>{let e=nm(t);return wS.getSignedUrl(e,lL())},nm=t=>{let e="/";return t.startsWith("/")&&(e=""),`${h.CLOUDFRONT_CDN}${e}${t}`};var bS=V(require("querystring"));function DS(t){return`${Fe(t)}/budibase-client.js`}async function dL(t,e){let r=DS(t);return h.CLOUDFRONT_CDN?(e&&(r+=`?v=${e}`),nm(r)):await rn(h.APPS_BUCKET_NAME,r)}function pL(t,e){let r,n;try{r=Q()}finally{n={appId:t,version:e}}return r&&r!==Se&&(n.tenantId=r),`/api/assets/client?${bS.default.encode(n)}`}async function CS(t){return h.CLOUDFRONT_CDN?ds(t):await rn(h.APPS_BUCKET_NAME,t)}async function fL(t){if(t.length===0)return[];try{return await Promise.all(t.map(async e=>({...e,src:await CS(e.src),type:e.type||"image/png"})))}catch(e){return console.error("Error enriching PWA images:",e),t}}var mL=async(t,e,r)=>{let n=vS(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),ds(n)):await rn(h.GLOBAL_BUCKET_NAME,n)},vS=(t,e)=>{let r=`${t}/${e}`;return h.MULTI_TENANCY&&(r=`${Q()}/${r}`),r};async function hL(t){return!t||!t.length?[]:await Promise.all(t.map(async e=>{let r=await gL(e),n=await yL(e);return{...e,jsUrl:r,iconUrl:n}}))}async function gL(t){let e=PS(t);return NS(e)}async function yL(t){let e=LS(t);if(e)return NS(e)}async function NS(t){return h.CLOUDFRONT_CDN?ds(t):await rn(h.PLUGIN_BUCKET_NAME,t)}function PS(t){return US(t,"plugin.min.js")}function LS(t){let e=t.iconUrl?"icon.svg":t.iconFileName;if(e)return US(t,e)}function US(t,e){return`${MS(t.name)}/${e}`}function MS(t){let e=`${t}`;return h.MULTI_TENANCY&&(e=`${Q()}/${e}`),h.CLOUDFRONT_CDN&&(e=`plugins/${e}`),e}var BS="budibase.log",GS="budibase-logs-history.txt",VS=om.default.join(ci(),"systemlogs");function kS(t){return om.default.join(VS,t)}function $S(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 am(){let t=$S(h.ROLLING_LOG_MAX_SIZE);return FS.createStream(BS,{size:t?.size,path:VS,maxFiles:t?.totalHistoryFiles||1,immutable:!0,history:GS,initialRotation:!1})}function EL(){let t=[],e=kS(GS);if(la.default.existsSync(e)){let i=la.default.readFileSync(e,"utf-8").split(`
37
+ `);for(let s of i.filter(o=>o))t.push(la.default.readFileSync(s))}return t.push(la.default.readFileSync(kS(BS))),Buffer.concat(t.map(n=>new Uint8Array(n)))}function TL(t){return typeof t=="object"&&t!==null&&!(t instanceof Error)}function AL(t){return t instanceof Error}function SL(t){return typeof t=="string"}var nn;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,WS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:am(),level:t}),nn=r.length?(0,Nc.default)(e,Nc.default.multistream(r)):(0,Nc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(y=>{SL(y)&&(d=`${d} ${y}`.trimStart()),TL(y)&&l.push(y),AL(y)&&(c=y)});let p=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:kf()};let f=cm.default.scope().active();f&&cm.default.inject(f.context(),qS.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[_],R=S._logKey;R?(delete S._logKey,g[R]=S):(y[T]=S,T++)}Object.keys(y).length&&(g.data=y)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);nn?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);nn?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);nn?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);nn?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),nn?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);nn?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Me()}catch{}return u},o=()=>{let u;try{u=Af()}catch{}return u},a=()=>{let u;try{u=fr()}catch{}return u}}var Pc=nn;var _L=["AccountError"];function IL(t){return t&&t.suppressAlert}function pi(t,e){e&&_L.includes(e.name)&&IL(e)||console.error(`bb-alert: ${t}`,e)}function OL(t,e,r,n){t=`${t} - db: ${e} - doc: ${r} - error: `,pi(t,n)}function ps(t,e){console.warn(`bb-warn: ${t}`,e)}var pa=class{constructor(e){this.host=e}async apiCall(e,r,n){n.headers||(n.headers={}),n.headers["Content-Type"]||(n.headers={"Content-Type":"application/json",Accept:"application/json",...n.headers});let i=n.headers["Content-Type"]==="application/json";Xo.setHeader(n.headers);let s={method:e,body:i?JSON.stringify(n.body):n.body,headers:n.headers,credentials:"include"};return await(0,QS.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 lm=new pa(h.INTERNAL_ACCOUNT_PORTAL_URL),dm=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,sn=async t=>{if(dm)return;let e={email:t},r=await lm.post("/api/accounts/search",{body:e,headers:{"x-budibase-api-key":h.ACCOUNT_PORTAL_API_KEY}});if(r.status!==200)throw new Error(`Error getting account by email ${t}`);return(await r.json())[0]},fs=async t=>{if(dm)return;let e={tenantId:t},r=await lm.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]},xL=async()=>{if(dm)return;let t=await lm.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 _s={};N(_s,{UserDB:()=>Zt,addAppBuilder:()=>m0,bulkGetGlobalUsersById:()=>cl,bulkUpdateGlobalUsers:()=>Ca,cleanseUserObject:()=>Ym,creatorsInList:()=>mi,doesUserExist:()=>c0,getAccountHolderFromUsers:()=>Yc,getAllUserIds:()=>a0,getAllUsers:()=>u0,getById:()=>yi,getCreatorCount:()=>p0,getExistingAccounts:()=>hs,getExistingPlatformUsers:()=>t_,getExistingTenantUsers:()=>e_,getFirstPlatformUser:()=>ma,getGlobalUserByAppPage:()=>J_,getGlobalUserByEmail:()=>$t,getPlatformUsers:()=>kc,getUserCount:()=>d0,hasAdminPermissions:()=>un,hasAppBuilderPermissions:()=>i_,hasBuilderPermissions:()=>St,isAdmin:()=>an,isAdminOrBuilder:()=>n_,isBuilder:()=>Es,isCreatorAsync:()=>ha,isCreatorSync:()=>Hc,isGlobalBuilder:()=>r_,paginatedUsers:()=>Z_,removeAppBuilder:()=>h0,removePortalUserPermissions:()=>f0,searchExistingEmails:()=>_m,searchGlobalUsersByApp:()=>ll,searchGlobalUsersByAppAccess:()=>Km,searchGlobalUsersByEmail:()=>z_,validateUniqueUser:()=>Kc});var Im={};N(Im,{creatorsInList:()=>mi,getAccountHolderFromUsers:()=>Yc,hasAdminPermissions:()=>un,hasAppBuilderPermissions:()=>i_,hasBuilderPermissions:()=>St,isAdmin:()=>an,isAdminOrBuilder:()=>n_,isBuilder:()=>Es,isCreatorAsync:()=>ha,isCreatorSync:()=>Hc,isGlobalBuilder:()=>r_,validateUniqueUser:()=>Kc});var Sm={};N(Sm,{createCode:()=>BL,deleteCode:()=>VL,getCode:()=>GL,getExistingInvites:()=>Am,getInviteCodes:()=>XS,updateCode:()=>FL});var ms={};N(ms,{Duration:()=>De,DurationType:()=>Tm,clearCookie:()=>on,compare:()=>mm,getAppIdFromCtx:()=>PL,getCookie:()=>Tr,hasCircularStructure:()=>UL,hash:()=>fm,isAudited:()=>ym,isClient:()=>LL,isPublicApiRequest:()=>NL,isServingApp:()=>DL,isServingBuilder:()=>CL,isServingBuilderPreview:()=>vL,isValidInternalAPIKey:()=>fa,newid:()=>me,openJwt:()=>Uc,resolveAppUrl:()=>JS,setCookie:()=>zS,time:()=>kL,timeout:()=>gm,urlHasProtocol:()=>ML,validEmail:()=>Em});var pm=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),RL=h.SALT_ROUNDS||10;async function fm(t){let e=await pm.genSalt(RL);return pm.hash(t,e)}async function mm(t,e){return pm.compare(t,e)}var Lc=V(require("jsonwebtoken")),hm="app"+w,HS="/app/",KS="/app/preview",wL="/builder",YS=`${wL}/workspace/`,bL="/api/public/v";async function JS(t){let r=`/${t.path.split("/")[2].toLowerCase()}`,n=Q();!h.isDev()&&h.MULTI_TENANCY&&(n=Jo(t,{includeStrategies:["subdomain"]}));let s=(await Qe(n,()=>na({dev:!1}))).filter(o=>o.url&&o.url.toLowerCase()===r)[0];return s&&s.appId?s.appId:void 0}function DL(t){return t.path.startsWith(`/${hm}`)?!0:t.path.startsWith(HS)}function CL(t){return t.path.startsWith(YS)}function vL(t){return t.path.startsWith(KS)}function NL(t){return t.path.startsWith(bL)}async function PL(t){let e=[t.request.headers["x-budibase-app-id"]],r;function n(u){return!u||!u.startsWith(hm)?r:(r&&es(r)!==es(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=jS(t.path);i&&(r=n(i)),t.query?.appId&&(r=n(t.query?.appId));let s=t.path.startsWith(KS);if(t.path.startsWith(HS)&&!s&&(r=n(await JS(t))),t.request.headers.referer?.includes(YS)){let u=jS(t.request.headers.referer);r=n(u)}return r}function jS(t){if(t)return t.split("?")[0].split("/").find(e=>e.startsWith(hm))}function Uc(t){if(t)try{return Lc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return Lc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function fa(t){return h.INTERNAL_API_KEY&&h.INTERNAL_API_KEY===t?!0:!!(h.INTERNAL_API_KEY_FALLBACK&&h.INTERNAL_API_KEY_FALLBACK===t)}function Tr(t,e){let r=t.cookies.get(e);if(r)return Uc(r)}function zS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=Lc.default.sign(e,h.JWT_SECRET));let i={expires:ic,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function on(t,e){zS(t,null,e)}function LL(t){return t.headers["x-budibase-type"]==="client"}function gm(t){return new Promise(e=>setTimeout(e,t))}function ym(t){return!!eg[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 ML(t){return!!t.match(/^.+:\/\/.+$/)}function Em(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 Tm=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(Tm||{}),Mc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{constructor(e){this.ms=e}to(e){return this.ms/Mc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Mc[e]/Mc[r]}static from(e,r){return new t(r*Mc[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function kL(t){let e=performance.now();return[await t(),De.fromMilliseconds(performance.now()-e)]}var ZS=De.fromDays(7).toSeconds();async function FL(t,e){await(await ii()).store(t,e,ZS)}async function BL(t,e){let r=me();return await(await ii()).store(r,{email:t,info:e},ZS),r}async function GL(t){let r=await(await ii()).get(t);if(!r)throw"Invitation is not valid or has expired, please request a new one.";return r}async function VL(t){await(await ii()).delete(t)}async function XS(){let r=(await(await ii()).scan()).map(i=>({...i.value,code:i.key}));if(!h.MULTI_TENANCY)return r;let n=Q();return r.filter(i=>n===i.info.tenantId)}async function Am(t){return(await XS()).filter(e=>t.includes(e.email))}async function _m(t){let e=[],r=await e_(t);e.push(...r.map(o=>o.email));let n=await t_(t);e.push(...n.map(o=>o._id));let i=await hs(t);e.push(...i.map(o=>o.email));let s=await Am(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function kc(t){return await sa("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function ma(t){return(await kc(t))[0]??null}async function e_(t){let r={keys:t.map(i=>i.toLowerCase()),include_docs:!0},n={arrayResponse:!0};return await yr("by_email2",r,void 0,n)}async function t_(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await sa("platform_users_lowercase_2",r)}async function hs(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await sa("account_by_email",r)}var jc={};N(jc,{BadRequestError:()=>Gc,BudibaseError:()=>gs,EmailUnavailableError:()=>Ar,FeatureDisabledError:()=>qc,ForbiddenError:()=>Vc,HTTPError:()=>$e,InvalidAPIKeyError:()=>ys,NotFoundError:()=>Bc,NotImplementedError:()=>$c,UnexpectedError:()=>Fc,UsageLimitError:()=>Wc,getPublicError:()=>Qc});var gs=class extends Error{constructor(r,n){super(r);this.code=n}},Qc=t=>{let e;return t.code&&(e={code:t.code},t.getPublicError&&(e={...e,...t.getPublicError()})),e},$e=class t extends gs{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)}},Fc=class extends $e{constructor(e){super(e,500)}},Bc=class extends $e{constructor(e){super(e,404)}},Gc=class extends $e{constructor(e){super(e,400)}},Vc=class extends $e{constructor(e){super(e,403)}},$c=class extends $e{constructor(e){super(e,501)}},Wc=class extends $e{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},qc=class extends $e{constructor(r,n){super(r,400,"feature_disabled");this.featureName=n}getPublicError(){return{featureName:this.featureName}}},ys=class extends gs{constructor(){super("Invalid API key - may need re-generated, or user doesn't exist","invalid_api_key")}},Ar=class extends Error{constructor(e){super(`Email already in use: '${e}'`)}};var Es=at.users.isBuilder,an=at.users.isAdmin,r_=at.users.isGlobalBuilder,n_=at.users.isAdminOrBuilder,un=at.users.hasAdminPermissions,St=at.users.hasBuilderPermissions,i_=at.users.hasAppBuilderPermissions;async function mi(t,e){let r=[...new Set(t.filter(i=>i.userGroups).flatMap(i=>i.userGroups))];return e=await ae().getMultiple(r,{allowMissing:!0}),t.map(i=>Hc(i,e))}async function ha(t){let e=[];return t.userGroups&&(e=await ae().getMultiple(t.userGroups)),Hc(t,e)}function Hc(t,e){let r=at.users.isCreator(t);return!r&&t?WL(t,e):r}function WL(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 Kc(t,e){if(h.MULTI_TENANCY){let r=await ma(t);if(r!=null&&r.tenantId!==e)throw new Ar(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await sn(t);if(r&&r.verified&&r.tenantId!==e)throw new Ar(t)}}async function Yc(t){if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let e=await hs(t.map(r=>r.email));return t.find(r=>e.map(n=>n.email).includes(r.email))}}var Ss={};N(Ss,{account:()=>S_,action:()=>__,ai:()=>w_,analytics:()=>zc,app:()=>I_,auditLog:()=>$_,auth:()=>al,automation:()=>O_,backfill:()=>k_,backfillCache:()=>sl,backup:()=>G_,datasource:()=>x_,email:()=>R_,environmentVariable:()=>V_,group:()=>F_,identification:()=>Vt,initAsyncEvents:()=>Hk,installation:()=>Ia,layout:()=>D_,license:()=>b_,org:()=>C_,plugin:()=>B_,processors:()=>vm,publishEvent:()=>A,query:()=>v_,role:()=>ba,rowAction:()=>W_,rows:()=>P_,screen:()=>N_,serve:()=>U_,shutdown:()=>Kk,table:()=>L_,user:()=>Xe,view:()=>M_,workspace:()=>q_});var vm={};N(vm,{analyticsProcessor:()=>g_,init:()=>cU,processors:()=>Ir});var zc={};N(zc,{enabled:()=>Jc});var Jc=async()=>Zc();var c_=require("posthog-node");var qL=t=>t==="served:builder"||t==="served:app:preview"||t==="served:app",QL=t=>t==="served:app:preview"||t==="served:app";var o_={"served:app":"calendarDay","served:app:preview":"calendarDay","served:builder":"calendarDay"},a_=async t=>{if(!qL(t))return!1;let e=await jL(t);if(e){let r=new Date(e.timestamp);switch(o_[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},u_=t=>{let e=`${ve.EVENTS_RATE_LIMIT}:${t}`;return QL(t)&&(e=e+":"+Me()),e},jL=async t=>{let e=u_(t);return await ui(e)},s_=async(t,e)=>{let r=u_(t),n=o_[t],i;switch(n){case"calendarDay":i=86400}await mr(r,e,i)};var KL=["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"],ga=class{constructor(e){if(!e)throw new Error("Posthog token is not defined");this.posthog=new c_.PostHog(e)}async processEvent(e,r,n,i){if(KL.includes(e)||await a_(e))return;n=this.clearPIIProperties(n),n.version=h.VERSION,n.service=h.SERVICE,n.environment=r.environment,n.hosting=r.hosting;let s=Me();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 l_=ga;var YL=["installation:version:upgraded","installation:version:downgraded"],JL=["installation","tenant"],ya=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new l_(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!YL.includes(e)&&!await Jc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!JL.includes(e.type)&&!await Jc()||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 Om=h.SELF_HOSTED&&!h.isDev(),Ea=class{async processEvent(e,r,n){Om||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){Om||console.log("[audit] identified",e)}async identifyGroup(e){Om||console.log("[audit] group identified",e)}async shutdown(){}};var Cm={};N(Cm,{BudibaseQueue:()=>Gt,InMemoryQueue:()=>Xc,JobQueue:()=>Ts,QueuedProcessor:()=>Dm,UnretriableError:()=>rl,shutdown:()=>oU});var d_=V(require("events"));function zL(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 Xc=class{constructor(e,r){this._name=e,this._opts=r,this._messages=[],this._emitter=new d_.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,p)=>{d?c(d):u(p)})})}let s=this._attempts;async function o(u,c=0){try{return await u}catch(l){if(c++,c<s&&!n._isDiscarded)return await ze.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=(p,m)=>{p.id===s&&(this._emitter.off("error",l),this._emitter.off("completed",d),c(m))},d=(p,m)=>{p.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=>zL(e))}async whenCurrentJobsFinished(){do await gm(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},p_=Xc;var wm=V(require("bull"));var Ts=(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))(Ts||{});function f_(t,e,r){eU(t,e),r&&ZL(t,r)}function ZL(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 _t(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 XL={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 eU(t,e){let r=XL[e];function n(i,s){let o=i.data.event?.appId;if(o)return Tf(o,s);s()}t.on("stalled",async i=>{await n(i,()=>{console.error(..._t(r,"stalled",{job:i}))})}).on("error",i=>{console.error(..._t(r,"error",{error:i}))}),process.env.NODE_DEBUG?.includes("bull")&&t.on("waiting",i=>{console.info(..._t(r,"waiting",{jobId:i}))}).on("active",async i=>{await n(i,()=>{console.info(..._t(r,"active",{job:i}))})}).on("progress",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"progress",{job:i},{progress:s}))})}).on("completed",async(i,s)=>{await n(i,()=>{console.info(..._t(r,"completed",{job:i},{result:s}))})}).on("failed",async(i,s)=>{await n(i,()=>{console.error(..._t(r,"failed",{job:i,error:s}))})}).on("paused",()=>{console.info(..._t(r,"paused"))}).on("resumed",()=>{console.info(..._t(r,"resumed"))}).on("cleaned",(i,s)=>{console.info(..._t(r,"cleaned",{},{length:i.length,type:s}))}).on("drained",()=>{console.info(..._t(r,"drained"))}).on("removed",i=>{console.info(..._t(r,"removed",{job:i}))})}var el={};N(el,{cleanup:()=>tU,clear:()=>Rm,set:()=>xm});var Ta=[];function xm(t,e){let r=setInterval(t,e);return Ta.push(r),r}function Rm(t){let e=Ta.indexOf(t);e!==-1&&Ta.splice(e,1),clearInterval(t)}function tU(){for(let t of Ta)clearInterval(t);Ta=[]}var _r=V(require("dd-trace")),Aa=V(require("object-sizeof")),rU=De.fromMinutes(5).toMs(),nU=De.fromSeconds(30).toMs(),bm=De.fromSeconds(60).toMs(),Sa=[],tl;async function m_(){for(let t of Sa)await t.clean(bm,"completed"),await t.clean(bm,"failed")}async function iU(t,e,r){let n=performance.now();try{let i=await e();return _r.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw _r.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;_r.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),_r.default.dogstatsd.increment(t,1,r)}}function h_(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 sU(t){return{"job.id":t.id,"job.attemptsMade":t.attemptsMade,"job.timestamp":t.timestamp,"job.data.sizeBytes":(0,Aa.default)(t.data),...h_(t.opts||{})}}var Gt=class{constructor(e,r={}){this.opts=r,this.jobQueue=e,this.queue=this.initQueue()}get name(){return this.queue.name}initQueue(){let r={redis:ri(),settings:{maxStalledCount:this.opts.maxStalledCount?this.opts.maxStalledCount:0,lockDuration:rU,lockRenewTime:nU}};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 wm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new p_(this.jobQueue,r):n=new wm.default(this.jobQueue,r),f_(n,this.jobQueue,this.opts.removeStalledCb),Sa.push(n),!tl&&!h.isTest()&&(tl=xm(m_,bm),m_().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 _r.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,...sU(o)}),this.opts.jobTags&&u.addTags(this.opts.jobTags(o.data)),_r.default.dogstatsd.distribution("queue.process.sizeBytes",(0,Aa.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 _r.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,Aa.default)(e),...h_(r||{})}),this.opts.jobTags&&n.addTags(this.opts.jobTags(e)),e._parentSpanContext={traceId:n.context().toTraceId(),spanId:n.context().toSpanId()},_r.default.dogstatsd.distribution("queue.add.sizeBytes",(0,Aa.default)(e),this.metricTags()),await this.withMetrics("queue.add",()=>this.queue.add(e,r))))}withMetrics(e,r){return iU(e,r,this.metricTags())}metricTags(){return{queueName:this.jobQueue}}close(e){return this.queue.close(e)}whenCurrentJobsFinished(){return this.queue.whenCurrentJobsFinished()}};async function oU(){tl&&Rm(tl),console.log("Waiting for current queue jobs to finish...");for(let t of Sa)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Sa)await t.close();Sa=[],console.log("Queues shutdown")}var rl=class extends Error{constructor(e){super(e),this.name="PermanentError"}},Dm=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 Gt(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 rl&&await a.discard(),pi(`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 ze.withTimeout(this.waitForCompletionMs,()=>r.finished())}}catch(r){if(r.errno!=="ETIME")throw r;return{success:!1,reason:"timeout"}}}};var As=class t{static{this.auditLogsEnabled=!1}static init(e){t.auditLogsEnabled=!0;let r=e;return t.auditLogQueue=new Gt("auditLogQueue",{jobTags:n=>({"event.name":n.event})}),t.auditLogQueue.process(async n=>{await Qe(n.data.tenantId,async()=>{let i=n.data.properties;i.audited&&(i={...i,...i.audited},delete i.audited);let s={};h.ENABLE_AUDIT_LOG_IP_ADDR&&(s=n.data.opts.hostInfo),await r(n.data.event,i,{userId:n.data.opts.userId,timestamp:n.data.opts.timestamp,appId:n.data.opts.appId,hostInfo:s})})})}async processEvent(e,r,n,i){if(t.auditLogsEnabled&&ym(e)){let s=r.type==="user"?r.id:void 0;await t.auditLogQueue.add({event:e,properties:n,opts:{userId:s,timestamp:i,appId:Me(),hostInfo:r.hostInfo},tenantId:Q()})}}async identify(){}async identifyGroup(){}async shutdown(){await t.auditLogQueue?.close()}};var _a=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 g_=new ya,aU=new Ea,uU=new As;function cU(t){return As.init(t)}var Ir=new _a([g_,aU,uU]);var nl={};N(nl,{checkInstallVersion:()=>pU,getInstall:()=>Oa,getInstallFromDB:()=>Pm});var Nm=V(require("semver"));var Oa=async()=>Jr(ve.INSTALLATION,86400,Pm,{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 Pm();throw r}}var Pm=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}),dU=async t=>{try{await ct(xe.PLATFORM_INFO.name,async e=>{let r=await Oa();r.version=t,await e.put(r),await as(ve.INSTALLATION)})}catch(e){if(e.status===409)return!1;throw e}return!0},pU=async()=>{let t=await Oa(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Nm.default.gt(r,e),i=Nm.default.lt(r,e);await dU(r)&&(await Co({_id:t.installId,type:"installation"},async()=>{n?await Ia.upgraded(e,r):i&&await Ia.downgraded(e,r)}),await Vt.identifyInstallationGroup(t.installId))}}catch(n){n?.message?.includes("Invalid Version")?pi(`Invalid version "${r}" - is it semver?`):pi("Failed to retrieve version",n)}};var fU=async()=>{let t=Xp(),e=wa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await hi(),i=xa();return{id:y_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await hi(),i=await il(Q()),s=xa();return{id:y_(i,r),type:r,hosting:s,installationId:n,tenantId:i,realTenantId:Q(),environment:e}}else if(r==="user"){let n=t,i=await il(Q()),s=await hi(),o=n.account,a;return o?a=o.hosting:a=xa(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},mU=async(t,e)=>{let r=t,n="installation",i=xa(),s=h.VERSION,o=wa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Lm(a,e),await Ra({...a,id:`$${n}_${r}`},e)},hU=async(t,e,r,n=h.VERSION)=>{let i=await il(t),s="tenant",o=await hi(),a=wa(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await Lm(u,r),await Ra({...u,id:`$${s}_${i}`},r)},gU=async(t,e,r)=>{let n=t._id,i=await il(t.tenantId),s="user",o=St(t),a=un(t),u;Za(t)&&(u=t.providerType);let l=(await hs([t.email])).length>0,d=!!e&&l&&e.verified,p=await hi(),m=e?e.hosting:xa(),f=wa();await Ra({id:n,type:s,hosting:m,installationId:p,tenantId:i,verified:d,accountHolder:l,providerType:u,builder:o,admin:a,environment:f},r)},yU=async t=>{let e=t.accountId,r=t.tenantId,n="user",i=za(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await hi(),c=wa();if(Ja(t)){let d=await $t(t.email);d?._id&&(e=d._id)}await Ra({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Ra=async(t,e)=>{await Ir.identify(t,e)},Lm=async(t,e)=>{await Ir.identifyGroup(t,e)},wa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,xa=()=>h.SELF_HOSTED?"self":"cloud",hi=async()=>EU()?"account-portal":(await Oa()).installId,il=async t=>h.SELF_HOSTED?E_(t):t,E_=async t=>Qe(t,()=>Jr(ve.UNIQUE_TENANT_ID,86400,async()=>{let e=ae(),r=await Is(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${me()}_${t}`,r.config.uniqueTenantId=n,r.config.createdVersion=h.VERSION,await e.put(r),n)})),EU=()=>h.SERVICE==="account-portal",y_=(t,e)=>e==="installation"||e==="tenant"?`$${e}_${t}`:t,Vt={getCurrentIdentity:fU,identifyInstallationGroup:mU,identifyTenantGroup:hU,identifyUser:gU,identifyAccount:yU,identify:Ra,identifyGroup:Lm,getInstallationId:hi,getUniqueTenantId:E_};var sl={};N(sl,{end:()=>AU,isAlreadySent:()=>km,isBackfillingEvent:()=>Mm,recordEvent:()=>Um,start:()=>TU});var TU=async t=>_U({eventWhitelist:t}),Um=async(t,e)=>{let r=Fm(t,e);await mr(r,e,void 0,{useTenancy:!1})},AU=async()=>{await IU(),await OU()},SU=async()=>ui(ve.BACKFILL_METADATA),_U=async t=>mr(ve.BACKFILL_METADATA,t),IU=async()=>{await Ko(ve.BACKFILL_METADATA)},OU=async()=>{let t=Fm(),e=await Sc(t);for(let r of e)await Ko(r,{useTenancy:!1})},Mm=async t=>{let r=(await SU())?.eventWhitelist;return!!(r&&r.includes(t))},km=async(t,e)=>{let r=Fm(t,e);return!!await ui(r,{useTenancy:!1})},xU={"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}`},Fm=(t,e)=>{let r,n=Q();if(t){r=`${ve.EVENTS}:${n}:${t}`;let i=xU[t],s=i?i(e):void 0;s&&(r=`${r}:${s}`)}else r=`${ve.EVENTS}:${n}:*`;return r};var Or;function ol(){Or=new Gt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function T_(){Or&&await Or.close()}async function A_(t){Or||ol();let{event:e,identity:r}=t;Xh.indexOf(e)!==-1&&r.tenantId&&await Or.add(t)}var A=async(t,e,r,n)=>{let i=n||await Vt.getCurrentIdentity();if(!(n?!1:await Mm(t))){await A_({event:t,identity:i,properties:e,timestamp:r}),await Ir.processEvent(t,i,e,r);return}await km(t,e)||(await Ir.processEvent(t,i,e,r),await Um(t,e))};async function RU(t,e){let r={tenantId:t.tenantId};await A("account:created",r,void 0,e)}async function wU(t){let e={tenantId:t.tenantId};await A("account:deleted",e)}async function bU(t){let e={tenantId:t.tenantId};await A("account:verified",e)}var S_={created:RU,deleted:wU,verified:bU};async function DU(t,e){await A("action:automation_step:executed",t,e)}async function CU(t,e){await A("action:crud:executed",t,e)}async function vU(t,e){await A("action:ai_agent:executed",t,e)}var __={aiAgentExecuted:vU,automationStepExecuted:DU,crudExecuted:CU};var NU=async(t,e)=>{let r={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:created",r,e)};async function PU(t){let e={appId:t.appId,version:t.version,audited:{name:t.name}};await A("app:updated",e)}async function LU(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 MU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:unpublished",e)}async function kU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:file:imported",e)}async function FU(t,e){let r={duplicateAppId:e,appId:t.appId,audited:{name:t.name}};await A("app:duplicated",r)}async function BU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function GU(t,e,r){let n={appId:t.appId,currentVersion:e,updatedToVersion:r,audited:{name:t.name}};await A("app:version:updated",n)}async function VU(t,e,r){let n={appId:t.appId,currentVersion:e,revertedToVersion:r,audited:{name:t.name}};await A("app:version:reverted",n)}async function $U(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:reverted",e)}async function WU(t){let e={appId:t.appId,audited:{name:t.name}};await A("app:exported",e)}var I_={created:NU,updated:PU,deleted:LU,published:UU,unpublished:MU,fileImported:kU,duplicated:FU,templateImported:BU,versionUpdated:GU,versionReverted:VU,reverted:$U,exported:WU};async function qU(t,e){let n={userId:(await Vt.getCurrentIdentity()).id,source:t,audited:{email:e}};await A("auth:login",n)}async function QU(t){let r={userId:(await Vt.getCurrentIdentity()).id,audited:{email:t}};await A("auth:logout",r)}async function jU(t,e){let r={type:t};await A("auth:sso:created",r,e)}async function HU(t){let e={type:t};await A("auth:sso:updated",e)}async function KU(t,e){let r={type:t};await A("auth:sso:activated",r,e)}async function YU(t){let e={type:t};await A("auth:sso:deactivated",e)}var al={login:qU,logout:QU,SSOCreated:jU,SSOUpdated:HU,SSOActivated:KU,SSODeactivated:YU};async function JU(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 zU(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 ZU(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 XU(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 eM=async(t,e)=>{let r={count:t};await A("automations:run",r,e)};async function tM(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 rM(t,e){let r={appId:t.appId,automationId:t._id,triggerId:t.definition?.trigger?.id,triggerType:t.definition?.trigger?.stepId,stepId:e.id,stepType:e.stepId,audited:{name:t.name}};await A("automation:step:deleted",r)}var O_={created:JU,triggerUpdated:zU,deleted:ZU,tested:XU,run:eM,stepCreated:tM,stepDeleted:rM};function Bm(t){return!Object.values(ja).includes(t.source)}async function nM(t,e){let r={datasourceId:t._id,source:t.source,custom:Bm(t)};await A("datasource:created",r,e)}async function iM(t){let e={datasourceId:t._id,source:t.source,custom:Bm(t)};await A("datasource:updated",e)}async function sM(t){let e={datasourceId:t._id,source:t.source,custom:Bm(t)};await A("datasource:deleted",e)}var x_={created:nM,updated:iM,deleted:sM};async function oM(t){let e={};await A("email:smtp:created",e,t)}async function aM(){let t={};await A("email:smtp:updated",t)}var R_={SMTPCreated:oM,SMTPUpdated:aM};async function uM(t){let e={};await A("ai:config:created",e,t)}async function cM(){let t={};await A("ai:config:updated",t)}var w_={AIConfigCreated:uM,AIConfigUpdated:cM};async function lM(t,e){let r={accountId:t.accountId,...e};await A("license:plan:changed",r)}async function dM(t){let e={accountId:t.accountId};await A("license:activated",e)}async function pM(t){let e={accountId:t.accountId};await A("license:checkout:opened",e)}async function fM(t){let e={accountId:t.accountId};await A("license:checkout:success",e)}async function mM(t){let e={accountId:t.accountId};await A("license:portal:opened",e)}async function hM(t){let e={accountId:t.accountId};await A("license:payment:failed",e)}async function gM(t){let e={accountId:t.accountId};await A("license:payment:recovered",e)}var b_={planChanged:lM,activated:dM,checkoutOpened:pM,checkoutSuccess:fM,portalOpened:mM,paymentFailed:hM,paymentRecovered:gM};async function yM(t,e){let r={layoutId:t._id};await A("layout:created",r,e)}async function EM(t){let e={layoutId:t};await A("layout:deleted",e)}var D_={created:yM,deleted:EM};async function TM(t){let e={};await A("org:info:name:updated",e,t)}async function AM(t){let e={};await A("org:info:logo:updated",e,t)}async function SM(t){let e={};await A("org:platformurl:updated",e,t)}async function _M(){let t={};await A("analytics:opt:out",t)}async function IM(){let t={};await A("analytics:opt:out",t)}var C_={nameUpdated:TM,logoUpdated:AM,platformURLUpdated:SM,analyticsOptOut:_M,analyticsOptIn:IM};var OM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:created",n,r)},xM=async(t,e)=>{let r={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:updated",r)},RM=async(t,e,r)=>{let n={queryId:e._id,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb,appId:r};await A("query:deleted",n)},wM=async(t,e,r)=>{let n={datasourceId:t._id,source:t.source,count:r,importSource:e};await A("query:import",n)},bM=async(t,e)=>{let r={count:t};await A("queries:run",r,e)},DM=async(t,e)=>{let r={queryId:e.queryId,datasourceId:t._id,source:t.source,queryVerb:e.queryVerb};await A("query:previewed",r)},v_={created:OM,updated:xM,deleted:RM,imported:wM,run:bM,previewed:DM};async function CM(t,e){let r={roleId:t._id,permissionId:t.permissionId,inherits:t.inherits};await A("role:created",r,e)}async function vM(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 PM(t,e,r){let n={userId:t._id,roleId:e};await A("role:assigned",n,r)}async function LM(t,e){let r={userId:t._id,roleId:e};await A("role:unassigned",r)}var ba={created:CM,updated:vM,deleted:NM,assigned:PM,unassigned:LM};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 MM(t){let e={layoutId:t.layoutId,screenId:t._id,roleId:t.routing.roleId,audited:{name:t.routing?.route}};await A("screen:deleted",e)}var N_={created:UM,deleted:MM};var kM=async(t,e)=>{let r={count:t};await A("rows:created",r,e)},FM=async(t,e)=>{let r={tableId:t._id,count:e};await A("rows:imported",r)},P_={created:kM,imported:FM};async function BM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function GM(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 VM(t,e){let r={tableId:t._id,audited:{name:t.name},appId:e};await A("table:deleted",r)}async function $M(t,e){let r={tableId:t._id,format:e,audited:{name:t.name}};await A("table:exported",r)}async function WM(t){let e={tableId:t._id,audited:{name:t.name}};await A("table:imported",e)}var L_={created:BM,updated:GM,deleted:VM,exported:$M,imported:WM};async function qM(t){let e={timezone:t};await A("served:builder",e)}async function QM(t,e,r){let n={appVersion:t.version,timezone:e,embed:r===!0};await A("served:app",n)}async function jM(t,e){let r={appId:t.appId,appVersion:t.version,timezone:e};await A("served:app:preview",r)}var U_={servedBuilder:qM,servedApp:QM,servedAppPreview:jM};async function HM(t,e){let r={userId:t._id,viaScim:Mt(),audited:{email:t.email}};await A("user:created",r,e)}async function KM(t){let e={userId:t._id,viaScim:Mt(),audited:{email:t.email}};await A("user:updated",e)}async function YM(t){let e={userId:t._id,viaScim:Mt(),audited:{email:t.email}};await A("user:deleted",e)}async function JM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:admin:assigned",r,e)}async function zM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:admin:removed",e)}async function ZM(t,e){let r={userId:t._id,audited:{email:t.email}};await A("user:builder:assigned",r,e)}async function XM(t){let e={userId:t._id,audited:{email:t.email}};await A("user:builder:removed",e)}async function ek(t){let e={audited:{email:t}};await A("user:invited",e)}async function tk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:invite:accepted",e)}async function rk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:force:reset",e)}async function nk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:updated",e)}async function ik(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset:requested",e)}async function sk(t){let e={userId:t._id,audited:{email:t.email}};await A("user:password:reset",e)}async function ok(t){let e={users:t};await A("user:data:collaboration",e)}var Xe={created:HM,updated:KM,deleted:YM,permissionAdminAssigned:JM,permissionAdminRemoved:zM,permissionBuilderAssigned:ZM,permissionBuilderRemoved:XM,invited:ek,inviteAccepted:tk,passwordForceReset:rk,passwordUpdated:nk,passwordResetRequested:ik,passwordReset:sk,dataCollaboration:ok};async function ak(t,e){let r={name:t.name,type:t.type,tableId:t.tableId};await A("view:created",r,e)}async function uk(t){let e={tableId:t.tableId};await A("view:updated",e)}async function ck(t,e){let r={...ze.views.isV2(t)?{id:t.id,tableId:t.tableId,appId:e}:{}};await A("view:deleted",r)}async function lk(t,e){let r={tableId:t._id,format:e};await A("view:exported",r)}async function dk({tableId:t,filterGroups:e},r){let n={tableId:t,filterGroups:e};await A("view:filter:created",n,r)}async function pk({tableId:t,filterGroups:e}){let r={tableId:t,filterGroups:e};await A("view:filter:updated",r)}async function fk(t){let e={tableId:t.tableId};await A("view:filter:deleted",e)}async function mk({tableId:t,calculationType:e},r){let n={tableId:t,calculation:e};await A("view:calculation:created",n,r)}async function hk(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:updated",e)}async function gk(t){let e={tableId:t.tableId,calculation:t.calculation};await A("view:calculation:deleted",e)}async function yk(t,e){let r={tableId:t};await A("view:join:created",r,e)}var M_={created:ak,updated:uk,deleted:ck,exported:lk,filterCreated:dk,filterUpdated:pk,filterDeleted:fk,calculationCreated:mk,calculationUpdated:hk,calculationDeleted:gk,viewJoinCreated:yk};async function Ek(t){let e={currentVersion:t};await A("installation:version:checked",e)}async function Tk(t,e){let r={from:t,to:e};await A("installation:version:upgraded",r)}async function Ak(t,e){let r={from:t,to:e};await A("installation:version:downgraded",r)}async function Sk(){let t={};await A("installation:firstStartup",t)}var Ia={versionChecked:Ek,upgraded:Tk,downgraded:Ak,firstStartup:Sk};var Os=!h.SELF_HOSTED&&!h.isDev();async function _k(t){Os||await A("app:backfill:succeeded",t)}async function Ik(t){if(Os)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function Ok(t){Os||await A("tenant:backfill:succeeded",t)}async function xk(t){if(Os)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function Rk(){if(Os)return;let t={};await A("installation:backfill:succeeded",t)}async function wk(t){if(Os)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("installation:backfill:failed",e)}var k_={appSucceeded:_k,appFailed:Ik,tenantSucceeded:Ok,tenantFailed:xk,installationSucceeded:Rk,installationFailed:wk};async function bk(t,e){let r={groupId:t._id,viaScim:Mt(),audited:{name:t.name}};await A("user_group:created",r,e)}async function Dk(t){let e={groupId:t._id,viaScim:Mt(),audited:{name:t.name}};await A("user_group:updated",e)}async function Ck(t){let e={groupId:t._id,viaScim:Mt(),audited:{name:t.name}};await A("user_group:deleted",e)}async function vk(t,e){let r={count:t,groupId:e._id,viaScim:Mt(),audited:{name:e.name}};await A("user_group:user_added",r)}async function Nk(t,e){let r={count:t,groupId:e._id,viaScim:Mt(),audited:{name:e.name}};await A("user_group:users_deleted",r)}async function Pk(t){let e={groupId:t,onboarding:!0};await A("user_group:onboarding_added",e)}async function Lk(t){let e={permissions:t.roles,groupId:t._id,audited:{name:t.name}};await A("user_group:permissions_edited",e)}var F_={created:bk,updated:Dk,deleted:Ck,usersAdded:vk,usersDeleted:Nk,createdOnboarding:Pk,permissionsEdited:Lk};async function Uk(t){let e={type:t.schema.type,name:t.name,description:t.description,version:t.version};await A("plugin:init",e)}async function Mk(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 kk(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 B_={init:Uk,imported:Mk,deleted:kk};async function Fk(t){let e={appId:t.appId,restoreId:t._id,backupCreatedAt:t.timestamp,name:t.name};await A("app:backup:restored",e)}async function Bk(t,e,r,n,i){let s={appId:t,backupId:e,type:r,trigger:n,name:i};await A("app:backup:triggered",s)}var G_={appBackupRestored:Fk,appBackupTriggered:Bk};async function Gk(t,e){let r={name:t,environments:e};await A("environment_variable:created",r)}async function Vk(t){let e={name:t};await A("environment_variable:deleted",e)}async function $k(t){let e={userId:t};await A("environment_variable:upgrade_panel_opened",e)}var V_={created:Gk,deleted:Vk,upgradePanelOpened:$k};async function Wk(t){let e={filters:t};await A("audit_log:filtered",e)}async function qk(t){let e={filters:t};await A("audit_log:downloaded",e)}var $_={filtered:Wk,downloaded:qk};async function Qk(t,e){await A("row_action:created",t,e)}var W_={created:Qk};async function jk(t,e){let r={workspaceAppId:t._id,audited:{name:t.name},appId:e};await A("workspace_app:deleted",r)}var q_={deleted:jk};function Hk(){}var Kk=async()=>{await Ir.shutdown(),console.log("Events shutdown")};var Gm=async t=>{await Xe.deleted(t),St(t)&&await Xe.permissionBuilderRemoved(t),un(t)&&await Xe.permissionAdminRemoved(t)},Yk=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await ba.assigned(t,i)},Jk=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await ba.unassigned(t,i)},zk=async(t,e)=>{let r=t.roles,n=e?.roles;await Yk(t,r,n),await Jk(t,r,n)},Vm=async(t,e)=>{let r=Q(),n;!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL&&(n=await fs(r)),await Vt.identifyUser(t,n),e?(await Xe.updated(t),Xk(t,e)&&await Xe.permissionBuilderRemoved(t),t0(t,e)&&await Xe.permissionAdminRemoved(t),!e.forceResetPassword&&t.forceResetPassword&&t.password&&await Xe.passwordForceReset(t),t.password!==e.password&&await Xe.passwordUpdated(t)):await Xe.created(t),Zk(t,e)&&await Xe.permissionBuilderAssigned(t),e0(t,e)&&await Xe.permissionAdminAssigned(t),await zk(t,e)},Zk=(t,e)=>Q_(t,e,St),Xk=(t,e)=>j_(t,e,St),e0=(t,e)=>Q_(t,e,un),t0=(t,e)=>j_(t,e,un),Q_=(t,e,r)=>!(!r(t)||e&&r(e)),j_=(t,e,r)=>!(r(t)||!e||!r(e));var ul={};N(ul,{createASession:()=>n0,endSession:()=>i0,getSession:()=>Wm,getSessionsForUser:()=>Da,invalidateSessions:()=>gi,updateSessionTTL:()=>$m});var K_=require("uuid");var Y_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function xs(t,e){return`${t}/${e}`}async function Da(t){return t?(await(await Kr()).scan(t)).map(n=>n.value):(console.trace("Cannot get sessions for undefined userId"),[])}async function gi(t,e={}){try{let r=e?.reason||"unknown",n=e.sessionIds||[],i;if(n.length===0?i=(await Da(t)).map(o=>({key:xs(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:xs(t,s)}))),i&&i.length>0){let s=await Kr(),o=[];for(let a of i)o.push(s.delete(a.key));h.isTest()||ps(`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 n0(t,e){let r=await Da(t),n=0;if(r.length>=3){let c=r.sort((p,m)=>new Date(p.createdAt).getTime()-new Date(m.createdAt).getTime()),l=r.length-3+1,d=c.slice(0,l).map(p=>p.sessionId);n=d.length,await gi(t,{sessionIds:d,reason:"session limit exceeded"})}let i=await Kr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,K_.v4)(),a=xs(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,Y_),{session:u,invalidatedSessionCount:n}}async function $m(t){let e=await Kr(),r=xs(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,Y_)}async function i0(t,e){await(await Kr()).delete(xs(t,e))}async function Wm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Kr()).get(xs(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Hm={};N(Hm,{PASSWORD_MAX_LENGTH:()=>Qm,PASSWORD_MIN_LENGTH:()=>qm,validatePassword:()=>jm});var qm=+(h.PASSWORD_MIN_LENGTH||12),Qm=+(h.PASSWORD_MAX_LENGTH||512);function jm(t){return!t||t.length<qm?{valid:!1,error:`Password invalid. Minimum ${qm} characters.`}:t.length>Qm?{valid:!1,error:`Password invalid. Maximum ${Qm} characters.`}:{valid:!0}}var s0=async t=>{let e=t._id;await Ft.removeUser(t),await Gm(t),await cn.invalidateUser(e),await gi(e,{reason:"bulk-deletion"})},Zt=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&&an(e)?!1:await t.features.isSSOEnforced()||Za(e)?!0:(r||(r=await fs(Q())),!!(r&&r.email===e.email&&za(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 $e("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=jm(o);if(!d.valid)throw new $e(d.error,400)}u=r.hashPassword?await fm(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||us();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 ae().allDocs(li(null,{include_docs:!0}))).rows.map(n=>n.doc)}static async countUsersByApp(e){return{userCount:(await ll(e,{})).length}}static async getUsersByAppAccess(e){return await Km(e.appId,{limit:e.limit||50})}static async getUserByEmail(e){return $t(e)}static async getUser(e){let r=await yi(e);return r&&delete r.password,r}static async bulkGet(e){return await cl(e)}static async bulkUpdate(e){return await Ca(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=Q(),i=ae(),{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 yi(o),s&&c.email!==s&&!r.allowChangingEmail)throw new Error("Email address cannot be changed")}catch(p){if(p.status!==404)throw p}if(!c&&s&&(c=await $t(s),c&&c._id!==o))throw new Ar(s);let l=1,d=0;if((r.isAccountHolder||c)&&(l=0,d=1),c){let[p,m]=await mi([c,e]);d=p!==m?1:0}return t.quotas.addUsers(l,d,async()=>{r.isAccountHolder||await Kc(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=Ym(p,c)),!c&&u?.length&&(p.roles={...u});let m=[];if(!o&&a.length>0)for(let f of a)m.push(t.groups.addUsers(f,[p._id]));try{let f=await i.put(p);return p._rev=f.rev,await Vm(p,c),c&&p.email!==c.email&&await Ft.removeUser({email:c.email}),await Ft.addUser(n,p._id,p.email,p.ssoId),await cn.invalidateUser(f.id),await Promise.all(m),i.get(p._id)}catch(f){throw f.status===409?"User exists already":f}})}static async bulkCreate(e,r){let n=Q(),i=[],s=[],o=[],a=e.map(p=>p.email),u=await _m(a),c=[];for(let p of e){let m=s.find(g=>g.email.toLowerCase()===p.email.toLowerCase()),f=u.includes(p.email.toLowerCase());if(m||f){c.push({email:p.email,reason:"Unavailable"});continue}p.userGroups=r||[],s.push(p),await ha(p)&&o.push(p)}let l=await fs(n),d=await t.features.isSSOEnforced();return t.quotas.addUsers(s.length,o.length,async()=>{for(let f of s)d&&delete f.password,i.push(t.buildUser(f,{hashPassword:!0,requirePassword:!d},n,void 0,l));let p=await Promise.all(i);await Ca(p);for(let f of p)await Ft.addUser(n,f._id,f.email),await Vm(f,void 0);let m=p.map(f=>({_id:f._id,email:f.email}));if(Array.isArray(m)&&r){let f=[],g=m.map(y=>y._id);for(let y of r)f.push(t.groups.addUsers(y,g));await Promise.all(f)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ae(),n={successful:[],unsuccessful:[]},i=await Yc(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 Ca(a),l=(await mi(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await ma(m._id)).ssoId;g&&(await kc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await s0(m)}await zr().bulkDocs(d),await t.quotas.removeUsers(a.length,l);let p={};return o.reduce((m,f)=>(m[f._id]=f,m),p),u.forEach(m=>{let f=p[m.id].email;m.ok?n.successful.push({_id:m.id,email:f}):n.unsuccessful.push({_id:m.id,email:f,reason:"Database error"})}),n}static async destroy(e){let r=ae(),n=await r.get(e),i=n._id;if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let o=n.email;if(await sn(o))throw n.userId===fr()._id?new $e('Please visit "Account" to delete this user',400):new $e("Account holder cannot be deleted",400)}await Ft.removeUser(n),await r.remove(i,n._rev);let s=await ha(n)?1:0;await t.quotas.removeUsers(1,s),await Gm(n),await cn.invalidateUser(i),await gi(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 as(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 Na(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function cl(t,e){let n=(await ae().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Na(n)),n}async function a0(){let t=ae(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${We}`})).rows.map(n=>n.id)}async function u0(){let t=ae(),e=`us${w}`;return(await t.allDocs({startkey:e,endkey:`${e}${We}`,include_docs:!0})).rows.map(n=>n.doc)}async function Ca(t){return await ae().bulkDocs(t)}async function yi(t,e){let n=await ae().get(t);return e?.cleanup&&(n=Na(n)),n}async function $t(t,e){if(t==null)throw"Must supply an email address to view";let r=await yr("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=Na(n)),n}async function c0(t){try{let e=await $t(t);if(Array.isArray(e)||e!=null)return!0}catch{return!1}return!1}async function ll(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=wc(t,{include_docs:!0});n.startkey=e&&e.startkey?e.startkey:n.startkey;let i=await yr("by_app",n);i||(i=[]);let s=Array.isArray(i)?i:[i];return r?.cleanup&&(s=Na(s)),s}async function Km(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 ae().find({selector:{$or:n,_id:{$regex:"^us_"}},limit:e?.limit||50})).docs}function J_(t,e){if(e)return Rc(ut(t),e._id)}async function z_(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 yr("by_email2",{...e,startkey:i,endkey:`${n}${We}`});s||(s=[]);let o=Array.isArray(s)?s:[s];return r?.cleanup&&(o=Na(o)),o}var l0=8;async function Z_({bookmark:t,query:e,appId:r,limit:n}={}){let i=ae(),s=n??l0,a={include_docs:!0,limit:s+1};t&&(a.startkey=t);let u,c="_id",l;return e?.equal?._id?u=[await yi(e.equal._id)]:r?(u=await ll(r,a),l=d=>J_(r,d)):e?.string?.email?(u=await z_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await cl(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(li(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=Wr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(li(null,a))).rows.map(p=>p.doc),qf(u,s,{paginate:!0,property:c,getKey:l})}async function d0(){return(await Hf("by_email2",{limit:0,include_docs:!1})).total_rows}async function p0(){let t=0;async function e(r){let n=await Z_({bookmark:r}),i=await mi(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 Ym(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 m0(t,e){let r=ut(e);t.builder??={},t.builder.creator=!0,t.builder.apps??=[],t.builder.apps.push(r),await Zt.save(t,{hashPassword:!1})}async function h0(t,e){let r=ut(e);t.builder&&t.builder.apps?.includes(r)&&(t.builder.apps=t.builder.apps.filter(n=>n!==r)),await Zt.save(t,{hashPassword:!1})}var X_=3600;async function g0(t,e){let n=await Uf(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await sn(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function y0(t){let e=await Zt.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 sn(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function Pa({userId:t,tenantId:e,email:r,populateUser:n}){if(n||(n=g0),!e)try{e=Q()}catch{e=await Ft.lookupTenantId(t)}let i=await jo(),s=await i.get(t);return s||(s=await n(t,e,r),await i.store(t,s,X_)),s&&!s.tenantId&&e&&(s.tenantId=e),s.userGroups&&!at.users.isGlobalBuilder(s)&&await Qe(e,async()=>{let o=await Zt.getGroupBuilderAppIds(s);if(o.length){let a=s.builder?.apps||[];s.builder={apps:[...new Set(a.concat(o))]}}}),s}async function E0(t){let e=await jo(),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 y0(n);s=o.notFoundIds;for(let a of o.users)await e.store(a._id,a,X_);i.push(...o.users)}return{users:i,notFoundIds:s}}async function La(t){await(await jo()).delete(t)}var eh={};N(eh,{Writethrough:()=>Zm});var ws={};N(ws,{AUTO_EXTEND_POLLING_MS:()=>tI,doWithLock:()=>Jm,newRedlock:()=>Ei});var eI=V(require("redlock"));async function A0(t,e){if(t==="custom")return Ei(e);switch(t){case"try_once":return Ei(Rs.TRY_ONCE);case"try_twice":return Ei(Rs.TRY_TWICE);case"default":return Ei(Rs.DEFAULT);case"delay_500":return Ei(Rs.DELAY_500);case"auto_extend":return Ei(Rs.AUTO_EXTEND);default:throw Ur.unreachable(t)}}var Rs={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function Ei(t={}){let e={...Rs.DEFAULT,...t},n=(await Lf()).client;return new eI.default([n],e)}function S0(t){let r=`lock:${t.systemLock?"system":Q()}_${t.name}`;return t.resource&&(r=r+`_${t.resource}`),r}var tI=De.fromSeconds(10).toMs();async function Jm(t,e){let r=await A0(t.type,t.customOptions),n,i;try{let s=S0(t),o=t.type==="auto_extend"?tI: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 rI=1e4,zm=null;async function dl(){if(!zm){let t=await Pf();zm=new si(t)}return zm}function Ua(t,e){return t.name+e}function Xm(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function _0(t,e,r=rI){let n=await dl(),i=e._id,s;i&&(s=await n.get(Ua(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await Jm({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;ps("Ignoring conflict in write-through cache")}})).executed||ps("Ignoring redlock conflict in write-through cache")),s=Xm(a,o?null:s?.lastWrite),a._id&&await n.store(Ua(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function I0(t,e){let r=await dl(),n=Ua(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=Xm(s),await r.store(n,i)}return i.doc}async function O0(t,e){let r=await dl(),n=Ua(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=Xm(s),await r.store(n,i)}return i.doc}async function x0(t,e,r){let n=await dl();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(Ua(t,i))}finally{await t.remove(i,r)}}var Zm=class{constructor(e,r=rI){this.db=e,this.writeRateMs=r}async put(e,r=this.writeRateMs){return _0(this.db,e,r)}async get(e){return I0(this.db,e)}async tryGet(e){return O0(this.db,e)}async remove(e,r){return x0(this.db,e,r)}};var th={};N(th,{createCode:()=>w0,getCode:()=>b0,invalidateCode:()=>D0});var R0=De.fromHours(1).toSeconds();async function w0(t,e){let r=me();return await(await Ho()).store(r,{userId:t,info:e},R0),r}async function b0(t){let r=await(await Ho()).get(t);if(!r)throw new Error("Provided information is not valid, cannot reset password - please try again.");return r}async function D0(t){await(await Ho()).delete(t)}var nh={};N(nh,{DocWritethrough:()=>rh,DocWritethroughProcessor:()=>Ma,getProcessor:()=>v0,init:()=>nI});var C0=100,pl,Ma=class t{static get queue(){return t._queue||(t._queue=new Gt("docWritethroughQueue",{jobOptions:{attempts:C0}})),t._queue}init(){return t.queue.process(async e=>{try{await this.persistToDb(e.data)}catch(r){throw r.status===409?new Error(`Conflict persisting message ${e.id}. Attempt ${e.attemptsMade}`):r}}),this}async persistToDb({dbName:e,docId:r,data:n}){if(r.startsWith("scimlog"))return;let i=qe(e),s;try{s=await i.get(r)}catch{s={_id:r}}s={...s,...n},await i.put(s)}},rh=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await Ma.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function nI(){return pl=new Ma().init(),pl}function v0(){return pl||nI()}function fl(t){return`config${w}${t}`}async function It(t){let e=ae();try{return await e.get(fl(t))}catch(r){if(r.status===404)return;throw r}}async function N0(t){return t._id||(t._id=fl(t.type)),ae().put(t)}async function Is(){let t=await It("settings");return t||(t={_id:fl("settings"),type:"settings",config:{}}),t.config.platformUrl=await ka({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await Zc({config:t.config}),t}async function oh(){return(await Is()).config}async function ka(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=Q();e.includes("localhost:")||(e=e.replace("://",`://${r}.`))}else if(h.SELF_HOSTED){let r=t?.config?t.config:(await It("settings"))?.config;r?.platformUrl&&(e=r.platformUrl)}return e}var Zc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Jr(ve.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await It("settings"))?.config;if(n?.analyticsEnabled===!1)return!1;if(n?.analyticsEnabled===!0)return!0});if(e!==void 0)return e;let r=h.ENABLE_ANALYTICS;return!(r===0||r===!1)};async function P0(){return await It("google")}async function ml(){return(await P0())?.config}async function ah(){if(!h.SELF_HOSTED)return ih();let t=await ml();return(!t||!t.activated)&&(t=ih()),t}function ih(){if(h.GOOGLE_CLIENT_ID&&h.GOOGLE_CLIENT_SECRET)return{clientID:h.GOOGLE_CLIENT_ID,clientSecret:h.GOOGLE_CLIENT_SECRET,activated:!0}}async function L0(){return It("logos_oidc")}async function U0(){return It("oidc")}async function M0(){let t=(await U0())?.config;return t?.configs&&t.configs[0]}async function uh(t){let e=(await It("oidc"))?.config;return e&&e.configs.filter(r=>r.uuid===t)[0]}async function iI(){return It("smtp")}async function k0(t){let e=await iI();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 F0(){return(await It("scim"))?.config}async function B0(){return It("ai")}async function G0(){return It("recaptcha")}var Eh={};N(Eh,{AccessController:()=>dh,BUILTIN_ROLE_IDS:()=>ph,Role:()=>ln,RoleHierarchyTraversal:()=>hl,RoleIDVersion:()=>fh,builtinRoleToNumber:()=>Fa,checkForRoleResourceArray:()=>uI,externalRole:()=>j0,findRole:()=>Ba,getAllRoleIds:()=>J0,getAllRoles:()=>yh,getBuiltinRole:()=>oI,getBuiltinRoles:()=>hh,getDBRoleID:()=>cI,getExternalRoleID:()=>dn,getExternalRoleIDs:()=>lI,getRole:()=>H0,getUserRoleHierarchy:()=>gh,getUserRoleIdHierarchy:()=>aI,isBuiltin:()=>Ti,lowerBuiltinRoleID:()=>Q0,prefixRoleIDNoBuiltin:()=>lh,roleIDsAreEqual:()=>Ot,roleToNumber:()=>q0,saveRoles:()=>K0,validInherits:()=>W0});var ch=V(require("semver"));var gl=V(require("lodash/fp/cloneDeep"));var sI=require("lodash");var ph={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},ye={...ph,BUILDER:"BUILDER"},fh={UUID:void 0,NAME:"name"};function $0(t,e){return Array.isArray(e)?e.filter(r=>t.includes(r)).length===e.length:t.includes(e)}var ln=class{constructor(e,r,n,i){this.permissions={};this._id=e,this.name=r,this.uiMetadata=i,this.permissionId=n,this.version=fh.NAME}addInheritance(e){return e&&typeof e=="string"?e=lh(e):e&&Array.isArray(e)&&(e=e.map(lh)),this.inherits=e,this}},hl=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=Ba(s,n,r);o&&(i=i.concat(this.walk(o)))}else{let s=[],o=e;for(;o&&o.inherits&&!$0(s,o.inherits);){if(Array.isArray(o.inherits))return i.concat(this.walk(o));if(s.push(o.inherits),o=Ba(o.inherits,n,r),o&&i.push(o),ze.roles.checkForRoleInheritanceLoops(i))break}}return(0,sI.uniqBy)(i,s=>s._id)}},mh={ADMIN:new ln(ye.ADMIN,ye.ADMIN,"admin",{displayName:"App admin",description:"Can do everything",color:"var(--spectrum-global-color-static-red-400)"}).addInheritance(ye.POWER),POWER:new ln(ye.POWER,ye.POWER,"power",{displayName:"App power user",description:"An app user with more access",color:"var(--spectrum-global-color-static-orange-400)"}).addInheritance(ye.BASIC),BASIC:new ln(ye.BASIC,ye.BASIC,"write",{displayName:"App user",description:"Any logged in user",color:"var(--spectrum-global-color-static-green-400)"}).addInheritance(ye.PUBLIC),PUBLIC:new ln(ye.PUBLIC,ye.PUBLIC,"public",{displayName:"Public user",description:"Accessible to anyone",color:"var(--spectrum-global-color-static-blue-400)"}),BUILDER:new ln(ye.BUILDER,ye.BUILDER,"admin",{displayName:"Builder user",description:"Users that can edit this app",color:"var(--spectrum-global-color-static-magenta-600)"})};function hh(){return(0,gl.default)(mh)}function Ti(t){return Object.values(ph).includes(t)}function lh(t){return Ti(t)?t:hr(t)}function oI(t){let e=Object.values(mh).find(r=>t.includes(r._id));if(e)return(0,gl.default)(e)}function W0(t,e){if(!e)return!1;let r=n=>t.find(i=>Ot(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 Fa(t){let e=hh(),r=Object.values(e).length+1;if(Ot(t,ye.ADMIN)||Ot(t,ye.BUILDER))return r;let n=e[t],i=0;do{if(!n)break;if(Array.isArray(n.inherits))throw new Error("Built-in roles don't support multi-inheritance");n=e[n.inherits],i++}while(n!==null);return i}async function q0(t){if(Ti(t))return Fa(t);let e=await gh(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=>Ot(a._id,s));if(o)return r(o)+1}).filter(s=>s).sort().pop();if(i!=null)return i}else if(Ti(n.inherits))return Fa(n.inherits)+1;return 0};return Math.max(...e.map(r))}function Q0(t,e){return t?e&&Fa(t)>Fa(e)?e:t:e}function Ot(t,e){return hr(t)===hr(e)}function j0(t){let e;return t._id&&(e=dn(t._id)),{...t,_id:e,inherits:lI(t.inherits,t.version)}}function Ba(t,e,r){let n=oI(t);n||(t=hr(t));let i=e.find(s=>s._id&&Ot(s._id,t));return!i&&!Ti(t)&&r?.defaultPublic?(0,gl.default)(mh.PUBLIC):(n=Object.assign(n||{},i),n?._id&&(n._id=dn(n._id,n.version)),Object.keys(n).length===0?void 0:n)}async function H0(t,e){let r=ss(),n=[];if(!Ti(t)){let i=await r.tryGet(cI(t));i&&n.push(i)}return Ba(t,n,e)}async function K0(t){await ss().bulkDocs(t.filter(r=>r._id).map(r=>({...r,_id:hr(r._id)})))}async function Y0(t,e){let r=await yh();if(Ot(t,ye.ADMIN))return r;let n=Ba(t,r,e),i=[];return n&&(i=new hl(r,e).walk(n)),i}async function aI(t){return(await gh(t)).map(r=>r._id)}async function gh(t,e){return Y0(t,e)}function uI(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 J0(t){return(await yh(t)).map(r=>r._id)}async function yh(t){if(t)return ct(t,e);{let r;try{r=ss()}catch{}return e(r)}async function e(r){let n=[];r&&(n=(await r.allDocs(bc(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=dn(a._id,a.version)));let i=hh(),s=[];!r||await z0(r)?s=[ye.ADMIN,ye.POWER,ye.BASIC,ye.PUBLIC]:s=[ye.ADMIN,ye.BASIC,ye.PUBLIC];for(let o of s){let a=i[o],u=n.filter(c=>Ot(c._id,o))[0];u==null?n.push(a||i.BASIC):(n=n.filter(c=>c._id!==u._id),u._id=dn(a._id,u.version),n.push({...a,...u,name:a.name,_id:dn(a._id,a.version)}))}for(let o of n)if(o.permissions)for(let a of Object.keys(o.permissions))o.permissions=uI(o.permissions,a);return n}}async function z0(t){let r=(await t.tryGet("app_metadata"))?.creationVersion;return!r||!ch.default.valid(r)?!0:!ch.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var dh=class{constructor(){this.userHierarchies={}}async hasAccess(e,r){if(e==null||e===""||Ot(e,ye.BUILDER)||Ot(r,e)||Ot(r,ye.BUILDER))return!0;let n=r?this.userHierarchies[r]:null;return!n&&r&&(n=await aI(r),this.userHierarchies[r]=n),n?.find(i=>Ot(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 cI(t){return t?.startsWith("role")?t:hr(t)}function dn(t,e){if(t.startsWith(`role${w}`)&&(Ti(t)||e===fh.NAME)){let r=t.split(w);return r.shift(),r.join(w)}return t}function lI(t,e){return t&&(typeof t=="string"?dn(t,e):t.map(r=>dn(r,e)))}var Th={};N(Th,{BUILDER:()=>rF,BUILTIN_PERMISSIONS:()=>yl,CREATOR:()=>nF,GLOBAL_BUILDER:()=>iF,PermissionImpl:()=>Ee,PermissionLevel:()=>Ns,PermissionType:()=>Ya,doesHaveBasePermission:()=>eF,getAllowedLevels:()=>mI,getBuiltinPermissionByID:()=>X0,getBuiltinPermissions:()=>Z0,isPermissionLevelHigherThanRead:()=>tF,levelToNumber:()=>fI});var dI=V(require("lodash/flatten")),pI=V(require("lodash/fp/cloneDeep")),Ee=class{constructor(e,r){this.type=e,this.level=r}};function fI(t){switch(t){case"execute":return 0;case"read":return 1;case"write":return 2;case"admin":return 3;default:return-1}}function mI(t){switch(t){case"execute":return["execute"];case"read":return["execute","read"];case"write":case"admin":return["execute","read","write"];default:return[]}}var yl={PUBLIC:{_id:"public",name:"Public",permissions:[new Ee("webhook","execute")]},READ_ONLY:{_id:"read_only",name:"Read only",permissions:[new Ee("query","read"),new Ee("table","read"),new Ee("app","read")]},WRITE:{_id:"write",name:"Read/Write",permissions:[new Ee("query","write"),new Ee("table","write"),new Ee("automation","execute"),new Ee("legacy_view","read"),new Ee("app","read")]},POWER:{_id:"power",name:"Power",permissions:[new Ee("table","write"),new Ee("user","read"),new Ee("automation","execute"),new Ee("webhook","read"),new Ee("legacy_view","read"),new Ee("app","read")]},ADMIN:{_id:"admin",name:"Admin",permissions:[new Ee("table","admin"),new Ee("user","admin"),new Ee("automation","admin"),new Ee("webhook","read"),new Ee("query","admin"),new Ee("legacy_view","read"),new Ee("app","read")]}};function Z0(){return(0,pI.default)(yl)}function X0(t){return Object.values(yl).find(r=>r._id===t)}function eF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(yl),s=(0,dI.default)(i.filter(o=>n.indexOf(o._id)!==-1).map(o=>o.permissions));for(let o of s)if(o.type===t&&mI(o.level).indexOf(e)!==-1)return!0;return!1}function tF(t){return fI(t)>1}var rF="builder",nF="creator",iF="globalBuilder";var _h={};N(_h,{FlagSet:()=>Tl,all:()=>uF,flags:()=>Ah,getEnvFlags:()=>EI,init:()=>sF,isEnabled:()=>aF,parseEnvFlags:()=>Sl,shutdown:()=>oF,testutils:()=>Sh});var Al=V(require("crypto"));var hI=require("posthog-node"),gI=V(require("dd-trace"));var yI=require("lodash");var El;function sF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),El=new hI.PostHog(h.POSTHOG_TOKEN,{host:h.POSTHOG_API_HOST,personalApiKey:h.POSTHOG_PERSONAL_TOKEN,featureFlagsPollingInterval:De.fromMinutes(3).toMs(),...t})):console.log("posthog disabled")}function oF(){El?.shutdown()}function Sl(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 Sl(h.TENANT_FEATURE_FLAGS||"")}var Tl=class{constructor(e){this.flagSchema=e;this.setId=Al.randomUUID()}defaults(){return(0,yI.cloneDeep)(this.flagSchema)}isFlagName(e){return this.flagSchema[e]!==void 0}async isEnabled(e){return(await this.fetch())[e]}async fetch(){return await gI.default.trace("features.fetch",async e=>{let r=If(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;if(mc())return i;for(let{tenantId:d,key:p,value:m}of EI())if(!(!d||d!=="*"&&d!==s)&&(n.readFromEnvironmentVars=!0,m===!1&&o.add(p),!!this.isFlagName(p))){if(typeof i[p]!="boolean")throw new Error(`Feature: ${p} is not a boolean`);i[p]=m,n[`flags.${p}.source`]="environment"}let a=fr(),u=a?._id;if(!u){let d=Sf();d&&(u=Al.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,El&&u){n.readFromPostHog=!0;let d=await Is(),p={tenantId:c},m={tenant:{id:c}};d.config.createdVersion&&(m.tenant.createdVersion=d.config.createdVersion),d.createdAt&&(m.tenant.createdAt=`${d.createdAt}`);let f=await El.getAllFlags(u,{personProperties:p,onlyEvaluateLocally:!0,groups:{tenant:c},groupProperties:m});for(let[g,y]of Object.entries(f))if(this.isFlagName(g)){if(typeof y!="boolean"){console.warn(`Invalid value for posthog flag "${g}": ${y}`);continue}if(!(i[g]===!0||o.has(g)))try{i[g]=y,n[`flags.${g}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${g}": ${y}`,T)}}}let l=xf();for(let[d,p]of Object.entries(l))this.isFlagName(d)&&typeof p=="boolean"&&(i[d]=p,n[`flags.${d}.source`]="override");Of(this.setId,i);for(let[d,p]of Object.entries(i))n[`flags.${d}.value`]=p;return e?.addTags(n),i})}},Ah=new Tl(ig);async function aF(t){return await Ah.isEnabled(t)}async function uF(){return await Ah.fetch()}var Sh={};N(Sh,{setFeatureFlags:()=>TI,withFeatureFlags:()=>dF});function cF(){let t={};for(let{tenantId:e,key:r,value:n}of Sl(process.env.TENANT_FEATURE_FLAGS||"")){let i=t[e]||{};i[r]!==!1&&(i[r]=n,t[e]=i)}return t}function lF(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=cF();for(let[i,s]of Object.entries(e)){let o=r[t]||{};o[i]=s,r[t]=o}let n=lF(r);return No({TENANT_FEATURE_FLAGS:n})}function dF(t,e,r){let n=TI(t,e),i=r();return i instanceof Promise?i.finally(n):(n(),i)}var Lh={};N(Lh,{adminOnly:()=>Nl,auditLog:()=>bl,authError:()=>Be,buildAuthMiddleware:()=>KF,buildCsrfMiddleware:()=>JF,buildTenancyMiddleware:()=>YF,builderOnly:()=>Ll,builderOrAdmin:()=>Pl,google:()=>xr,internalApi:()=>Cl,joiValidator:()=>Va,oidc:()=>Rr,passport:()=>zF,platformLogout:()=>rB,refreshOAuthToken:()=>eB,ssoCallbackUrl:()=>pn,updateUserOAuth:()=>tB});var Ph={};N(Ph,{adminOnly:()=>Nl,auditLog:()=>bl,authError:()=>Be,authenticated:()=>wl,builderOnly:()=>Ll,builderOrAdmin:()=>Pl,correlation:()=>PI,csp:()=>BI,csrf:()=>vl,datasource:()=>jF,errorHandling:()=>UI,featureFlagCookie:()=>GI,google:()=>xr,internalApi:()=>Cl,ip:()=>$I,joiValidator:()=>Va,local:()=>bs,oidc:()=>Rr,pino:()=>vI,querystringToBody:()=>MI,ssoCallbackUrl:()=>pn,tenancy:()=>Dl});var bs={};N(bs,{authenticate:()=>mF,options:()=>fF});function Be(t,e,r){return t(r,null,{message:e})}async function pn(t,e){if(e&&e.callbackURL)return e.callbackURL;let r=await oh(),n="/api/global/auth";return Hr()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var Ih="Invalid credentials",pF="This account has expired. Please reset your password",fF={passReqToCallback:!0};async function mF(t,e,r,n){if(!e)return Be(n,"Email Required");if(!r)return Be(n,"Password Required");let i=await $t(e);return i==null?(console.info(`user=${e} could not be found`),Be(n,Ih)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Be(n,Ih)):i.password?await mm(r,i.password)?(delete i.password,n(null,i)):Be(n,Ih):(console.info(`user=${e} has no password set`,i),Be(n,pF))}var xr={};N(xr,{buildVerifyFn:()=>_I,getCallbackUrl:()=>yF,strategyFactory:()=>Oh});var Ga=t=>Promise.resolve(t);async function _l(t,e=!0,r,n){if(!n)throw new Error("Save user function must be provided");if(!t.userId)return Be(r,"sso user id required");if(!t.email)return Be(r,"sso user email required");let i=us(t.userId),s;try{s=await yi(i)}catch(a){if(!a.status||a.status!==404)return Be(r,"Unexpected error when retrieving existing user",a)}if(s||(s=await $t(t.email)),!s&&e)return Be(r,"Email does not yet exist. You must set up your local budibase account first.");s||(s={_id:i,email:t.email,roles:{},tenantId:Q()});let o=await hF(s,t);o.forceResetPassword=!1;try{delete o.password,o=await n(o,{hashPassword:!1,requirePassword:!1})}catch(a){return Be(r,"Error saving user",a)}return r(null,o)}async function hF(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 _I(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 _l(s,!0,i,t)}}async function Oh(t,e,r){try{let{clientID:n,clientSecret:i}=t;if(!n||!i)throw new Error("Configuration invalid. Must contain google clientID and clientSecret");let s=_I(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 yF(t){return pn("google",t)}var Rr={};N(Rr,{buildVerifyFn:()=>OI,fetchStrategyConfig:()=>SF,getCallbackUrl:()=>_F,strategyFactory:()=>AF});var II=V(require("node-fetch"));var EF=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:TF(n,i),oauth2:{accessToken:s,refreshToken:o}};return _l(l,!1,c,t)}}function TF(t,e){if(t._json.email)return t._json.email;if(e.email)return e.email;let r=e.preferred_username;if(r&&Em(r))return r;throw new Error(`Could not determine user email from profile ${JSON.stringify(t)} and claims ${JSON.stringify(e)}`)}async function AF(t,e){try{let r=OI(e),n=new EF(t,r);return n.name="oidc",n}catch(r){throw new Error(`Error constructing OIDC authentication strategy - ${r}`)}}async function SF(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,II.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 _F(){return pn("oidc")}var xh={};N(xh,{postAuth:()=>xF,preAuth:()=>OF});var IF=require("passport-google-oauth").OAuth2Strategy;async function xI(){let t=await ah();if(!t)throw new Error("No google configuration found");return t}async function OF(t,e,r){let n=await xI(),s=`${await ka({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await Oh(n,s,Ga);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 xF(t,e,r){let n=await xI(),s=`${await ka({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=Tr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new IF({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{on(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 mr(`datasource:creation:${o.appId}:google:${l}`,{tokens:u}),e.redirect(`${c}/new?continue_google_setup=${l}`)})(e,r)}var RF=/\/:(.*?)(\/.*)?$/g,Ai=t=>t?t.map(e=>{let r=e.route,n=e.method,i=r.match(RF);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}}):[],Si=(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 vh={};N(vh,{SecretOption:()=>bI,decrypt:()=>Ch,decryptFile:()=>NF,encrypt:()=>DF,encryptFile:()=>CF,getSecret:()=>Dh});var wr=V(require("crypto")),fn=V(require("fs")),wh=V(require("zlib"));var Rh=require("path"),Il="aes-256-ctr",wI="-",wF=1e4,bF=32,Ol=16,bh=16,bI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(bI||{});function Dh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function xl(t,e){return wr.default.pbkdf2Sync(t,new Uint8Array(e),wF,bF,"sha512")}function DF(t,e="api"){let r=wr.default.randomBytes(Ol),n=xl(Dh(e),r),i=wr.default.createCipheriv(Il,new Uint8Array(n),new Uint8Array(r)),s=i.update(t,"utf8"),o=i.final(),a=Buffer.concat([new Uint8Array(s),new Uint8Array(o)]).toString("hex");return`${r.toString("hex")}${wI}${a}`}function Ch(t,e="api"){let[r,n]=t.split(wI),i=Buffer.from(r,"hex"),s=xl(Dh(e),i),o=wr.default.createDecipheriv(Il,new Uint8Array(s),new Uint8Array(i)),a=o.update(n,"hex"),u=o.final();return Buffer.concat([new Uint8Array(a),new Uint8Array(u)]).toString()}async function CF({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,Rh.join)(t,e);if(fn.default.lstatSync(i).isDirectory())throw new Error("Unable to encrypt directory");let s=fn.default.createReadStream(i),o=fn.default.createWriteStream((0,Rh.join)(t,n)),a=wr.default.randomBytes(Ol),u=wr.default.randomBytes(bh),c=xl(r,a),l=wr.default.createCipheriv(Il,new Uint8Array(c),new Uint8Array(u));return o.write(a),o.write(u),s.pipe(wh.default.createGzip()).pipe(l).pipe(o),new Promise(d=>{o.on("finish",()=>{d({filename:n,dir:t})})})}async function vF(t){let e=fn.default.createReadStream(t),r=await RI(e,Ol),n=await RI(e,bh);return e.close(),{salt:r,iv:n}}async function NF(t,e,r){if(fn.default.lstatSync(t).isDirectory())throw new Error("Unable to encrypt directory");let{salt:n,iv:i}=await vF(t),s=fn.default.createReadStream(t,{start:Ol+bh}),o=fn.default.createWriteStream(e),a=xl(r,n),u=wr.default.createDecipheriv(Il,new Uint8Array(a),new Uint8Array(i)),c=wh.default.createGunzip();return s.pipe(u).pipe(c).pipe(o),new Promise((l,d)=>{o.on("finish",()=>{o.close(),l()}),s.on("error",p=>{o.close(),d(p)}),u.on("error",p=>{o.close(),d(p)}),c.on("error",p=>{o.close(),d(p)}),o.on("error",p=>{o.close(),d(p)})})}function RI(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.map(a=>new Uint8Array(a))))}),t.on("end",()=>{n(new Error("Insufficient data in the stream."))}),t.on("error",o=>{n(o)})})}var CI=V(require("dd-trace")),PF=h.SESSION_UPDATE_PERIOD?parseInt(h.SESSION_UPDATE_PERIOD):60*1e3;function LF(){return new Date(Date.now()-PF).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 UF(t,e){if(fa(t))return{valid:!0,user:void 0};let n=Ch(t).split(w)[0];return Qe(n,async()=>{let i;try{let s=ae();i=await yr("by_api_key",{key:t},s)}catch{i=void 0}if(i)return{valid:!0,user:await Pa({userId:i,tenantId:n,populateUser:e})};throw new ys})}function Rl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function wl(t=[],e={publicAllowed:!1}){let r=t?Ai(t):[];return async(n,i)=>{let s=!1,o=Rl(n,"x-budibase-api-version");Si(n,r)&&(s=!0);try{let u=Rl(n,"x-budibase-token"),c=Tr(n,"budibase:auth")||Uc(u),l=Rl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=Rl(n,"x-budibase-tenant-id"),p=!1,m,f=!1,g;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await Wm(_,T),e&&e.populateUser?m=await Pa({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await Pa({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<LF()&&await $m(S),p=!0}catch(R){p=!1,console.error(`Auth Error: ${R.message}`),on(n,"budibase:auth")}}if(!p&&l){let T=e.populateUser?e.populateUser(n):null,{valid:_,user:S}=await UF(l,T);_&&(p=!0,g="api_key",m=S,f=!S)}!m&&d?m={tenantId:d}:m&&"password"in m&&delete m.password,p||(p=!1);let y=T=>T&&T.email;return y(m)&&CI.default.setUser({id:m._id,tenantId:m.tenantId,budibaseAccess:m.budibaseAccess,status:m.status}),DI(n,{authenticated:p,user:m,internal:f,version:o,publicEndpoint:s,loginMethod:g}),y(m)?tf(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?on(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 bl=async(t,e)=>e();function Dl(t,e,r={noTenancyRequired:!1}){let n=Ai(t),i=Ai(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Si(s,i)};!!Si(s,n)||(u.excludeStrategies=["query"]);let l=Jo(s,u);return s.set("x-budibase-tenant-id",l),Qe(l,o)}}async function Cl(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),fa(r)||t.throw(403,"Unauthorized"),e()}var MF=["GET","HEAD","OPTIONS"],kF=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function vl(t={noCsrfPatterns:[]}){let e=Ai(t.noCsrfPatterns);return async(r,n)=>{if(Si(r,e)||MF.indexOf(r.method)!==-1)return n();let s=r.get("content-type")?r.get("content-type").toLowerCase():"";if(!kF.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 Nl=async(t,e)=>(!t.internal&&!an(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function Pl(t,e){let r=Me(),n=h.isWorker()||!r?St:h.isApps()?Es:void 0;if(!n)throw new Error("Service name unknown - middleware inactive.");return!t.internal&&!n(t.user,r)&&!an(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}async function Ll(t,e){let r=Me(),n;if(h.isWorker()||!r?n=St:h.isApps()&&(n=Es),!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 FF=require("koa-pino-logger"),BF=require("correlation-id");function GF(){return{logger:Pc,genReqId:BF.getId,autoLogging:{ignore:t=>!!t.url?.includes("/health")},serializers:{req:t=>({method:t.method,url:t.url,correlationId:t.id}),res:t=>({status:t.statusCode})}}}function VF(){return h.HTTP_LOGGING?FF(GF()):(t,e)=>e()}var vI=VF();var NI=require("uuid"),$F=require("correlation-id"),PI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,NI.v4)()),$F.withId(r,()=>e())};function LI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of dA){let r=h[e];if(!(typeof r!="string"||r==="")&&t.includes(r))return!0}return!1}async function UI(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:Qc(r)};if(LI(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 MI(t,e){let r=t.request.query?.query;if(t.request.method.toLowerCase()!=="get"&&t.throw(500,"Query to download middleware can only be used for get requests."),!r)return e();let n=decodeURIComponent(r),i;try{i=JSON.parse(n)}catch{return e()}return t.request.body=i,e()}var FI=V(require("crypto"));var kI={"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'"]},WF=/^[A-Za-z0-9-*:/.]+$/,BI=async(t,e)=>{let r=FI.default.randomBytes(16).toString("base64");t.state.nonce=r;let n={...kI};if(n["script-src"]=[...kI["script-src"],`'nonce-${r}'`],t.user?.license?.features.includes("customAppScripts")&&t.appId)try{let o=await ta.getAppMetadata(t.appId);if("name"in o)for(let a of o.scripts||[]){let u=(a.cspWhitelist||"").split(`
38
+ `).filter(c=>WF.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 GI=async(t,e)=>{let n=Tr(t,"budibase:featureflags")?.flags||{};await Rf(n,async()=>{await e()})};var Va={};N(Va,{body:()=>qF,params:()=>QF});var Nh=V(require("joi"));function VI(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:Nh.default.any().optional(),updatedAt:Nh.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 qF(t,e){return VI(t,"body",e)}function QF(t,e){return VI(t,"params",e)}async function $I(t,e){return t.ip?await _f(t.ip,()=>e()):e()}var jF={google:xh};var WI=require("koa-passport"),HF=require("passport-local").Strategy,Ul=require("passport-oauth2-refresh"),KF=wl,YF=Dl,JF=vl,zF=WI;WI.use(new HF(bs.options,bs.authenticate));async function ZF(t,e){let r=await Rr.getCallbackUrl(),n,i;try{if(n=await Rr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Rr.strategyFactory(n,Ga)}catch{throw new Error("Could not refresh OAuth Token")}return Ul.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Ul.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function XF(t,e){let r=await xr.getCallbackUrl(t),n;try{n=await xr.strategyFactory(t,r,Ga)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Ul.use(n),new Promise(i=>{Ul.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function eB(t,e,r){switch(e){case"oidc":{if(!r)return{err:{data:"OIDC config id not provided"}};let n=await uh(r);return n?ZF(n,t):{err:{data:"OIDC configuration not found"}}}case"google":{let n=await ml();return n?XF(n,t):{err:{data:"Google configuration not found"}}}}}async function tB(t,e){let r={accessToken:e.accessToken,refreshToken:e.refreshToken};try{let n=ae(),i=await n.get(t);typeof r.refreshToken!="string"&&delete r.refreshToken,i.oauth2={...i.oauth2,...r},await n.put(i),await La(t)}catch(n){console.error("Could not update OAuth details for current user",n)}}async function rB(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=Tr(e,"budibase:auth"),s=await Da(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):on(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await gi(r,{sessionIds:o,reason:"logout"}),await al.logout(e.user?.email),await La(r)}var Mh={};N(Mh,{validate:()=>aB});var C=V(require("joi")),nB=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Uh(t,e){let{error:r}=t.validate(e);if(r)throw r}function iB(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)});Uh(e,t)}function sB(t){let e=C.default.object({type:C.default.string().allow(...Object.values(Vl)).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(Gl)),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($l).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(...nB),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()}))})});Uh(n,t)}function oB(t){let e=C.default.object().pattern(C.default.string(),{type:C.default.string().allow(...Object.values(X)).required(),customType:C.default.string().allow(...Object.values(fe)),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(...sg).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});Uh(n,t)}function aB(t){switch(t?.type){case"component":iB(t);break;case"datasource":sB(t);break;case"automation":oB(t);break;default:throw new Error(`Unknown plugin type - check schema.json: ${t.type}`)}}var kh={};N(kh,{Client:()=>je,clients:()=>Yr,locks:()=>ws,utils:()=>yc});var Fh={};N(Fh,{isBlacklisted:()=>cB,refreshBlacklist:()=>HI});var qI=V(require("dns")),kl=V(require("net"));var QI=require("util"),Ml,uB=(0,QI.promisify)(qI.default.lookup);async function jI(t){return kl.default.isIP(t)||(t.startsWith("http")||(t=`https://${t}`),t=new URL(t).hostname),(await uB(t,{all:!0})).map(r=>r.address)}async function HI(){let e=h.BLACKLIST_IPS?.split(",")||[],r=[];for(let n of e){let i=n.trim();if(kl.default.isIP(i))r.push(i);else{let s=await jI(i);r=r.concat(s)}}Ml=r}async function cB(t){if(Ml||await HI(),Ml?.length===0)return!1;let e;return kl.default.isIP(t)?e=[t]:e=await jI(t),!!Ml?.find(r=>e.includes(r))}var Gh={};N(Gh,{init:()=>dB});var lB={"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,"automation:deleted":t=>t.automationId,"datasource:deleted":t=>t.datasourceId,"table:deleted":t=>t.tableId,"query:deleted":t=>t.queryId,"workspace_app:deleted":t=>t.workspaceAppId,"view:deleted":t=>t.id};function KI(t,e){let r=lB[t];if(!r)throw new Error("Event does not have a method of document ID extraction");return r(e)}var $a=class{constructor(e){this.processors=[];this.processors=e}async processEvent(e,r,n){let i=r.realTenantId,s=KI(e,n);if(!(!i||!s))for(let{events:o,processor:a}of this.processors)o.includes(e)&&await Qe(i,async()=>{await a({id:s,tenantId:i,appId:n.appId})})}shutdown(){return T_()}};var YI,Bh;function dB(t){Or||ol(),Bh||(Bh=new $a(t)),YI||(YI=Or.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await Bh.processEvent(r,n,i)}))}var Yh={};N(Yh,{COUNT_FIELD_NAME:()=>Hh,Sql:()=>iO,SqlTable:()=>Fl,designDoc:()=>Kh,utils:()=>gf});var XI=require("knex");var pB=require("knex");function Vh(t){return["link","formula","ai"].indexOf(t)!==-1}function JI(t,e,r,n,i){let s=e&&e.primary?e.primary:[],o=Object.values(e.schema),a=o.filter(p=>p.meta),u=a.length===o.length,c=[];n||(u?t.primary(a.map(p=>p.name)):s.length===1?(t.increments(s[0]).primary(),c.push(s[0])):t.primary(s));let l=Object.values(e.schema).map(p=>p.foreignKey);for(let[p,m]of Object.entries(e.schema)){let f=n?.schema[p];if(f&&f.type||c.includes(p)||i?.updated===p)continue;let g=m.type;switch(g){case"string":case"options":case"longform":case"barcodeqr":case"bb_reference_single":s.includes(p)?t.string(p,255):t.text(p);break;case"number":if(m.meta&&m.meta.toKey&&m.meta.toTable){let{toKey:y,toTable:T}=m.meta;t.integer(p).unsigned(),t.foreign(p).references(`${T}.${y}`)}else l.indexOf(p)===-1&&t.float(p);break;case"bigint":t.bigint(p);break;case"boolean":t.boolean(p);break;case"datetime":m.timeOnly?t.time(p):t.datetime(p,{useTz:!m.ignoreTimezones});break;case"array":case"bb_reference":ze.schema.isDeprecatedSingleUserColumn(m)?t.text(p):t.json(p);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}=df(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(p);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:Ur.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Vh(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,f])=>!Vh(f.type)&&e.schema[m]==null).forEach(([m,f])=>{i?.old===m||Vh(f.type)||(n.constrained&&n.constrained.indexOf(m)!==-1&&t.dropForeign(m),t.dropColumn(m))}),t}function mB(t,e,r){return t.createTable(e.name,n=>{JI(n,e,r)})}function hB(t,e,r,n,i){return t.alterTable(e.name,s=>{JI(s,e,r,n,i)})}function gB(t,e){return t.dropTable(e.name)}var $h=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,pB.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=mB(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=hB(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=rs(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=gB(r,e.table);break;default:throw new Error("Table operation is of unknown type")}return rs(n)}},Fl=$h;var eO=require("lodash"),Hh="__bb_total";function zI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Wh(){return(h.SQL_MAX_RELATED_ROWS?parseInt(h.SQL_MAX_RELATED_ROWS):null)||500}function yB(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 tO(t){return Array.isArray(t)?t.map(e=>tO(e)):(t.bindings&&(t.bindings=t.bindings.map(e=>typeof e=="boolean"?e?1:0:e)),t)}function ZI(t){return t.sourceType==="internal"||t.sourceId===Yl}function EB(t,e='"'){return t.replace(new RegExp(e,"g"),`${e}${e}`)}function rO(t,e='"'){return`${e}${EB(t,e)}${e}`}function qh(t,e='"'){for(let r in t)typeof t[r]=="string"&&(t[r]=rO(t[r],e));return`[${t.join(",")}]`}function nO(t){return ug.includes(t.type)&&!ze.schema.isDeprecatedSingleUserColumn(t)}var TB={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},Qh=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 Wr.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()&&nO(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(!mf(e))return null}else if(r.dateOnly){let n=ff(e);return n?new Date(n):null}else return r.ignoreTimezones?pc(e)?new Date(e):pf(e)?new Date(e+"Z"):null:pc(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,eO.cloneDeep)(e);for(let r of Object.values(Dr)){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(er)){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(gn)){let n=e[r];if(n)for(let i of Object.keys(n)){let{column:s}=this.splitter.run(i),o=this.table.schema[s];if(!o)continue;let a=n[i];"low"in a&&(a.low=this.parse(a.low,o)),"high"in a&&(a.high=this.parse(a.high,o))}}return e}addJoinFieldCheck(e,r){let n=r.from?.split(".")[0]||"";return e.andWhere(`${n}.fieldName`,"=",r.column)}addRelationshipForFilter(e,r,n,i){let{relationships:s,schema:o,tableAliases:a,table:u}=this.query,c=a?.[u.name]||u.name,l=d=>n.match(new RegExp(`^${d}\\.`));if(!s)return e;for(let d of s){let p=d.tableName,m=a?.[p]||p,f=l(p)||l(m),g=l(d.column);if((f||g)&&d.to&&d.tableName){let y=this.knex.select(this.knex.raw(1)).from({[m]:p}),T=y.clone(),_=hf(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let R=a?.[_.through]||d.through,E=this.tableNameWithSchema(_.through,{alias:R,schema:o});T=T.innerJoin(E,function(){this.on(`${m}.${_.toPrimary}`,"=",`${R}.${_.to}`)}).where(`${R}.${_.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}`,"=",`${R}.${_.from}`)}))})}else{let R=`${m}.${d.to}`,E=`${c}.${d.from}`;T=T.where(R,"=",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(f){return s?.[f]||f}function l(f,g,y,T){let _=(S,R,E)=>{let[I,...B]=R.split("."),L=B.join("."),F=c(I);return S.andWhere(se=>y(se,F?`${F}.${L}`:L,E))};for(let S in f){let R=f[S],E=oa(S),I=E.includes("."),B=n?.relationship&&I,L;if(S==="_complexIdOperator"&&(L=f[S])&&T){let F=c(u);e=T(e,L.id.map(se=>F?`${F}.${se}`:se),L.values)}else if(I)B&&(o&&(e=e.or),e=i.addRelationshipForFilter(e,TB[g],E,(F,se)=>_(se,F,R)));else{let F=c(u);e=y(e,F?`${F}.${E}`:E,R)}}}let d=(f,g,y)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${y.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${y}%`]))),p=(f,g=!1)=>{function y(T){return(o||f===r?.containsAny)&&(T=T.or),f===r?.notContains&&(T=T.not),T}this.client==="pg"?l(f,"contains",(T,_,S)=>{T=y(T);let R=this.getFieldSchema(_),E="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(R)&&(E="",S=`{${S.map(B=>B.substring(1,B.length-1))}}`),g?T.whereRaw(E?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),E?this.knex.raw(qh(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${E} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),E?this.knex.raw(qh(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(T,_,S)=>y(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw(rO(qh(S)))])):l(f,"contains",(T,_,S)=>(S.length===0||(T=T.where(R=>(f===r?.notContains&&(R=R.not),R=R.where(E=>{for(let I of S){f===r?.containsAny?E=E.or:E=E.and;let B=typeof I=="string"?`"${I.toLowerCase()}"`:I;E=E.whereLike(this.knex.raw("COALESCE(LOWER(??), '')",[this.rawQuotedIdentifier(_)]),`%${B}%`)}}),f===r?.notContains&&(R=R.or.whereNull(this.rawQuotedIdentifier(_))),R))),T))};if(r.$and){let{$and:f}=r;for(let g of f.conditions)e=e.where(y=>{this.addFilters(y,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let y of f.conditions)g.orWhere(T=>this.addFilters(T,{...y,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,y)=>{let T=this.getFieldSchema(g),_=Array.isArray(y)?y:[y];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly){for(let S of _)S!=null?f=f.or.whereLike(g,`${S.toISOString().slice(0,10)}%`):f=f.or.whereNull(g);return f}return f.whereIn(g,_)},(f,g,y)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),f.whereIn(g,Array.isArray(y)?y:[y]))),r.string&&l(r.string,"string",(f,g,y)=>{if(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3")return f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${y.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?f.whereRaw(`??::text ilike '${y}%'`,[this.knex.raw(this.quote(T.name))]):f.whereILike(g,`${y}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,y)=>{let T=L=>L&&Object.keys(L).length===0&&Object.getPrototypeOf(L)===Object.prototype;T(y.low)&&(y.low=""),T(y.high)&&(y.high="");let _=fc(y.low),S=fc(y.high),R=this.getFieldSchema(g),E=g,I=y.high,B=y.low;return this.client==="sqlite3"&&R?.type==="datetime"&&R.dateOnly&&(I!=null&&(I=`${I.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)]),I=this.knex.raw("CAST(? AS INTEGER)",[y.high]),B=this.knex.raw("CAST(? AS INTEGER)",[y.low])),o&&(f=f.or),_&&S?f.whereBetween(E,[B,I]):_?f.where(E,">=",B):S?f.where(E,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,y)=>{let T=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 1",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,y))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?f.whereLike(g,`${y.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),y])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,y)=>{let T=this.getFieldSchema(g);if(o&&(f=f.or),this.client==="mssql")return f.whereRaw("CASE WHEN ?? = ? THEN 1 ELSE 0 END = 0",[this.rawQuotedIdentifier(g),y]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",y)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?y!=null?f.not.whereLike(g,`${y.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),y])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&p(r.contains),r.notContains&&p(r.notContains),r.containsAny&&p(r.containsAny,!0);let m=s?.[this.table._id]||this.table._id;return r.documentType&&!lf(this.table)&&m&&e.andWhereLike(`${m}._id`,`${Cr(r.documentType)}%`),e}isSqs(){return ZI(this.table)}getTableName(e){e||(e=this.table);let r=e.name;ZI(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 ${Hh}`)}addAggregations(e,r){let n=this.query.resource?.fields||[],i=this.getTableName();if(n.length>0){let s=n.map(o=>this.qualifyIdentifier(o));if(this.client==="oracledb"){let o=s.map(u=>this.convertClobs(u)),a=s.map(u=>this.convertClobs(u,{forSelect:!0}));e=e.groupBy(o).select(a)}else e=e.groupBy(s).select(s)}for(let s of r){let o=s.calculationType;if(o==="count")if("distinct"in s&&s.distinct)if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(DISTINCT ??) as ??",[a,s.name]))}else e=e.countDistinct(`${i}.${s.field} as ${s.name}`);else if(this.client==="oracledb"){let a=this.convertClobs(`${i}.${s.field}`);e=e.select(this.knex.raw("COUNT(??) as ??",[a,s.name]))}else e=e.count(`${s.field} as ${s.name}`);else{let a=this.getFieldSchema(s.field);if(!a)throw new Error(`field schema missing for aggregation target: ${s.field}`);let u=this.knex.raw("??(??)",[this.knex.raw(o),this.rawQuotedIdentifier(`${i}.${s.field}`)]);a.type==="bigint"&&(u=this.castIntToString(u)),e=e.select(this.knex.raw("?? as ??",[u,s.name]))}}return e}isAggregateField(e){return!!this.query.resource?.aggregations?.find(n=>n.name===e)}addSorting(e){let{sort:r,resource:n}=this.query,i=this.table.primary,s=this.getTableName();if(!Array.isArray(i))throw new Error("Sorting requires primary key to be specified for table");if(r&&Object.keys(r||{}).length>0)for(let[a,u]of Object.entries(r)){let c=u.direction==="ascending"?"asc":"desc",l;(this.client==="pg"||this.client==="oracledb")&&(l=u.direction==="ascending"?"first":"last");let d=`${s}.${a}`,p;this.isAggregateField(a)?p=this.rawQuotedIdentifier(a):this.client==="oracledb"?p=this.convertClobs(d):p=this.rawQuotedIdentifier(d),e=e.orderByRaw(`?? ?? ${l?"nulls ??":""}`,[p,this.knex.raw(c),...l?[this.knex.raw(l)]:[]])}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:p,through:m,to:f,from:g,fromPrimary:y,toPrimary:T}=d;if(!p||!r)continue;let _=c[p];if(!_)throw new Error(`related table "${p}" not found in datasource`);let S=a?.[p]||p,R=a?.[r]||r,E=m&&a?.[m]||m,I=this.tableNameWithSchema(p,{alias:S,schema:u}),B=[..._?.primary||[],_?.primaryDisplay].filter(W=>W),L=yB(l.filter(W=>W.split(".")[0]===S),B);L=L.slice(0,Math.floor(this.maxFunctionParameters()/2));let F=L.map(W=>this.buildJsonField(_,W));if(!F.length)continue;let se=F.map(W=>{let ce=this.client==="oracledb"?" VALUE ":",";return this.knex.raw(`?${ce}??`,[W[0],W[1]]).toString()}).join(","),Xt=`${S}.${T||f}`,$=s.from(I).orderBy(Xt),k=m&&T&&y,P=k?`${E}.${g}`:`${S}.${f}`,q=k?`${R}.${y}`:`${R}.${g}`;if(k){let W=this.tableNameWithSchema(m,{alias:E,schema:u});$=$.join(W,function(){this.on(`${S}.${T}`,"=",`${E}.${f}`)})}$=$.where(this.rawQuotedIdentifier(P),"=",this.rawQuotedIdentifier(q));let O=W=>($=$.select(L.map(ce=>this.rawQuotedIdentifier(ce))).limit(Wh()),s.select(W).from({[S]:$})),Y;switch(i){case"sqlite3":$=this.addJoinFieldCheck($,d),Y=O(this.knex.raw(`json_group_array(json_object(${se}))`));break;case"pg":Y=O(this.knex.raw(`json_agg(json_build_object(${se}))`));break;case"mariadb":Y=$.select(s.raw(`json_arrayagg(json_object(${se}) LIMIT ${Wh()})`));break;case"mysql2":case"oracledb":Y=O(this.knex.raw(`json_arrayagg(json_object(${se}))`));break;case"mssql":{let W=s.select("*").from({[R]:$.select(F.map(ce=>s.ref(ce[1]).as(ce[0]))).limit(Wh())});Y=s.raw(`(SELECT ?? = (${W} FOR JSON PATH))`,[this.rawQuotedIdentifier(S)]);break}default:throw new Error(`JSON relationships not implement for ${i}`)}e=e.select({[d.column]:Y})}return e}addJoin(e,r,n){let{tableAliases:i,schema:s}=this.query,o=r.to,a=r.from,u=r.through,c=i?.[o]||o,l=u&&i?.[u]||u,d=i?.[a]||a,p=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 f of n){let g=f.fromPrimary,y=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${y}`)}}).leftJoin(p,function(){for(let f of n){let g=f.toPrimary,y=f.to;this.orOn(`${c}.${g}`,`${l}.${y}`)}}):e=e.leftJoin(p,function(){for(let f of n){let g=f.from,y=f.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 p=this.query.tableAliases?.[o.name]||o.name,m=this.addSorting(this.knex.with("paginated",u.clone().clearSelect().select("*")).select(this.generateSelectStatement()).from({[p]:"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())}},jh=class extends Fl{constructor(r,n=zI()){super(r);this.limit=n}convertToNative(r,n={}){let i=this.getSqlClient();if(n?.disableBindings)return{sql:r.toString()};{let s=rs(r);return i==="sqlite3"&&(s=tO(s)),s}}_query(r,n={}){let i=this.getSqlClient(),s={client:this.getBaseSqlClient()};(i==="sqlite3"||i==="oracledb")&&(s.useNullAsDefault=!0);let o=(0,XI.knex)(s),a,u=new Qh(i,o,r);switch(this._operation(r)){case"CREATE":a=u.create(n);break;case"READ":a=u.read({limits:{query:this.limit,base:zI()}});break;case"COUNT":a=u.read();break;case"UPDATE":a=u.update(n);break;case"DELETE":a=u.delete(n);break;case"BULK_CREATE":a=u.bulkCreate();break;case"BULK_UPSERT":a=u.bulkUpsert();break;case"CREATE_TABLE":case"UPDATE_TABLE":case"DELETE_TABLE":return this._tableQuery(r);default:throw"Operation type is not supported by SQL query builder"}return this.convertToNative(a,n)}async getReturningRow(r,n){if(!n.extra||!n.extra.idFilter)return{};let i=this._query({operation:"READ",datasource:n.datasource,schema:n.schema,table:n.table,tables:n.tables,resource:{fields:[]},filters:n.extra?.idFilter,paginate:{limit:1}});return r(i,"READ")}checkLookupKeys(r,n){if(!r||!n.table.primary)return n;let i=n.table.primary[0];return n.extra={idFilter:{equal:{[i]:r}}},n}async queryWithReturning(r,n,i=s=>s){let s=this.getSqlClient(),o=this._operation(r),a=this._query(r,{disableReturning:!0});if(Array.isArray(a)){let d=[];for(let p of a)d.push(await n(p,o));return d}let u;o==="DELETE"&&(u=i(await this.getReturningRow(n,r)));let c=await n(a,o),l=i(c);if(o==="CREATE"||o==="UPDATE"){let d;s==="mssql"?d=l?.[0].id:(s==="mysql2"||s==="mariadb")&&(d=l?.insertId),u=i(await this.getReturningRow(n,this.checkLookupKeys(d,r)))}return o==="COUNT"?l:o!=="READ"?u:l.length?l:[{[o.toLowerCase()]:!0}]}getTableName(r,n){let i=r.name;if(r.sourceType==="internal"||r.sourceId===Yl){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(!nO(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){Mo(this.getSqlClient(),r,n)}},iO=jh;var Kh={};N(Kh,{base:()=>AB});function AB(t){return{_id:Jt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Jh={};N(Jh,{jsonFromCsvString:()=>SB});var sO=V(require("csvtojson"));async function SB(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,sO.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 zh=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)}},Bl=zh;var oO=V(require("@koa/router")),_i=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 Bl(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 oO.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 Wa=class{constructor(){this.groups=[]}group(...e){let r=new _i;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 _B={...zo,..._e},IB=(t={})=>{lc(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,USER_METADATA_PREFIX,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