@budibase/backend-core 3.17.1 → 3.17.3
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,12 +1,12 @@
|
|
|
1
|
-
"use strict";var HI=Object.create;var Wa=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)Wa(t,r,{get:e[r],enumerable:!0})},Vh=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of YI(e))!zI.call(t,i)&&i!==r&&Wa(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)):{},Vh(e||!t||!t.__esModule?Wa(r,"default",{value:t,enumerable:!0}):r,t)),ZI=t=>Vh(Wa({},"__esModule",{value:!0}),t);var mg=j((zl,Zl)=>{"use strict";(function(t,e){typeof zl=="object"&&typeof Zl<"u"?Zl.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,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(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]=E;var y="$isDayjsObject",I=function(V){return V instanceof de||!(!V||!V[y])},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[y]=!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 Ir=B.w(O.$u?Date.UTC(O.$y,je,pn):new Date(O.$y,je,pn),O);return K?Ir:Ir.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,Os=(Ne<dn?Ne+7:Ne)-dn;return ue(K?dt-Os:dt+(6-Os),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,Ir,xs,$a){return je&&(je[Ir]||je(q,K))||xs[Ir].slice(0,$a)},Os=function(je){return B.s(ue%12||12,je,"0")},pn=J||function(je,Ir,xs){var $a=je<12?"AM":"PM";return xs?$a.toLowerCase():$a};return K.replace(g,function(je,Ir){return Ir||function(xs){switch(xs){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 Os(1);case"hh":return Os(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 lu(t);Ke.valid=Rx;var wx=t=>new du(t);Ke.err=wx;var lu=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=lu;var du=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=du});var wt=j(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0})});var vr=j(rd=>{"use strict";Object.defineProperty(rd,"__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,Ls=(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):Ls(n,e,r)}if(e==="daysOfMonth"&&r.useNearestWeekday&&t.endsWith("W")){let n=t.slice(0,-1);return n===""?(0,oe.err)("The 'W' must be preceded by a day"):r.useLastDayOfMonth&&n==="L"?(0,oe.valid)(!0):Ls(n,e,r)}if(e==="daysOfWeek"&&r.useNthWeekdayOfMonth&&t.indexOf("#")!==-1){let[n,i,...s]=t.split("#");if(s.length!==0)return(0,oe.err)(`Unexpected number of '#' in ${t}, can only be used once.`);let o=Number(i);return!i||isNaN(o)?(0,oe.err)(`Unexpected value following the '#' symbol, a positive number was expected but found ${i}.`):o>5?(0,oe.err)("Number of occurrence of the day of the week cannot be greater than 5."):Ls(n,e,r)}return Ls(t,e,r)},Tg=(t,e,r,n)=>t==="*"?(0,oe.err)(`'*' can't be part of a range in ${e} field.`):t===""?(0,oe.err)(`One of the range elements is empty in ${e} field.`):r.useLastDayOfMonth&&e==="daysOfMonth"&&t==="L"&&n===0?(0,oe.valid)(!0):Ls(t,e,r),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=Tg(n[0],e,r,0),s=Tg(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)};rd.default=Lx});var Ag=j(Us=>{"use strict";var Ux=Us&&Us.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Us,"__esModule",{value:!0});qt();var Mx=Rt(),Fx=Ux(vr());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)};Us.default=kx});var Sg=j(Ms=>{"use strict";var Bx=Ms&&Ms.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ms,"__esModule",{value:!0});qt();var Gx=Rt(),Vx=Bx(vr());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)};Ms.default=$x});var _g=j(Fs=>{"use strict";var Wx=Fs&&Fs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fs,"__esModule",{value:!0});qt();var qx=Rt(),Qx=Wx(vr());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)};Fs.default=jx});var Ig=j(Bs=>{"use strict";var Hx=Bs&&Bs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Bs,"__esModule",{value:!0});qt();var ks=Rt(),Kx=Hx(vr());wt();var Yx=(t,e)=>{if(!t.daysOfMonth)return(0,ks.err)(["daysOfMonth field is undefined."]);let{daysOfMonth:r}=t;return e.allowOnlyOneBlankDayField&&e.useBlankDay&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,ks.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,ks.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfMonth&&t.daysOfMonth.indexOf("L")!==-1&&t.daysOfMonth.match(/[,/]/)?(0,ks.err)(["Cannot specify last day of month with lists, or ranges (symbols ,/)."]):e.useNearestWeekday&&t.daysOfMonth.indexOf("W")!==-1&&t.daysOfMonth.match(/[,/-]/)?(0,ks.err)(["Cannot specify nearest weekday with lists, steps or ranges (symbols ,-/)."]):(0,Kx.default)(r,"daysOfMonth",e)};Bs.default=Yx});var Og=j(Gs=>{"use strict";var Jx=Gs&&Gs.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Gs,"__esModule",{value:!0});qt();var zx=Rt(),Zx=Jx(vr());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)};Gs.default=Xx});var xg=j($s=>{"use strict";var eR=$s&&$s.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($s,"__esModule",{value:!0});qt();var Vs=Rt(),tR=eR(vr());wt();var rR=(t,e)=>{if(!t.daysOfWeek)return(0,Vs.err)(["daysOfWeek field is undefined."]);let{daysOfWeek:r}=t;return e.allowOnlyOneBlankDayField&&t.daysOfMonth==="?"&&t.daysOfWeek==="?"?(0,Vs.err)(["Cannot use blank value in daysOfMonth and daysOfWeek field when allowOnlyOneBlankDayField option is enabled."]):e.mustHaveBlankDayField&&t.daysOfMonth!=="?"&&t.daysOfWeek!=="?"?(0,Vs.err)(["Cannot specify both daysOfMonth and daysOfWeek field when mustHaveBlankDayField option is enabled."]):e.useLastDayOfWeek&&t.daysOfWeek.indexOf("L")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify last day of week with lists, steps or ranges (symbols ,-/)."]):e.useNthWeekdayOfMonth&&t.daysOfWeek.indexOf("#")!==-1&&t.daysOfWeek.match(/[,/-]/)?(0,Vs.err)(["Cannot specify Nth weekday of month with lists, steps or ranges (symbols ,-/)."]):(0,tR.default)(r,"daysOfWeek",e)};$s.default=rR});var Rg=j(Ws=>{"use strict";var nR=Ws&&Ws.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ws,"__esModule",{value:!0});qt();var iR=Rt(),sR=nR(vr());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)};Ws.default=oR});var Cg=j((bQ,Dg)=>{"use strict";var nd;try{nd=Map}catch{}var id;try{id=Set}catch{}function wg(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(bg);if(nd&&t instanceof nd)return new Map(Array.from(t.entries()));if(id&&t instanceof id)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]:wg(t[i],e,r)}return n}return t}function bg(t){return wg(t,[],[])}Dg.exports=bg});var qs=j(sd=>{"use strict";Object.defineProperty(sd,"__esModule",{value:!0});sd.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 vg(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=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 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 Ng=mR(qs());function mR(t){return t&&t.__esModule?t:{default:t}}var Pg={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,Ng.default)(r,!0)}\``+(i?` (cast from the value \`${(0,Ng.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=Pg;var Lg={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=Lg;var Ug={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};Pe.number=Ug;var Mg={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};Pe.date=Mg;var Fg={isValue:"${path} field must be ${value}"};Pe.boolean=Fg;var kg={noUnknown:"${path} field has unspecified keys: ${unknown}"};Pe.object=kg;var Bg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};Pe.array=Bg;var hR=Object.assign(Object.create(null),{mixed:Pg,string:Lg,number:Ug,date:Mg,object:kg,array:Bg,boolean:Fg});Pe.default=hR});var Ni=j(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.default=void 0;var gR=t=>t&&t.__isYupSchema__;pu.default=gR});var Vg=j(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.default=void 0;var ER=Gg(require("lodash/has")),yR=Gg(Ni());function Gg(t){return t&&t.__esModule?t:{default:t}}var od=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,ER.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.getValue(r?.value,r?.parent,r?.context)),i=this.fn.apply(e,n.concat(e,r));if(i===void 0||i===e)return e;if(!(0,yR.default)(i))throw new TypeError("conditions must return a schema object");return i.resolve(r)}},TR=od;fu.default=TR});var ud=j(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});ad.default=AR;function AR(t){return t==null?[]:[].concat(t)}});var vn=j(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.default=void 0;var SR=$g(qs()),_R=$g(ud());function $g(t){return t&&t.__esModule?t:{default:t}}function cd(){return cd=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},cd.apply(this,arguments)}var IR=/\$\{\s*(\w+)\s*\}/g,ld=class t extends Error{static formatError(e,r){let n=r.label||r.path||"this";return n!==r.path&&(r=cd({},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)}};mu.default=ld});var hu=j(pd=>{"use strict";Object.defineProperty(pd,"__esModule",{value:!0});pd.default=RR;var dd=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 dd.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(!dd.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 dd.default(o,s,u),s);return}c(null,s)}})}}});var Qs=j((MQ,Hg)=>{"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,jg=/^\d+$/,bR=/^\d/,DR=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,CR=/^\s*(['"]?)(.*?)(\1)\s*$/,hd=512,Wg=new Nn(hd),qg=new Nn(hd),Qg=new Nn(hd);Hg.exports={Cache:Nn,split:md,normalizePath:fd,setter:function(t){var e=fd(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=fd(t);return Qg.get(t)||Qg.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+(gd(r)||jg.test(r)?"["+r+"]":(e?".":"")+r)},"")},forEach:function(t,e,r){vR(Array.isArray(t)?t:md(t),e,r)}};function fd(t){return Wg.get(t)||Wg.set(t,md(t).map(function(e){return e.replace(CR,"$2")}))}function md(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=gd(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function gd(t){return typeof t=="string"&&t&&["'",'"'].indexOf(t.charAt(0))!==-1}function NR(t){return t.match(bR)&&!t.match(jg)}function PR(t){return DR.test(t)}function LR(t){return!gd(t)&&(NR(t)||PR(t))}});var Pn=j(Hs=>{"use strict";Object.defineProperty(Hs,"__esModule",{value:!0});Hs.create=MR;Hs.default=void 0;var UR=Qs(),gu={context:"$",value:"."};function MR(t,e){return new js(t,e)}var js=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===gu.context,this.isValue=this.key[0]===gu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?gu.context:this.isValue?gu.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}};Hs.default=js;js.prototype.__isYupRef=!0});var Kg=j(yd=>{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.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 yu(){return yu=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},yu.apply(this,arguments)}function 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:E}=a;function T(I){return kR.default.isRef(I)?I.getValue(i,g,E):I}function _(I={}){let k=(0,FR.default)(yu({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=yu({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 y;if(x=p.call(S,i,S),typeof((y=x)==null?void 0:y.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 Td=j(Ks=>{"use strict";Object.defineProperty(Ks,"__esModule",{value:!0});Ks.getIn=Yg;Ks.default=void 0;var VR=Qs(),$R=t=>t.substr(0,t.length-1).substr(1);function Yg(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)=>Yg(t,e,r,n).schema,qR=WR;Ks.default=qR});var zg=j(Tu=>{"use strict";Object.defineProperty(Tu,"__esModule",{value:!0});Tu.default=void 0;var Jg=QR(Pn());function QR(t){return t&&t.__esModule?t:{default:t}}var Ad=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){Jg.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){Jg.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}};Tu.default=Ad});var ir=j(Su=>{"use strict";Object.defineProperty(Su,"__esModule",{value:!0});Su.default=void 0;var Zg=nr(Cg()),Pi=rr(),jR=nr(Vg()),Xg=nr(hu()),Au=nr(Kg()),eE=nr(qs()),HR=nr(Pn()),KR=Td(),YR=nr(ud()),tE=nr(vn()),rE=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 rE.default,this._blacklist=new rE.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,Zg.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,eE.default)(e),o=(0,eE.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 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,E={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(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]=E;var y="$isDayjsObject",I=function(V){return V instanceof de||!(!V||!V[y])},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[y]=!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 ER=Vg(require("lodash/has")),yR=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,ER.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:n,then:i,otherwise:s}=r,o=typeof n=="function"?n:(...a)=>a.every(u=>u===n);this.fn=function(...a){let u=a.pop(),c=a.pop(),l=o(...a)?i:s;if(l)return typeof l=="function"?l(c):c.concat(l.resolve(u))}}resolve(e,r){let n=this.refs.map(s=>s.getValue(r?.value,r?.parent,r?.context)),i=this.fn.apply(e,n.concat(e,r));if(i===void 0||i===e)return e;if(!(0,yR.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+(Ed(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=Ed(i),o=!a&&/^\d+$/.test(i),e.call(r,i,a,o,s,t))}function Ed(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!Ed(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(),Eu={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]===Eu.context,this.isValue=this.key[0]===Eu.value,this.isSibling=!this.isContext&&!this.isValue;let n=this.isContext?Eu.context:this.isValue?Eu.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=yd(require("lodash/mapValues")),yu=yd(vn()),kR=yd(Pn());function yd(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:E}=a;function T(I){return kR.default.isRef(I)?I.getValue(i,g,E):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 yu.default(yu.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=>{yu.default.isError(I)?n(I):I?n(null,I):n(_())})}catch(I){n(I)}return}let x;try{var y;if(x=p.call(S,i,S),typeof((y=x)==null?void 0:y.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}yu.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()),eE=nr(gu()),Su=nr(Yg()),tE=nr(Qs()),HR=nr(Pn()),KR=Ad(),YR=nr(cd()),rE=nr(vn()),nE=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 nE.default,this._blacklist=new nE.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,tE.default)(e),o=(0,tE.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,Xg.default)({args:d,value:l,path:s,sync:i,tests:p,endEarly:c},m=>{if(m)return void n(m,l);(0,Xg.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(tE.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(tE.default.isError(n))return!1;throw n}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Zg.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Pi.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Pi.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(n){return this.schema._isPresent(n)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Pi.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let n=this.clone(),i=(0,Au.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,Au.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,Au.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,Au.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)}}};Su.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 iE=j(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.create=nE;Ys.default=void 0;var JR=zR(ir());function zR(t){return t&&t.__esModule?t:{default:t}}var Sd=JR.default,ZR=Sd;Ys.default=ZR;function nE(){return new Sd}nE.prototype=Sd.prototype});var Li=j(_u=>{"use strict";Object.defineProperty(_u,"__esModule",{value:!0});_u.default=void 0;var XR=t=>t==null;_u.default=XR});var cE=j(zs=>{"use strict";Object.defineProperty(zs,"__esModule",{value:!0});zs.create=uE;zs.default=void 0;var ew=aE(ir()),sE=rr(),oE=aE(Li());function aE(t){return t&&t.__esModule?t:{default:t}}function uE(){return new Js}var Js=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=sE.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,oE.default)(r)||r===!0}})}isFalse(e=sE.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,oE.default)(r)||r===!1}})}};zs.default=Js;uE.prototype=Js.prototype});var pE=j(Xs=>{"use strict";Object.defineProperty(Xs,"__esModule",{value:!0});Xs.create=dE;Xs.default=void 0;var Qt=rr(),sr=lE(Li()),tw=lE(ir());function lE(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 dE(){return new Zs}var Zs=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()})}};Xs.default=Zs;dE.prototype=Zs.prototype});var hE=j(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.create=mE;to.default=void 0;var Ln=rr(),Un=fE(Li()),aw=fE(ir());function fE(t){return t&&t.__esModule?t:{default:t}}var uw=t=>t!=+t;function mE(){return new eo}var eo=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))}};to.default=eo;mE.prototype=eo.prototype});var gE=j(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.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 TE=j(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=Od;ro.default=void 0;var dw=Iu(gE()),EE=rr(),yE=Iu(Li()),pw=Iu(Pn()),fw=Iu(ir());function Iu(t){return t&&t.__esModule?t:{default:t}}var Id=new Date(""),mw=t=>Object.prototype.toString.call(t)==="[object Date]";function Od(){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)?Id: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=EE.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,yE.default)(i)||i>=this.resolve(n)}})}max(e,r=EE.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,yE.default)(i)||i<=this.resolve(n)}})}};ro.default=Ui;Ui.INVALID_DATE=Id;Od.prototype=Ui.prototype;Od.INVALID_DATE=Id});var SE=j((YQ,xd)=>{"use strict";xd.exports=function(t){return AE(hw(t),t)};xd.exports.array=AE;function AE(t,e){var r=t.length,n=new Array(r),i={},s=r,o=gw(e),a=Ew(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var 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 Ew(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var _E=j(Rd=>{"use strict";Object.defineProperty(Rd,"__esModule",{value:!0});Rd.default=Iw;var yw=Ou(require("lodash/has")),Tw=Ou(SE()),Aw=Qs(),Sw=Ou(Pn()),_w=Ou(Ni());function Ou(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,yw.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 OE=j(wd=>{"use strict";Object.defineProperty(wd,"__esModule",{value:!0});wd.default=Ow;function IE(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)=>IE(t,e)-IE(t,r)}});var vE=j(io=>{"use strict";Object.defineProperty(io,"__esModule",{value:!0});io.create=CE;io.default=void 0;var xE=jt(require("lodash/has")),RE=jt(require("lodash/snakeCase")),xw=jt(require("lodash/camelCase")),Rw=jt(require("lodash/mapKeys")),ww=jt(require("lodash/mapValues")),bw=Qs(),wE=rr(),Dw=jt(_E()),DE=jt(OE()),Cw=jt(hu()),vw=jt(vn()),bd=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 bE=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,DE.default)([]),no=class extends bd.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 bE(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,xE.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 E="spec"in p?p.spec:void 0,T=E?.strict;if(E?.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||!bE(d)){n(i[0]||null,d);return}a=a||d;let p=this._nodes.map(m=>(f,g)=>{let E=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:E,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 bd.default&&s instanceof bd.default&&(n[i]=s.concat(o))}return r.withMutation(()=>r.shape(n))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let n=this.fields[r];e[r]="default"in n?n.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let n=this.clone(),i=Object.assign(n.fields,e);if(n.fields=i,n._sortErrors=(0,DE.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,xE.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=wE.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=wE.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(RE.default)}constantCase(){return this.transformKeys(e=>(0,RE.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,ww.default)(this.fields,r=>r.describe()),e}};io.default=no;function CE(t){return new no(t)}CE.prototype=no.prototype});var PE=j(oo=>{"use strict";Object.defineProperty(oo,"__esModule",{value:!0});oo.create=NE;oo.default=void 0;var Dd=Fi(Li()),Lw=Fi(Ni()),Uw=Fi(qs()),Cd=rr(),Mw=Fi(hu()),Fw=Fi(vn()),kw=Fi(ir());function Fi(t){return t&&t.__esModule?t:{default:t}}function xu(){return xu=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},xu.apply(this,arguments)}function NE(t){return new so(t)}var so=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,xu({},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 E=0;E<f.length;E++){let T=f[E],_=`${r.path||""}[${E}]`,S=xu({},r,{path:_,strict:!0,parent:f,index:E,originalValue:p[E]});g[E]=(x,y)=>c.validate(T,S,y)}(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=Cd.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(n){return(0,Dd.default)(n)||n.length===this.resolve(e)}})}min(e,r){return r=r||Cd.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Dd.default)(n)||n.length>=this.resolve(e)}})}max(e,r){return r=r||Cd.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Dd.default)(n)||n.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(n,i,s)=>!e(n,i,s):n=>!!n;return this.transform(n=>n!=null?n.filter(r):n)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};oo.default=so;NE.prototype=so.prototype});var LE=j(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=Vw;ao.default=void 0;var Bw=Gw(Ni());function Gw(t){return t&&t.__esModule?t:{default:t}}function Vw(t){return new Ru(t)}var Ru=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=Ru;ao.default=$w});var UE=j(vd=>{"use strict";Object.defineProperty(vd,"__esModule",{value:!0});vd.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 Pd=j(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.addMethod=Zw;Object.defineProperty(me,"MixedSchema",{enumerable:!0,get:function(){return ME.default}});Object.defineProperty(me,"mixed",{enumerable:!0,get:function(){return ME.create}});Object.defineProperty(me,"BooleanSchema",{enumerable:!0,get:function(){return Nd.default}});Object.defineProperty(me,"bool",{enumerable:!0,get:function(){return Nd.create}});Object.defineProperty(me,"boolean",{enumerable:!0,get:function(){return Nd.create}});Object.defineProperty(me,"StringSchema",{enumerable:!0,get:function(){return FE.default}});Object.defineProperty(me,"string",{enumerable:!0,get:function(){return FE.create}});Object.defineProperty(me,"NumberSchema",{enumerable:!0,get:function(){return kE.default}});Object.defineProperty(me,"number",{enumerable:!0,get:function(){return kE.create}});Object.defineProperty(me,"DateSchema",{enumerable:!0,get:function(){return BE.default}});Object.defineProperty(me,"date",{enumerable:!0,get:function(){return BE.create}});Object.defineProperty(me,"ObjectSchema",{enumerable:!0,get:function(){return GE.default}});Object.defineProperty(me,"object",{enumerable:!0,get:function(){return GE.create}});Object.defineProperty(me,"ArraySchema",{enumerable:!0,get:function(){return VE.default}});Object.defineProperty(me,"array",{enumerable:!0,get:function(){return VE.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 $E.default}});Object.defineProperty(me,"setLocale",{enumerable:!0,get:function(){return Jw.default}});Object.defineProperty(me,"BaseSchema",{enumerable:!0,get:function(){return zw.default}});var ME=Mn(iE()),Nd=Mn(cE()),FE=Mn(pE()),kE=Mn(hE()),BE=Mn(TE()),GE=Mn(vE()),VE=Mn(PE()),jw=Pn(),Hw=LE(),Kw=uo(vn()),Yw=uo(Td()),$E=uo(Ni()),Jw=uo(UE()),zw=uo(ir());function uo(t){return t&&t.__esModule?t:{default:t}}function WE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return WE=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=WE();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,$E.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 qE=j(Ud=>{"use strict";Object.defineProperty(Ud,"__esModule",{value:!0});var Ld=Md();Ud.default=()=>{(0,Ld.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,Ld.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,Ld.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 Md=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(Pd());Pd();var co=Rt(),nb=rb(qE());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}}},QE=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,co.valid)(Fn[t]):(0,co.err)(`Option preset '${t}' not found.`);Le.getOptionPreset=ib;var sb=()=>Fn;Le.getOptionPresets=sb;var ob=(t,e)=>{Fn[t]=QE.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,E,T,_,S,x;try{(0,nb.default)();let y;if(t.preset)if(typeof t.preset=="string"){if(!Fn[t.preset])return(0,co.err)([`Option preset ${t.preset} does not exist.`]);y=Fn[t.preset]}else y=t.preset;else y=Fn.default;let I=Object.assign(Object.assign({presetId:y.presetId,preset:y},{useSeconds:y.useSeconds,useYears:y.useYears,useAliases:(e=y.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:y.useBlankDay,allowOnlyOneBlankDayField:y.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=y.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=y.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=y.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=y.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=y.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=y.seconds.lowerLimit)!==null&&a!==void 0?a:y.seconds.minValue,upperLimit:(u=y.seconds.upperLimit)!==null&&u!==void 0?u:y.seconds.maxValue},minutes:{lowerLimit:(c=y.minutes.lowerLimit)!==null&&c!==void 0?c:y.minutes.minValue,upperLimit:(l=y.minutes.upperLimit)!==null&&l!==void 0?l:y.minutes.maxValue},hours:{lowerLimit:(d=y.hours.lowerLimit)!==null&&d!==void 0?d:y.hours.minValue,upperLimit:(p=y.hours.upperLimit)!==null&&p!==void 0?p:y.hours.maxValue},daysOfMonth:{lowerLimit:(m=y.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:y.daysOfMonth.minValue,upperLimit:(f=y.daysOfMonth.upperLimit)!==null&&f!==void 0?f:y.daysOfMonth.maxValue},months:{lowerLimit:(g=y.months.lowerLimit)!==null&&g!==void 0?g:y.months.minValue,upperLimit:(E=y.months.upperLimit)!==null&&E!==void 0?E:y.months.maxValue},daysOfWeek:{lowerLimit:(T=y.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:y.daysOfWeek.minValue,upperLimit:(_=y.daysOfWeek.upperLimit)!==null&&_!==void 0?_:y.daysOfWeek.maxValue},years:{lowerLimit:(S=y.years.lowerLimit)!==null&&S!==void 0?S:y.years.minValue,upperLimit:(x=y.years.upperLimit)!==null&&x!==void 0?x:y.years.maxValue}}),t.override),D=b.object({presetId:b.string().required(),preset:QE.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(y.seconds.minValue).max(y.seconds.maxValue),upperLimit:b.number().min(y.seconds.minValue).max(y.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(y.minutes.minValue).max(y.minutes.maxValue),upperLimit:b.number().min(y.minutes.minValue).max(y.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(y.hours.minValue).max(y.hours.maxValue),upperLimit:b.number().min(y.hours.minValue).max(y.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue),upperLimit:b.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(y.months.minValue).max(y.months.maxValue),upperLimit:b.number().min(y.months.minValue).max(y.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue),upperLimit:b.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(y.years.minValue).max(y.years.maxValue),upperLimit:b.number().min(y.years.minValue).max(y.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,co.valid)(D)}catch(y){return(0,co.err)(y.errors)}};Le.validateOptions=ab});var qt=j((lo,kd)=>{"use strict";var Bn=lo&&lo.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lo,"__esModule",{value:!0});var kn=Rt(),ub=Bn(Ag()),cb=Bn(Sg()),lb=Bn(_g()),db=Bn(Ig()),pb=Bn(Og()),fb=Bn(xg()),mb=Bn(Rg()),hb=Md();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)},Fd=(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)};lo.default=Fd;kd.exports=Fd;kd.exports.default=Fd});var hT=j(at=>{"use strict";Object.defineProperty(at,"__esModule",{value:!0});var ar=class extends Error{},Hd=class extends ar{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Kd=class extends ar{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Yd=class extends ar{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},$n=class extends ar{},Pu=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",Lu={year:v,month:v,day:v},Ey={year:v,month:vt,day:v},Eb={year:v,month:vt,day:v,weekday:vt},yy={year:v,month:st,day:v},Ty={year:v,month:st,day:v,weekday:st},Ay={hour:v,minute:v},Sy={hour:v,minute:v,second:v},_y={hour:v,minute:v,second:v,timeZoneName:vt},Iy={hour:v,minute:v,second:v,timeZoneName:st},Oy={hour:v,minute:v,hourCycle:"h23"},xy={hour:v,minute:v,second:v,hourCycle:"h23"},Ry={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:vt},wy={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:st},by={year:v,month:v,day:v,hour:v,minute:v},Dy={year:v,month:v,day:v,hour:v,minute:v,second:v},Cy={year:v,month:vt,day:v,hour:v,minute:v},vy={year:v,month:vt,day:v,hour:v,minute:v,second:v},yb={year:v,month:vt,day:v,weekday:vt,hour:v,minute:v},Ny={year:v,month:st,day:v,hour:v,minute:v,timeZoneName:vt},Py={year:v,month:st,day:v,hour:v,minute:v,second:v,timeZoneName:vt},Ly={year:v,month:st,day:v,weekday:st,hour:v,minute:v,timeZoneName:st},Uy={year:v,month:st,day:v,weekday:st,hour:v,minute:v,second:v,timeZoneName:st},Ur=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}},Bd=null,yo=class t extends Ur{static get instance(){return Bd===null&&(Bd=new t),Bd}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:r,locale:n}){return Fy(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}},vu={};function Tb(t){return vu[t]||(vu[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"})),vu[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 wu={},ur=class t extends Ur{static create(e){return wu[e]||(wu[e]=new t(e)),wu[e]}static resetCache(){wu={},vu={}}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 Fy(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=ap({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}},jE={};function Ib(t,e={}){let r=JSON.stringify([t,e]),n=jE[r];return n||(n=new Intl.ListFormat(t,e),jE[r]=n),n}var Jd={};function zd(t,e={}){let r=JSON.stringify([t,e]),n=Jd[r];return n||(n=new Intl.DateTimeFormat(t,e),Jd[r]=n),n}var Zd={};function Ob(t,e={}){let r=JSON.stringify([t,e]),n=Zd[r];return n||(n=new Intl.NumberFormat(t,e),Zd[r]=n),n}var Xd={};function xb(t,e={}){let{base:r,...n}=e,i=JSON.stringify([t,n]),s=Xd[i];return s||(s=new Intl.RelativeTimeFormat(t,e),Xd[i]=s),s}var ho=null;function Rb(){return ho||(ho=new Intl.DateTimeFormat().resolvedOptions().locale,ho)}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 bu(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 ep=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):op(e,3);return Re(r,this.padTo)}}},tp=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()}},rp=class{constructor(e,r,n){this.opts={style:"long",...n},!r&&My()&&(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||ye.defaultLocale,o=s||(i?"en-US":Rb()),a=r||ye.defaultNumberingSystem,u=n||ye.defaultOutputCalendar;return new t(o,a,u,s)}static resetCache(){ho=null,Jd={},Zd={},Xd={}}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 bu(this,e,n,Gy,()=>{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 bu(this,e,n,Wy,()=>{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 bu(this,void 0,e,()=>qy,()=>{if(!this.meridiemCache){let r={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[_e.utc(2016,11,13,9),_e.utc(2016,11,13,19)].map(n=>this.extract(n,r,"dayperiod"))}return this.meridiemCache})}eras(e,r=!0){return bu(this,e,r,Qy,()=>{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 ep(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,r={}){return new tp(e,this.intl,r)}relFormatter(e={}){return new rp(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}},Gd=null,ot=class t extends Ur{static get utcInstance(){return Gd===null&&(Gd=new t(0)),Gd}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(Gu(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}},Uu=class extends Ur{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function Lr(t,e){if(ae(t)||t===null)return e;if(t instanceof Ur)return t;if(Nb(t)){let r=t.toLowerCase();return r==="default"?e:r==="local"||r==="system"?yo.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 Uu(t)}var HE=()=>Date.now(),KE="system",YE=null,JE=null,zE=null,ZE=60,XE,ye=class{static get now(){return HE}static set now(e){HE=e}static set defaultZone(e){KE=e}static get defaultZone(){return Lr(KE,yo.instance)}static get defaultLocale(){return YE}static set defaultLocale(e){YE=e}static get defaultNumberingSystem(){return JE}static set defaultNumberingSystem(e){JE=e}static get defaultOutputCalendar(){return zE}static set defaultOutputCalendar(e){zE=e}static get twoDigitCutoffYear(){return ZE}static set twoDigitCutoffYear(e){ZE=e%100}static get throwOnInvalid(){return XE}static set throwOnInvalid(e){XE=e}static resetCaches(){Se.resetCache(),ur.resetCache()}};function ae(t){return typeof t>"u"}function qn(t){return typeof t=="number"}function Bu(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 My(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Lb(t){return Array.isArray(t)?t:[t]}function ey(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 Bu(t)&&t>=e&&t<=r}function Mb(t,e){return t-e*Math.floor(t/e)}function Re(t,e=2){let r=t<0,n;return r?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function Pr(t){if(!(ae(t)||t===null||t===""))return parseInt(t,10)}function Gn(t){if(!(ae(t)||t===null||t===""))return parseFloat(t)}function sp(t){if(!(ae(t)||t===null||t==="")){let e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function op(t,e,r=!1){let n=10**e;return(r?Math.trunc:Math.round)(t*n)/n}function To(t){return t%4===0&&(t%100!==0||t%400===0)}function go(t){return To(t)?366:365}function Mu(t,e){let r=Mb(e-1,12)+1,n=t+(e-r)/12;return r===2?To(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function ap(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 Fu(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 np(t){return t>99?t:t>ye.twoDigitCutoffYear?1900+t:2e3+t}function Fy(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 Gu(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 ky(t){let e=Number(t);if(typeof t=="boolean"||t===""||Number.isNaN(e))throw new Ye(`Invalid unit value ${t}`);return e}function ku(t,e){let r={};for(let n in t)if(Vi(t,n)){let i=t[n];if(i==null)continue;r[e(n)]=ky(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 Vu(t){return Ub(t,["hour","minute","second","millisecond"])}var Fb=["January","February","March","April","May","June","July","August","September","October","November","December"],By=["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 Gy(t){switch(t){case"narrow":return[...kb];case"short":return[...By];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 Vy=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],$y=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Bb=["M","T","W","T","F","S","S"];function Wy(t){switch(t){case"narrow":return[...Bb];case"short":return[...$y];case"long":return[...Vy];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var qy=["AM","PM"],Gb=["Before Christ","Anno Domini"],Vb=["BC","AD"],$b=["B","A"];function Qy(t){switch(t){case"narrow":return[...$b];case"short":return[...Vb];case"long":return[...Gb];default:return null}}function Wb(t){return qy[t.hour<12?0:1]}function qb(t,e){return Wy(e)[t.weekday-1]}function Qb(t,e){return Gy(e)[t.month-1]}function jb(t,e){return Qy(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 ty(t,e){let r="";for(let n of t)n.literal?r+=n.val:r+=e(n.val);return r}var Kb={D:Lu,DD:Ey,DDD:yy,DDDD:Ty,t:Ay,tt:Sy,ttt:_y,tttt:Iy,T:Oy,TT:xy,TTT:Ry,TTTT:wy,f:by,ff:Cy,fff:Ny,ffff:Ly,F:Dy,FF:vy,FFF:Py,FFFF:Uy},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 ty(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 ty(s,i(a))}},it=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},jy=/[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 Hy(...t){return(e,r)=>{let n={},i;for(i=0;i<t.length;i++)n[t[i]]=Pr(e[r+i]);return[n,null,r+i]}}var Ky=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Yb=`(?:${Ky.source}?(?:\\[(${jy.source})\\])?)?`,up=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Yy=RegExp(`${up.source}${Yb}`),cp=RegExp(`(?:T${Yy.source})?`),Jb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,zb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Zb=/(\d{4})-?(\d{3})/,Xb=Hy("weekYear","weekNumber","weekDay"),eD=Hy("year","ordinal"),tD=/(\d{4})-(\d\d)-(\d\d)/,Jy=RegExp(`${up.source} ?(?:${Ky.source}|(${jy.source}))?`),rD=RegExp(`(?: ${Jy.source})?`);function Gi(t,e,r){let n=t[e];return ae(n)?r:Pr(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:sp(t[e+3])},null,e+4]}function Ao(t,e){let r=!t[e]&&!t[e+1],n=Gu(t[e+1],t[e+2]),i=r?null:ot.instance(n);return[{},i,e+3]}function So(t,e){let r=t[e]?ur.create(t[e]):null;return[{},r,e+1]}var iD=RegExp(`^T?${up.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(sp(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 lp(t,e,r,n,i,s,o){let a={year:e.length===2?np(Pr(e)):Pr(e),month:By.indexOf(r)+1,day:Pr(n),hour:Pr(i),minute:Pr(s)};return o&&(a.second=Pr(o)),t&&(a.weekday=t.length>3?Vy.indexOf(t)+1:$y.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=lp(e,i,n,r,s,o,a),m;return u?m=aD[u]:c?m=0:m=Gu(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 ry(t){let[,e,r,n,i,s,o,a]=t;return[lp(e,i,n,r,s,o,a),ot.utcInstance]}function mD(t){let[,e,r,n,i,s,o,a]=t;return[lp(e,a,r,n,i,s,o),ot.utcInstance]}var hD=$i(Jb,cp),gD=$i(zb,cp),ED=$i(Zb,cp),yD=$i(Yy),zy=Wi(nD,Qi,Ao,So),TD=Wi(Xb,Qi,Ao,So),AD=Wi(eD,Qi,Ao,So),SD=Wi(Qi,Ao,So);function _D(t){return qi(t,[hD,zy],[gD,TD],[ED,AD],[yD,SD])}function ID(t){return qi(lD(t),[uD,cD])}function OD(t){return qi(t,[dD,ry],[pD,ry],[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(Jy),CD=Wi(Qi,Ao,So);function vD(t){return qi(t,[bD,zy],[DD,CD])}var ND="Invalid Duration",Zy={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},...Zy},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},...Zy},Vn=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],UD=Vn.slice(0).reverse();function Nr(t,e,r=!1){let n={values:r?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new Ce(n)}function MD(t){return t<0?Math.floor(t):Math.ceil(t)}function Xy(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&&Xy(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:ku(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(ye.throwOnInvalid)throw new Yd(n);return new t({invalid:n})}static normalizeUnit(e){let r={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!r)throw new Pu(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+=op(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 Nr(this,{values:n},!0)}minus(e){if(!this.isValid)return this;let r=t.fromDurationLike(e);return this.plus(r.negate())}mapUnits(e){if(!this.isValid)return this;let r={};for(let n of Object.keys(this.values))r[n]=ky(e(this.values[n],n));return Nr(this,{values:r},!0)}get(e){return this[t.normalizeUnit(e)]}set(e){if(!this.isValid)return this;let r={...this.values,...ku(e,t.normalizeUnit)};return Nr(this,{values:r})}reconfigure({locale:e,numberingSystem:r,conversionAccuracy:n,matrix:i}={}){let o={loc:this.loc.clone({locale:e,numberingSystem:r}),matrix:i,conversionAccuracy:n};return Nr(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return FD(this.matrix,e),Nr(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=kD(this.normalize().shiftToAll().toObject());return Nr(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>t.normalizeUnit(o));let r={},n={},i=this.toObject(),s;for(let o of 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)&&Xy(this.matrix,i,c,r,o)}else qn(i[o])&&(n[o]=i[o]);for(let o in n)n[o]!==0&&(r[s]+=o===s?n[o]:n[o]/this.matrix[s][o]);return Nr(this,{values:r},!0).normalize()}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;let e={};for(let r of Object.keys(this.values))e[r]=this.values[r]===0?0:-this.values[r];return Nr(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function r(n,i){return n===void 0||n===0?i===void 0||i===0:n===i}for(let n of 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(ye.throwOnInvalid)throw new Kd(n);return new t({invalid:n})}static fromDateTimes(e,r){let n=mo(e),i=mo(r),s=BD(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=_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(mo).filter(o=>this.contains(o)).sort(),n=[],{s:i}=this,s=0;for(;i<this.e;){let o=r[s]||this.e,a=+o>+this.e?this.e:o;n.push(t.fromDateTimes(i,a)),i=a,s+=1}return n}splitBy(e){let r=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=Lu,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=ye.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ur.isValidZone(e)}static normalizeZone(e){return Lr(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:My()}}};function ny(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=ny(u,c);return(l-l%7)/7}],["days",ny]],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 dp={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"},iy={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=dp.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(dp.hanidec)!==-1)e+=$D.indexOf(t[r]);else for(let i in iy){let[s,o]=iy[i];n>=s&&n<=o&&(e+=n-s)}}return parseInt(e,10)}else return e}function Dt({numberingSystem:t},e=""){return new RegExp(`${dp[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),eT=`[ ${QD}]`,tT=new RegExp(eT,"g");function jD(t){return t.replace(/\./g,"\\.?").replace(tT,eT)}function sy(t){return t.replace(/\./g,"").replace(tT," ").toLowerCase()}function Ct(t,e){return t===null?null:{regex:RegExp(t.map(jD).join("|")),deser:([r])=>t.findIndex(n=>sy(r)===sy(n))+e}}function oy(t,e){return{regex:t,deser:([,r,n])=>Gu(r,n),groups:e}}function Vd(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=E=>({regex:RegExp(HD(E.val)),deser:([T])=>T,literal:!0}),g=(E=>{if(t.literal)return m(E);switch(E.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,np);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 Vd(l);case"uu":return Vd(a);case"uuu":return le(r);case"a":return Ct(e.meridiems(),0);case"kkkk":return le(s);case"kk":return le(d,np);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 oy(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return oy(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return Vd(/[a-z_+-/]{1,256}?/i);default:return m(E)}})(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=sp(t.u)),[Object.keys(t).reduce((s,o)=>{let a=e(o);return a&&(s[a]=t[o]),s},{}),r,n]}var $d=null;function eC(){return $d||($d=_e.fromMillis(1555555555555)),$d}function tC(t,e){if(t.literal)return t;let r=nt.macroTokenToFormatOpts(t.val),n=iT(r,e);return n==null||n.includes(void 0)?t:n}function rT(t,e){return Array.prototype.concat(...t.map(r=>tC(r,e)))}function nT(t,e,r){let n=rT(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}=nT(t,e,r);return[n,i,s,o]}function iT(t,e){return t?nt.create(e,t).formatDateTimeParts(eC()).map(i=>JD(i,t)):null}var sT=[0,31,59,90,120,151,181,212,243,273,304,334],oT=[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 aT(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 uT(t,e,r){return r+(To(t)?oT:sT)[e-1]}function cT(t,e){let r=To(t)?oT:sT,n=r.findIndex(s=>s<e),i=e-r[n];return{month:n+1,day:i}}function ip(t){let{year:e,month:r,day:n}=t,i=uT(e,r,n),s=aT(e,r,n),o=Math.floor((i-s+10)/7),a;return o<1?(a=e-1,o=Fu(a)):o>Fu(e)?(a=e+1,o=1):a=e,{weekYear:a,weekNumber:o,weekday:s,...Vu(t)}}function ay(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=aT(e,1,4),s=go(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=go(a)):o>s?(a=e+1,o-=go(e)):a=e;let{month:u,day:c}=cT(a,o);return{year:a,month:u,day:c,...Vu(t)}}function Wd(t){let{year:e,month:r,day:n}=t,i=uT(e,r,n);return{year:e,ordinal:i,...Vu(t)}}function uy(t){let{year:e,ordinal:r}=t,{month:n,day:i}=cT(e,r);return{year:e,month:n,day:i,...Vu(t)}}function nC(t){let e=Bu(t.weekYear),r=or(t.weekNumber,1,Fu(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=Bu(t.year),r=or(t.ordinal,1,go(t.year));return e?r?!1:gt("ordinal",t.ordinal):gt("year",t.year)}function lT(t){let e=Bu(t.year),r=or(t.month,1,12),n=or(t.day,1,Mu(t.year,t.month));return e?r?n?!1:gt("day",t.day):gt("month",t.month):gt("year",t.year)}function dT(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",cy=864e13;function Du(t){return new it("unsupported zone",`the zone "${t.name}" is not supported`)}function Qd(t){return t.weekData===null&&(t.weekData=ip(t.c)),t.weekData}function po(t,e){let r={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new _e({...r,...e,old:r})}function pT(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 ly(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 pT(ap(t),e,r)}function dy(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,Mu(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=ap(s),[u,c]=pT(a,r,t.zone);return o!==0&&(u+=o,c=t.zone.offset(u)),{ts:u,o:c}}function fo(t,e,r,n,i,s){let{setZone:o,zone:a}=r;if(t&&Object.keys(t).length!==0){let u=e||a,c=_e.fromObject(t,{...r,zone:u,specificOffset:s});return o?c:c.setZone(a)}else return _e.invalid(new it("unparsable",`the input "${i}" can't be parsed as ${n}`))}function Cu(t,e,r=!0){return t.isValid?nt.create(Se.create("en-US"),{allowZ:r,forceSimple:!0}).formatDateTimeFromString(t,e):null}function jd(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 py(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 fT={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},mT=["year","month","day","hour","minute","second","millisecond"],aC=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],uC=["year","ordinal","hour","minute","second","millisecond"];function fy(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 Pu(t);return e}function my(t,e){let r=Lr(e.zone,ye.defaultZone),n=Se.fromObject(e),i=ye.now(),s,o;if(ae(t.year))s=i;else{for(let c of mT)ae(t[c])&&(t[c]=fT[c]);let a=lT(t)||dT(t);if(a)return _e.invalid(a);let u=r.offset(i);[s,o]=Nu(t,u,r)}return new _e({ts:s,zone:r,loc:n,o})}function hy(t,e,r){let n=ae(r.round)?!0:r.round,i=(o,a)=>(o=op(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 gy(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||ye.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new it("invalid input"):null)||(r.isValid?null:Du(r));this.ts=ae(e.ts)?ye.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=ly(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]=gy(arguments),[n,i,s,o,a,u,c]=r;return my({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=gy(arguments),[n,i,s,o,a,u,c]=r;return e.zone=ot.utcInstance,my({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=Lr(r.zone,ye.defaultZone);return i.isValid?new t({ts:n,zone:i,loc:Se.fromObject(r)}):t.invalid(Du(i))}static fromMillis(e,r={}){if(qn(e))return e<-cy||e>cy?t.invalid("Timestamp out of range"):new t({ts:e,zone:Lr(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(qn(e))return new t({ts:e*1e3,zone:Lr(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Lr(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(Du(n));let i=ye.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=ku(e,fy),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,E=ly(i,s);m?(f=aC,g=sC,E=ip(E)):a?(f=uC,g=oC,E=Wd(E)):(f=mT,g=fT);let T=!1;for(let D of f){let B=o[D];ae(B)?T?o[D]=g[D]:o[D]=E[D]:T=!0}let _=m?nC(o):a?iC(o):lT(o),S=_||dT(o);if(S)return t.invalid(S);let x=m?ay(o):a?uy(o):o,[y,I]=Nu(x,s,n),k=new t({ts:y,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 fo(n,i,r,"ISO 8601",e)}static fromRFC2822(e,r={}){let[n,i]=ID(e);return fo(n,i,r,"RFC 2822",e)}static fromHTTP(e,r={}){let[n,i]=OD(e);return fo(n,i,r,"HTTP",r)}static fromFormat(e,r,n={}){if(ae(e)||ae(r))throw new Ye("fromFormat requires an input string and a format");let{locale:i=null,numberingSystem:s=null}=n,o=Se.fromOpts({locale:i,numberingSystem:s,defaultToEN:!0}),[a,u,c,l]=rC(o,e,r);return l?t.invalid(l):fo(a,u,n,`format ${r}`,e,c)}static fromString(e,r,n={}){return t.fromFormat(e,r,n)}static fromSQL(e,r={}){let[n,i]=vD(e);return fo(n,i,r,"SQL",e)}static invalid(e,r=null){if(!e)throw new Ye("need to specify a reason the DateTime is invalid");let n=e instanceof it?e:new it(e,r);if(ye.throwOnInvalid)throw new Hd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=iT(e,Se.fromObject(r));return n?n.map(i=>i?i.val:null).join(""):null}static expandFormat(e,r={}){return rT(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?Qd(this).weekYear:NaN}get weekNumber(){return this.isValid?Qd(this).weekNumber:NaN}get weekday(){return this.isValid?Qd(this).weekday:NaN}get ordinal(){return this.isValid?Wd(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 To(this.year)}get daysInMonth(){return Mu(this.year,this.month)}get daysInYear(){return this.isValid?go(this.year):NaN}get weeksInWeekYear(){return this.isValid?Fu(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(ye.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Lr(e,ye.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=Nu(o,s,e)}return po(this,{ts:i,zone:e})}else return t.invalid(Du(e))}reconfigure({locale:e,numberingSystem:r,outputCalendar:n}={}){let i=this.loc.clone({locale:e,numberingSystem:r,outputCalendar:n});return po(this,{loc:i})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let r=ku(e,fy),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=ay({...ip(this.c),...r}):ae(r.ordinal)?(c={...this.toObject(),...r},ae(r.day)&&(c.day=Math.min(Mu(c.year,c.month),c.day))):c=uy({...Wd(this.c),...r});let[l,d]=Nu(c,this.o,this.zone);return po(this,{ts:l,o:d})}plus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e);return po(this,dy(this,r))}minus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e).negate();return po(this,dy(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=Lu,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=jd(this,o);return a+="T",a+=py(this,o,r,n,i,s),a}toISODate({format:e="extended"}={}){return this.isValid?jd(this,e==="extended"):null}toISOWeekDate(){return Cu(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:r=!1,includeOffset:n=!0,includePrefix:i=!1,extendedZone:s=!1,format:o="extended"}={}){return this.isValid?(i?"T":"")+py(this,o==="extended",r,e,n,s):null}toRFC2822(){return Cu(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return Cu(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?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")),Cu(this,i,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():qd}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let r={...this.c};return e.includeConfig&&(r.outputCalendar=this.outputCalendar,r.numberingSystem=this.loc.numberingSystem,r.locale=this.loc.locale),r}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,r="milliseconds",n={}){if(!this.isValid||!e.isValid)return 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),hy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?hy(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 ey(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return ey(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 nT(o,e,r)}static fromStringExplain(e,r,n={}){return t.fromFormatExplain(e,r,n)}static get DATE_SHORT(){return Lu}static get DATE_MED(){return Ey}static get DATE_MED_WITH_WEEKDAY(){return Eb}static get DATE_FULL(){return yy}static get DATE_HUGE(){return Ty}static get TIME_SIMPLE(){return Ay}static get TIME_WITH_SECONDS(){return Sy}static get TIME_WITH_SHORT_OFFSET(){return _y}static get TIME_WITH_LONG_OFFSET(){return Iy}static get TIME_24_SIMPLE(){return Oy}static get TIME_24_WITH_SECONDS(){return xy}static get TIME_24_WITH_SHORT_OFFSET(){return Ry}static get TIME_24_WITH_LONG_OFFSET(){return wy}static get DATETIME_SHORT(){return by}static get DATETIME_SHORT_WITH_SECONDS(){return Dy}static get DATETIME_MED(){return Cy}static get DATETIME_MED_WITH_SECONDS(){return vy}static get DATETIME_MED_WITH_WEEKDAY(){return yb}static get DATETIME_FULL(){return Ny}static get DATETIME_FULL_WITH_SECONDS(){return Py}static get DATETIME_HUGE(){return Ly}static get DATETIME_HUGE_WITH_SECONDS(){return Uy}};function mo(t){if(_e.isDateTime(t))return t;if(t&&t.valueOf&&qn(t.valueOf()))return _e.fromJSDate(t);if(t&&typeof t=="object")return _e.fromObject(t);throw new Ye(`Unknown datetime argument: ${t}, of type ${typeof t}`)}var cC="3.2.1";at.DateTime=_e;at.Duration=Ce;at.FixedOffsetZone=ot;at.IANAZone=ur;at.Info=Wn;at.Interval=Qn;at.InvalidZone=Uu;at.Settings=ye;at.SystemZone=yo;at.VERSION=cC;at.Zone=Ur});var ET=j((oj,gT)=>{"use strict";var jn=hT();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))}gT.exports=z});var AT=j((aj,TT)=>{"use strict";function Hn(t){return{start:t,count:1}}function yT(t,e){t.end=e,t.step=e-t.start,t.count=2}function pp(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"?(pp(e,r,Hn(i)),r=void 0):r?r.count===1?yT(r,i):r.step===i-r.end?(r.count++,r.end=i):r.count===2?(e.push(Hn(r.start)),r=Hn(r.end),yT(r,i)):(pp(e,r),r=Hn(i)):r=Hn(i)}return pp(e,r),e}TT.exports=lC});var _T=j((uj,ST)=>{"use strict";var dC=AT();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(",")}ST.exports=pC});var xT=j((cj,OT)=>{"use strict";var Kn=ET(),fC=_T(),IT=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,E=f.length;g<E;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,E=m;g<=E;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,y=Math.floor(x/7)+S;return y===_}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<IT;){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,E=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(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=IT)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 E=U.map[l];g[E]=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 y=+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(y)||y<1||y>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=y,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,E=m.length;g<E;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||{})};OT.exports=U});var wT=j((lj,RT)=>{"use strict";var $u=xT();function Mr(){}Mr._parseEntry=function(e){var r=e.split(" ");if(r.length===6)return{interval:$u.parse(e)};if(r.length>6)return{interval:$u.parse(r.slice(0,6).join(" ")),command:r.slice(6,r.length)};throw new Error("Invalid entry: "+e)};Mr.parseExpression=function(e,r){return $u.parse(e,r)};Mr.fieldsToExpression=function(e,r){return $u.fieldsToExpression(e,r)};Mr.parseString=function(e){for(var r=e.split(`
|
|
5
|
-
`),n={variables:{},expressions:[],errors:{}},i=0,s=r.length;i<s;i++){var o=r[i],a=null,u=o.trim();if(u.length>0){if(u.match(/^#/))continue;if(a=u.match(/^(.*)=(.*)$/))n.variables[a[1]]=a[2];else{var c=null;try{c=Mr._parseEntry("0 "+u),n.expressions.push(c.interval)}catch(l){n.errors[u]=l}}}}return n};Mr.parseFile=function(e,r){require("fs").readFile(e,function(n,i){if(n){r(n);return}return r(null,Mr.parseString(i.toString()))})};RT.exports=Mr});var rB={};P(rB,{APP_DEV:()=>zu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>Et,AutomationViewMode:()=>Ju,BUDIBASE_DATASOURCE_TYPE:()=>Lp,BadRequestError:()=>Lc,BudibaseError:()=>ps,Config:()=>Gp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>kp,DEFAULT_EXPENSES_TABLE_ID:()=>Fp,DEFAULT_INVENTORY_TABLE_ID:()=>Mp,DEFAULT_JOBS_TABLE_ID:()=>Up,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>Ro,DocumentType:()=>Ee,Duration:()=>De,DurationType:()=>um,EmailUnavailableError:()=>gr,Endpoint:()=>Ll,EndpointGroup:()=>Ai,EndpointGroupList:()=>Va,FeatureDisabledError:()=>kc,ForbiddenError:()=>Uc,GlobalRole:()=>Bp,HTTPError:()=>Ge,Header:()=>tt,InternalTable:()=>Zt,InvalidAPIKeyError:()=>fs,MAX_VALID_DATE:()=>Xu,MIN_VALID_DATE:()=>WT,NotFoundError:()=>Pc,NotImplementedError:()=>Mc,RedisClient:()=>Qe,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Pp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>xo,UnexpectedError:()=>Nc,UsageLimitError:()=>Fc,UserStatus:()=>Zu,ViewName:()=>Br,accounts:()=>di,auth:()=>Ih,blacklist:()=>wh,cache:()=>Da,configs:()=>nn,constants:()=>Vp,context:()=>Ae,csv:()=>Bh,db:()=>Hr,docIds:()=>Nf,docUpdates:()=>Dh,encryption:()=>Ah,env:()=>h,errors:()=>Gc,events:()=>Es,features:()=>dh,getPublicError:()=>Bc,init:()=>tB,installation:()=>zc,locks:()=>_s,logging:()=>ca,middleware:()=>_h,objectStore:()=>Kf,permissions:()=>uh,platform:()=>Jo,plugins:()=>xh,queue:()=>Tm,redis:()=>Rh,roles:()=>ah,security:()=>Mm,sessions:()=>nl,setEnv:()=>Co,sql:()=>kh,tenancy:()=>eB,timers:()=>Kc,userUtils:()=>pm,users:()=>ys,utils:()=>ls,withEnv:()=>YT});module.exports=ZI(rB);var nn={};P(nn,{analyticsEnabled:()=>jc,generateConfigID:()=>ul,getAIConfig:()=>EF,getConfig:()=>_t,getDefaultGoogleConfig:()=>Hm,getGoogleConfig:()=>cl,getGoogleDatasourceConfig:()=>Jm,getOIDCConfig:()=>mF,getOIDCConfigById:()=>zm,getOIDCLogosDoc:()=>pF,getPlatformUrl:()=>Ua,getRecaptchaConfig:()=>yF,getSCIMConfig:()=>gF,getSMTPConfig:()=>hF,getSMTPConfigDoc:()=>q_,getSettingsConfig:()=>Ym,getSettingsConfigDoc:()=>Xc,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"],$h=[...XI,...eO],Wh={"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 Ul=(n=>(n.SQL="sql",n.JSON="json",n.FIELDS="fields",n))(Ul||{}),Ml=(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))(Ml||{}),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 Fl=(n=>(n.CONNECTION_CHECKING="connection",n.FETCH_TABLE_NAMES="fetch_table_names",n.EXPORT_SCHEMA="export_schema",n))(Fl||{});var tO=W(require("lodash")),Or=(o=>(o.EQUAL="equal",o.NOT_EQUAL="notEqual",o.EMPTY="empty",o.NOT_EMPTY="notEmpty",o.FUZZY="fuzzy",o.STRING="string",o))(Or||{}),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 Qa(t){return Object.values(Si).includes(t)}function qh(t){return Object.values(Or).includes(t)}function Qh(t){return Object.values(zt).includes(t)}function ja(t){return Object.values(fn).includes(t)}var _i=(r=>(r.RETURN_ALL="all",r.RETURN_NONE="none",r))(_i||{});var jh=t=>typeof t=="object"&&t._id&&t._rev;var Rs=(s=>(s.USER="user",s.HEADER="header",s.QUERY="query",s.SUBDOMAIN="subdomain",s.PATH="path",s))(Rs||{});var Hh={USE_ZOD_VALIDATOR:!1,AI_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACES:!1,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 ws=(i=>(i.READ="read",i.WRITE="write",i.EXECUTE="execute",i.ADMIN="admin",i))(ws||{});var Ha=(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))(Ha||{});var Ka=t=>t.hosting==="cloud";var Ya=t=>t.authType==="sso";var w="_",Ve="\uFFF0",xr=t=>`${t}${w}`,Ee=(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))(Ee||{});var Zt=(e=>(e.USER_METADATA="ta_users",e))(Zt||{}),kl=(r=>(r.VIEW="view",r.ROW_ACTION="row_action",r))(kl||{});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||{}),Kh=[...Object.values(ne),...Object.values(Ot)];var Bl=(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))(Bl||{}),Yh={email:"Email",document:"Document",blog_post:"Blog post",chat_message:"Chat message",letter:"Letter",proposal:"Proposal",other:"Other"},Gl=(r=>(r.URL="URL",r.ATTACHMENT="Attachment",r))(Gl||{}),Vl=(i=>(i.PDF="pdf",i.JPG="jpg",i.PNG="png",i.JPEG="jpeg",i))(Vl||{});function Jh(t){return t.stepId==="BRANCH"}var $l=(i=>(i.EQUAL="EQUAL",i.NOT_EQUAL="NOT_EQUAL",i.GREATER_THAN="GREATER_THAN",i.LESS_THAN="LESS_THAN",i))($l||{});var Wl=(o=>(o.GET="GET",o.POST="POST",o.PATCH="PATCH",o.PUT="PUT",o.HEAD="HEAD",o.DELETE="DELETE",o))(Wl||{});var ql="bb_internal";var zh=["attachment_single","attachment","signature_single","bb_reference","json","array"];function Ja(t){return!!t.providerType}var Ql=(n=>(n.DATASOURCE="datasource",n.COMPONENT="component",n.AUTOMATION="automation",n))(Ql||{});var d$=Object.values(Ql);var g$=["rows","queries","automations"],E$=["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 Hl;(function(t){t.mergeShapes=(e,r)=>({...e,...r})})(Hl||(Hl={}));var M=se.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Rr=t=>{switch(typeof t){case"undefined":return M.undefined;case"string":return M.string;case"number":return isNaN(t)?M.nan:M.number;case"boolean":return M.boolean;case"function":return M.function;case"bigint":return M.bigint;case"symbol":return M.symbol;case"object":return Array.isArray(t)?M.array:t===null?M.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?M.promise:typeof Map<"u"&&t instanceof Map?M.map:typeof Set<"u"&&t instanceof Set?M.set:typeof Date<"u"&&t instanceof Date?M.date:M.object;default:return M.unknown}},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}},eg=xi;function oO(t){eg=t}function za(){return eg}var Za=t=>{let{data:e,path:r,errorMaps:n,issueData:i}=t,s=[...r,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="",u=n.filter(c=>!!c).slice().reverse();for(let c of u)a=c(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},aO=[];function L(t,e){let r=za(),n=Za({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,r,r===xi?void 0:xi].filter(i=>!!i)});t.common.issues.push(n)}var Be=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,r){let n=[];for(let i of r){if(i.status==="aborted")return 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}),Kl=t=>t.status==="aborted",Yl=t=>t.status==="dirty",Cs=t=>t.status==="valid",vs=t=>typeof Promise<"u"&&t instanceof Promise;function Xa(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 tg(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r}var G;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(G||(G={}));var bs,Ds,ft=class{constructor(e,r,n,i){this._cachedPath=[],this.parent=e,this.data=r,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Zh=(t,e)=>{if(Cs(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new 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 Rr(e.data)}_getOrReturnCtx(e,r){return r||{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Be,ctx:{common:e.parent.common,data:e.data,parsedType:Rr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let r=this._parse(e);if(vs(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(e){let r=this._parse(e);return Promise.resolve(r)}parse(e,r){let n=this.safeParse(e,r);if(n.success)return n.data;throw n.error}safeParse(e,r){var n;let i={common:{issues:[],async:(n=r?.async)!==null&&n!==void 0?n:!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},s=this._parseSync({data:e,path:i.path,parent:i});return Zh(i,s)}async parseAsync(e,r){let n=await this.safeParseAsync(e,r);if(n.success)return n.data;throw n.error}async safeParseAsync(e,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Rr(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(vs(i)?i:Promise.resolve(i));return Zh(n,s)}refine(e,r){let n=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,s)=>{let o=e(i),a=()=>s.addIssue({code:R.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,r){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof r=="function"?r(n,i):r),!1))}_refinement(e){return new 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 Dr.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 Ns({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 Ps.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})+$",jl,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])$/,EO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,yO=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,rg="((\\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(`^${rg}$`);function ng(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(`^${ng(t)}$`)}function ig(t){let e=`${rg}T${ng(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)&&EO.test(t))}var wr=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")jl||(jl=new RegExp(hO,"u")),jl.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"?ig(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"?yO.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}};wr.create=t=>{var e;return new wr({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 En=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)}};En.create=t=>new En({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...X(t)});var yn=class t extends ee{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.date,received:s.parsedType}),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}};yn.create=t=>new yn({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 br=class extends ee{constructor(){super(...arguments),this._any=!0}_parse(e){return $e(e.data)}};br.create=t=>new br({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 sg(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 Ns||t instanceof Dn?Xt(t.unwrap()):t instanceof bn?Xt(t._def.innerType):[],eu=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 Jl(t,e){let r=Rr(t),n=Rr(e);if(t===e)return{valid:!0,data:t};if(r===M.object&&n===M.object){let i=se.objectKeys(e),s=se.objectKeys(t).filter(a=>i.indexOf(a)!==-1),o={...t,...e};for(let a of s){let u=Jl(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=Jl(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(Kl(s)||Kl(o))return Y;let a=Jl(s.value,o.value);return a.valid?((Yl(s)||Yl(o))&&r.dirty(),{status:r.value,value:a.data}):(L(n,{code:R.invalid_intersection_types}),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 tu=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:wr.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 ru=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 Za({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 Za({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 Dr){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 sg(t,e){return new xn({values:t,typeName:H.ZodEnum,...X(e)})}var xn=class t extends ee{constructor(){super(...arguments),bs.set(this,void 0)}_parse(e){if(typeof e.data!="string"){let r=this._getOrReturnCtx(e),n=this._def.values;return L(r,{expected:se.joinValues(n),received:r.parsedType,code:R.invalid_type}),Y}if(Xa(this,bs,"f")||tg(this,bs,new Set(this._def.values),"f"),!Xa(this,bs,"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})}};bs=new WeakMap;xn.create=sg;var Rn=class extends ee{constructor(){super(...arguments),Ds.set(this,void 0)}_parse(e){let r=se.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let i=se.objectValues(r);return L(n,{expected:se.joinValues(i),received:n.parsedType,code:R.invalid_type}),Y}if(Xa(this,Ds,"f")||tg(this,Ds,new Set(se.getValidEnumValues(this._def.values)),"f"),!Xa(this,Ds,"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}};Ds=new WeakMap;Rn.create=(t,e)=>new Rn({values:t,typeName:H.ZodNativeEnum,...X(e)});var Dr=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})))}};Dr.create=(t,e)=>new Dr({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(!Cs(o))return o;let a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>Cs(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:r.value,value:a})):o);se.assertNever(i)}};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 vs(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"),Ns=class extends ee{_parse(e){let{ctx:r}=this._processInputParams(e),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},Ps=class t extends ee{_parse(e){let{status:r,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?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=>(Cs(i)&&(i.value=Object.freeze(i.value)),i);return vs(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 og(t,e={},r){return t?br.create().superRefine((n,i)=>{var s,o;if(!t(n)){let a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:r)!==null&&o!==void 0?o:!0,c=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...c,fatal:u})}}):br.create()}var 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}`})=>og(r=>r instanceof t,e),ag=wr.create,ug=hn.create,RO=Ci.create,wO=gn.create,cg=En.create,bO=yn.create,DO=Ri.create,CO=Tn.create,vO=An.create,NO=br.create,PO=er.create,LO=xt.create,UO=wi.create,MO=tr.create,FO=He.create,kO=He.strictCreate,BO=Sn.create,GO=eu.create,VO=_n.create,$O=$t.create,WO=tu.create,qO=bi.create,QO=Di.create,jO=ru.create,HO=In.create,KO=On.create,YO=xn.create,JO=Rn.create,zO=Dr.create,Xh=et.create,ZO=pt.create,XO=Wt.create,ex=et.createWithPreprocess,tx=Ps.create,rx=()=>ag().optional(),nx=()=>ug().optional(),ix=()=>cg().optional(),sx={string:t=>wr.create({...t,coerce:!0}),number:t=>hn.create({...t,coerce:!0}),boolean:t=>En.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>yn.create({...t,coerce:!0})},ox=Y,re=Object.freeze({__proto__:null,defaultErrorMap:xi,setErrorMap:oO,getErrorMap:za,makeIssue:Za,EMPTY_PATH:aO,addIssueToContext:L,ParseStatus:Be,INVALID:Y,DIRTY:Oi,OK:$e,isAborted:Kl,isDirty:Yl,isValid:Cs,isAsync:vs,get util(){return se},get objectUtil(){return Hl},ZodParsedType:M,getParsedType:Rr,ZodType:ee,datetimeRegex:ig,ZodString:wr,ZodNumber:hn,ZodBigInt:gn,ZodBoolean:En,ZodDate:yn,ZodSymbol:Ri,ZodUndefined:Tn,ZodNull:An,ZodAny:br,ZodUnknown:er,ZodNever:xt,ZodVoid:wi,ZodArray:tr,ZodObject:He,ZodUnion:Sn,ZodDiscriminatedUnion:eu,ZodIntersection:_n,ZodTuple:$t,ZodRecord:tu,ZodMap:bi,ZodSet:Di,ZodFunction:ru,ZodLazy:In,ZodLiteral:On,ZodEnum:xn,ZodNativeEnum:Rn,ZodPromise:Dr,ZodEffects:et,ZodTransformer:et,ZodOptional:pt,ZodNullable:Wt,ZodDefault:wn,ZodCatch:bn,ZodNaN:Ci,BRAND:IO,ZodBranded:Ns,ZodPipeline:Ps,ZodReadonly:Dn,custom:og,Schema:ee,ZodSchema:ee,late:OO,get ZodFirstPartyTypeKind(){return H},coerce:sx,any:NO,array:MO,bigint:wO,boolean:cg,date:bO,discriminatedUnion:GO,effect:Xh,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:ug,object:FO,oboolean:ix,onumber:nx,optional:ZO,ostring:rx,pipeline:tx,preprocess:ex,promise:zO,record:WO,set:QO,strictObject:kO,string:ag,symbol:DO,transformer:Xh,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||{}),nu=(r=>(r.STRING="string",r.NUMBER="number",r))(nu||{});var au=re.string().refine(t=>t!=="_complexIdOperator",{message:"Key '_complexIdOperator' is not allowed"}),lg=re.record(au,re.string()),iu=re.record(au,re.any()),su=re.record(au,re.union([re.any().array(),re.string()])),dg=re.lazy(()=>re.object({conditions:re.array(re.object(pg))})),ou=re.union([re.string(),re.number()]),pg={string:lg.optional(),fuzzy:lg.optional(),range:re.record(au,re.union([re.object({high:ou,low:ou}),re.object({high:ou}),re.object({low:ou})])).optional(),equal:iu.optional(),notEqual:iu.optional(),empty:iu.optional(),notEmpty:iu.optional(),oneOf:su.optional(),contains:su.optional(),notContains:su.optional(),containsAny:su.optional(),$and:dg.optional(),$or:dg.optional()},fW=re.object({query:re.object({allOr:re.boolean().optional(),onEmptyFilter:re.nativeEnum(_i).optional(),...pg}).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(nu).nullish(),version:re.string().optional(),disableEscaping:re.boolean().optional(),countRows:re.boolean().optional()});var Vp={};P(Vp,{APP_DEV:()=>zu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>Et,AutomationViewMode:()=>Ju,BUDIBASE_DATASOURCE_TYPE:()=>Lp,Config:()=>Gp,Cookie:()=>Jn,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>kp,DEFAULT_EXPENSES_TABLE_ID:()=>Fp,DEFAULT_INVENTORY_TABLE_ID:()=>Mp,DEFAULT_JOBS_TABLE_ID:()=>Up,DEFAULT_TENANT_ID:()=>Te,DeprecatedViews:()=>Ki,DesignDocuments:()=>Ro,DocumentType:()=>Ee,GlobalRole:()=>Bp,Header:()=>tt,InternalTable:()=>Zt,MAX_VALID_DATE:()=>Xu,MIN_VALID_DATE:()=>WT,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Pp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>xo,UserStatus:()=>Zu,ViewName:()=>Br});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"}},fg={integer:{max:2147483647,min:-2147483648},int:{max:2147483647,min:-2147483648},smallint:{max:32767,min:-32768},mediumint:{max:8388607,min:-8388608}};var vi="datasource_internal_bb_default";var Fr={};P(Fr,{ColumnSplitter:()=>Tp,NoEmptyFilterStrings:()=>LT,buildQuery:()=>UT,cleanupQuery:()=>_p,fixupFilterArrays:()=>Op,getKeyNumbering:()=>Ip,getValidOperatorsForType:()=>UC,hasFilters:()=>Ap,limit:()=>FT,recurseLogicalOperators:()=>Sp,removeKeyNumbering:()=>uu,runQuery:()=>Wu,search:()=>kC,sort:()=>MT,splitFiltersArray:()=>cu});var ji=W(mg());var Cr={};P(Cr,{filterValueToLabel:()=>hx,hasSchema:()=>gx,isSupportedUserSearch:()=>gg,parallelForeach:()=>mx,processSearchFilters:()=>Xl,toMap:()=>yx,trimOtherProps:()=>Ex,unreachable:()=>fx});var hg=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 Ex(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function gg(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(Qa(s)){for(let c of t[s].conditions)if(!gg(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 Xl(t){if(!t||t.length===0)return;let{allOr:e,onEmptyFilter:r,filters:n}=cu(t);return{logicalOperator:"all",onEmptyFilter:r||"all",groups:[{logicalOperator:e?"any":"all",filters:n.map(i=>{let s=hg.default.pick(i,px);return s.field=uu(s.field),s})}]}}function yx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Je={};P(Je,{cancelableTimeout:()=>Eg,cron:()=>fp,deepGet:()=>ed,duplicateName:()=>vC,getSequentialName:()=>NC,getUserColor:()=>Ax,getUserInitials:()=>Tx,getUserLabel:()=>Sx,isGoogleSheets:()=>Ix,isSQL:()=>Ox,lists:()=>yp,retry:()=>xx,roles:()=>Ep,schema:()=>_o,views:()=>gp,wait:()=>td,withTimeout:()=>_x});var ed=(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 td(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 td(s);try{return await t()}catch(o){n=o}}throw n}var fp={};P(fp,{getNextExecutionDates:()=>gC,validate:()=>EC});var DT=W(qt()),CT=W(wT()),bT="(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(bT)&&(r=r.split(bT)[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=CT.default.parseExpression(t),n=[];for(let i=0;i<e;i++)n.push(r.next().toString());return n}function EC(t){let e=(0,DT.default)(t,{preset:"npm-cron-schedule",override:{useSeconds:!1}});return e.isValid()?{valid:!0}:{valid:!1,err:hC(e.getError())}}var _o={};P(_o,{decodeNonAscii:()=>mp,encodeNonAscii:()=>AC,isDeprecatedSingleUserColumn:()=>yC,isNumeric:()=>SC,isRequired:()=>TC});function yC(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 mp(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 gp={};P(gp,{basicFields:()=>RC,calculationFields:()=>xC,hasCalculationFields:()=>OC,isBasicViewField:()=>_C,isCalculationField:()=>Io,isCalculationView:()=>IC,isV2:()=>wC,isVisible:()=>vT});var hp=require("lodash");function Io(t){return"calculationType"in t}function _C(t){return!Io(t)}function IC(t){return t.type==="calculation"}function OC(t){return Object.values(t.schema||{}).some(Io)}function xC(t){return(0,hp.pickBy)(t.schema||{},Io)}function vT(t){return t.visible!==!1}function RC(t,e){let{visible:r=!0}=e||{};return(0,hp.pickBy)(t.schema||{},n=>!Io(n)&&(!r||vT(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 yp={};P(yp,{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,PT=Object.values(Si),LC=[...Object.values(Or),...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"||_o.isDeprecatedSingleUserColumn(t)?a=[n.Equals,n.NotEquals,n.Empty,n.NotEmpty,n.In]:u==="bb_reference"?a=o:u==="barcodeqr"&&(a=i);let d=r?.tableId?.includes("datasource_plus");return e==="_id"&&d&&(a=[n.Equals,n.NotEquals,n.In]),a},LT=[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 Sp(t,e){for(let r of PT)t[r]&&(t[r].conditions=t[r].conditions.map(n=>e(n)));return t}var _p=t=>{for(let e of LT)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=Sp(t,_p),t};function MC(t){return Array.isArray(t)&&t.length===0}var uu=t=>Ip(t).key,Ip=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}},Tp=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}=Ip(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=mp(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(ja(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(ja(r)){let c=fg[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)||Qh(r)||ja(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 cu(t){let e={filters:[]};for(let r of t)"operator"in r&&r.operator==="allOr"?e.allOr=!0:"onEmptyFilter"in r?e.onEmptyFilter=r.onEmptyFilter:e.filters.push(r);return e}function UT(t){if(!t)return{};if(Array.isArray(t)&&(t=Xl(t),!t))return{};let e={};t.onEmptyFilter?e.onEmptyFilter=t.onEmptyFilter:e.onEmptyFilter="all";let r=NT(t.logicalOperator||"all");return e[r]={conditions:(t.groups||[]).map(n=>{if(n.groups){let u=UT(n);return delete u.onEmptyFilter,u}let{allOr:i,onEmptyFilter:s,filters:o}=cu(n.filters||[]);s&&(e.onEmptyFilter=s);let a=i?"$or":"$and";return n.logicalOperator&&(a=NT(n.logicalOperator)),{[a]:{conditions:o.map(FC).filter(u=>u)}}})},e}function NT(t){return t==="all"?"$and":"$or"}function Op(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 Sp(t,Op),t}function kC(t,e){let r=Wu(t,e.query);e.sort&&(r=MT(r,e.sort,e.sortOrder||"ascending",e.sortType));let n=r.length;e.limit&&(r=FT(r,e.limit.toString()));let i={rows:r};return e.countRows&&(i.totalRows=n),i}function Wu(t,e){if(!t||!Array.isArray(t))return[];if(!e)return t;if(e=_p(e),e=Op(e),!Ap(e)&&e.onEmptyFilter==="none")return[];let r=(y,I)=>k=>{for(let[D,B]of Object.entries(e[y]||{})){let de=Qa(y)?k:ed(k,uu(D)),ln=I(de,B);if(e.allOr&&ln)return!0;if(!e.allOr&&!ln)return!1}return!e.allOr},n=r("string",(y,I)=>typeof y!="string"||typeof I!="string"?!1:y.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(y,I)=>typeof y!="string"||typeof I!="string"?!1:y.toLowerCase().includes(I.toLowerCase())),s=r("range",(y,I)=>{if(y==null||y===""||((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=+y;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)(y);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?y>=I.low&&y<=I.high:I.low!=null?y>=I.low:I.high!=null?y<=I.high:!1}),o=(y,I)=>{if(Array.isArray(y)){for(let D of y)if(o(D,I))return!0;return!1}if(y&&typeof y=="object"&&typeof I=="string")return y._id===I;if(y===I)return!0;if(y==null&&I!=null||y!=null&&I==null)return!1;let k=(0,ji.default)(y);if(k.isValid()){let D=(0,ji.default)(I);if(D.isValid())return k.isSame(D)}return!1},a=y=>(...I)=>!y(...I),u=r("equal",o),c=r("notEqual",a(o)),l=y=>typeof y=="string"?y==="":Array.isArray(y)?y.length===0:y&&typeof y=="object"?Object.keys(y).length===0:y==null,d=r("empty",l),p=r("notEmpty",a(l)),m=r("oneOf",(y,I)=>(typeof I=="string"&&(I=I.split(",")),typeof y=="number"&&(I=I.map(k=>parseFloat(k))),Array.isArray(I)?I.some(k=>o(y,k)):!1)),f=y=>(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[y](D=>o(I,D)),g=r("contains",(y,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(y,I)),E=r("notContains",(y,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(y,I)),T=r("containsAny",f("some")),_=r("$and",(y,I)=>{if(!I.length)return!1;for(let k of I)if(!Wu([y],k).length)return!1;return!0}),S=r("$or",(y,I)=>{if(!I.length)return!1;for(let k of I)if(Wu([y],{...k,allOr:!0}).length)return!0;return!1}),x=y=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:p,oneOf:m,contains:g,containsAny:T,notContains:E,$and:_,$or:S},k=Object.entries(e||{}).filter(([D,B])=>!["allOr","onEmptyFilter"].includes(D)&&B&&Object.keys(B).length>0).map(([D])=>I[D]?.(y)??!1);return Ap(e)?e.allOr?k.some(D=>D===!0):k.every(D=>D===!0):!0};return t.filter(x)}function MT(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 FT(t,e){let r=typeof e=="number"?e:parseFloat(e);return isNaN(r)?t:t.slice(0,r)}var Ap=t=>{if(!t)return!1;let e=r=>{for(let n of PT)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:()=>Rp,automations:()=>wp,screens:()=>Np,users:()=>vp});var Rp={};P(Rp,{getDevAppID:()=>BC,getProdAppID:()=>qu});var xp=xr("app"),Oo=xr("app_dev");function BC(t){if(!t)throw new Error("No app ID provided");if(t.startsWith(Oo))return t;let e=t.split(xp);e.shift();let r=e.join(xp);return`${Oo}${r}`}function qu(t){if(!t)throw new Error("No app ID provided");if(!t.startsWith(Oo))return t;let e=t.split(Oo);e.shift();let r=e.join(Oo);return`${xp}${r}`}var wp={};P(wp,{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 kT(t){if(!t||!Array.isArray(t))return!1;for(let e of t){if(e.stepId==="COLLECT")return!0;if(Jh(e)&&e.inputs.children){for(let r of Object.values(e.inputs.children))if(kT(r))return!0}}return!1}function WC(t){return kT(t.definition.steps)}var vp={};P(vp,{canCreateApps:()=>qC,containsUserID:()=>JC,getGlobalUserID:()=>YC,getUserAppGroups:()=>zC,getUserGroups:()=>Cp,hasAdminPermissions:()=>Dp,hasAppBuilderPermissions:()=>Hu,hasAppCreatorPermissions:()=>BT,hasBuilderPermissions:()=>HC,hasCreatorPermissions:()=>Ku,isAdmin:()=>ju,isAdminOrBuilder:()=>QC,isAdminOrGlobalBuilder:()=>jC,isBuilder:()=>bp,isCreator:()=>KC,isGlobalBuilder:()=>Qu,userAppAccessList:()=>ZC});var kr=W(require("lodash/fp"));function bp(t,e){return t?t.builder?.global?!0:!!(e&&t.builder?.apps?.includes(qu(e))):!1}function Qu(t){return bp(t)&&!Hu(t)||ju(t)}function qC(t){return Qu(t)||Ku(t)}function ju(t){return t?Dp(t):!1}function QC(t,e){return bp(t,e)||ju(t)}function jC(t){return Qu(t)||ju(t)}function Hu(t){if(!t)return!1;let e=t.builder?.apps?.length;return!!!t.builder?.global&&e!=null&&e>0}function BT(t){return t?kr.flow(kr.get("roles"),kr.values,kr.find(e=>["CREATOR"].includes(e)),e=>!!e)(t):!1}function HC(t){return t?t.builder?.global||Hu(t)||Ku(t):!1}function Dp(t){return t?!!t.admin?.global:!1}function Ku(t){return t?!!t.builder?.creator:!1}function KC(t){return t?Qu(t)||Dp(t)||Ku(t)||Hu(t)||BT(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 Cp(t,e){return e?.filter(r=>r.users?.find(n=>n._id===t._id))||[]}function zC(t,e,r){let n=qu(t);return Cp(e,r).filter(s=>Object.keys(s.roles||{}).find(o=>o===n))}function ZC(t,e){let n=Cp(t,e).flatMap(s=>Object.keys(s.roles||{})),i=[...Object.keys(t?.roles||{}),...n];return[...new Set(i)]}var Np={};P(Np,{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($l),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(Wl)},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 GT=(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))(GT||{}),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(GT)}},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 VT=(s=>(s.POST="POST",s.GET="GET",s.PUT="PUT",s.DELETE="DELETE",s.PATCH="PATCH",s))(VT||{}),EK={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values(VT),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 yv={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(yv)},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 $T=(n=>(n.SHORT="Short",n.MEDIUM="Medium",n.LONG="Long",n))($T||{}),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($T)}},required:["text","length"]},outputs:{properties:{success:{type:"boolean",description:"Whether the action was successful"},response:{type:"string",description:"What was the summarised text"}},required:["success","response"]}}};var 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(Bl),pretty:Object.values(Yh)},instructions:{type:"longform",title:"Instructions",description:"Provide guidance to help the AI produce content in the format that you want"}},required:["contentType","instructions"]},outputs:{properties:{generatedText:{type:"string",description:"The text content generated by the AI"},success:{type:"boolean",description:"Whether the text generation was successful"}},required:["generatedText","success"]}},type:"ACTION"};var 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(Gl),title:"Source",description:"The source of the document to extract data from."},fileType:{dependsOn:{field:"source",value:"URL"},type:"string",enum:Object.values(Vl),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(Ee).sort((t,e)=>e.length-t.length);var x2=Object.values(kl).sort((t,e)=>e.length-t.length);var R2=new RegExp("^datasource_plus_(.+)__(.+)$"),Yu=t=>e=>!!e&&e.startsWith(`${t}${w}`);var w2=Yu("ta"),b2=Yu("view"),D2=Yu("datasource"),C2=Yu("query");var Ju=(n=>(n.ALL="all",n.AUTOMATION="automation",n.STATUS="status",n))(Ju||{}),Br=(l=>(l.USER_BY_APP="by_app",l.USER_BY_EMAIL="by_email2",l.BY_API_KEY="by_api_key",l.LINK="by_link",l.ROUTING="screen_routes_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))(Br||{}),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"}},Et=xr("app"),zu=xr("app_dev"),yt=zu,Pp="internal",Lp="budibase",Kt="_design/sqlite",Up="ta_bb_jobs",Mp="ta_bb_inventory",Fp="ta_bb_expenses",kp="ta_bb_employee",xo=`ro${w}ta_users${w}`,Ro=(r=>(r[r.SQLITE=Kt]="SQLITE",r.MIGRATIONS="_design/migrations",r))(Ro||{});var Zu=(r=>(r.ACTIVE="active",r.INACTIVE="inactive",r))(Zu||{}),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||{}),Bp=(i=>(i.OWNER="owner",i.ADMIN="admin",i.BUILDER="builder",i.WORKSPACE_MANAGER="workspace_manager",i))(Bp||{}),Gp=(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))(Gp||{}),WT=new Date(-2147483647e3),Xu=new Date(2147483647e3),Te="default";var Da={};P(Da,{CacheKey:()=>ve,TTL:()=>si,app:()=>Xo,bustCache:()=>ns,destroy:()=>jo,docWritethrough:()=>jm,generic:()=>Ho,get:()=>oi,invite:()=>lm,keys:()=>hc,passwordReset:()=>qm,store:()=>lr,user:()=>sn,withCache:()=>Qr,withCacheWithDynamicTTL:()=>EA,writethrough:()=>Wm});var Ho={};P(Ho,{CacheKey:()=>ve,TTL:()=>si,bustCache:()=>ns,destroy:()=>jo,get:()=>oi,keys:()=>hc,store:()=>lr,withCache:()=>Qr,withCacheWithDynamicTTL:()=>EA});var Ae={};P(Ae,{DEFAULT_TENANT_ID:()=>Te,baseGlobalDBName:()=>Uo,doInAppContext:()=>UN,doInAppMigrationContext:()=>FN,doInAutomationContext:()=>CN,doInContext:()=>uf,doInEnvironmentContext:()=>GN,doInFeatureFlagOverrideContext:()=>hf,doInIPContext:()=>df,doInIdentityContext:()=>bo,doInLicenseContext:()=>NN,doInScimContext:()=>VN,doInSelfHostTenantUsingCloud:()=>vN,doInTenant:()=>qe,ensureSnippetContext:()=>fA,getAppDB:()=>ts,getAppId:()=>Ue,getAuditLogDBName:()=>lA,getAuditLogsDB:()=>WN,getAutomationId:()=>cf,getCurrentContext:()=>Xn,getDevAppDB:()=>QN,getDevAppId:()=>kN,getEnvironmentVariables:()=>$N,getFeatureFlagOverrides:()=>mf,getFeatureFlags:()=>pf,getGlobalDB:()=>ie,getGlobalDBName:()=>Zn,getIP:()=>lf,getIdentity:()=>cr,getLicense:()=>PN,getPlatformURL:()=>af,getProdAppDB:()=>qN,getProdAppId:()=>BN,getScimDBName:()=>RN,getSelfHostCloudDB:()=>LN,getTableForView:()=>jN,getTenantIDFromAppID:()=>es,getTenantId:()=>Q,identity:()=>wo,isMultiTenant:()=>$r,isScim:()=>Ut,isSelfHostUsingCloud:()=>dA,isTenancyEnabled:()=>bN,isTenantIdSet:()=>wN,setFeatureFlags:()=>ff,setTableForView:()=>HN});var wo={};P(wo,{doInAccountContext:()=>zv,doInIdentityContext:()=>Wp,doInUserContext:()=>qp,getAccountUserId:()=>qT,getIdentity:()=>$p});function $p(){return cr()}function Wp(t,e){return bo(t,e)}function qp(t,e,r){let n={...t,_id:t._id,type:"user",hostInfo:{ipAddress:e.request.ip,userAgent:e.userAgent.source}};return Wp(n,r)}function zv(t,e){let r=qT(t),n=t.tenantId,i={_id:r,type:"user",tenantId:n,account:t};return Wp(i,e)}function qT(t){let e;return Ka(t)?e=t.budibaseUserId:e=t.accountId,e}var rc=require("fs");var HT=require("lodash"),Qp=require("crypto"),Do=require("path"),Zv=process.env.TOP_LEVEL_PATH||process.env.SERVER_TOP_LEVEL_PATH||(0,Do.resolve)((0,Do.join)(__dirname,"..","..","..")),QT=!1;!QT&&tc()&&!jp()&&(require("dotenv").config({path:(0,Do.join)(Zv,".env")}),QT=!0);function jp(){return KT()}function KT(){return process.env.NODE_ENV==="jest"||process.env.JEST_WORKER_ID!=null&&process.env.JEST_WORKER_ID!=="null"}function tc(){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"},jT=!!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,rc.existsSync)(c))return c;let l=`${u}/..`;return l===u?null:n(a,l)}let i=n(r,process.cwd()),s=(0,rc.readFileSync)(i,"utf-8");return JSON.parse(s)}let e;if(tc()&&!jp())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:jp,isJest:KT,isDev:tc,isWorker:nN,isApps:iN,isQA:sN,isProd:()=>!tc(),BUDIBASE_ENVIRONMENT:process.env.BUDIBASE_ENVIRONMENT,JS_BCRYPT:process.env.JS_BCRYPT,JWT_SECRET:process.env.JWT_SECRET?(0,Qp.createSecretKey)(process.env.JWT_SECRET,"utf8"):void 0,JWT_SECRET_FALLBACK:process.env.JWT_SECRET_FALLBACK?(0,Qp.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:jT,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:jT?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 Co(t){let e=(0,HT.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 YT(t,e){let r=Co(t),n=e();return n instanceof Promise?n.finally(r):(r(),n)}var JT=["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 Hp="No app provided";function Gr(t){if(!t)throw Hp;return t.startsWith(yt)}function aN(t){if(!t)throw Hp;return t.startsWith(Et)&&!Gr(t)}function vo(t){if(!t)throw Hp;return Gr(t.appId)}function nc(t){if(!t||t.startsWith(yt))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}var Ji=nc;function ct(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${r}`}function uN(t){let e=t?.split("_")||[];return e.length?e[e.length-1]:null}var Pt=t=>{let e=Kp(t),r,n;if(e.auth?.username)r=e.auth.username;else if(h.COUCH_DB_USERNAME)r=h.COUCH_DB_USERNAME;else if(!h.isTest())throw new Error("CouchDB username not set");if(e.auth?.password)n=e.auth.password;else if(h.COUCH_DB_PASSWORD)n=h.COUCH_DB_PASSWORD;else if(!h.isTest())throw new Error("CouchDB password not set");let i=Buffer.from(`${r}:${n}`).toString("base64"),s=h.COUCH_DB_SQL_URL;if(h.isDev()&&!s)s="http://localhost:4006";else if(!s&&e.url){let o=new URL(e.url);s=e.url.replace(o.port,"4984")}return{url:e.url,sqlUrl:Kp(s).url,auth:{username:r,password:n},cookie:`Basic ${i}`}},Kp=(t=h.COUCH_DB_URL)=>{let e,r,n,i;if(t){/^https?:\/\//i.test(t)||(t=`http://${t}`);let o=t.split("://"),a=o[0],u=o.slice(1).join("://");if(t.includes("@")){let c=u.split("@");i=c[c.length-1];let l=c.slice(0,-1).join("@");if(l.includes(":")){let d=l.split(":");r=d[0],n=d.slice(1).join(":")}else r=l}else i=u;e=`${a}://${i}`}return{url:e,auth:{username:r,password:n}}};var uA=W(require("@budibase/nano"));var ZT=W(require("node-fetch"));function ic(t){return t.replace(/(https?:\/\/)|(\/)+/g,"$1$2")}async function XT(t,e="GET",r){let{url:n,cookie:i}=Pt(),s=`${n}/${t}`;return await No({url:s,cookie:i,method:e,body:r})}async function No({url:t,cookie:e,method:r,body:n}){let i={method:r,headers:{Authorization:e}};return n&&r!=="GET"&&(typeof n=="string"?(i.body=n,i.headers["Content-Type"]="text/plain"):(i.body=JSON.stringify(n),i.headers["Content-Type"]="application/json")),await(0,ZT.default)(ic(encodeURI(t)),i)}async function Yp(t,e="GET",r){let n=await XT(t,e,r);if(n.status<300)return await n.json();throw"Cannot connect to CouchDB instance"}var zn=W(require("pouchdb"));var eA,tA=!1,Jp=(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 sc(t){eA=Jp(t),tA=!0}var lN=()=>{if(!tA)throw new Error("init has not been called")};function Tt(t,e){lN();let r=new eA(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 Po(t){if(!(!t||h.isTest()))try{return await t.close()}catch{}}var rA=require("uuid");function fe(){return(0,rA.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 sf={};P(sf,{breakExternalTableId:()=>Xp,breakRowIdField:()=>IN,buildExternalTableId:()=>EN,convertRowId:()=>_N,encodeTableId:()=>yN,encodeViewId:()=>TN,extractDate:()=>tf,generateRowIdField:()=>AN,getNativeSql:()=>Zi,isExternalTable:()=>Zp,isExternalTableID:()=>oc,isInternalTableID:()=>gN,isRowId:()=>SN,isValidFilter:()=>uc,isValidISODateString:()=>ac,isValidISODateStringWithoutTimezone:()=>ef,isValidTime:()=>rf,sqlLog:()=>Lo,validateManyToMany:()=>nf});var zp=`${w}${w}`,iA=/^\[.*]$/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 oc(t){return t.startsWith("datasource"+w)}function gN(t){return!oc(t)}function Zi(t){let e=t.toSQL();if(Array.isArray(e))return e;let r;return e.toNative&&(r=e.toNative()),{sql:r?.sql||e.sql,bindings:r?.bindings||e.bindings}}function Zp(t){return t?.sourceId&&t.sourceId.includes("datasource"+w)&&t?.sourceId!==vi||t?.sourceType==="external"?!0:!!(t?._id&&oc(t._id))}function EN(t,e){return`${t}${zp}${encodeURIComponent(e)}`}function yN(t){return oc(t)?encodeURIComponent(t):t}function TN(t){return encodeURIComponent(t)}function Xp(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(iA)!=null}function _N(t){return Array.isArray(t)?t[0]:typeof t=="string"&&t.match(iA)!=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 ac(t){let e=t.trim();if(!pN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function ef(t){let e=t.trim();if(!fN.test(e))return!1;let r=new Date(e);return!isNaN(r.getTime())}function tf(t){let e=t.match(mN);if(e)return e[0]}function uc(t){return t!=null&&t!==""}function rf(t){return hN.test(t)}function Lo(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 nf(t){if(ON(t))return t}var sA="Database does not exist.";function oA(t){return(0,uA.default)({url:t.url,requestDefaults:{headers:{Authorization:t.cookie}},parseUrl:!1})}var Vr=class extends Error{constructor(r,n){super(r);let i=n.status||n.statusCode||500;this.status=i,this.statusCode=i,this.reason=n.reason||"Unknown",this.name=n.name,this.errid=n.errid||"Unknown",this.description=n.description||"Unknown",this.error=n.error||"Not found"}};function 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=oA(this.couchInfo)),t.nano||t.init()}static init(){let e=Pt();t.nano=oA(e)}exists(e){return e===void 0?this.dbExists():this.docExists(e)}async dbExists(){return(await No({url:`${this.couchInfo.url}/${this.name}`,method:"HEAD",cookie:this.couchInfo.cookie})).status===200}async docExists(e){try{return await this.performCall(r=>()=>r.head(e)),!0}catch{return!1}}nano(){return this.instanceNano||t.nano}getDb(){return this.nano().db.use(this.name)}async checkAndCreateDb(){let e=!this.pouchOpts?.skip_setup,r=await this.exists();if(!e&&!r)throw new Error("DB does not exist");if(!r)try{await this.nano().db.create(this.name)}catch(n){if(n.statusCode!==412)throw new Vr(n.message,n)}return this.getDb()}async performCallWithDBCreation(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){if(i.statusCode===404&&i.reason===sA)return await this.checkAndCreateDb(),await this.performCallWithDBCreation(e);throw new Vr(`CouchDB error: ${i.message}`,i)}}async performCall(e){let r=this.getDb(),n=await e(r);try{return await n()}catch(i){throw new Vr(`CouchDB error: ${i.message}`,i)}}async get(e){return this.performCall(r=>{if(!e)throw new Error("Unable to get doc without a valid _id.");return()=>r.get(e)})}async tryGet(e){try{return await this.get(e)}catch(r){if(r.statusCode===404)return;throw r}}async getMultiple(e,r){if(!e||e.length===0)return[];e=[...new Set(e)];let n=!r?.excludeDocs,i=await this.allDocs({keys:e,include_docs:n}),s=u=>n&&u.doc==null||u.value&&"deleted"in u.value&&u.value.deleted?!0:u.error==="not_found",o=i.rows.filter(u=>!s(u)),a=o.length!==i.rows.length;if(!r?.allowMissing&&a){let c=i.rows.filter(l=>s(l)).map(l=>l.key).join(", ");throw new Error(`Unable to get bulk documents: ${c}`)}return o.map(u=>n?u.doc:u.value)}async remove(e,r){return this.performCall(n=>{let i,s;if(jh(e)?(i=e._id,s=e._rev):(i=e,s=r),!i||!s)throw new Error("Unable to remove doc without a valid _id and _rev.");return()=>n.destroy(i,s)})}async bulkRemove(e,r){let n=await this.performCall(o=>()=>o.bulk({docs:e.map(a=>({...a,_deleted:!0}))}));if(r?.silenceErrors)return;let i=!1,s="Unable to bulk remove documents: ";for(let o of n)o.error&&(i=!0,s+=o.error);if(i)throw new Vr(s,{name:this.name,status:400})}async post(e,r){return e._id||(e._id=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===sA)return{offset:0,total_rows:0,rows:[]};throw n}})}async _sqlQuery(e,r,n){e=ic(`${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 No(i),o=await s.text();if(s.status>300){let a;try{a=JSON.parse(o)}catch{throw console.error(`SQS error: ${o}`),new Vr("error while running SQS query, please try again later",{name:"sqs_error",status:s.status})}throw a}return JSON.parse(o)})}async sql(e,r){let i=`/${this.name}/${Kt}`;return Lo("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 Vr(e.message,e)}}async compact(){return this.performCall(e=>()=>e.compact())}async dump(e,r){return Tt(this.name).dump(e,r)}async load(e){return Tt(this.name).load(e)}async createIndex(e){return Tt(this.name).createIndex(e)}async deleteIndex(e){return Tt(this.name).deleteIndex(e)}async getIndexes(){return Tt(this.name).getIndexes()}};function 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 of(t){let e="/_all_dbs";return t&&(e+=`?${t}`),await Yp(e)}var cA=null;function Zn(t){return t||(t=Q()),Uo(t)}function lA(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 Uo(t){return!t||t===Te?xe.GLOBAL.name:`${t}${w}${xe.GLOBAL.name}`}function af(){return h.PLATFORM_URL}function $r(){return!!h.MULTI_TENANCY}function wN(){return!!be.get()?.tenantId}function bN(){return h.MULTI_TENANCY}function es(t){if(!t)return;if(!$r())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 uf(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 dA(){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 bo(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(!$r())return Te;let e=be.get()?.tenantId;if(!e)throw new Error("Tenant id not found");return e}function cf(){return be.get()?.automationId}function Ue(){let e=be.get()?.appId;return!e&&h.isTest()&&cA?cA:e}function lf(){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 df(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(Uo(t?.tenantId))}function WN(){if(!Q())throw new Error("No tenant ID found - cannot open audit log DB");return We(lA())}function ts(t){let e=Ue();if(!e)throw new Error("Unable to retrieve app DB - no app ID.");if(dA())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(nc(e),t)}function Ut(){return!!be.get()?.isScim}function Xn(){try{return be.get()}catch{return}}function pf(t){let e=Xn();if(e)return e.featureFlagCache?.[t]}function ff(t,e){let r=Xn();r&&(r.featureFlagCache??={},r.featureFlagCache[t]=e)}function mf(){return Xn()?.featureFlagOverrides||{}}async function hf(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:()=>mc,getCacheClient:()=>Sf,getDocWritethroughClient:()=>ZN,getInviteClient:()=>ri,getLockClient:()=>If,getPasswordResetClient:()=>Qo,getSessionClient:()=>Wr,getSocketClient:()=>zN,getUserClient:()=>qo,getWritethroughClient:()=>_f,init:()=>Mt,shutdown:()=>gA});var fc=W(require("ioredis"));var dc={};P(dc,{Databases:()=>gf,SEPARATOR:()=>rs,SelectableDatabase:()=>cc,getRedisClusterOptions:()=>Ef,getRedisConnectionDetails:()=>lc,getRedisOptions:()=>ei,removeDbPrefix:()=>yf});var rs="-",gf=(_=>(_.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",_))(gf||{}),cc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(cc||{});function lc(){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}=lc();return{connectTimeout:3e4,port:r,host:t,password:e}}function yf(t){let e=t.split(rs);return e.length>=2?(e.shift(),e.join(rs)):e[0]}var pc=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 pc.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}=lc();r=new fc.Cluster([{host:n,port:i}],Ef())}else r=new fc.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:yf(o),value:a}});r(await Promise.all(s))}catch(s){n(s)}})})}function JN(t){return t.isCluster}var Tf=class t{constructor(e,r){this.client=e,this.db=r}static async init(e,r=0){return await pc.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 pc.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,eE.default)({args:d,value:l,path:s,sync:i,tests:p,endEarly:c},m=>{if(m)return void n(m,l);(0,eE.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(rE.default.isError(n))return!1;throw n})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(n){if(rE.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 sE=j(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.create=iE;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 iE(){return new _d}iE.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 lE=j(Zs=>{"use strict";Object.defineProperty(Zs,"__esModule",{value:!0});Zs.create=cE;Zs.default=void 0;var ew=uE(ir()),oE=rr(),aE=uE(Li());function uE(t){return t&&t.__esModule?t:{default:t}}function cE(){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=oE.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,aE.default)(r)||r===!0}})}isFalse(e=oE.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,aE.default)(r)||r===!1}})}};Zs.default=zs;cE.prototype=zs.prototype});var fE=j(eo=>{"use strict";Object.defineProperty(eo,"__esModule",{value:!0});eo.create=pE;eo.default=void 0;var Qt=rr(),sr=dE(Li()),tw=dE(ir());function dE(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 pE(){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;pE.prototype=Xs.prototype});var gE=j(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});ro.create=hE;ro.default=void 0;var Ln=rr(),Un=mE(Li()),aw=mE(ir());function mE(t){return t&&t.__esModule?t:{default:t}}var uw=t=>t!=+t;function hE(){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;hE.prototype=to.prototype});var EE=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 AE=j(no=>{"use strict";Object.defineProperty(no,"__esModule",{value:!0});no.create=xd;no.default=void 0;var dw=Ou(EE()),yE=rr(),TE=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=yE.date.min){let n=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,TE.default)(i)||i>=this.resolve(n)}})}max(e,r=yE.date.max){var n=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,TE.default)(i)||i<=this.resolve(n)}})}};no.default=Ui;Ui.INVALID_DATE=Od;xd.prototype=Ui.prototype;xd.INVALID_DATE=Od});var _E=j((YQ,Rd)=>{"use strict";Rd.exports=function(t){return SE(hw(t),t)};Rd.exports.array=SE;function SE(t,e){var r=t.length,n=new Array(r),i={},s=r,o=gw(e),a=Ew(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)i[s]||u(t[s],s,new Set);return n;function u(c,l,d){if(d.has(c)){var 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 Ew(t){for(var e=new Map,r=0,n=t.length;r<n;r++)e.set(t[r],r);return e}});var IE=j(wd=>{"use strict";Object.defineProperty(wd,"__esModule",{value:!0});wd.default=Iw;var yw=xu(require("lodash/has")),Tw=xu(_E()),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,yw.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 xE=j(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});bd.default=Ow;function OE(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)=>OE(t,e)-OE(t,r)}});var NE=j(so=>{"use strict";Object.defineProperty(so,"__esModule",{value:!0});so.create=vE;so.default=void 0;var RE=jt(require("lodash/has")),wE=jt(require("lodash/snakeCase")),xw=jt(require("lodash/camelCase")),Rw=jt(require("lodash/mapKeys")),ww=jt(require("lodash/mapValues")),bw=js(),bE=rr(),Dw=jt(IE()),CE=jt(xE()),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 DE=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,CE.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 DE(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,RE.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 E="spec"in p?p.spec:void 0,T=E?.strict;if(E?.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||!DE(d)){n(i[0]||null,d);return}a=a||d;let p=this._nodes.map(m=>(f,g)=>{let E=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:E,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,CE.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,RE.default)(s,e)&&(o=Mi({},s),n||delete o[e],o[r]=i(s)),o})}noUnknown(e=!0,r=bE.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=bE.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(wE.default)}constantCase(){return this.transformKeys(e=>(0,wE.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,ww.default)(this.fields,r=>r.describe()),e}};so.default=io;function vE(t){return new io(t)}vE.prototype=io.prototype});var LE=j(ao=>{"use strict";Object.defineProperty(ao,"__esModule",{value:!0});ao.create=PE;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 PE(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 E=0;E<f.length;E++){let T=f[E],_=`${r.path||""}[${E}]`,S=Ru({},r,{path:_,strict:!0,parent:f,index:E,originalValue:p[E]});g[E]=(x,y)=>c.validate(T,S,y)}(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;PE.prototype=oo.prototype});var UE=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 ME=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 FE.default}});Object.defineProperty(me,"mixed",{enumerable:!0,get:function(){return FE.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 kE.default}});Object.defineProperty(me,"string",{enumerable:!0,get:function(){return kE.create}});Object.defineProperty(me,"NumberSchema",{enumerable:!0,get:function(){return BE.default}});Object.defineProperty(me,"number",{enumerable:!0,get:function(){return BE.create}});Object.defineProperty(me,"DateSchema",{enumerable:!0,get:function(){return GE.default}});Object.defineProperty(me,"date",{enumerable:!0,get:function(){return GE.create}});Object.defineProperty(me,"ObjectSchema",{enumerable:!0,get:function(){return VE.default}});Object.defineProperty(me,"object",{enumerable:!0,get:function(){return VE.create}});Object.defineProperty(me,"ArraySchema",{enumerable:!0,get:function(){return $E.default}});Object.defineProperty(me,"array",{enumerable:!0,get:function(){return $E.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 WE.default}});Object.defineProperty(me,"setLocale",{enumerable:!0,get:function(){return Jw.default}});Object.defineProperty(me,"BaseSchema",{enumerable:!0,get:function(){return zw.default}});var FE=Mn(sE()),Pd=Mn(lE()),kE=Mn(fE()),BE=Mn(gE()),GE=Mn(AE()),VE=Mn(NE()),$E=Mn(LE()),jw=Pn(),Hw=UE(),Kw=co(vn()),Yw=co(Ad()),WE=co(Ni()),Jw=co(ME()),zw=co(ir());function co(t){return t&&t.__esModule?t:{default:t}}function qE(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return qE=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=qE();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,WE.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 QE=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(QE());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}}},jE=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]=jE.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,E,T,_,S,x;try{(0,nb.default)();let y;if(t.preset)if(typeof t.preset=="string"){if(!Fn[t.preset])return(0,lo.err)([`Option preset ${t.preset} does not exist.`]);y=Fn[t.preset]}else y=t.preset;else y=Fn.default;let I=Object.assign(Object.assign({presetId:y.presetId,preset:y},{useSeconds:y.useSeconds,useYears:y.useYears,useAliases:(e=y.useAliases)!==null&&e!==void 0?e:!1,useBlankDay:y.useBlankDay,allowOnlyOneBlankDayField:y.allowOnlyOneBlankDayField,mustHaveBlankDayField:(r=y.mustHaveBlankDayField)!==null&&r!==void 0?r:!1,useLastDayOfMonth:(n=y.useLastDayOfMonth)!==null&&n!==void 0?n:!1,useLastDayOfWeek:(i=y.useLastDayOfWeek)!==null&&i!==void 0?i:!1,useNearestWeekday:(s=y.useNearestWeekday)!==null&&s!==void 0?s:!1,useNthWeekdayOfMonth:(o=y.useNthWeekdayOfMonth)!==null&&o!==void 0?o:!1,seconds:{lowerLimit:(a=y.seconds.lowerLimit)!==null&&a!==void 0?a:y.seconds.minValue,upperLimit:(u=y.seconds.upperLimit)!==null&&u!==void 0?u:y.seconds.maxValue},minutes:{lowerLimit:(c=y.minutes.lowerLimit)!==null&&c!==void 0?c:y.minutes.minValue,upperLimit:(l=y.minutes.upperLimit)!==null&&l!==void 0?l:y.minutes.maxValue},hours:{lowerLimit:(d=y.hours.lowerLimit)!==null&&d!==void 0?d:y.hours.minValue,upperLimit:(p=y.hours.upperLimit)!==null&&p!==void 0?p:y.hours.maxValue},daysOfMonth:{lowerLimit:(m=y.daysOfMonth.lowerLimit)!==null&&m!==void 0?m:y.daysOfMonth.minValue,upperLimit:(f=y.daysOfMonth.upperLimit)!==null&&f!==void 0?f:y.daysOfMonth.maxValue},months:{lowerLimit:(g=y.months.lowerLimit)!==null&&g!==void 0?g:y.months.minValue,upperLimit:(E=y.months.upperLimit)!==null&&E!==void 0?E:y.months.maxValue},daysOfWeek:{lowerLimit:(T=y.daysOfWeek.lowerLimit)!==null&&T!==void 0?T:y.daysOfWeek.minValue,upperLimit:(_=y.daysOfWeek.upperLimit)!==null&&_!==void 0?_:y.daysOfWeek.maxValue},years:{lowerLimit:(S=y.years.lowerLimit)!==null&&S!==void 0?S:y.years.minValue,upperLimit:(x=y.years.upperLimit)!==null&&x!==void 0?x:y.years.maxValue}}),t.override),D=b.object({presetId:b.string().required(),preset:jE.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(y.seconds.minValue).max(y.seconds.maxValue),upperLimit:b.number().min(y.seconds.minValue).max(y.seconds.maxValue)}).required(),minutes:b.object({lowerLimit:b.number().min(y.minutes.minValue).max(y.minutes.maxValue),upperLimit:b.number().min(y.minutes.minValue).max(y.minutes.maxValue)}).required(),hours:b.object({lowerLimit:b.number().min(y.hours.minValue).max(y.hours.maxValue),upperLimit:b.number().min(y.hours.minValue).max(y.hours.maxValue)}).required(),daysOfMonth:b.object({lowerLimit:b.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue),upperLimit:b.number().min(y.daysOfMonth.minValue).max(y.daysOfMonth.maxValue)}).required(),months:b.object({lowerLimit:b.number().min(y.months.minValue).max(y.months.maxValue),upperLimit:b.number().min(y.months.minValue).max(y.months.maxValue)}).required(),daysOfWeek:b.object({lowerLimit:b.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue),upperLimit:b.number().min(y.daysOfWeek.minValue).max(y.daysOfWeek.maxValue)}).required(),years:b.object({lowerLimit:b.number().min(y.years.minValue).max(y.years.maxValue),upperLimit:b.number().min(y.years.minValue).max(y.years.maxValue)}).required()}).required().validateSync(I,{strict:!1,abortEarly:!1,stripUnknown:!0,recursive:!0});return(0,lo.valid)(D)}catch(y){return(0,lo.err)(y.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},yy={year:v,month:vt,day:v},Eb={year:v,month:vt,day:v,weekday:vt},Ty={year:v,month:st,day:v},Ay={year:v,month:st,day:v,weekday:st},Sy={hour:v,minute:v},_y={hour:v,minute:v,second:v},Iy={hour:v,minute:v,second:v,timeZoneName:vt},Oy={hour:v,minute:v,second:v,timeZoneName:st},xy={hour:v,minute:v,hourCycle:"h23"},Ry={hour:v,minute:v,second:v,hourCycle:"h23"},wy={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:vt},by={hour:v,minute:v,second:v,hourCycle:"h23",timeZoneName:st},Dy={year:v,month:v,day:v,hour:v,minute:v},Cy={year:v,month:v,day:v,hour:v,minute:v,second:v},vy={year:v,month:vt,day:v,hour:v,minute:v},Ny={year:v,month:vt,day:v,hour:v,minute:v,second:v},yb={year:v,month:vt,day:v,weekday:vt,hour:v,minute:v},Py={year:v,month:st,day:v,hour:v,minute:v,timeZoneName:vt},Ly={year:v,month:st,day:v,hour:v,minute:v,second:v,timeZoneName:vt},Uy={year:v,month:st,day:v,weekday:st,hour:v,minute:v,timeZoneName:st},My={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 ky(e,r,n)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}},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 ky(e,r,n,this.name)}formatOffset(e,r){return yo(this.offset(e),r)}offset(e){let r=new Date(e);if(isNaN(r))return NaN;let n=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}},HE={};function Ib(t,e={}){let r=JSON.stringify([t,e]),n=HE[r];return n||(n=new Intl.ListFormat(t,e),HE[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&&Fy()&&(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||ye.defaultLocale,o=s||(i?"en-US":Rb()),a=r||ye.defaultNumberingSystem,u=n||ye.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,Vy,()=>{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,qy,()=>{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,()=>Qy,()=>{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,jy,()=>{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${yo(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${yo(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,r){return yo(this.fixed,r)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}},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 KE=()=>Date.now(),YE="system",JE=null,zE=null,ZE=null,XE=60,ey,ye=class{static get now(){return KE}static set now(e){KE=e}static set defaultZone(e){YE=e}static get defaultZone(){return Ur(YE,To.instance)}static get defaultLocale(){return JE}static set defaultLocale(e){JE=e}static get defaultNumberingSystem(){return zE}static set defaultNumberingSystem(e){zE=e}static get defaultOutputCalendar(){return ZE}static set defaultOutputCalendar(e){ZE=e}static get twoDigitCutoffYear(){return XE}static set twoDigitCutoffYear(e){XE=e%100}static get throwOnInvalid(){return ey}static set throwOnInvalid(e){ey=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 Fy(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function Lb(t){return Array.isArray(t)?t:[t]}function ty(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 Eo(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>ye.twoDigitCutoffYear?1900+t:2e3+t}function ky(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 By(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)]=By(i)}return r}function yo(t,e){let r=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),i=t>=0?"+":"-";switch(e){case"short":return`${i}${Re(r,2)}:${Re(n,2)}`;case"narrow":return`${i}${r}${n>0?`:${n}`:""}`;case"techie":return`${i}${Re(r,2)}${Re(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function $u(t){return Ub(t,["hour","minute","second","millisecond"])}var Fb=["January","February","March","April","May","June","July","August","September","October","November","December"],Gy=["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 Vy(t){switch(t){case"narrow":return[...kb];case"short":return[...Gy];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 $y=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Wy=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Bb=["M","T","W","T","F","S","S"];function qy(t){switch(t){case"narrow":return[...Bb];case"short":return[...Wy];case"long":return[...$y];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var Qy=["AM","PM"],Gb=["Before Christ","Anno Domini"],Vb=["BC","AD"],$b=["B","A"];function jy(t){switch(t){case"narrow":return[...$b];case"short":return[...Vb];case"long":return[...Gb];default:return null}}function Wb(t){return Qy[t.hour<12?0:1]}function qb(t,e){return qy(e)[t.weekday-1]}function Qb(t,e){return Vy(e)[t.month-1]}function jb(t,e){return jy(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 ry(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:yy,DDD:Ty,DDDD:Ay,t:Sy,tt:_y,ttt:Iy,tttt:Oy,T:xy,TT:Ry,TTT:wy,TTTT:by,f:Dy,ff:vy,fff:Py,ffff:Uy,F:Cy,FF:Ny,FFF:Ly,FFFF:My},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 ry(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 ry(s,i(a))}},it=class{constructor(e,r){this.reason=e,this.explanation=r}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},Hy=/[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 Ky(...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 Yy=/(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/,Yb=`(?:${Yy.source}?(?:\\[(${Hy.source})\\])?)?`,cp=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Jy=RegExp(`${cp.source}${Yb}`),lp=RegExp(`(?:T${Jy.source})?`),Jb=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,zb=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Zb=/(\d{4})-?(\d{3})/,Xb=Ky("weekYear","weekNumber","weekDay"),eD=Ky("year","ordinal"),tD=/(\d{4})-(\d\d)-(\d\d)/,zy=RegExp(`${cp.source} ?(?:${Yy.source}|(${Hy.source}))?`),rD=RegExp(`(?: ${zy.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:Gy.indexOf(r)+1,day:Lr(n),hour:Lr(i),minute:Lr(s)};return o&&(a.second=Lr(o)),t&&(a.weekday=t.length>3?$y.indexOf(t)+1:Wy.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 ny(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),ED=$i(Zb,lp),yD=$i(Jy),Zy=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,Zy],[gD,TD],[ED,AD],[yD,SD])}function ID(t){return qi(lD(t),[uD,cD])}function OD(t){return qi(t,[dD,ny],[pD,ny],[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(zy),CD=Wi(Qi,So,_o);function vD(t){return qi(t,[bD,Zy],[DD,CD])}var ND="Invalid Duration",Xy={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},...Xy},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},...Xy},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(ye.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]=By(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(ye.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=ye.defaultZone){let r=_e.now().setZone(e).set({month:12});return!e.isUniversal&&r.offset!==r.set({month:6}).offset}static isValidIANAZone(e){return ur.isValidZone(e)}static normalizeZone(e){return Ur(e,ye.defaultZone)}static months(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e)}static monthsFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null,outputCalendar:s="gregory"}={}){return(i||Se.create(r,n,s)).months(e,!0)}static weekdays(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:r=null,numberingSystem:n=null,locObj:i=null}={}){return(i||Se.create(r,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return Se.create(e).meridiems()}static eras(e="short",{locale:r=null}={}){return Se.create(r,null,"gregory").eras(e)}static features(){return{relative:Fy()}}};function iy(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=iy(u,c);return(l-l%7)/7}],["days",iy]],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"},sy={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 sy){let[s,o]=sy[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 oy(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=>oy(r)===oy(n))+e}}function ay(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=E=>({regex:RegExp(HD(E.val)),deser:([T])=>T,literal:!0}),g=(E=>{if(t.literal)return m(E);switch(E.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 ay(new RegExp(`([+-]${a.source})(?::(${n.source}))?`),2);case"ZZZ":return ay(new RegExp(`([+-]${a.source})(${n.source})?`),2);case"z":return $d(/[a-z_+-/]{1,256}?/i);default:return m(E)}})(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 uy(t){let{weekYear:e,weekNumber:r,weekday:n}=t,i=uT(e,1,4),s=Eo(e),o=r*7+n-i-3,a;o<1?(a=e-1,o+=Eo(a)):o>s?(a=e+1,o-=Eo(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 cy(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,Eo(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",ly=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 dy(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 py(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 fy(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 my(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 hy(t,e){let r=Ur(e.zone,ye.defaultZone),n=Se.fromObject(e),i=ye.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 gy(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 Ey(t){let e={},r;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],r=Array.from(t).slice(0,t.length-1)):r=Array.from(t),[e,r]}var _e=class t{constructor(e){let r=e.zone||ye.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new it("invalid input"):null)||(r.isValid?null:Cu(r));this.ts=ae(e.ts)?ye.now():e.ts;let i=null,s=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(r))[i,s]=[e.old.c,e.old.o];else{let a=r.offset(this.ts);i=dy(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]=Ey(arguments),[n,i,s,o,a,u,c]=r;return hy({year:n,month:i,day:s,hour:o,minute:a,second:u,millisecond:c},e)}static utc(){let[e,r]=Ey(arguments),[n,i,s,o,a,u,c]=r;return e.zone=ot.utcInstance,hy({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,ye.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<-ly||e>ly?t.invalid("Timestamp out of range"):new t({ts:e,zone:Ur(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,r={}){if(qn(e))return new t({ts:e*1e3,zone:Ur(r.zone,ye.defaultZone),loc:Se.fromObject(r)});throw new Ye("fromSeconds requires a numerical input")}static fromObject(e,r={}){e=e||{};let n=Ur(r.zone,ye.defaultZone);if(!n.isValid)return t.invalid(Cu(n));let i=ye.now(),s=ae(r.specificOffset)?n.offset(i):r.specificOffset,o=Bu(e,my),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,E=dy(i,s);m?(f=aC,g=sC,E=sp(E)):a?(f=uC,g=oC,E=qd(E)):(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]=E[D]:T=!0}let _=m?nC(o):a?iC(o):dT(o),S=_||pT(o);if(S)return t.invalid(S);let x=m?uy(o):a?cy(o):o,[y,I]=Pu(x,s,n),k=new t({ts:y,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(ye.throwOnInvalid)throw new Kd(n);return new t({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,r={}){let n=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?Eo(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(ye.defaultZone)}setZone(e,{keepLocalTime:r=!1,keepCalendarTime:n=!1}={}){if(e=Ur(e,ye.defaultZone),e.equals(this.zone))return this;if(e.isValid){let i=this.ts;if(r||n){let s=e.offset(this.ts),o=this.toObject();[i]=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,my),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=uy({...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=cy({...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,py(this,r))}minus(e){if(!this.isValid)return this;let r=Ce.fromDurationLike(e).negate();return fo(this,py(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+=fy(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":"")+fy(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),gy(r,this.plus(n),{...e,numeric:"always",units:i,unit:s})}toRelativeCalendar(e={}){return this.isValid?gy(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 ty(e,r=>r.valueOf(),Math.min)}static max(...e){if(!e.every(t.isDateTime))throw new Ye("max requires all arguments be DateTimes");return ty(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 yy}static get DATE_MED_WITH_WEEKDAY(){return Eb}static get DATE_FULL(){return Ty}static get DATE_HUGE(){return Ay}static get TIME_SIMPLE(){return Sy}static get TIME_WITH_SECONDS(){return _y}static get TIME_WITH_SHORT_OFFSET(){return Iy}static get TIME_WITH_LONG_OFFSET(){return Oy}static get TIME_24_SIMPLE(){return xy}static get TIME_24_WITH_SECONDS(){return Ry}static get TIME_24_WITH_SHORT_OFFSET(){return wy}static get TIME_24_WITH_LONG_OFFSET(){return by}static get DATETIME_SHORT(){return Dy}static get DATETIME_SHORT_WITH_SECONDS(){return Cy}static get DATETIME_MED(){return vy}static get DATETIME_MED_WITH_SECONDS(){return Ny}static get DATETIME_MED_WITH_WEEKDAY(){return yb}static get DATETIME_FULL(){return Py}static get DATETIME_FULL_WITH_SECONDS(){return Ly}static get DATETIME_HUGE(){return Uy}static get DATETIME_HUGE_WITH_SECONDS(){return My}};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=ye;at.SystemZone=To;at.VERSION=cC;at.Zone=Mr});var yT=j((oj,ET)=>{"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))}ET.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=yT(),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,E=f.length;g<E;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,E=m;g<=E;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,y=Math.floor(x/7)+S;return y===_}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,E=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(E,this.fields.hour)){if(this._dstEnd===E&&!e){this._dstEnd=null,this._applyTimezoneShift(o,"add","Hour");continue}}else if(this._dstStart!==E){this._dstStart=null,this._applyTimezoneShift(o,s,"Hour");continue}else if(!r(E-1,this.fields.hour)){o[s+"Hour"]();continue}if(!r(o.getMinutes(),this.fields.minute)){this._applyTimezoneShift(o,s,"Minute");continue}if(!r(o.getSeconds(),this.fields.second)){this._applyTimezoneShift(o,s,"Second");continue}if(c===o.getTime()){s==="add"||o.getMilliseconds()===0?this._applyTimezoneShift(o,s,"Second"):o.setMilliseconds(0);continue}break}if(l>=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 E=U.map[l];g[E]=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 y=+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(y)||y<1||y>5)throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return o.nthDayOfWeek=y,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,E=m.length;g<E;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:()=>yt,APP_PREFIX:()=>Et,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:()=>Ee,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:()=>Er,constants:()=>$p,context:()=>Ae,csv:()=>Gh,db:()=>Kr,docIds:()=>Pf,docUpdates:()=>Ch,encryption:()=>Sh,env:()=>h,errors:()=>$c,events:()=>Es,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:()=>ys,utils:()=>ls,withEnv:()=>JT});module.exports=ZI(rB);var Er={};P(Er,{analyticsEnabled:()=>Kc,generateConfigID:()=>cl,getAIConfig:()=>EF,getConfig:()=>_t,getDefaultGoogleConfig:()=>Km,getGoogleConfig:()=>ll,getGoogleDatasourceConfig:()=>zm,getOIDCConfig:()=>mF,getOIDCConfigById:()=>Zm,getOIDCLogosDoc:()=>pF,getPlatformUrl:()=>Ma,getRecaptchaConfig:()=>yF,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_JS_GENERATION:!0,AI_TABLE_GENERATION:!0,AI_AGENTS:!1,WORKSPACES:!1,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}`,Ee=(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))(Ee||{});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"],E$=["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])$/,EO=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,yO=/^([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)&&EO.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"?yO.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 En=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)}};En.create=t=>new En({typeName:H.ZodBoolean,coerce:t?.coerce||!1,...X(t)});var yn=class t extends ee{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let s=this._getOrReturnCtx(e);return L(s,{code:R.invalid_type,expected:M.date,received:s.parsedType}),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}};yn.create=t=>new yn({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=En.create,bO=yn.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=>En.create({...t,coerce:!0}),bigint:t=>gn.create({...t,coerce:!0}),date:t=>yn.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:En,ZodDate:yn,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:()=>yt,APP_PREFIX:()=>Et,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:()=>Ee,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:()=>Eg,parallelForeach:()=>mx,processSearchFilters:()=>ed,toMap:()=>yx,trimOtherProps:()=>Ex,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 Ex(t,e){return Object.keys(t).filter(n=>e.includes(n)).reduce((n,i)=>({...n,[i]:t[i]}),{})}function Eg(t){let e=[{op:"string",key:"email"},{op:"equal",key:"_id"},{op:"oneOf",key:"_id"}],{allOr:r,onEmptyFilter:n,...i}=t;for(let[s,o]of Object.entries(i)){if(typeof o!="object")return!1;if(ja(s)){for(let c of t[s].conditions)if(!Eg(c))return!1;return!0}let a=Object.keys(o||{});if(a.length===0)continue;if(!e.find(c=>c.op===s&&a.length===1&&a[0]===c.key))return!1}return!0}function 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 yx(t,e){return e.reduce((r,n)=>(r[n[t]]=n,r),{})}var Je={};P(Je,{cancelableTimeout:()=>yg,cron:()=>mp,deepGet:()=>td,duplicateName:()=>vC,getSequentialName:()=>NC,getUserColor:()=>Ax,getUserInitials:()=>Tx,getUserLabel:()=>Sx,isGoogleSheets:()=>Ix,isSQL:()=>Ox,lists:()=>Tp,retry:()=>xx,roles:()=>yp,schema:()=>Io,views:()=>Ep,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 yg(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]=yg(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:()=>EC});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 EC(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:()=>yC,isNumeric:()=>SC,isRequired:()=>TC});function yC(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 Ep={};P(Ep,{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 yp={};P(yp,{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=(y,I)=>k=>{for(let[D,B]of Object.entries(e[y]||{})){let de=ja(y)?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",(y,I)=>typeof y!="string"||typeof I!="string"?!1:y.toLowerCase().startsWith(I.toLowerCase())),i=r("fuzzy",(y,I)=>typeof y!="string"||typeof I!="string"?!1:y.toLowerCase().includes(I.toLowerCase())),s=r("range",(y,I)=>{if(y==null||y===""||((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=+y;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)(y);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?y>=I.low&&y<=I.high:I.low!=null?y>=I.low:I.high!=null?y<=I.high:!1}),o=(y,I)=>{if(Array.isArray(y)){for(let D of y)if(o(D,I))return!0;return!1}if(y&&typeof y=="object"&&typeof I=="string")return y._id===I;if(y===I)return!0;if(y==null&&I!=null||y!=null&&I==null)return!1;let k=(0,ji.default)(y);if(k.isValid()){let D=(0,ji.default)(I);if(D.isValid())return k.isSame(D)}return!1},a=y=>(...I)=>!y(...I),u=r("equal",o),c=r("notEqual",a(o)),l=y=>typeof y=="string"?y==="":Array.isArray(y)?y.length===0:y&&typeof y=="object"?Object.keys(y).length===0:y==null,d=r("empty",l),p=r("notEmpty",a(l)),m=r("oneOf",(y,I)=>(typeof I=="string"&&(I=I.split(",")),typeof y=="number"&&(I=I.map(k=>parseFloat(k))),Array.isArray(I)?I.some(k=>o(y,k)):!1)),f=y=>(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[y](D=>o(I,D)),g=r("contains",(y,I)=>Array.isArray(I)&&I.length===0?!0:f("every")(y,I)),E=r("notContains",(y,I)=>Array.isArray(I)&&I.length===0?!0:a(f("every"))(y,I)),T=r("containsAny",f("some")),_=r("$and",(y,I)=>{if(!I.length)return!1;for(let k of I)if(!qu([y],k).length)return!1;return!0}),S=r("$or",(y,I)=>{if(!I.length)return!1;for(let k of I)if(qu([y],{...k,allOr:!0}).length)return!0;return!1}),x=y=>{let I={string:n,fuzzy:i,range:s,equal:u,notEqual:c,empty:d,notEmpty:p,oneOf:m,contains:g,containsAny:T,notContains:E,$and:_,$or:S},k=Object.entries(e||{}).filter(([D,B])=>!["allOr","onEmptyFilter"].includes(D)&&B&&Object.keys(B).length>0).map(([D])=>I[D]?.(y)??!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||{}),EK={deprecated:!0,name:"Outgoing webhook",tagline:"Send a {{inputs.requestMethod}} request",icon:"paper-plane-right",description:"Send a request of specified method to a URL",type:"ACTION",internal:!0,features:{LOOPING:!0},stepId:"OUTGOING_WEBHOOK",inputs:{requestMethod:"POST",url:"http://",requestBody:"{}",headers:"{}"},schema:{inputs:{properties:{requestMethod:{type:"string",enum:Object.values($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 yv={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(yv)},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(Ee).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"}},Et=Rr("app"),Zu=Rr("app_dev"),yt=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:()=>Ec,passwordReset:()=>Qm,store:()=>lr,user:()=>sn,withCache:()=>jr,withCacheWithDynamicTTL:()=>EA,writethrough:()=>qm});var Ko={};P(Ko,{CacheKey:()=>ve,TTL:()=>si,bustCache:()=>ns,destroy:()=>Ho,get:()=>oi,keys:()=>Ec,store:()=>lr,withCache:()=>jr,withCacheWithDynamicTTL:()=>EA});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(yt)}function aN(t){if(!t)throw Kp;return t.startsWith(Et)&&!Vr(t)}function No(t){if(!t)throw Kp;return Vr(t.appId)}function ic(t){if(!t||t.startsWith(yt))return t;let e=t.split(Et);e.shift();let r=e.join(Et);return`${yt}${r}`}var Ji=ic;function ct(t){if(!t||!t.startsWith(yt))return t;let e=t.split(yt);e.shift();let r=e.join(yt);return`${Et}${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:()=>EN,convertRowId:()=>_N,encodeTableId:()=>yN,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 EN(t,e){return`${t}${Zp}${encodeURIComponent(e)}`}function yN(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:()=>Ef,SEPARATOR:()=>rs,SelectableDatabase:()=>dc,getRedisClusterOptions:()=>yf,getRedisConnectionDetails:()=>pc,getRedisOptions:()=>ei,removeDbPrefix:()=>Tf});var rs="-",Ef=(_=>(_.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",_))(Ef||{}),dc=(E=>(E[E.DEFAULT=0]="DEFAULT",E[E.SOCKET_IO=1]="SOCKET_IO",E[E.RATE_LIMITING=2]="RATE_LIMITING",E[E.UNUSED_2=3]="UNUSED_2",E[E.UNUSED_3=4]="UNUSED_3",E[E.UNUSED_4=5]="UNUSED_4",E[E.UNUSED_5=6]="UNUSED_5",E[E.UNUSED_6=7]="UNUSED_6",E[E.UNUSED_7=8]="UNUSED_7",E[E.UNUSED_8=9]="UNUSED_8",E[E.UNUSED_9=10]="UNUSED_9",E[E.UNUSED_10=11]="UNUSED_10",E[E.UNUSED_11=12]="UNUSED_11",E[E.UNUSED_12=13]="UNUSED_12",E[E.UNUSED_13=14]="UNUSED_13",E[E.UNUSED_14=15]="UNUSED_14",E))(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 yf(){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}],yf())}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=`
|
|
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=Tf;var Mo,Fo,ko,Bo,ti,Go,Vo,$o,Wo,Af;async function Mt(){Mo=await Qe.init("users"),Fo=await Qe.init("session"),ko=await Qe.init("appMetadata"),Bo=await Qe.init("data_cache"),Go=await Qe.init("locks"),ti=await Qe.init("writeThrough"),$o=await Qe.init("invitation"),Wo=await Qe.init("pwReset"),Vo=await Qe.init("socket_io",1),Af=await Qe.init("docWriteThrough")}async function gA(){Mo&&await Mo.finish(),Fo&&await Fo.finish(),ko&&await ko.finish(),Bo&&await Bo.finish(),ti&&await ti.finish(),Go&&await Go.finish(),$o&&await $o.finish(),Wo&&await Wo.finish(),Vo&&await Vo.finish(),Af&&await Af.finish()}process.on("exit",async()=>{await gA()});async function qo(){return Mo||await Mt(),Mo}async function Wr(){return Fo||await Mt(),Fo}async function mc(){return ko||await Mt(),ko}async function Sf(){return Bo||await Mt(),Bo}async function _f(){return ti||await Mt(),ti}async function If(){return Go||await Mt(),Go}async function zN(){return Vo||await Mt(),Vo}async function ri(){return $o||await Mt(),$o}async function Qo(){return Wo||await Mt(),Wo}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 Sf()}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||{}),hc=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),lr=(...t)=>ii.store(...t),jo=(...t)=>ii.delete(...t),Qr=(...t)=>ii.withCache(...t),EA=(...t)=>ii.withCacheWithDynamicTTL(...t),ns=(...t)=>ii.bustCache(...t);var sn={};P(sn,{getUser:()=>va,getUsers:()=>J0,invalidateUser:()=>Na});var Yo={};P(Yo,{addTenantToUrl:()=>XN,getTenantDB:()=>Of,getTenantIDFromCtx:()=>Ko,isUserInAppTenant:()=>eP});function Of(t){return We(Zn(t))}function XN(t){let e=Q();if($r()){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(Rs),Ko=(t,e)=>{if(!$r())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(af()).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 Jo={};P(Jo,{getPlatformDB:()=>jr,users:()=>Ft});var Ft={};P(Ft,{addSsoUser:()=>TA,addUser:()=>aP,getUserDoc:()=>yA,lookupTenantId:()=>rP,removeUser:()=>uP,updateUserDoc:()=>nP});function jr(){return We(xe.PLATFORM_INFO.name)}async function rP(t){return h.MULTI_TENANCY?(await yA(t)).tenantId:Te}async function yA(t){return jr().get(t)}async function nP(t){await jr().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 xf(t,e){let r=jr(),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 xf(t,()=>oP(t,e,r,n))}async function aP(t,e,r,n){let i=[xf(e,()=>iP(e,t)),xf(r,()=>sP(e,r,t))];n&&i.push(TA(n,r,e,t)),await Promise.all(i)}async function uP(t){let e=jr(),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:()=>Xr,getAccountByTenantId:()=>cs,getStatus:()=>nL});var vS=W(require("node-fetch"));var ca={};P(ca,{correlation:()=>zo,logAlert:()=>li,logAlertWithInfo:()=>rL,logWarn:()=>us,logger:()=>wc,system:()=>zf});var zo={};P(zo,{getId:()=>Rf,setHeader:()=>cP});var AA=require("correlation-id"),cP=t=>{let e=AA.getId();e&&(t["x-budibase-correlation-id"]=e)};function Rf(){return AA.getId()}var Rc=W(require("pino")),DS=W(require("pino-pretty"));var Zf=W(require("dd-trace")),CS=require("dd-trace/ext");var zf={};P(zf,{getLogReadStream:()=>JP,getSingleFileMaxSizeInfo:()=>bS,localFileDestination:()=>Jf});var ua=W(require("fs")),Yf=W(require("path")),OS=W(require("rotating-file-stream"));var Kf={};P(Kf,{ObjectStore:()=>kt,ObjectStoreBuckets:()=>dP,SIGNED_FILE_PREFIX:()=>qf,bucketTTLConfig:()=>gc,budibaseTempDir:()=>ai,clientLibraryCDNUrl:()=>WP,clientLibraryPath:()=>hS,clientLibraryUrl:()=>qP,createBucketIfNotExists:()=>aa,deleteFile:()=>MP,deleteFiles:()=>FP,deleteFolder:()=>pS,downloadTarball:()=>BP,downloadTarballDirect:()=>kP,enrichPWAImages:()=>QP,enrichPluginURLs:()=>HP,extractBucketAndPath:()=>wf,getAppFileUrl:()=>gS,getGlobalFileS3Key:()=>ES,getGlobalFileUrl:()=>jP,getObjectMetadata:()=>GP,getPluginIconKey:()=>AS,getPluginJSKey:()=>TS,getPluginS3Dir:()=>_S,getPresignedUrl:()=>zr,getReadStream:()=>Ec,listAllObjects:()=>dS,processAutomationAttachment:()=>fP,processObjectStoreAttachment:()=>xA,retrieve:()=>lS,retrieveDirectory:()=>UP,retrieveToTmp:()=>LP,sanitizeBucket:()=>ze,sanitizeKey:()=>Me,streamUpload:()=>cS,upload:()=>PP,uploadDirectory:()=>Qf});var Ic=require("@aws-sdk/client-s3"),Bf=require("@aws-sdk/lib-storage"),uS=require("@aws-sdk/s3-request-presigner"),Oc=W(require("stream")),Gf=W(require("node-fetch")),Vf=W(require("tar-fs")),$f=W(require("zlib")),Yr=require("path"),os=W(require("fs"));var Zo=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,Zo.join)((0,SA.tmpdir)(),".budibase");try{_A.default.mkdirSync(OA)}catch(t){if(t.code!=="EEXIST")throw t}function ai(){return OA}var gc=(t,e)=>{let n={Rules:[{ID:`${t}-ExpireAfter${e}days`,Prefix:"",Status:"Enabled",Expiration:{Days:e}}]};return{Bucket:t,LifecycleConfiguration:n}};async function pP(t){let e=await fetch(t.url);if(!e.ok||!e.body)throw new Error(`Unexpected response ${e.statusText}`);let r=Zo.default.basename(new URL(t.url).pathname);if(!e.body)throw new Error("No response received for attachment");return{filename:t.filename||r,content:IA.default.Readable.fromWeb(e.body)}}async function xA(t){let e=wf(t.url);if(e===null)throw new Error("Invalid signed URL");let{bucket:r,path:n}=e,i=await Ec(r,n),s=Zo.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 Wf=require("uuid");var Hr={};P(Hr,{APP_DEV:()=>zu,APP_DEV_PREFIX:()=>yt,APP_PREFIX:()=>Et,AutomationViewMode:()=>Ju,BUDIBASE_DATASOURCE_TYPE:()=>Lp,DEFAULT_BB_DATASOURCE_ID:()=>vi,DEFAULT_EMPLOYEE_TABLE_ID:()=>kp,DEFAULT_EXPENSES_TABLE_ID:()=>Fp,DEFAULT_INVENTORY_TABLE_ID:()=>Mp,DEFAULT_JOBS_TABLE_ID:()=>Up,DatabaseImpl:()=>Xi,DatabaseWithConnection:()=>xN,DeprecatedViews:()=>Ki,DesignDocuments:()=>Ro,DocumentType:()=>Ee,InternalTable:()=>Zt,QueryBuilder:()=>mr,Replication:()=>nS,SEPARATOR:()=>w,SQLITE_DESIGN_DOC_ID:()=>Kt,SQS_DATASOURCE_INTERNAL:()=>Pp,StaticDatabases:()=>xe,UNICODE_MAX:()=>Ve,USER_METADATA_PREFIX:()=>xo,ViewName:()=>Br,baseGlobalDBName:()=>Uo,checkErrorCode:()=>aS,closePouchDB:()=>Po,createApiKeyView:()=>ZA,createNewUserEmailView:()=>JA,createPlatformAccountEmailView:()=>eS,createPlatformUserView:()=>tS,createUserAppView:()=>zA,createView:()=>ss,dbExists:()=>IP,directCouchAllDbs:()=>of,directCouchCall:()=>XT,directCouchQuery:()=>Yp,directCouchUrlCall:()=>No,doWithDB:()=>lt,extractAppUUID:()=>uN,fullSearch:()=>wP,generateAgentChatID:()=>FA,generateAgentToolSourceID:()=>kA,generateAppID:()=>wA,generateAppUserID:()=>Ac,generateDevInfoID:()=>LA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>MA,generatePluginID:()=>UA,generateRoleID:()=>Cf,generateRowID:()=>Df,generateTableID:()=>bA,generateTemplateID:()=>PA,generateUserMetadataID:()=>vA,generateWorkspaceAppID:()=>BA,generateWorkspaceFavouriteID:()=>GA,generateWorkspaceID:()=>DA,getAllApps:()=>ta,getAllDbs:()=>YA,getAppsByIDs:()=>TP,getCouchInfo:()=>Pt,getDB:()=>We,getDevAppID:()=>Ji,getDevAppIDs:()=>SP,getDevelopmentAppID:()=>nc,getDocParams:()=>pr,getGlobalDBName:()=>Zn,getGlobalIDFromUserMetadataID:()=>NA,getGlobalUserParams:()=>ui,getOAuth2ConfigParams:()=>jA,getPluginParams:()=>QA,getPouch:()=>Jp,getPouchDB:()=>Tt,getProdAppID:()=>ct,getProdAppIDs:()=>AP,getQueryIndex:()=>VA,getRoleParams:()=>_c,getRowParams:()=>vf,getStartEndKeyURL:()=>ea,getTemplateParams:()=>qA,getUrlInfo:()=>Kp,getUserMetadataParams:()=>WA,getUsersByAppParams:()=>Sc,getWorkspaceAppParams:()=>HA,getWorkspaceFavouriteParams:()=>KA,getWorkspaceParams:()=>$A,init:()=>sc,isDevApp:()=>vo,isDevAppID:()=>Gr,isDocumentConflictError:()=>DP,isGlobalUserID:()=>CA,isProdAppID:()=>aN,isSameAppID:()=>_P,paginatedSearch:()=>RP,pagination:()=>Pf,prefixRoleID:()=>dr,queryGlobalView:()=>fr,queryGlobalViewRaw:()=>Mf,queryPlatformView:()=>na,queryView:()=>Uf,queryViewRaw:()=>ra,removeKeyNumbering:()=>ia,searchIndexes:()=>kf});var Xo={};P(Xo,{AppState:()=>bf,getAppMetadata:()=>Tc,invalidateAppMetadata:()=>EP});var bf=(e=>(e.INVALID="invalid",e))(bf||{}),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 Tc(t){let e=await mc(),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 EP(t,e){if(!t)throw"Cannot invalidate if no app ID provided.";let r=await mc();await r.delete(t),e&&await r.store(t,e,RA)}var Nf={};P(Nf,{generateAgentChatID:()=>FA,generateAgentToolSourceID:()=>kA,generateAppID:()=>wA,generateAppUserID:()=>Ac,generateDevInfoID:()=>LA,generateGlobalUserID:()=>is,generateOAuth2LogID:()=>MA,generatePluginID:()=>UA,generateRoleID:()=>Cf,generateRowID:()=>Df,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:()=>_c,getRowParams:()=>vf,getStartEndKeyURL:()=>ea,getTemplateParams:()=>qA,getUserMetadataParams:()=>WA,getUsersByAppParams:()=>Sc,getWorkspaceAppParams:()=>HA,getWorkspaceFavouriteParams:()=>KA,getWorkspaceParams:()=>$A,isGlobalUserID:()=>CA,prefixRoleID:()=>dr});var wA=t=>{let e=Et;return t&&(e+=`${t}${w}`),`${e}${fe()}`};function bA(){return`ta${w}${fe()}`}function Df(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 yP=new RegExp(`^us${w}.+`);function CA(t){return yP.test(t)}function vA(t){return Df("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 Ac(t,e){return`${t}${w}${e}`}function Cf(t){let e=`role${w}`;return t.startsWith(e)?t:`${e}${t}`}function dr(t){return Cf(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 vf(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 vf("ta_users",t,e)}function Sc(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 _c(t,e={}){return pr("role",t,e)}function ea(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 of(s);r=r.concat(o)}let i=Q();return!h.MULTI_TENANCY||!e&&i===Te?await n():(await n(ea("app",i)),await n(ea("app_dev",i)),r.push(Zn(i))),r}async function ta({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=>Gr(l)),c=o.filter(l=>!Gr(l));switch(t){case!0:return u;case!1:return c;default:return o}}let a=o.map(u=>Tc(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:vo(l)?"development":"published"})):c.filter(l=>t?vo(l):!vo(l))}}async function TP(t){return(await Promise.allSettled(t.map(r=>Tc(r)))).filter(r=>r.status==="fulfilled"&&r.value.state!=="invalid").map(r=>r.value)}async function AP(){return(await ta({idsOnly:!0})).filter(e=>!Gr(e))}async function SP(){return(await ta({idsOnly:!0})).filter(e=>Gr(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 Pf(t,e,{paginate:r,property:n,getKey:i}={paginate:!0,property:"_id"}){if(!r)return{data:t,hasNextPage:!1};let s=t.length>e,o;return i||(i=a=>n?a?.[n]:a?._id),s&&(o=i(t[e])),{data:t.slice(0,e),hasNextPage:s,nextPage:o}}var Lf="_design/database";function OP(){return{_id:Lf,views:{}}}async function xP(t,e){if(Ki[e])try{let r=await t.get(Lf);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(Lf)}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)})}},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||{}),Ec=(...t)=>ii.keys(...t),oi=(...t)=>ii.get(...t),lr=(...t)=>ii.store(...t),Ho=(...t)=>ii.delete(...t),jr=(...t)=>ii.withCache(...t),EA=(...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:()=>yA,lookupTenantId:()=>rP,removeUser:()=>uP,updateUserDoc:()=>nP});function Hr(){return We(xe.PLATFORM_INFO.name)}async function rP(t){return h.MULTI_TENANCY?(await yA(t)).tenantId:Te}async function yA(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:()=>yc,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:()=>ES,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 yc=(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:()=>yt,APP_PREFIX:()=>Et,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:()=>Ee,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:()=>EP});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 EP(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=Et;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 yP=new RegExp(`^us${w}.+`);function CA(t){return yP.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) {
|
|
10
10
|
if (doc._id.startsWith("us${w}")) {
|
|
11
11
|
emit(doc.email.toLowerCase(), doc._id)
|
|
12
12
|
}
|
|
@@ -21,7 +21,7 @@ attempted value: ${s}
|
|
|
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
|
|
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) {
|
|
25
25
|
if (doc._id.startsWith("acc_metadata${w}")) {
|
|
26
26
|
emit(doc.email.toLowerCase(), doc._id)
|
|
27
27
|
}
|
|
@@ -33,7 +33,7 @@ attempted value: ${s}
|
|
|
33
33
|
if (doc.ssoId) {
|
|
34
34
|
emit(doc.ssoId, doc._id)
|
|
35
35
|
}
|
|
36
|
-
}`,"platform_users_lowercase_2")},na=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 Uf(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 Uf(t,e,r,i,n)};async function Mf(t,e,r){let n=ie(),i=rS[t];return ra(t,e,n,i,r)}var Ff=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([Po(this.source),Po(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,xo)?!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=Ff;var sS=W(require("node-fetch"));var ia=Fr.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=ia(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,E="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+=` ${E} ${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 E=r?"*:* AND ":"",T=r?"AND":void 0;return E+"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 E=`${e.preprocess(g[0],s)}`;for(let T=1;T<g.length;T++)E+=` OR ${e.preprocess(g[T],s)}`;return`${f}:(${E})`};function m(f,g,E){let T="";for(let[_,S]of Object.entries(f)){_=ia(_),_=e.preprocess(e.handleSpaces(_),{escape:!0});let x=g(_,S);if(x!=null){if(T.length>0||n.length>0){let y=E?.mode?E.mode:r?"OR":"AND";T+=` ${y} `}T+=x,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(E?.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 E=e.preprocess(g.low,s),T=e.preprocess(g.high,s);return`${f}:[${E} 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 kf={};P(kf,{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 sa=W(require("fs/promises")),Jr=W(require("dd-trace")),oa=require("stream/promises");var CP=require("sanitize-s3-objectkey"),vP={bucketCreationPromises:{}},qf="/files/signed",Kr={txt:"text/plain",html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",gz:"application/gzip",svg:"image/svg+xml",form:"multipart/form-data"},NP=[Kr.html,Kr.css,Kr.js,Kr.json];function Me(t){return CP(ze(t)).replace(/\\/g,"/")}function ze(t){return t.replace(new RegExp(yt,"g"),Et)}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 Ic.S3(e)}async function aa(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 sa.default.open(r)).createReadStream():s,c=kt(),l=await aa(c,t);if(o&&l.created){let g=gc(t,o);await c.putBucketLifecycleConfiguration(g)}let d=n,p=d||(a?Kr[a.toLowerCase()]:Kr.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 Bf.Upload({client:c,params:m}).done()}async function cS({bucket:t,stream:e,filename:r,type:n,extra:i,ttl:s}){return await Jr.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 aa(u,t);if(o.addTags({bucketCreated:c.created,bucketExists:c.exists,extension:a}),s&&c.created){let T=gc(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?Kr[a.toLowerCase()]:Kr.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 Bf.Upload({client:u,params:m}).done(),E=await u.headObject({Bucket:d,Key:p});return o.addTags({contentLength:E.ContentLength}),{...g,ContentLength:E.ContentLength}})}async function lS(t,e){return await Jr.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 Oc.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 Ic.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 Jr.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,Yr.join)(ai(),(0,Wf.v4)());return r.addTags({outputPath:i}),n instanceof Oc.default.Readable?(r.addTags({stream:!0}),await(0,oa.pipeline)(n,os.default.createWriteStream(i))):(r.addTags({stream:!1}),os.default.writeFileSync(i,n)),i})}async function UP(t,e){return await Jr.default.trace("retrieveDirectory",async r=>{r.addTags({bucketName:t,path:e});let n=(0,Yr.join)(ai(),(0,Wf.v4)());await sa.default.mkdir(n,{recursive:!0});let i=0;return await Cr.parallelForeach(dS(t,e),async s=>{i++,await Jr.default.trace("retrieveDirectory.object",async o=>{let a=s.Key;o.addTags({filename:a});let u=await Ec(t,a),c=a.split("/"),l=c.slice(0,c.length-1),d=(0,Yr.join)(n,...l);c.length>1&&!os.default.existsSync(d)&&await sa.default.mkdir(d,{recursive:!0}),await(0,oa.pipeline)(u,os.default.createWriteStream((0,Yr.join)(n,...c),{mode:420}))})},5),r.addTags({numObjects:i}),n})}async function MP(t,e){let r=kt();await aa(r,t);let n={Bucket:t,Key:Me(e)};return r.deleteObject(n)}async function FP(t,e){let r=kt();await aa(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 Qf(t,e,r){return await Jr.default.trace("uploadDirectory",async n=>{n.addTags({bucketName:t,localPath:e,bucketPath:r}),t=ze(t);let i=await sa.default.readdir(e,{withFileTypes:!0});n.addTags({numFiles:i.length});for(let s of i){let o=Me((0,Yr.join)(r,s.name)),a=(0,Yr.join)(e,s.name);s.isDirectory()?await Qf(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,Gf.default)(t,{headers:r});if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);await(0,oa.pipeline)(n.body,$f.default.createUnzip(),Vf.default.extract(e))}async function BP(t,e,r){e=ze(e),r=Me(r);let n=await(0,Gf.default)(t);if(!n.ok)throw new Error(`unexpected response ${n.statusText}`);let i=(0,Yr.join)(ai(),r);return await(0,oa.pipeline)(n.body,$f.default.createUnzip(),Vf.default.extract(i)),!h.isTest()&&h.SELF_HOSTED&&await Qf(e,i,r),i}async function Ec(t,e){return await Jr.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 Oc.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 wf(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")),xc;function VP(){if(!h.CLOUDFRONT_PRIVATE_KEY_64)throw new Error("CLOUDFRONT_PRIVATE_KEY_64 is not set");return xc||(xc=Buffer.from(h.CLOUDFRONT_PRIVATE_KEY_64,"base64").toString("utf-8"),xc)}var $P=()=>({keypairId:h.CLOUDFRONT_PUBLIC_KEY_ID,privateKeyString:VP(),expireTime:new Date().getTime()+1e3*60*60*24}),as=t=>{let e=jf(t);return fS.getSignedUrl(e,$P())},jf=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}`),jf(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=ES(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),as(n)):await zr(h.GLOBAL_BUCKET_NAME,n)},ES=(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 yS(e)}async function YP(t){let e=AS(t);if(e)return yS(e)}async function yS(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=Yf.default.join(ai(),"systemlogs");function IS(t){return Yf.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 Jf(){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(ua.default.existsSync(e)){let i=ua.default.readFileSync(e,"utf-8").split(`
|
|
37
|
-
`);for(let s of i.filter(o=>o))t.push(ua.default.readFileSync(s))}return t.push(ua.default.readFileSync(IS(xS))),Buffer.concat(t)}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 Zr;if(!h.DISABLE_PINO_LOGGER){let t=h.LOG_LEVEL,e={level:t,formatters:{level:u=>({level:u.toUpperCase()}),bindings:()=>h.SELF_HOSTED?{service:h.SERVICE_NAME}:{}},timestamp:()=>`,"timestamp":"${new Date(Date.now()).toISOString()}"`},r=[];r.push(h.isDev()?{stream:(0,DS.default)({singleLine:!0}),level:t}:{stream:process.stdout,level:t}),h.SELF_HOSTED&&r.push({stream:Jf(),level:t}),Zr=r.length?(0,Rc.default)(e,Rc.default.multistream(r)):(0,Rc.default)(e);let n=u=>{let c,l=[],d="";u.forEach(E=>{XP(E)&&(d=`${d} ${E}`.trimStart()),zP(E)&&l.push(E),ZP(E)&&(c=E)});let p=a(),m={};m={tenantId:i(),appId:s(),automationId:o(),identityId:p?._id,identityType:p?.type,correlationId:Rf()};let f=Zf.default.scope().active();f&&Zf.default.inject(f.context(),CS.formats.LOG,m);let g={err:c,pid:process.pid,...m};if(l.length){let E={},T=0;for(let _=0;_<l.length;_++){let S=l[_],x=S._logKey;x?(delete S._logKey,g[x]=S):(E[T]=S,T++)}Object.keys(E).length&&(g.data=E)}return[g,d]};console.log=(...u)=>{let[c,l]=n(u);Zr?.info(c,l)},console.info=(...u)=>{let[c,l]=n(u);Zr?.info(c,l)},console.warn=(...u)=>{let[c,l]=n(u);Zr?.warn(c,l)},console.error=(...u)=>{let[c,l]=n(u);Zr?.error(c,l)},console.trace=(...u)=>{let[c,l]=n(u);c.err||(c.err=new Error),Zr?.trace(c,l)},console.debug=(...u)=>{let[c,l]=n(u);Zr?.debug(c,l)};let i=()=>{let u;try{u=Q()}catch{}return u},s=()=>{let u;try{u=Ue()}catch{}return u},o=()=>{let u;try{u=cf()}catch{}return u},a=()=>{let u;try{u=cr()}catch{}return u}}var wc=Zr;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 la=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 Xf=new la(h.INTERNAL_ACCOUNT_PORTAL_URL),em=h.SELF_HOSTED||h.DISABLE_ACCOUNT_PORTAL,Xr=async t=>{if(em)return;let e={email:t},r=await Xf.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(em)return;let e={tenantId:t},r=await Xf.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(em)return;let t=await Xf.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 ys={};P(ys,{UserDB:()=>Jt,addAppBuilder:()=>j0,bulkGetGlobalUsersById:()=>il,bulkUpdateGlobalUsers:()=>ba,cleanseUserObject:()=>km,creatorsInList:()=>pi,doesUserExist:()=>V0,getAccountHolderFromUsers:()=>Wc,getAllUserIds:()=>B0,getAllUsers:()=>G0,getById:()=>hi,getCreatorCount:()=>q0,getExistingAccounts:()=>ds,getExistingPlatformUsers:()=>VS,getExistingTenantUsers:()=>GS,getFirstPlatformUser:()=>pa,getGlobalUserByAppPage:()=>M_,getGlobalUserByEmail:()=>Vt,getPlatformUsers:()=>vc,getUserCount:()=>W0,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>qS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>WS,isBuilder:()=>ms,isCreatorAsync:()=>fa,isCreatorSync:()=>Vc,isGlobalBuilder:()=>$S,paginatedUsers:()=>k_,removeAppBuilder:()=>H0,removePortalUserPermissions:()=>Q0,searchExistingEmails:()=>dm,searchGlobalUsersByApp:()=>sl,searchGlobalUsersByAppAccess:()=>Fm,searchGlobalUsersByEmail:()=>F_,validateUniqueUser:()=>$c});var pm={};P(pm,{creatorsInList:()=>pi,getAccountHolderFromUsers:()=>Wc,hasAdminPermissions:()=>rn,hasAppBuilderPermissions:()=>qS,hasBuilderPermissions:()=>At,isAdmin:()=>tn,isAdminOrBuilder:()=>WS,isBuilder:()=>ms,isCreatorAsync:()=>fa,isCreatorSync:()=>Vc,isGlobalBuilder:()=>$S,validateUniqueUser:()=>$c});var lm={};P(lm,{createCode:()=>EL,deleteCode:()=>TL,getCode:()=>yL,getExistingInvites:()=>cm,getInviteCodes:()=>BS,updateCode:()=>gL});var ls={};P(ls,{Duration:()=>De,DurationType:()=>um,clearCookie:()=>en,compare:()=>nm,getAppIdFromCtx:()=>dL,getCookie:()=>hr,hasCircularStructure:()=>fL,hash:()=>rm,isAudited:()=>om,isClient:()=>pL,isPublicApiRequest:()=>lL,isServingApp:()=>aL,isServingBuilder:()=>uL,isServingBuilderPreview:()=>cL,isValidInternalAPIKey:()=>da,newid:()=>fe,openJwt:()=>Dc,resolveAppUrl:()=>MS,setCookie:()=>FS,time:()=>hL,timeout:()=>sm,urlHasProtocol:()=>mL,validEmail:()=>am});var tm=h.JS_BCRYPT?require("bcryptjs"):require("bcrypt"),iL=h.SALT_ROUNDS||10;async function rm(t){let e=await tm.genSalt(iL);return tm.hash(t,e)}async function nm(t,e){return tm.compare(t,e)}var bc=W(require("jsonwebtoken")),im="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=Ko(t,{includeStrategies:["subdomain"]}));let s=(await qe(n,()=>ta({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(`/${im}`)?!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(im)?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(im))}function Dc(t){if(t)try{return bc.default.verify(t,h.JWT_SECRET)}catch(e){if(h.JWT_SECRET_FALLBACK)return bc.default.verify(t,h.JWT_SECRET_FALLBACK);throw e}}function da(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 Dc(r)}function FS(t,e,r="builder",n={sign:!0}){e&&n&&n.sign&&(e=bc.default.sign(e,h.JWT_SECRET));let i={expires:Xu,path:"/",httpOnly:!1,overwrite:!0};h.COOKIE_DOMAIN&&(i.domain=h.COOKIE_DOMAIN),t.cookies.set(r,e,i)}function en(t,e){FS(t,null,e)}function pL(t){return t.headers["x-budibase-type"]==="client"}function sm(t){return new Promise(e=>setTimeout(e,t))}function om(t){return!!Wh[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 am(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 um=(s=>(s.MILLISECONDS="milliseconds",s.SECONDS="seconds",s.MINUTES="minutes",s.HOURS="hours",s.DAYS="days",s))(um||{}),Cc={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},De=class t{constructor(e){this.ms=e}to(e){return this.ms/Cc[e]}toMs(){return this.ms}toSeconds(){return this.to("seconds")}static convert(e,r,n){return n*Cc[e]/Cc[r]}static from(e,r){return new t(r*Cc[e])}static fromSeconds(e){return t.from("seconds",e)}static fromMinutes(e){return t.from("minutes",e)}static fromHours(e){return t.from("hours",e)}static fromDays(e){return t.from("days",e)}static fromMilliseconds(e){return t.from("milliseconds",e)}};async function 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 EL(t,e){let r=fe();return await(await ri()).store(r,{email:t,info:e},kS),r}async function yL(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 cm(t){return(await BS()).filter(e=>t.includes(e.email))}async function dm(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 cm(t);return e.push(...s.map(o=>o.email)),[...new Set(e.map(o=>o.toLowerCase()))]}async function vc(t){return await na("platform_users_lowercase_2",{keys:[t.toLowerCase()],include_docs:!0})}async function pa(t){return(await vc(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 na("platform_users_lowercase_2",r)}async function ds(t){let r={keys:t.map(n=>n.toLowerCase()),include_docs:!0};return await na("account_by_email",r)}var Gc={};P(Gc,{BadRequestError:()=>Lc,BudibaseError:()=>ps,EmailUnavailableError:()=>gr,FeatureDisabledError:()=>kc,ForbiddenError:()=>Uc,HTTPError:()=>Ge,InvalidAPIKeyError:()=>fs,NotFoundError:()=>Pc,NotImplementedError:()=>Mc,UnexpectedError:()=>Nc,UsageLimitError:()=>Fc,getPublicError:()=>Bc});var ps=class extends Error{constructor(r,n){super(r);this.code=n}},Bc=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)}},Nc=class extends Ge{constructor(e){super(e,500)}},Pc=class extends Ge{constructor(e){super(e,404)}},Lc=class extends Ge{constructor(e){super(e,400)}},Uc=class extends Ge{constructor(e){super(e,403)}},Mc=class extends Ge{constructor(e){super(e,501)}},Fc=class extends Ge{constructor(r,n){super(r,400,"usage_limit_exceeded");this.limitName=n}getPublicError(){return{limitName:this.limitName}}},kc=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,tn=ut.users.isAdmin,$S=ut.users.isGlobalBuilder,WS=ut.users.isAdminOrBuilder,rn=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=>Vc(i,e))}async function fa(t){let e=[];return t.userGroups&&(e=await ie().getMultiple(t.userGroups)),Vc(t,e)}function Vc(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 $c(t,e){if(h.MULTI_TENANCY){let r=await pa(t);if(r!=null&&r.tenantId!==e)throw new gr(t)}if(!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let r=await Xr(t);if(r&&r.verified&&r.tenantId!==e)throw new gr(t)}}async function Wc(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 Es={};P(Es,{account:()=>a_,action:()=>u_,ai:()=>f_,analytics:()=>Qc,app:()=>c_,auditLog:()=>b_,auth:()=>rl,automation:()=>l_,backfill:()=>I_,backfillCache:()=>el,backup:()=>R_,datasource:()=>d_,email:()=>p_,environmentVariable:()=>w_,group:()=>O_,identification:()=>Gt,initAsyncEvents:()=>x0,installation:()=>Sa,layout:()=>h_,license:()=>m_,org:()=>g_,plugin:()=>x_,processors:()=>Am,publishEvent:()=>A,query:()=>E_,role:()=>Ra,rowAction:()=>D_,rows:()=>T_,screen:()=>y_,serve:()=>S_,shutdown:()=>R0,table:()=>A_,user:()=>Ze,view:()=>__,workspace:()=>C_});var Am={};P(Am,{analyticsProcessor:()=>r_,init:()=>VL,processors:()=>yr});var Qc={};P(Qc,{enabled:()=>qc});var qc=async()=>jc();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"],ma=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=ma;var wL=["installation:version:upgraded","installation:version:downgraded"],bL=["installation","tenant"],ha=class{constructor(){h.POSTHOG_TOKEN&&!h.isTest()&&(this.posthog=new JS(h.POSTHOG_TOKEN))}async processEvent(e,r,n,i){!wL.includes(e)&&!await qc()||this.posthog&&await this.posthog.processEvent(e,r,n,i)}async identify(e,r){!bL.includes(e.type)&&!await qc()||this.posthog&&await this.posthog.identify(e,r)}async identifyGroup(e,r){this.posthog&&await this.posthog.identifyGroup(e,r)}async shutdown(){this.posthog&&await this.posthog.shutdown()}};var fm=h.SELF_HOSTED&&!h.isDev(),ga=class{async processEvent(e,r,n){fm||console.log(`[audit] [identityType=${r.type}] ${e}`,n)}async identify(e){fm||console.log("[audit] identified",e)}async identifyGroup(e){fm||console.log("[audit] group identified",e)}async shutdown(){}};var Tm={};P(Tm,{BudibaseQueue:()=>Bt,InMemoryQueue:()=>Hc,JobQueue:()=>hs,QueuedProcessor:()=>ym,UnretriableError:()=>Jc,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 Hc=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 sm(50);while(this.hasRunningJobs())}hasRunningJobs(){return this._addCount>this._runCount}},ZS=Hc;var gm=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 uf(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 Kc={};P(Kc,{cleanup:()=>PL,clear:()=>hm,set:()=>mm});var Ea=[];function mm(t,e){let r=setInterval(t,e);return Ea.push(r),r}function hm(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")),ya=W(require("object-sizeof")),LL=De.fromMinutes(5).toMs(),UL=De.fromSeconds(30).toMs(),Em=De.fromSeconds(60).toMs(),Ta=[],Yc;async function e_(){for(let t of Ta)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,ya.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 gm.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new ZS(this.jobQueue,r):n=new gm.default(this.jobQueue,r),XS(n,this.jobQueue,this.opts.removeStalledCb),Ta.push(n),!Yc&&!h.isTest()&&(Yc=mm(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,ya.default)(o.data),this.metricTags()),await this.withMetrics("queue.process",()=>a?n(o,a):n(o))})},s;return n.length===1?s=o=>i(o):s=i,r?this.queue.process(r,s):this.queue.process(s)}async add(e,r){return await Er.default.trace("queue.add",async n=>(n.addTags({"queue.name":this.jobQueue,"job.data.sizeBytes":(0,ya.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,ya.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(){Yc&&hm(Yc),console.log("Waiting for current queue jobs to finish...");for(let t of Ta)await t.whenCurrentJobsFinished();console.log("Closing queue Redis connections...");for(let t of Ta)await t.close();Ta=[],console.log("Queues shutdown")}var Jc=class extends Error{constructor(e){super(e),this.name="PermanentError"}},ym=class{constructor(e,r={}){let{maxAttempts:n=3,removeOnFail:i=!0,removeOnComplete:s=!0,maxStalledCount:o=3}=r;this.waitForCompletionMs=r.waitForCompletionMs||1e4,this._queue=new 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 Jc&&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&&om(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 Aa=class{constructor(e){this.initialised=!1;this.processors=[];this.processors=e}async processEvent(e,r,n,i){for(let s of this.processors)await s.processEvent(e,r,n,i)}async identify(e,r){for(let n of this.processors)n.identify&&await n.identify(e,r)}async identifyGroup(e,r){for(let n of this.processors)n.identifyGroup&&await n.identifyGroup(e,r)}async shutdown(){for(let e of this.processors)e.shutdown&&await e.shutdown()}};var r_=new ha,BL=new ga,GL=new gs;function VL(t){return gs.init(t)}var yr=new Aa([r_,BL,GL]);var zc={};P(zc,{checkInstallVersion:()=>qL,getInstall:()=>_a,getInstallFromDB:()=>_m});var Sm=W(require("semver"));var _a=async()=>Qr(ve.INSTALLATION,86400,_m,{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 _m();throw r}}var _m=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 _a();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 _a(),e=t.version,r=h.VERSION;try{if(e!==r){let n=Sm.default.gt(r,e),i=Sm.default.lt(r,e);await WL(r)&&(await bo({_id:t.installId,type:"installation"},async()=>{n?await Sa.upgraded(e,r):i&&await Sa.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=$p(),e=xa(),r;if(t?r=t.type:r="tenant",r==="installation"){let n=await fi(),i=Ia();return{id:n_(n,r),hosting:i,type:r,installationId:n,environment:e}}else if(r==="tenant"){let n=await fi(),i=await Zc(Q()),s=Ia();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 Zc(Q()),s=await fi(),o=n.account,a;return o?a=o.hosting:a=Ia(),{id:n._id,type:r,hosting:a,installationId:s,tenantId:i,environment:e,realTenantId:Q(),hostInfo:n.hostInfo}}else throw new Error("Unknown identity type")},jL=async(t,e)=>{let r=t,n="installation",i=Ia(),s=h.VERSION,o=xa(),a={id:r,type:n,hosting:i,version:s,environment:o};await Im(a,e),await Oa({...a,id:`$${n}_${r}`},e)},HL=async(t,e,r,n=h.VERSION)=>{let i=await Zc(t),s="tenant",o=await fi(),a=xa(),u={id:i,type:s,hosting:e,environment:a,installationId:o,createdAt:r,createdVersion:n};await Im(u,r),await Oa({...u,id:`$${s}_${i}`},r)},KL=async(t,e,r)=>{let n=t._id,i=await Zc(t.tenantId),s="user",o=At(t),a=rn(t),u;Ja(t)&&(u=t.providerType);let l=(await ds([t.email])).length>0,d=!!e&&l&&e.verified,p=await fi(),m=e?e.hosting:Ia(),f=xa();await Oa({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=Ya(t)?t.providerType:void 0,s=t.verified,o=!0,a=t.hosting,u=await fi(),c=xa();if(Ka(t)){let d=await Vt(t.email);d?._id&&(e=d._id)}await Oa({id:e,type:n,hosting:a,installationId:u,tenantId:r,providerType:i,verified:s,accountHolder:o,environment:c})},Oa=async(t,e)=>{await yr.identify(t,e)},Im=async(t,e)=>{await yr.identifyGroup(t,e)},xa=()=>h.isDev()?"development":h.DEPLOYMENT_ENVIRONMENT,Ia=()=>h.SELF_HOSTED?"self":"cloud",fi=async()=>JL()?"account-portal":(await _a()).installId,Zc=async t=>h.SELF_HOSTED?i_(t):t,i_=async t=>qe(t,()=>Qr(ve.UNIQUE_TENANT_ID,86400,async()=>{let e=ie(),r=await Xc(),n;return r.config.uniqueTenantId?r.config.uniqueTenantId:(n=`${fe()}_${t}`,r.config.uniqueTenantId=n,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:Oa,identifyGroup:Im,getInstallationId:fi,getUniqueTenantId:i_};var el={};P(el,{end:()=>ZL,isAlreadySent:()=>Rm,isBackfillingEvent:()=>xm,recordEvent:()=>Om,start:()=>zL});var zL=async t=>eU({eventWhitelist:t}),Om=async(t,e)=>{let r=wm(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 jo(ve.BACKFILL_METADATA)},rU=async()=>{let t=wm(),e=await hc(t);for(let r of e)await jo(r,{useTenancy:!1})},xm=async t=>{let r=(await XL())?.eventWhitelist;return!!(r&&r.includes(t))},Rm=async(t,e)=>{let r=wm(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}`},wm=(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 Tr;function tl(){Tr=new Bt("systemEventQueue",{jobTags:t=>({"event.name":t.event})})}async function s_(){Tr&&await Tr.close()}async function o_(t){Tr||tl();let{event:e,identity:r}=t;$h.indexOf(e)!==-1&&r.tenantId&&await Tr.add(t)}var A=async(t,e,r,n)=>{let i=n||await Gt.getCurrentIdentity();if(!(n?!1:await xm(t))){await o_({event:t,identity:i,properties:e,timestamp:r}),await yr.processEvent(t,i,e,r);return}await Rm(t,e)||(await yr.processEvent(t,i,e,r),await Om(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 EU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function yU(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:EU,versionUpdated:yU,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 rl={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 bm(t){return!Object.values(qa).includes(t.source)}async function UU(t,e){let r={datasourceId:t._id,source:t.source,custom:bm(t)};await A("datasource:created",r,e)}async function MU(t){let e={datasourceId:t._id,source:t.source,custom:bm(t)};await A("datasource:updated",e)}async function FU(t){let e={datasourceId:t._id,source:t.source,custom:bm(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)},E_={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 Ra={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 y_={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 EM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function yM(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:EM,updated:yM,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 Sa={versionChecked:JM,upgraded:zM,downgraded:ZM,firstStartup:XM};var Ts=!h.SELF_HOSTED&&!h.isDev();async function e0(t){Ts||await A("app:backfill:succeeded",t)}async function t0(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("app:backfill:failed",e)}async function r0(t){Ts||await A("tenant:backfill:succeeded",t)}async function n0(t){if(Ts)return;let e={error:JSON.stringify(t,Object.getOwnPropertyNames(t))};await A("tenant:backfill:failed",e)}async function i0(){if(Ts)return;let t={};await A("installation:backfill:succeeded",t)}async function s0(t){if(Ts)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 E0(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:E0};async function y0(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:y0,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 yr.shutdown(),console.log("Events shutdown")};var Dm=async t=>{await Ze.deleted(t),At(t)&&await Ze.permissionBuilderRemoved(t),rn(t)&&await Ze.permissionAdminRemoved(t)},w0=async(t,e,r)=>{for(let[n,i]of Object.entries(e))(!r||r[n]!==i)&&await Ra.assigned(t,i)},b0=async(t,e,r)=>{if(r)for(let[n,i]of Object.entries(r))(!e||e[n]!==i)&&await Ra.unassigned(t,i)},D0=async(t,e)=>{let r=t.roles,n=e?.roles;await w0(t,r,n),await b0(t,r,n)},Cm=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,rn),P0=(t,e)=>N_(t,e,rn),v_=(t,e,r)=>!(!r(t)||e&&r(e)),N_=(t,e,r)=>!(r(t)||!e||!r(e));var nl={};P(nl,{createASession:()=>U0,endSession:()=>M0,getSession:()=>Nm,getSessionsForUser:()=>wa,invalidateSessions:()=>mi,updateSessionTTL:()=>vm});var L_=require("uuid");var U_=h.SESSION_EXPIRY_SECONDS?parseInt(h.SESSION_EXPIRY_SECONDS):De.fromDays(7).toSeconds();function As(t,e){return`${t}/${e}`}async function wa(t){return t?(await(await Wr()).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 wa(t)).map(o=>({key:As(o.userId,o.sessionId)})):(n=Array.isArray(n)?n:[n],i=n.map(s=>({key:As(t,s)}))),i&&i.length>0){let s=await Wr(),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 wa(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 Wr(),s=e.sessionId,o=e.csrfToken?e.csrfToken:(0,L_.v4)(),a=As(t,s),u={...e,csrfToken:o,createdAt:new Date().toISOString(),lastAccessedAt:new Date().toISOString(),userId:t};return await i.store(a,u,U_),{session:u,invalidatedSessionCount:n}}async function vm(t){let e=await Wr(),r=As(t.userId,t.sessionId);t.lastAccessedAt=new Date().toISOString(),await e.store(r,t,U_)}async function M0(t,e){await(await Wr()).delete(As(t,e))}async function Nm(t,e){if(!t||!e)throw new Error(`Invalid session details - ${t} - ${e}`);let n=await(await Wr()).get(As(t,e));if(!n)throw new Error(`Session not found - ${t} - ${e}`);return n}var Mm={};P(Mm,{PASSWORD_MAX_LENGTH:()=>Lm,PASSWORD_MIN_LENGTH:()=>Pm,validatePassword:()=>Um});var Pm=+(h.PASSWORD_MIN_LENGTH||12),Lm=+(h.PASSWORD_MAX_LENGTH||512);function Um(t){return!t||t.length<Pm?{valid:!1,error:`Password invalid. Minimum ${Pm} characters.`}:t.length>Lm?{valid:!1,error:`Password invalid. Maximum ${Lm} characters.`}:{valid:!0}}var F0=async t=>{let e=t._id;await Ft.removeUser(t),await Dm(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&&tn(e)?!1:await t.features.isSSOEnforced()||Ja(e)?!0:(r||(r=await cs(Q())),!!(r&&r.email===e.email&&Ya(r)))}static async buildUser(e,r={hashPassword:!0,requirePassword:!0},n,i,s){let{password:o,_id:a}=e;i&&!i.password&&(r.requirePassword=!1);let u;if(o){if(await t.isPreventPasswordActions(e,s))throw new Ge("Password change is disabled for this user",400);if(!r.skipPasswordValidation){let d=Um(o);if(!d.valid)throw new Ge(d.error,400)}u=r.hashPassword?await rm(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 sl(e,{})).length}}static async getUsersByAppAccess(e){return await Fm(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 il(e)}static async bulkUpdate(e){return await ba(e)}static async save(e,r={}){r.hashPassword==null&&(r.hashPassword=!0),r.requirePassword==null&&(r.requirePassword=!0);let n=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 $c(s,n);let p=await t.buildUser(e,r,n,c);r.currentUserId&&r.currentUserId===c?._id&&(p=km(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 Cm(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 dm(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 fa(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 ba(p);for(let f of p)await Ft.addUser(n,f._id,f.email),await Cm(f,void 0);let m=p.map(f=>({_id:f._id,email:f.email}));if(Array.isArray(m)&&r){let f=[],g=m.map(E=>E._id);for(let E of r)f.push(t.groups.addUsers(E,g));await Promise.all(f)}return{successful:m,unsuccessful:c}})}static async bulkDelete(e){let r=ie(),n={successful:[],unsuccessful:[]},i=await Wc(e);i&&(e=e.filter(m=>m.userId!==i.userId),n.unsuccessful.push({_id:i.userId,email:i.email,reason:"Account holder cannot be deleted"}));let o=(await r.allDocs({include_docs:!0,keys:e.map(m=>m.userId)})).rows.map(m=>m.doc),a=o.map(m=>({...m,_deleted:!0})),u=await ba(a),l=(await pi(o)).filter(m=>m).length,d=[];for(let m of o){let g=(await pa(m._id)).ssoId;g&&(await vc(g)).filter(T=>T.ssoId==null).forEach(T=>{d.push({...T,_deleted:!0})}),await F0(m)}await jr().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 Xr(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 fa(n)?1:0;await t.quotas.removeUsers(1,s),await Dm(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 Ca(t){return Array.isArray(t)?t.map(e=>{if(e)return delete e.password,e}):t&&(delete t.password,t)}async function il(t,e){let n=(await ie().allDocs({keys:t,include_docs:!0})).rows.map(i=>i.doc);return e?.cleanup&&(n=Ca(n)),n}async function 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 ba(t){return await ie().bulkDocs(t)}async function hi(t,e){let n=await ie().get(t);return e?.cleanup&&(n=Ca(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=Ca(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 sl(t,e,r){if(typeof t!="string")throw new Error("Must provide a string based app ID");let n=Sc(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=Ca(s)),s}async function Fm(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 Ac(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=Ca(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 sl(r,a),l=d=>M_(r,d)):e?.string?.email?(u=await F_(e?.string?.email,a),c="email"):e?.oneOf?._id?u=await il(e?.oneOf?._id,{cleanup:!0}):e?(u=(await i.allDocs(ui(null,{...a,limit:void 0}))).rows.map(p=>p.doc),u=Fr.search(u,{query:e,limit:a.limit}).rows):u=(await i.allDocs(ui(null,a))).rows.map(p=>p.doc),Pf(u,s,{paginate:!0,property:c,getKey:l})}async function W0(){return(await Mf("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 km(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 Of(e).get(t);if(n.budibaseAccess=!0,!h.SELF_HOSTED&&!h.DISABLE_ACCOUNT_PORTAL){let i=await Xr(n.email);i&&(n.account=i,n.accountPortalAccess=!0)}return n}async function 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 Xr(i.email);s&&(i.account=s,i.accountPortalAccess=!0)}})),r.length?{users:n,notFoundIds:r}:{users:n}}async function va({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 Na(t){await(await qo()).delete(t)}var Wm={};P(Wm,{Writethrough:()=>Vm});var _s={};P(_s,{AUTO_EXTEND_POLLING_MS:()=>V_,doWithLock:()=>Bm,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(Ss.TRY_ONCE);case"try_twice":return gi(Ss.TRY_TWICE);case"default":return gi(Ss.DEFAULT);case"delay_500":return gi(Ss.DELAY_500);case"auto_extend":return gi(Ss.AUTO_EXTEND);default:throw Cr.unreachable(t)}}var Ss={TRY_ONCE:{retryCount:0},TRY_TWICE:{retryCount:1},DEFAULT:{driftFactor:.01,retryCount:10,retryDelay:200,retryJitter:100},DELAY_500:{retryDelay:500},CUSTOM:{},AUTO_EXTEND:{retryCount:-1}};async function gi(t={}){let e={...Ss.DEFAULT,...t},n=(await If()).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 Bm(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,Gm=null;async function ol(){if(!Gm){let t=await _f();Gm=new ni(t)}return Gm}function Pa(t,e){return t.name+e}function $m(t,e=null){return{doc:t,lastWrite:e||Date.now()}}async function eF(t,e,r=$_){let n=await ol(),i=e._id,s;i&&(s=await n.get(Pa(t,i)));let o=!s||s.lastWrite<Date.now()-r,a=e;return o&&((await Bm({type:"try_once",name:"persist_writethrough",resource:i,ttl:15e3},async()=>{let c=async l=>{let d=await t.put(l,{force:!0});a._id=d.id,a._rev=d.rev};try{await c(e)}catch(l){if(l.status!==409)throw l;us("Ignoring conflict in write-through cache")}})).executed||us("Ignoring redlock conflict in write-through cache")),s=$m(a,o?null:s?.lastWrite),a._id&&await n.store(Pa(t,a._id),s),{ok:!0,id:a._id,rev:a._rev}}async function tF(t,e){let r=await ol(),n=Pa(t,e),i=await r.get(n);if(!i){let s=await t.get(e);i=$m(s),await r.store(n,i)}return i.doc}async function rF(t,e){let r=await ol(),n=Pa(t,e),i=await r.get(n);if(!i){let s=await t.tryGet(e);if(!s)return null;i=$m(s),await r.store(n,i)}return i.doc}async function nF(t,e,r){let n=await ol();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(Pa(t,i))}finally{await t.remove(i,r)}}var Vm=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 Qo()).store(r,{userId:t,info:e},iF),r}async function oF(t){let r=await(await Qo()).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 Qo()).delete(t)}var jm={};P(jm,{DocWritethrough:()=>Qm,DocWritethroughProcessor:()=>La,getProcessor:()=>cF,init:()=>W_});var uF=100,al,La=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)}},Qm=class{constructor(e,r){this.db=e,this._docId=r}get docId(){return this._docId}async patch(e){await La.queue.add({dbName:this.db.name,docId:this.docId,data:e})}};function W_(){return al=new La().init(),al}function cF(){return al||W_()}function ul(t){return`config${w}${t}`}async function _t(t){let e=ie();try{return await e.get(ul(t))}catch(r){if(r.status===404)return;throw r}}async function lF(t){return t._id||(t._id=ul(t.type)),ie().put(t)}async function Xc(){let t=await _t("settings");return t||(t={_id:ul("settings"),type:"settings",config:{}}),t.config.platformUrl=await Ua({tenantAware:!0,config:t.config}),t.config.analyticsEnabled=await jc({config:t.config}),t}async function Ym(){return(await Xc()).config}async function Ua(t={tenantAware:!0}){let e=h.PLATFORM_URL||"http://localhost:10000";if(!h.SELF_HOSTED&&h.MULTI_TENANCY&&t.tenantAware){let r=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 jc=async t=>{if(!h.SELF_HOSTED)return!!h.ENABLE_ANALYTICS;let e=await Qr(ve.ANALYTICS_ENABLED,86400,async()=>{let n=t?.config?t.config:(await _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 cl(){return(await dF())?.config}async function Jm(){if(!h.SELF_HOSTED)return Hm();let t=await cl();return(!t||!t.activated)&&(t=Hm()),t}function Hm(){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 EF(){return _t("ai")}async function yF(){return _t("recaptcha")}var ah={};P(ah,{AccessController:()=>eh,BUILTIN_ROLE_IDS:()=>th,Role:()=>on,RoleHierarchyTraversal:()=>ll,RoleIDVersion:()=>rh,builtinRoleToNumber:()=>Ma,checkForRoleResourceArray:()=>K_,externalRole:()=>OF,findRole:()=>Fa,getAllRoleIds:()=>bF,getAllRoles:()=>oh,getBuiltinRole:()=>j_,getBuiltinRoles:()=>ih,getDBRoleID:()=>Y_,getExternalRoleID:()=>an,getExternalRoleIDs:()=>J_,getRole:()=>xF,getUserRoleHierarchy:()=>sh,getUserRoleIdHierarchy:()=>H_,isBuiltin:()=>Ei,lowerBuiltinRoleID:()=>IF,prefixRoleIDNoBuiltin:()=>Xm,roleIDsAreEqual:()=>It,roleToNumber:()=>_F,saveRoles:()=>RF,validInherits:()=>SF});var Zm=W(require("semver"));var dl=W(require("lodash/fp/cloneDeep"));var Q_=require("lodash");var th={ADMIN:"ADMIN",POWER:"POWER",BASIC:"BASIC",PUBLIC:"PUBLIC"},he={...th,BUILDER:"BUILDER"},rh={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=rh.NAME}addInheritance(e){return e&&typeof e=="string"?e=Xm(e):e&&Array.isArray(e)&&(e=e.map(Xm)),this.inherits=e,this}},ll=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=Fa(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=Fa(o.inherits,n,r),o&&i.push(o),Je.roles.checkForRoleInheritanceLoops(i))break}}return(0,Q_.uniqBy)(i,s=>s._id)}},nh={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 ih(){return(0,dl.default)(nh)}function Ei(t){return Object.values(th).includes(t)}function Xm(t){return Ei(t)?t:dr(t)}function j_(t){let e=Object.values(nh).find(r=>t.includes(r._id));if(e)return(0,dl.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 Ma(t){let e=ih(),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(Ei(t))return Ma(t);let e=await sh(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(Ei(n.inherits))return Ma(n.inherits)+1;return 0};return Math.max(...e.map(r))}function IF(t,e){return t?e&&Ma(t)>Ma(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 Fa(t,e,r){let n=j_(t);n||(t=dr(t));let i=e.find(s=>s._id&&It(s._id,t));return!i&&!Ei(t)&&r?.defaultPublic?(0,dl.default)(nh.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(!Ei(t)){let i=await r.tryGet(Y_(t));i&&n.push(i)}return Fa(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 oh();if(It(t,he.ADMIN))return r;let n=Fa(t,r,e),i=[];return n&&(i=new ll(r,e).walk(n)),i}async function H_(t){return(await sh(t)).map(r=>r._id)}async function sh(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 oh(t)).map(r=>r._id)}async function oh(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(_c(null,{include_docs:!0}))).rows.map(a=>a.doc),n.forEach(a=>a._id=an(a._id,a.version)));let i=ih(),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||!Zm.default.valid(r)?!0:!Zm.default.gte(r,h.MIN_VERSION_WITHOUT_POWER_ROLE)}var eh=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}`)&&(Ei(t)||e===rh.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 uh={};P(uh,{BUILDER:()=>LF,BUILTIN_PERMISSIONS:()=>pl,CREATOR:()=>UF,GLOBAL_BUILDER:()=>MF,PermissionImpl:()=>ge,PermissionLevel:()=>ws,PermissionType:()=>Ha,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 pl={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)(pl)}function vF(t){return Object.values(pl).find(r=>r._id===t)}function NF(t,e,r){let n=[...new Set(r.map(o=>o.permissionId))],i=Object.values(pl),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 dh={};P(dh,{FlagSet:()=>ml,all:()=>GF,flags:()=>ch,getEnvFlags:()=>iI,init:()=>FF,isEnabled:()=>BF,parseEnvFlags:()=>gl,shutdown:()=>kF,testutils:()=>lh});var hl=W(require("crypto"));var tI=require("posthog-node"),rI=W(require("dd-trace"));var nI=require("lodash");var fl;function FF(t){h.POSTHOG_TOKEN&&h.POSTHOG_API_HOST&&!h.SELF_HOSTED&&h.POSTHOG_FEATURE_FLAGS_ENABLED?(console.log("initializing posthog client..."),fl=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(){fl?.shutdown()}function gl(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 gl(h.TENANT_FEATURE_FLAGS||"")}var ml=class{constructor(e){this.flagSchema=e;this.setId=hl.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=pf(this.setId);if(r)return e?.addTags({fromCache:!0}),r;let n={},i=this.defaults(),s=Q(),o=new Set;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=lf();d&&(u=hl.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,fl&&u){n.readFromPostHog=!0;let d={tenantId:c},p=await fl.getAllFlags(u,{personProperties:d,onlyEvaluateLocally:!0});for(let[m,f]of Object.entries(p))if(this.isFlagName(m)){if(typeof f!="boolean"){console.warn(`Invalid value for posthog flag "${m}": ${f}`);continue}if(!(i[m]===!0||o.has(m)))try{i[m]=f,n[`flags.${m}.source`]="posthog"}catch(g){console.warn(`Error parsing posthog flag "${m}": ${f}`,g)}}}let l=mf();for(let[d,p]of Object.entries(l))this.isFlagName(d)&&typeof p=="boolean"&&(i[d]=p,n[`flags.${d}.source`]="override");ff(this.setId,i);for(let[d,p]of Object.entries(i))n[`flags.${d}.value`]=p;return e?.addTags(n),i})}},ch=new ml(Hh);async function BF(t){return await ch.isEnabled(t)}async function GF(){return await ch.fetch()}var lh={};P(lh,{setFeatureFlags:()=>sI,withFeatureFlags:()=>WF});function VF(){let t={};for(let{tenantId:e,key:r,value:n}of gl(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 Co({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 Ih={};P(Ih,{adminOnly:()=>wl,auditLog:()=>Il,authError:()=>Fe,buildAuthMiddleware:()=>Rk,buildCsrfMiddleware:()=>bk,buildTenancyMiddleware:()=>wk,builderOnly:()=>Dl,builderOrAdmin:()=>bl,google:()=>Ar,internalApi:()=>xl,joiValidator:()=>Ba,oidc:()=>Sr,passport:()=>Dk,platformLogout:()=>Lk,refreshOAuthToken:()=>Nk,ssoCallbackUrl:()=>un,updateUserOAuth:()=>Pk});var _h={};P(_h,{adminOnly:()=>wl,auditLog:()=>Il,authError:()=>Fe,authenticated:()=>_l,builderOnly:()=>Dl,builderOrAdmin:()=>bl,correlation:()=>TI,csp:()=>xI,csrf:()=>Rl,datasource:()=>Ok,errorHandling:()=>SI,featureFlagCookie:()=>RI,google:()=>Ar,internalApi:()=>xl,ip:()=>bI,joiValidator:()=>Ba,local:()=>Is,oidc:()=>Sr,pino:()=>EI,querystringToBody:()=>_I,ssoCallbackUrl:()=>un,tenancy:()=>Ol});var Is={};P(Is,{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 Ym(),n="/api/global/auth";return $r()&&(n+=`/${Q()}`),n+=`/${t}/callback`,`${r.platformUrl}${n}`}var ph="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,ph)):i.status==="inactive"?(console.info(`user=${e} is inactive`,i),Fe(n,ph)):i.password?await nm(r,i.password)?(delete i.password,n(null,i)):Fe(n,ph):(console.info(`user=${e} has no password set`,i),Fe(n,qF))}var Ar={};P(Ar,{buildVerifyFn:()=>uI,getCallbackUrl:()=>YF,strategyFactory:()=>fh});var ka=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 fh(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 Sr={};P(Sr,{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&&am(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 mh={};P(mh,{postAuth:()=>nk,preAuth:()=>rk});var tk=require("passport-google-oauth").OAuth2Strategy;async function dI(){let t=await Jm();if(!t)throw new Error("No google configuration found");return t}async function rk(t,e,r){let n=await dI(),s=`${await Ua({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=await fh(n,s,ka);return e.query.appId||e.throw(400,"appId query param not present."),t.authenticate(o,{scope:["profile","email","https://www.googleapis.com/auth/spreadsheets"],accessType:"offline",prompt:"consent"})(e,r)}async function nk(t,e,r){let n=await dI(),s=`${await Ua({tenantAware:!1})}/api/global/auth/datasource/google/callback`,o=hr(e,"budibase:datasourceauth");if(!o)throw new Error("Unable to fetch datasource auth cookie");return t.authenticate(new tk({clientID:n.clientID,clientSecret:n.clientSecret,callbackURL:s},(a,u,c,l)=>{en(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,yi=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 Ah={};P(Ah,{SecretOption:()=>mI,decrypt:()=>Th,decryptFile:()=>lk,encrypt:()=>ak,encryptFile:()=>uk,getSecret:()=>yh});var _r=W(require("crypto")),cn=W(require("fs")),gh=W(require("zlib"));var hh=require("path"),yl="aes-256-ctr",fI="-",sk=1e4,ok=32,Tl=16,Eh=16,mI=(r=>(r.API="api",r.ENCRYPTION="encryption",r))(mI||{});function yh(t){let e,r;switch(t){case"encryption":e=h.ENCRYPTION_KEY,r="ENCRYPTION_KEY";break;case"api":default:e=h.API_ENCRYPTION_KEY,r="API_ENCRYPTION_KEY";break}if(!e)throw new Error(`Secret "${r}" has not been set in environment.`);return e}function Al(t,e){return _r.default.pbkdf2Sync(t,e,sk,ok,"sha512")}function ak(t,e="api"){let r=_r.default.randomBytes(Tl),n=Al(yh(e),r),i=_r.default.createCipheriv(yl,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,o]).toString("hex");return`${r.toString("hex")}${fI}${a}`}function Th(t,e="api"){let[r,n]=t.split(fI),i=Buffer.from(r,"hex"),s=Al(yh(e),i),o=_r.default.createDecipheriv(yl,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,u]).toString()}async function uk({dir:t,filename:e},r){let n=`${e}.enc`,i=(0,hh.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,hh.join)(t,n)),a=_r.default.randomBytes(Tl),u=_r.default.randomBytes(Eh),c=Al(r,a),l=_r.default.createCipheriv(yl,c,u);return o.write(a),o.write(u),s.pipe(gh.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,Tl),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:Tl+Eh}),o=cn.default.createWriteStream(e),a=Al(r,n),u=_r.default.createDecipheriv(yl,a,i),c=gh.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))}),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(da(t))return{valid:!0,user:void 0};let n=Th(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 va({userId:i,tenantId:n,populateUser:e})};throw new fs})}function Sl(t,e){let r=t.request.headers[e];if(Array.isArray(r))throw new Error("Unexpected header format");return r}function _l(t=[],e={publicAllowed:!1}){let r=t?yi(t):[];return async(n,i)=>{let s=!1,o=Sl(n,"x-budibase-api-version");Ti(n,r)&&(s=!0);try{let u=Sl(n,"x-budibase-token"),c=hr(n,"budibase:auth")||Dc(u),l=Sl(n,"x-budibase-api-key");!l&&n.request.headers.authorization&&(l=n.request.headers.authorization.split(" ")[1]);let d=Sl(n,"x-budibase-tenant-id"),p=!1,m,f=!1,g;if(c&&!l){let T=c.sessionId,_=c.userId,S;try{S=await Nm(_,T),e&&e.populateUser?m=await va({userId:_,tenantId:S.tenantId,email:S.email,populateUser:e.populateUser(n)}):m=await va({userId:_,tenantId:S.tenantId,email:S.email}),m.csrfToken=S.csrfToken,g="cookie",S?.lastAccessedAt<pk()&&await vm(S),p=!0}catch(x){p=!1,console.error(`Auth Error: ${x.message}`),en(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 E=T=>T&&T.email;return E(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}),E(m)?qp(m,n,i):i()}catch(u){if(console.error(`Auth Error: ${u.message}`),u?.name==="JsonWebTokenError"?en(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 Il=async(t,e)=>e();function Ol(t,e,r={noTenancyRequired:!1}){let n=yi(t),i=yi(e);return async function(s,o){let u={allowNoTenant:r.noTenancyRequired||!!Ti(s,i)};!!Ti(s,n)||(u.excludeStrategies=["query"]);let l=Ko(s,u);return s.set("x-budibase-tenant-id",l),qe(l,o)}}async function xl(t,e){let r=t.request.headers["x-budibase-api-key"];return r||t.throw(403,"Unauthorized"),Array.isArray(r)&&t.throw(403,"Unauthorized"),da(r)||t.throw(403,"Unauthorized"),e()}var mk=["GET","HEAD","OPTIONS"],hk=["application/x-www-form-urlencoded","multipart/form-data","text/plain"];function Rl(t={noCsrfPatterns:[]}){let e=yi(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 wl=async(t,e)=>(!t.internal&&!tn(t.user)&&t.throw(403,"Admin user only endpoint."),e());async function bl(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)&&!tn(t.user)&&t.throw(403,"Admin/Builder user only endpoint."),e()}async function Dl(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"),Ek=require("correlation-id");function yk(){return{logger:wc,genReqId:Ek.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(yk()):(t,e)=>e()}var EI=Tk();var yI=require("uuid"),Ak=require("correlation-id"),TI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,yI.v4)()),Ak.withId(r,()=>e())};function AI(t){if(t.includes("-----BEGIN PRIVATE KEY-----"))return!0;for(let e of JT){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:Bc(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 Xo.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 hf(n,async()=>{await e()})};var Ba={};P(Ba,{body:()=>_k,params:()=>Ik});var Sh=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:Sh.default.any().optional(),updatedAt:Sh.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 df(t.ip,()=>e()):e()}var Ok={google:mh};var DI=require("koa-passport"),xk=require("passport-local").Strategy,Cl=require("passport-oauth2-refresh"),Rk=_l,wk=Ol,bk=Rl,Dk=DI;DI.use(new xk(Is.options,Is.authenticate));async function Ck(t,e){let r=await Sr.getCallbackUrl(),n,i;try{if(n=await Sr.fetchStrategyConfig(t,r),!n)throw new Error("OIDC Config contents invalid");i=await Sr.strategyFactory(n,ka)}catch{throw new Error("Could not refresh OAuth Token")}return Cl.use(i,{setRefreshOAuth2(){return i._getOAuth2Client(n)}}),new Promise(s=>{Cl.requestNewAccessToken("oidc",e,(o,a,u,c)=>{s({err:o,accessToken:a,refreshToken:u,params:c})})})}async function vk(t,e){let r=await Ar.getCallbackUrl(t),n;try{n=await Ar.strategyFactory(t,r,ka)}catch(i){throw new Error(`Error constructing OIDC refresh strategy: message=${i.message}`)}return Cl.use(n),new Promise(i=>{Cl.requestNewAccessToken("google",e,(s,o,a,u)=>{i({err:s,accessToken:o,refreshToken:a,params:u})})})}async function 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 cl();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 Na(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 wa(r);i&&n?s=s.filter(a=>a.sessionId!==i.sessionId):en(e,"budibase:auth");let o=s.map(({sessionId:a})=>a);await mi(r,{sessionIds:o,reason:"logout"}),await rl.logout(e.user?.email),await Na(r)}var xh={};P(xh,{validate:()=>Bk});var C=W(require("joi")),Uk=["Relational","Non-relational","Spreadsheet","Object store","Graph","API"];function Oh(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)});Oh(e,t)}function Fk(t){let e=C.default.object({type:C.default.string().allow(...Object.values(Ml)).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(Ul)),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(Fl).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()}))})});Oh(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(...Kh).required(),inputs:C.default.object().optional(),schema:C.default.object({inputs:r,outputs:r}).required()})});Oh(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 Rh={};P(Rh,{Client:()=>Qe,clients:()=>qr,locks:()=>_s,utils:()=>dc});var wh={};P(wh,{isBlacklisted:()=>Vk,refreshBlacklist:()=>PI});var CI=W(require("dns")),Nl=W(require("net"));var vI=require("util"),vl,Gk=(0,vI.promisify)(CI.default.lookup);async function NI(t){return Nl.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(Nl.default.isIP(i))r.push(i);else{let s=await NI(i);r=r.concat(s)}}vl=r}async function Vk(t){if(vl||await PI(),vl?.length===0)return!1;let e;return Nl.default.isIP(t)?e=[t]:e=await NI(t),!!vl?.find(r=>e.includes(r))}var Dh={};P(Dh,{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 Ga=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,bh;function Wk(t){Tr||tl(),bh||(bh=new Ga(t)),UI||(UI=Tr.process(async e=>{let{event:r,identity:n,properties:i}=e.data;await bh.processEvent(r,n,i)}))}var kh={};P(kh,{COUNT_FIELD_NAME:()=>Mh,Sql:()=>qI,SqlTable:()=>Pl,designDoc:()=>Fh,utils:()=>sf});var BI=require("knex");var qk=require("knex");function Ch(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:E,toTable:T}=m.meta;t.integer(p).unsigned(),t.foreign(p).references(`${T}.${E}`)}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:E}=Xp(m.tableId),T=r[E];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(`${E}.${_}`)}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:Cr.unreachable(g)}}let d=i?n?.schema[i.old].type:void 0;return i&&d&&!Ch(d)&&t.renameColumn(i.old,i.updated),n&&Object.entries(n.schema).filter(([m,f])=>!Ch(f.type)&&e.schema[m]==null).forEach(([m,f])=>{i?.old===m||Ch(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 vh=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)}},Pl=vh;var GI=require("lodash"),Mh="__bb_total";function FI(){return(h.SQL_MAX_ROWS?parseInt(h.SQL_MAX_ROWS):null)||5e3}function Nh(){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 Ph(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},Lh=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 Fr.ColumnSplitter([this.table],{aliases:this.query.tableAliases,columnPrefix:this.query.meta?.columnPrefix})}get table(){return this.query.table}get knexClient(){return this.knex.client}getFieldSchema(e){let{column:r}=this.splitter.run(e);return this.table.schema[r]}requiresJsonAsStringClient(){return["mssql","mysql2","mariadb","oracledb"].includes(this.client)}quoteChars(){let e=this.knexClient.wrapIdentifier("foo",{});return[e[0],e[e.length-1]]}quote(e){return this.knexClient.wrapIdentifier(e,{})}isQuoted(e){let[r,n]=this.quoteChars();return e.startsWith(r)&&e.endsWith(n)}quotedIdentifier(e){return Array.isArray(e)||(e=this.splitIdentifier(e)),e.map(r=>this.quote(r)).join(".")}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(!rf(e))return null}else if(r.dateOnly){let n=tf(e);return n?new Date(n):null}else return r.ignoreTimezones?ac(e)?new Date(e):ef(e)?new Date(e+"Z"):null:ac(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(Or)){let n=e[r];if(n)for(let i of Object.keys(n)){if(Array.isArray(n[i])){n[i]=JSON.stringify(n[i]);continue}let{column:s}=this.splitter.run(i),o=this.table.schema[s];o&&(n[i]=this.parse(n[i],o))}}for(let r of Object.values(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 E=this.knex.select(this.knex.raw(1)).from({[m]:p}),T=E.clone(),_=nf(d),S;if(f?S=n:S=n.replace(new RegExp(`^${d.column}.`),`${a?.[d.tableName]||d.tableName}.`),_){let x=a?.[_.through]||d.through,y=this.tableNameWithSchema(_.through,{alias:x,schema:o});T=T.innerJoin(y,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(E.clone().innerJoin(y,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${x}.${_.from}`)}))})}else{let x=`${m}.${d.to}`,y=`${c}.${d.from}`;T=T.where(x,"=",this.rawQuotedIdentifier(y)),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,E,T){let _=(S,x,y)=>{let[I,...k]=x.split("."),D=k.join("."),B=c(I);return S.andWhere(de=>E(de,B?`${B}.${D}`:D,y))};for(let S in f){let x=f[S],y=ia(S),I=y.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],y,(B,de)=>_(de,B,x)));else{let B=c(u);e=E(e,B?`${B}.${y}`:y,x)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),p=(f,g=!1)=>{function E(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=E(T);let x=this.getFieldSchema(_),y="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(x)&&(y="",S=`{${S.map(k=>k.substring(1,k.length-1))}}`),g?T.whereRaw(y?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),y?this.knex.raw(Ph(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${y} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),y?this.knex.raw(Ph(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(T,_,S)=>E(T).whereRaw("COALESCE(?(??, ?), FALSE)",[this.knex.raw(g?"JSON_OVERLAPS":"JSON_CONTAINS"),this.rawQuotedIdentifier(_),this.knex.raw($I(Ph(S)))])):l(f,"contains",(T,_,S)=>(S.length===0||(T=T.where(x=>(f===r?.notContains&&(x=x.not),x=x.where(y=>{for(let I of S){f===r?.containsAny?y=y.or:y=y.and;let k=typeof I=="string"?`"${I.toLowerCase()}"`:I;y=y.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(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(T=>this.addFilters(T,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let T=this.getFieldSchema(g),_=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&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,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>{if(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3")return f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?f.whereRaw(`??::text ilike '${E}%'`,[this.knex.raw(this.quote(T.name))]):f.whereILike(g,`${E}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let T=D=>D&&Object.keys(D).length===0&&Object.getPrototypeOf(D)===Object.prototype;T(E.low)&&(E.low=""),T(E.high)&&(E.high="");let _=uc(E.low),S=uc(E.high),x=this.getFieldSchema(g),y=g,I=E.high,k=E.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"?y=this.convertClobs(g):this.client==="sqlite3"&&x?.type==="bigint"&&(y=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[E.high]),k=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),_&&S?f.whereBetween(y,[k,I]):_?f.where(y,">=",k):S?f.where(y,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{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),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,E))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let 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),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",E)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&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&&!Zp(this.table)&&m&&e.andWhereLike(`${m}._id`,`${xr(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 ${Mh}`)}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:E,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,y=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&&E,N=F?`${y}.${g}`:`${S}.${f}`,q=F?`${x}.${E}`:`${x}.${g}`;if(F){let $=this.tableNameWithSchema(m,{alias:y,schema:u});V=V.join($,function(){this.on(`${S}.${T}`,"=",`${y}.${f}`)})}V=V.where(this.rawQuotedIdentifier(N),"=",this.rawQuotedIdentifier(q));let O=$=>(V=V.select(D.map(ue=>this.rawQuotedIdentifier(ue))).limit(Nh()),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 ${Nh()})`));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(Nh())});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,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(p,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(p,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let 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())}},Uh=class extends Pl{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 Lh(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){Lo(this.getSqlClient(),r,n)}},qI=Uh;var Fh={};P(Fh,{base:()=>Zk});function Zk(t){return{_id:Kt,language:"sqlite",sql:{tables:{},options:{table_name:t}}}}var Bh={};P(Bh,{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 Gh=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)}},Ll=Gh;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 Ll(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 Va=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={...Yo,...Ae},tB=(t={})=>{sc(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")},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,E="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+=` ${E} ${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 E=r?"*:* AND ":"",T=r?"AND":void 0;return E+"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 E=`${e.preprocess(g[0],s)}`;for(let T=1;T<g.length;T++)E+=` OR ${e.preprocess(g[T],s)}`;return`${f}:(${E})`};function m(f,g,E){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 y=E?.mode?E.mode:r?"OR":"AND";T+=` ${y} `}T+=x,(typeof S!="string"&&S!=null||typeof S=="string"&&S!==o&&S!=="")&&(i=!1)}}if(E?.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 E=e.preprocess(g.low,s),T=e.preprocess(g.high,s);return`${f}:[${E} 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(yt,"g"),Et)}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=yc(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=yc(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(),E=await u.headObject({Bucket:d,Key:p});return o.addTags({contentLength:E.ContentLength}),{...g,ContentLength:E.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=ES(t,e);return h.CLOUDFRONT_CDN?(r&&(n=`${n}?etag=${r}`),as(n)):await Zr(h.GLOBAL_BUCKET_NAME,n)},ES=(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 yS(e)}async function YP(t){let e=AS(t);if(e)return yS(e)}async function yS(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)}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(E=>{XP(E)&&(d=`${d} ${E}`.trimStart()),zP(E)&&l.push(E),ZP(E)&&(c=E)});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 E={},T=0;for(let _=0;_<l.length;_++){let S=l[_],x=S._logKey;x?(delete S._logKey,g[x]=S):(E[T]=S,T++)}Object.keys(E).length&&(g.data=E)}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 ys={};P(ys,{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:()=>EL,deleteCode:()=>TL,getCode:()=>yL,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 EL(t,e){let r=fe();return await(await ri()).store(r,{email:t,info:e},kS),r}async function yL(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 Es={};P(Es,{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:()=>E_,role:()=>wa,rowAction:()=>D_,rows:()=>T_,screen:()=>y_,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(),Ea=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 Em=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 ya=[];function hm(t,e){let r=setInterval(t,e);return ya.push(r),r}function gm(t){let e=ya.indexOf(t);e!==-1&&ya.splice(e,1),clearInterval(t)}function PL(){for(let t of ya)clearInterval(t);ya=[]}var yr=W(require("dd-trace")),Ta=W(require("object-sizeof")),LL=De.fromMinutes(5).toMs(),UL=De.fromSeconds(30).toMs(),ym=De.fromSeconds(60).toMs(),Aa=[],zc;async function e_(){for(let t of Aa)await t.clean(ym,"completed"),await t.clean(ym,"failed")}async function ML(t,e,r){let n=performance.now();try{let i=await e();return yr.default.dogstatsd.increment(`${t}.success`,1,r),i}catch(i){throw yr.default.dogstatsd.increment(`${t}.error`,1,r),i}finally{let i=performance.now()-n;yr.default.dogstatsd.distribution(`${t}.duration.ms`,i,r),yr.default.dogstatsd.increment(t,1,r)}}function 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 Em.default(this.jobQueue,{...r,redis:{host:"localhost",port:+process.env.BULL_TEST_REDIS_PORT}}):n=new ZS(this.jobQueue,r):n=new Em.default(this.jobQueue,r),XS(n,this.jobQueue,this.opts.removeStalledCb),Aa.push(n),!zc&&!h.isTest()&&(zc=hm(e_,ym),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 yr.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)),yr.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 yr.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()},yr.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 Ea,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 Ec(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 EU(t,e){let r={appId:t.appId,templateKey:e,audited:{name:t.name}};await A("app:template:imported",r)}async function yU(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:EU,versionUpdated:yU,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)},E_={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 y_={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 EM(t,e){let r={tableId:t._id,audited:{name:t.name}};await A("table:created",r,e)}async function yM(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:EM,updated:yM,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 E0(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:E0};async function y0(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:y0,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(E=>E._id);for(let E of r)f.push(t.groups.addUsers(E,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 EF(){return _t("ai")}async function yF(){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:()=>Ei,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 Ei(t){return Object.values(rh).includes(t)}function eh(t){return Ei(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(Ei(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(Ei(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&&!Ei(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(!Ei(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}`)&&(Ei(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:()=>El,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 El(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 El(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,E]of Object.entries(f))if(this.isFlagName(g)){if(typeof E!="boolean"){console.warn(`Invalid value for posthog flag "${g}": ${E}`);continue}if(!(i[g]===!0||o.has(g)))try{i[g]=E,n[`flags.${g}.source`]="posthog"}catch(T){console.warn(`Error parsing posthog flag "${g}": ${E}`,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 El(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:()=>EI,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 yl(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 yl(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 yl(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,yi=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")),Eh=W(require("zlib"));var gh=require("path"),Tl="aes-256-ctr",fI="-",sk=1e4,ok=32,Al=16,yh=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,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,n,r),s=i.update(t),o=i.final(),a=Buffer.concat([s,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,s,i),a=o.update(Buffer.from(n,"hex")),u=o.final();return Buffer.concat([a,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(yh),c=Sl(r,a),l=Ir.default.createCipheriv(Tl,c,u);return o.write(a),o.write(u),s.pipe(Eh.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,yh);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+yh}),o=cn.default.createWriteStream(e),a=Sl(r,n),u=Ir.default.createDecipheriv(Tl,a,i),c=Eh.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))}),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?yi(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 E=T=>T&&T.email;return E(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}),E(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=yi(t),i=yi(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=yi(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"),Ek=require("correlation-id");function yk(){return{logger:Dc,genReqId:Ek.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(yk()):(t,e)=>e()}var EI=Tk();var yI=require("uuid"),Ak=require("correlation-id"),TI=(t,e)=>{let r=t.headers["x-budibase-correlation-id"];return r||(r=(0,yI.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:E,toTable:T}=m.meta;t.integer(p).unsigned(),t.foreign(p).references(`${T}.${E}`)}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:E}=ef(m.tableId),T=r[E];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(`${E}.${_}`)}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 E=this.knex.select(this.knex.raw(1)).from({[m]:p}),T=E.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,y=this.tableNameWithSchema(_.through,{alias:x,schema:o});T=T.innerJoin(y,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(E.clone().innerJoin(y,function(){this.on(`${c}.${_.fromPrimary}`,"=",`${x}.${_.from}`)}))})}else{let x=`${m}.${d.to}`,y=`${c}.${d.from}`;T=T.where(x,"=",this.rawQuotedIdentifier(y)),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,E,T){let _=(S,x,y)=>{let[I,...k]=x.split("."),D=k.join("."),B=c(I);return S.andWhere(de=>E(de,B?`${B}.${D}`:D,y))};for(let S in f){let x=f[S],y=sa(S),I=y.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],y,(B,de)=>_(de,B,x)));else{let B=c(u);e=E(e,B?`${B}.${y}`:y,x)}}}let d=(f,g,E)=>((r?.fuzzyOr||o)&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3"?f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`%${E.toLowerCase()}%`]):f.whereILike(this.rawQuotedIdentifier(g),this.knex.raw("?",[`%${E}%`]))),p=(f,g=!1)=>{function E(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=E(T);let x=this.getFieldSchema(_),y="::jsonb";return this.SPECIAL_SELECT_CASES.POSTGRES_ARRAY(x)&&(y="",S=`{${S.map(k=>k.substring(1,k.length-1))}}`),g?T.whereRaw(y?"COALESCE(??::jsonb \\?| array??, FALSE)":"COALESCE(?? && '??', FALSE)",[this.rawQuotedIdentifier(_),y?this.knex.raw(Lh(S,"'")):this.knex.raw(S)]):T.whereRaw(`COALESCE(??${y} @> '??', FALSE)`,[this.rawQuotedIdentifier(_),y?this.knex.raw(Lh(S)):this.knex.raw(S)])}):this.client==="mysql2"||this.client==="mariadb"?l(f,"contains",(T,_,S)=>E(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(y=>{for(let I of S){f===r?.containsAny?y=y.or:y=y.and;let k=typeof I=="string"?`"${I.toLowerCase()}"`:I;y=y.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(E=>{this.addFilters(E,g,n)})}if(r.$or){let{$or:f}=r;e=e.where(g=>{for(let E of f.conditions)g.orWhere(T=>this.addFilters(T,{...E,allOr:!0},n))})}r.oneOf&&l(r.oneOf,"oneOf",(f,g,E)=>{let T=this.getFieldSchema(g),_=Array.isArray(E)?E:[E];if(o&&(f=f.or),this.client==="oracledb")g=this.convertClobs(g);else if(this.client==="sqlite3"&&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,E)=>(o&&(f=f.or),this.client==="oracledb"&&(g=g.map(T=>this.convertClobs(T))),f.whereIn(g,Array.isArray(E)?E:[E]))),r.string&&l(r.string,"string",(f,g,E)=>{if(o&&(f=f.or),this.client==="oracledb"||this.client==="sqlite3")return f.whereRaw("LOWER(??) LIKE ?",[this.rawQuotedIdentifier(g),`${E.toLowerCase()}%`]);{let T=this.getFieldSchema(g);return this.SPECIAL_SELECT_CASES.POSTGRES_ENUM(T)?f.whereRaw(`??::text ilike '${E}%'`,[this.knex.raw(this.quote(T.name))]):f.whereILike(g,`${E}%`)}}),r.fuzzy&&l(r.fuzzy,"fuzzy",d),r.range&&l(r.range,"range",(f,g,E)=>{let T=D=>D&&Object.keys(D).length===0&&Object.getPrototypeOf(D)===Object.prototype;T(E.low)&&(E.low=""),T(E.high)&&(E.high="");let _=cc(E.low),S=cc(E.high),x=this.getFieldSchema(g),y=g,I=E.high,k=E.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"?y=this.convertClobs(g):this.client==="sqlite3"&&x?.type==="bigint"&&(y=this.knex.raw("CAST(?? AS INTEGER)",[this.rawQuotedIdentifier(g)]),I=this.knex.raw("CAST(? AS INTEGER)",[E.high]),k=this.knex.raw("CAST(? AS INTEGER)",[E.low])),o&&(f=f.or),_&&S?f.whereBetween(y,[k,I]):_?f.where(y,">=",k):S?f.where(y,"<=",I):f}),r.equal&&l(r.equal,"equal",(f,g,E)=>{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),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.whereNotNull(_).andWhere(_,E))}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?E!=null?f.whereLike(g,`${E.toISOString().slice(0,10)}%`):f.whereNull(g):f.whereRaw("COALESCE(?? = ?, FALSE)",[this.rawQuotedIdentifier(g),E])}),r.notEqual&&l(r.notEqual,"notEqual",(f,g,E)=>{let 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),E]);if(this.client==="oracledb"){let _=this.convertClobs(g);return f.where(S=>S.not.whereNull(_).and.where(_,"!=",E)).or.whereNull(_)}else return this.client==="sqlite3"&&T?.type==="datetime"&&T.dateOnly?E!=null?f.not.whereLike(g,`${E.toISOString().slice(0,10)}%`).or.whereNull(g):f.not.whereNull(g):f.whereRaw("COALESCE(?? != ?, TRUE)",[this.rawQuotedIdentifier(g),E])}),r.empty&&l(r.empty,"empty",(f,g)=>(o&&(f=f.or),f.whereNull(g))),r.notEmpty&&l(r.notEmpty,"notEmpty",(f,g)=>(o&&(f=f.or),f.whereNotNull(g))),r.contains&&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:E,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,y=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&&E,N=F?`${y}.${g}`:`${S}.${f}`,q=F?`${x}.${E}`:`${x}.${g}`;if(F){let $=this.tableNameWithSchema(m,{alias:y,schema:u});V=V.join($,function(){this.on(`${S}.${T}`,"=",`${y}.${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,E=f.from;this.orOn(`${d}.${g}`,"=",`${l}.${E}`)}}).leftJoin(p,function(){for(let f of n){let g=f.toPrimary,E=f.to;this.orOn(`${c}.${g}`,`${l}.${E}`)}}):e=e.leftJoin(p,function(){for(let f of n){let g=f.from,E=f.to;this.orOn(`${d}.${g}`,"=",`${c}.${E}`)}}),e}qualifiedKnex(e){let r=this.query.tableAliases?.[this.query.table.name];return e?.alias===!1?r=void 0:typeof e?.alias=="string"&&(r=e.alias),this.knex(this.tableNameWithSchema(this.query.table.name,{alias:r,schema:this.query.schema}))}create(e){let{body:r}=this.query;if(!r)throw new Error("Cannot create without row body");let n=this.qualifiedKnex({alias:!1}),i=this.parseBody(r);if(this.client==="oracledb")for(let[s,o]of Object.entries(this.query.table.schema)){if(o.constraints?.presence===!0||o.type==="formula"||o.type==="auto"||o.type==="link"||o.type==="ai")continue;i[s]==null&&(i[s]=null)}else for(let[s,o]of Object.entries(i))o==null&&delete i[s];return e.disableReturning?n.insert(i):n.insert(i).returning("*")}bulkCreate(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));return r.insert(n)}bulkUpsert(){let{body:e}=this.query,r=this.qualifiedKnex({alias:!1});if(!Array.isArray(e))return r;let n=e.map(i=>this.parseBody(i));if(this.client==="pg"||this.client==="sqlite3"||this.client==="mysql2"||this.client==="mariadb"){let i=this.table.primary;if(!i)throw new Error("Primary key is required for upsert");return r.insert(n).onConflict(i).merge()}else if(this.client==="mssql"||this.client==="oracledb")return r.insert(n);return r.upsert(n)}read(e={}){let{operation:r,filters:n,paginate:i,relationships:s,table:o}=this.query,{limits:a}=e,u=this.qualifiedKnex(),c=null,l=a?.query||a?.base;if(i&&i.page&&i.limit){let 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});
|
|
39
39
|
//# sourceMappingURL=index.js.map
|